diff --git a/.gitignore b/.gitignore index 50ca57a..b4e93f0 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,5 @@ build/ ### Mac OS ### .DS_Store /docs/local-zy.txt + +*.env \ No newline at end of file diff --git a/docs/dev-ops/docker-compose-environment.yml b/docs/dev-ops/docker-compose-environment.yml index a042a2d..cb89a39 100644 --- a/docs/dev-ops/docker-compose-environment.yml +++ b/docs/dev-ops/docker-compose-environment.yml @@ -2,7 +2,8 @@ version: '3.8' services: mysql: image: mysql:8.0 - container_name: mysql + container_name: group-buy-mysql + hostname: mysql command: --default-authentication-plugin=mysql_native_password restart: unless-stopped environment: @@ -26,7 +27,7 @@ services: redis: image: redis:6.2 restart: unless-stopped - container_name: redis + container_name: group-buy-redis hostname: redis privileged: true ports: @@ -47,7 +48,8 @@ services: # rabbitmq-plugins enable rabbitmq_management rabbitmq: image: rabbitmq:3.8-management - container_name: rabbitmq + container_name: group-buy-rabbitmq + hostname: rabbitmq restart: unless-stopped ports: - "5672:5672" @@ -62,6 +64,24 @@ services: networks: - group-buy-network + nacos: + image: nacos/nacos-server:v2.1.0 + container_name: group-buy-nacos-server + hostname: nacos-server + restart: unless-stopped + env_file: + - ./nacos/custom.env + ports: + - "8848:8848" + - "9848:9848" + - "9849:9849" + depends_on: + - mysql + networks: + - group-buy-network + volumes: + - ./nacos/init.d:/docker-entrypoint-init.d + networks: group-buy-network: driver: bridge \ No newline at end of file diff --git a/docs/dev-ops/mysql/sql/0807group_buying_sys.sql b/docs/dev-ops/mysql/sql/0807group_buying_sys.sql new file mode 100644 index 0000000..7cb8be7 --- /dev/null +++ b/docs/dev-ops/mysql/sql/0807group_buying_sys.sql @@ -0,0 +1,282 @@ +/* + Navicat Premium Data Transfer + + Source Server : group_buy_local + Source Server Type : MySQL + Source Server Version : 80042 + Source Host : localhost:13306 + Source Schema : group-buying-sys + + Target Server Type : MySQL + Target Server Version : 80042 + File Encoding : 65001 + + Date: 07/08/2025 16:05:41 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for crowd_tags +-- ---------------------------- +DROP TABLE IF EXISTS `crowd_tags`; +CREATE TABLE `crowd_tags` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `tag_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人群ID', + `tag_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人群名称', + `tag_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人群描述', + `statistics` int NOT NULL COMMENT '人群标签统计量', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_tag_id`(`tag_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '人群标签' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of crowd_tags +-- ---------------------------- +INSERT INTO `crowd_tags` VALUES (1, 'RQ_KJHKL98UU78H66554GFDV', '潜在消费用户', '潜在消费用户', 28, '2025-06-26 09:12:22', '2025-06-28 11:02:00'); + +-- ---------------------------- +-- Table structure for crowd_tags_detail +-- ---------------------------- +DROP TABLE IF EXISTS `crowd_tags_detail`; +CREATE TABLE `crowd_tags_detail` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `tag_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '人群ID', + `user_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户ID', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_tag_user`(`tag_id` ASC, `user_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '人群标签明细' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of crowd_tags_detail +-- ---------------------------- +INSERT INTO `crowd_tags_detail` VALUES (20, 'RQ_KJHKL98UU78H66554GFDV', 'zy123', '2025-06-28 10:53:23', '2025-06-28 10:53:23'); +INSERT INTO `crowd_tags_detail` VALUES (21, 'RQ_KJHKL98UU78H66554GFDV', 'smile', '2025-06-28 10:53:23', '2025-06-28 10:53:23'); + +-- ---------------------------- +-- Table structure for crowd_tags_job +-- ---------------------------- +DROP TABLE IF EXISTS `crowd_tags_job`; +CREATE TABLE `crowd_tags_job` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `tag_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标签ID', + `batch_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '批次ID', + `tag_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '标签类型(参与量、消费金额)', + `tag_rule` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标签规则(限定类型 N次)', + `stat_start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计数据,开始时间', + `stat_end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计数据,结束时间', + `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态;0初始、1计划(进入执行阶段)、2重置、3完成', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_batch_id`(`batch_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '人群标签任务' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of crowd_tags_job +-- ---------------------------- +INSERT INTO `crowd_tags_job` VALUES (1, 'RQ_KJHKL98UU78H66554GFDV', '10001', 0, '100', '2025-06-26 09:13:31', '2025-06-26 09:13:31', 0, '2025-06-26 09:13:31', '2025-06-26 09:13:31'); + +-- ---------------------------- +-- Table structure for group_buy_activity +-- ---------------------------- +DROP TABLE IF EXISTS `group_buy_activity`; +CREATE TABLE `group_buy_activity` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增', + `activity_id` bigint NOT NULL COMMENT '活动ID', + `activity_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '活动名称', + `discount_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '折扣ID', + `group_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '拼团方式(0自动成团、1达成目标拼团)', + `take_limit_count` int NOT NULL DEFAULT 1 COMMENT '拼团次数限制', + `target` int NOT NULL DEFAULT 1 COMMENT '拼团目标', + `valid_time` int NOT NULL DEFAULT 15 COMMENT '拼团时长(分钟)', + `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '活动状态(0创建、1生效、2过期、3废弃)', + `start_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动开始时间', + `end_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '活动结束时间', + `tag_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人群标签规则标识', + `tag_scope` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人群标签规则范围(多选;1可见限制、2参与限制)', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_activity_id`(`activity_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '拼团活动' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of group_buy_activity +-- ---------------------------- +INSERT INTO `group_buy_activity` VALUES (1, 100123, '测试活动', '25120207', 0, 1, 3, 60, 1, '2025-06-19 10:19:40', '2025-12-31 10:19:40', 'RQ_KJHKL98UU78H66554GFDV', '1,2', '2025-06-19 10:19:40', '2025-07-25 12:59:18'); +INSERT INTO `group_buy_activity` VALUES (2, 100124, '测试活动2', '25120207', 0, 1, 1, 60, 1, '2025-07-05 13:39:52', '2025-12-31 13:39:34', 'RQ_KJHKL98UU78H66554GFDV', '1,2', '2025-07-05 13:39:52', '2025-07-25 12:59:23'); + +-- ---------------------------- +-- Table structure for group_buy_discount +-- ---------------------------- +DROP TABLE IF EXISTS `group_buy_discount`; +CREATE TABLE `group_buy_discount` ( + `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `discount_id` int NOT NULL COMMENT '折扣ID', + `discount_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '折扣标题', + `discount_desc` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '折扣描述', + `discount_type` tinyint(1) NOT NULL DEFAULT 0 COMMENT '折扣类型(0:base、1:tag)', + `market_plan` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'ZJ' COMMENT '营销优惠计划(ZJ:直减、MJ:满减、ZK:折扣、N元购)', + `market_expr` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '营销优惠表达式', + `tag_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '人群标签,特定优惠限定', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_discount_id`(`discount_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '折扣配置' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of group_buy_discount +-- ---------------------------- +INSERT INTO `group_buy_discount` VALUES (1, 25120207, '直减优惠20元', '直减优惠20元', 0, 'ZJ', '20', NULL, '2025-06-25 14:02:13', '2025-06-25 14:02:13'); +INSERT INTO `group_buy_discount` VALUES (2, 25120208, '满减优惠100-10元', '满减优惠100-10元', 0, 'MJ', '100,10', NULL, '2025-06-25 14:02:13', '2025-06-25 14:02:13'); +INSERT INTO `group_buy_discount` VALUES (4, 25120209, '折扣优惠8折', '折扣优惠8折', 0, 'ZK', '0.8', NULL, '2025-06-25 14:02:13', '2025-06-25 14:02:13'); +INSERT INTO `group_buy_discount` VALUES (5, 25120210, 'N元购买优惠', 'N元购买优惠', 0, 'N', '1.99', NULL, '2025-06-25 14:02:13', '2025-06-25 14:02:13'); + +-- ---------------------------- +-- Table structure for group_buy_order +-- ---------------------------- +DROP TABLE IF EXISTS `group_buy_order`; +CREATE TABLE `group_buy_order` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `team_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '拼单组队ID', + `activity_id` bigint NOT NULL COMMENT '活动ID', + `source` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '渠道', + `channel` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源', + `original_price` decimal(8, 2) NOT NULL COMMENT '原始价格', + `deduction_price` decimal(8, 2) NOT NULL COMMENT '折扣金额', + `pay_price` decimal(8, 2) NOT NULL COMMENT '支付价格', + `target_count` int NOT NULL COMMENT '目标数量', + `complete_count` int NOT NULL COMMENT '完成数量', + `lock_count` int NOT NULL COMMENT '锁单数量', + `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态(0-拼单中、1-完成、2-失败、3-完成-含退单)', + `valid_start_time` datetime NOT NULL COMMENT '拼团开始时间', + `valid_end_time` datetime NOT NULL COMMENT '拼团结束时间', + `notify_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'HTTP' COMMENT '回调类型(HTTP、MQ)', + `notify_url` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '回调地址(HTTP 回调不可为空)', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_team_id`(`team_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 50 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '拼团订单表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of group_buy_order +-- ---------------------------- +INSERT INTO `group_buy_order` VALUES (49, '94097988', 100123, 's01', 'c01', 100.00, 20.00, 80.00, 3, 0, 0, 0, '2025-08-03 16:46:04', '2025-08-03 17:46:04', 'MQ', NULL, '2025-08-03 16:46:04', '2025-08-03 17:02:00'); +INSERT INTO `group_buy_order` VALUES (50, '07743427', 100123, 's01', 'c01', 100.00, 20.00, 80.00, 3, 1, 1, 0, '2025-08-07 16:03:13', '2025-08-07 17:03:13', 'MQ', NULL, '2025-08-07 16:03:13', '2025-08-07 16:04:20'); + +-- ---------------------------- +-- Table structure for group_buy_order_list +-- ---------------------------- +DROP TABLE IF EXISTS `group_buy_order_list`; +CREATE TABLE `group_buy_order_list` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `user_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户ID', + `team_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '拼单组队ID', + `order_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单ID', + `activity_id` bigint NOT NULL COMMENT '活动ID', + `start_time` datetime NOT NULL COMMENT '锁单时间', + `end_time` datetime NOT NULL COMMENT '最晚锁单时间', + `valid_end_time` datetime NOT NULL COMMENT '拼团结束时间', + `goods_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品ID', + `source` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '渠道', + `channel` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源', + `original_price` decimal(8, 2) NOT NULL COMMENT '原始价格', + `deduction_price` decimal(8, 2) NOT NULL COMMENT '折扣金额', + `pay_price` decimal(8, 2) NOT NULL COMMENT '支付金额', + `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态;0初始锁定、1消费完成、2用户退单', + `out_trade_no` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '外部交易单号-确保外部调用唯一幂等', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `biz_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '业务唯一ID', + `out_trade_time` datetime NULL DEFAULT NULL COMMENT '外部交易时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_order_id`(`order_id` ASC) USING BTREE, + INDEX `idx_user_id_activity_id`(`user_id` ASC, `activity_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 63 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '拼团订单明细表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of group_buy_order_list +-- ---------------------------- +INSERT INTO `group_buy_order_list` VALUES (63, 'smile01', '07743427', '503870044908', 100123, '2025-08-07 16:03:13', '2025-08-07 16:18:13', '2025-08-07 17:03:13', '9890001', 's01', 'c01', 100.00, 20.00, 80.00, 1, '651958626376', '2025-08-07 16:03:13', '2025-08-07 16:04:20', '100123_smile01_1', '2025-08-07 16:03:28'); + +-- ---------------------------- +-- Table structure for notify_task +-- ---------------------------- +DROP TABLE IF EXISTS `notify_task`; +CREATE TABLE `notify_task` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `activity_id` bigint NOT NULL COMMENT '活动ID', + `team_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '拼单组队ID', + `notify_category` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '回调种类', + `notify_type` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'HTTP' COMMENT '回调类型(HTTP、MQ)', + `notify_mq` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '回调消息', + `notify_url` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '回调接口', + `notify_count` int NOT NULL COMMENT '回调次数', + `notify_status` tinyint(1) NOT NULL COMMENT '回调状态【0初始、1完成、2重试、3失败】', + `parameter_json` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '参数对象', + `uuid` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '唯一标识', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `uq_uuid`(`uuid` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of notify_task +-- ---------------------------- +INSERT INTO `notify_task` VALUES (11, 100123, '94097988', 'trade_unpaid2refund', 'MQ', 'topic.team_refund', NULL, 1, 1, '{\"activityId\":100123,\"orderId\":\"563157026086\",\"teamId\":\"94097988\",\"outTradeNo\":\"729888750316\",\"type\":\"unpaid_unlock\",\"userId\":\"smile21\"}', '94097988_trade_unpaid2refund_563157026086', '2025-08-03 16:52:42', '2025-08-03 16:52:42'); +INSERT INTO `notify_task` VALUES (12, 100123, '94097988', 'trade_unpaid2refund', 'MQ', 'topic.team_refund', NULL, 1, 1, '{\"activityId\":100123,\"orderId\":\"524202010712\",\"teamId\":\"94097988\",\"outTradeNo\":\"030158231264\",\"type\":\"unpaid_unlock\",\"userId\":\"smile22\"}', '94097988_trade_unpaid2refund_524202010712', '2025-08-03 17:02:00', '2025-08-03 17:02:00'); +INSERT INTO `notify_task` VALUES (13, 100123, '94097988', 'trade_unpaid2refund', 'MQ', 'topic.team_refund', NULL, 1, 1, '{\"activityId\":100123,\"orderId\":\"492703934270\",\"teamId\":\"94097988\",\"outTradeNo\":\"340480871121\",\"type\":\"unpaid_unlock\",\"userId\":\"smile23\"}', '94097988_trade_unpaid2refund_492703934270', '2025-08-03 17:02:00', '2025-08-03 17:02:00'); + +-- ---------------------------- +-- Table structure for sc_sku_activity +-- ---------------------------- +DROP TABLE IF EXISTS `sc_sku_activity`; +CREATE TABLE `sc_sku_activity` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `source` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '渠道', + `channel` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源', + `activity_id` bigint NOT NULL COMMENT '活动ID', + `goods_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品ID', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_sc_goodsid`(`source` ASC, `channel` ASC, `goods_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '渠道商品活动配置关联表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of sc_sku_activity +-- ---------------------------- +INSERT INTO `sc_sku_activity` VALUES (1, 's01', 'c01', 100123, '9890001', '2025-06-26 17:15:54', '2025-06-26 17:15:54'); + +-- ---------------------------- +-- Table structure for sku +-- ---------------------------- +DROP TABLE IF EXISTS `sku`; +CREATE TABLE `sku` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增ID', + `source` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '渠道', + `channel` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源', + `goods_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品ID', + `goods_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称', + `original_price` decimal(10, 2) NOT NULL COMMENT '商品价格', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uq_goods_id`(`goods_id` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品信息' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of sku +-- ---------------------------- +INSERT INTO `sku` VALUES (1, 's01', 'c01', '9890001', '《手写MyBatis:渐进式源码实践》', 100.00, '2025-06-22 11:10:06', '2025-06-22 11:10:06'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/docs/dev-ops/nacos/init.d/nacos.sql b/docs/dev-ops/nacos/init.d/nacos.sql new file mode 100644 index 0000000..6d49e04 --- /dev/null +++ b/docs/dev-ops/nacos/init.d/nacos.sql @@ -0,0 +1,259 @@ +-- -------------------------------------------------------- +-- 主机: 192.168.150.101 +-- 服务器版本: 8.0.27 - MySQL Community Server - GPL +-- 服务器操作系统: Linux +-- HeidiSQL 版本: 12.2.0.6576 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + + +-- 导出 nacos 的数据库结构 +DROP DATABASE IF EXISTS `nacos`; +CREATE DATABASE IF NOT EXISTS `nacos` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +USE `nacos`; + +-- 导出 表 nacos.config_info 结构 +DROP TABLE IF EXISTS `config_info`; +CREATE TABLE IF NOT EXISTS `config_info` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) COLLATE utf8_bin DEFAULT NULL, + `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content', + `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) COLLATE utf8_bin DEFAULT NULL, + `c_use` varchar(64) COLLATE utf8_bin DEFAULT NULL, + `effect` varchar(64) COLLATE utf8_bin DEFAULT NULL, + `type` varchar(64) COLLATE utf8_bin DEFAULT NULL, + `c_schema` text COLLATE utf8_bin, + `encrypted_data_key` text COLLATE utf8_bin NOT NULL COMMENT '秘钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='config_info'; + +-- 正在导出表 nacos.config_info 的数据:~0 rows (大约) +DELETE FROM `config_info`; + +-- 导出 表 nacos.config_info_aggr 结构 +DROP TABLE IF EXISTS `config_info_aggr`; +CREATE TABLE IF NOT EXISTS `config_info_aggr` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'datum_id', + `content` longtext COLLATE utf8_bin NOT NULL COMMENT '内容', + `gmt_modified` datetime NOT NULL COMMENT '修改时间', + `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='增加租户字段'; + +-- 正在导出表 nacos.config_info_aggr 的数据:~0 rows (大约) +DELETE FROM `config_info_aggr`; + +-- 导出 表 nacos.config_info_beta 结构 +DROP TABLE IF EXISTS `config_info_beta`; +CREATE TABLE IF NOT EXISTS `config_info_beta` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) COLLATE utf8_bin DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text COLLATE utf8_bin NOT NULL COMMENT '秘钥', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='config_info_beta'; + +-- 正在导出表 nacos.config_info_beta 的数据:~0 rows (大约) +DELETE FROM `config_info_beta`; + +-- 导出 表 nacos.config_info_tag 结构 +DROP TABLE IF EXISTS `config_info_tag`; +CREATE TABLE IF NOT EXISTS `config_info_tag` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext COLLATE utf8_bin NOT NULL COMMENT 'content', + `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COLLATE utf8_bin COMMENT 'source user', + `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT 'source ip', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='config_info_tag'; + +-- 正在导出表 nacos.config_info_tag 的数据:~0 rows (大约) +DELETE FROM `config_info_tag`; + +-- 导出 表 nacos.config_tags_relation 结构 +DROP TABLE IF EXISTS `config_tags_relation`; +CREATE TABLE IF NOT EXISTS `config_tags_relation` ( + `id` bigint NOT NULL COMMENT 'id', + `tag_name` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) COLLATE utf8_bin NOT NULL COMMENT 'data_id', + `group_id` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `nid` bigint NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`nid`), + UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='config_tag_relation'; + +-- 正在导出表 nacos.config_tags_relation 的数据:~0 rows (大约) +DELETE FROM `config_tags_relation`; + +-- 导出 表 nacos.group_capacity 结构 +DROP TABLE IF EXISTS `group_capacity`; +CREATE TABLE IF NOT EXISTS `group_capacity` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', + `max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_id` (`group_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; + +-- 正在导出表 nacos.group_capacity 的数据:~0 rows (大约) +DELETE FROM `group_capacity`; + +-- 导出 表 nacos.his_config_info 结构 +DROP TABLE IF EXISTS `his_config_info`; +CREATE TABLE IF NOT EXISTS `his_config_info` ( + `id` bigint unsigned NOT NULL, + `nid` bigint unsigned NOT NULL AUTO_INCREMENT, + `data_id` varchar(255) COLLATE utf8_bin NOT NULL, + `group_id` varchar(128) COLLATE utf8_bin NOT NULL, + `app_name` varchar(128) COLLATE utf8_bin DEFAULT NULL COMMENT 'app_name', + `content` longtext COLLATE utf8_bin NOT NULL, + `md5` varchar(32) COLLATE utf8_bin DEFAULT NULL, + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `src_user` text COLLATE utf8_bin, + `src_ip` varchar(50) COLLATE utf8_bin DEFAULT NULL, + `op_type` char(10) COLLATE utf8_bin DEFAULT NULL, + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT '租户字段', + `encrypted_data_key` text COLLATE utf8_bin NOT NULL COMMENT '秘钥', + PRIMARY KEY (`nid`), + KEY `idx_gmt_create` (`gmt_create`), + KEY `idx_gmt_modified` (`gmt_modified`), + KEY `idx_did` (`data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='多租户改造'; + +-- 正在导出表 nacos.his_config_info 的数据:~0 rows (大约) +DELETE FROM `his_config_info`; + +-- 导出 表 nacos.permissions 结构 +DROP TABLE IF EXISTS `permissions`; +CREATE TABLE IF NOT EXISTS `permissions` ( + `role` varchar(50) COLLATE utf8mb4_general_ci NOT NULL, + `resource` varchar(255) COLLATE utf8mb4_general_ci NOT NULL, + `action` varchar(8) COLLATE utf8mb4_general_ci NOT NULL, + UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- 正在导出表 nacos.permissions 的数据:~0 rows (大约) +DELETE FROM `permissions`; + +-- 导出 表 nacos.roles 结构 +DROP TABLE IF EXISTS `roles`; +CREATE TABLE IF NOT EXISTS `roles` ( + `username` varchar(50) COLLATE utf8mb4_general_ci NOT NULL, + `role` varchar(50) COLLATE utf8mb4_general_ci NOT NULL, + UNIQUE KEY `idx_user_role` (`username`,`role`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- 正在导出表 nacos.roles 的数据:~1 rows (大约) +DELETE FROM `roles`; +INSERT INTO `roles` (`username`, `role`) VALUES + ('nacos', 'ROLE_ADMIN'); + +-- 导出 表 nacos.tenant_capacity 结构 +DROP TABLE IF EXISTS `tenant_capacity`; +CREATE TABLE IF NOT EXISTS `tenant_capacity` ( + `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', + `max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='租户容量信息表'; + +-- 正在导出表 nacos.tenant_capacity 的数据:~0 rows (大约) +DELETE FROM `tenant_capacity`; + +-- 导出 表 nacos.tenant_info 结构 +DROP TABLE IF EXISTS `tenant_info`; +CREATE TABLE IF NOT EXISTS `tenant_info` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', + `kp` varchar(128) COLLATE utf8_bin NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_id', + `tenant_name` varchar(128) COLLATE utf8_bin DEFAULT '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) COLLATE utf8_bin DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT 'create_source', + `gmt_create` bigint NOT NULL COMMENT '创建时间', + `gmt_modified` bigint NOT NULL COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8_bin COMMENT='tenant_info'; + +-- 正在导出表 nacos.tenant_info 的数据:~0 rows (大约) +DELETE FROM `tenant_info`; + +-- 导出 表 nacos.users 结构 +DROP TABLE IF EXISTS `users`; +CREATE TABLE IF NOT EXISTS `users` ( + `username` varchar(50) COLLATE utf8mb4_general_ci NOT NULL, + `password` varchar(500) COLLATE utf8mb4_general_ci NOT NULL, + `enabled` tinyint(1) NOT NULL, + PRIMARY KEY (`username`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +-- 正在导出表 nacos.users 的数据:~1 rows (大约) +DELETE FROM `users`; +INSERT INTO `users` (`username`, `password`, `enabled`) VALUES + ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1); + +/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */; +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */; diff --git a/docs/dev-ops/mysql/sql/0803group_buying_sys.sql b/docs/dev-ops/sql-back/0803group_buying_sys.sql similarity index 99% rename from docs/dev-ops/mysql/sql/0803group_buying_sys.sql rename to docs/dev-ops/sql-back/0803group_buying_sys.sql index de14ccd..4583222 100644 --- a/docs/dev-ops/mysql/sql/0803group_buying_sys.sql +++ b/docs/dev-ops/sql-back/0803group_buying_sys.sql @@ -181,8 +181,9 @@ CREATE TABLE `group_buy_order_list` ( `team_id` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '拼单组队ID', `order_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单ID', `activity_id` bigint NOT NULL COMMENT '活动ID', - `start_time` datetime NOT NULL COMMENT '活动开始时间', - `end_time` datetime NOT NULL COMMENT '活动结束时间', + `start_time` datetime NOT NULL COMMENT '锁单时间', + `end_time` datetime NOT NULL COMMENT '最晚锁单时间', + `valid_end_time` datetime NOT NULL COMMENT '拼团结束时间', `goods_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品ID', `source` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '渠道', `channel` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '来源', diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketRequestDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketRequestDTO.java index 805dff4..dc1c59b 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketRequestDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketRequestDTO.java @@ -2,11 +2,14 @@ package edu.whut.api.dto; import lombok.Data; +import java.io.Serializable; // 导入 Serializable 接口 + /** * 商品营销请求对象 */ @Data -public class GoodsMarketRequestDTO { +public class GoodsMarketRequestDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID // 用户ID private String userId; @@ -17,4 +20,4 @@ public class GoodsMarketRequestDTO { // 商品ID private String goodsId; -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketResponseDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketResponseDTO.java index 125e6cc..c43b80a 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketResponseDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/GoodsMarketResponseDTO.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; // 导入 Serializable 接口 import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -17,7 +18,8 @@ import java.util.concurrent.TimeUnit; @Builder @AllArgsConstructor @NoArgsConstructor -public class GoodsMarketResponseDTO { +public class GoodsMarketResponseDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID // 活动ID private Long activityId; @@ -35,7 +37,8 @@ public class GoodsMarketResponseDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class Goods { + public static class Goods implements Serializable { // 嵌套类也需要实现 Serializable + private static final long serialVersionUID = 1L; // 嵌套类也添加 serialVersionUID // 商品ID private String goodsId; // 原始价格 @@ -53,7 +56,8 @@ public class GoodsMarketResponseDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class Team { + public static class Team implements Serializable { // 嵌套类也需要实现 Serializable + private static final long serialVersionUID = 1L; // 嵌套类也添加 serialVersionUID // 用户ID private String userId; // 拼单组队ID @@ -91,6 +95,7 @@ public class GoodsMarketResponseDTO { long hours = TimeUnit.MILLISECONDS.toHours(diffInMilliseconds) % 24; long days = TimeUnit.MILLISECONDS.toDays(diffInMilliseconds); + // 注意:这里只返回了小时、分钟、秒,如果需要天数,需要调整格式 return String.format("%02d:%02d:%02d", hours, minutes, seconds); } @@ -103,7 +108,8 @@ public class GoodsMarketResponseDTO { @Builder @AllArgsConstructor @NoArgsConstructor - public static class TeamStatistic { + public static class TeamStatistic implements Serializable { // 嵌套类也需要实现 Serializable + private static final long serialVersionUID = 1L; // 嵌套类也添加 serialVersionUID // 开团队伍数量 private Integer allTeamCount; // 成团队伍数量 @@ -114,4 +120,4 @@ public class GoodsMarketResponseDTO { private Integer inTeamUserCount; } -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderRequestDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderRequestDTO.java index f471099..7e4e129 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderRequestDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderRequestDTO.java @@ -2,11 +2,14 @@ package edu.whut.api.dto; import lombok.Data; +import java.io.Serializable; // 导入 Serializable 接口 + /** * 营销支付锁单请求对象 */ @Data -public class LockMarketPayOrderRequestDTO { +public class LockMarketPayOrderRequestDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID // 用户ID private String userId; @@ -42,7 +45,8 @@ public class LockMarketPayOrderRequestDTO { // 回调配置 @Data - public static class NotifyConfigVO { + public static class NotifyConfigVO implements Serializable { // 嵌套类也需要实现 Serializable + private static final long serialVersionUID = 1L; // 嵌套类也添加 serialVersionUID /** * 回调方式;MQ、HTTP */ @@ -57,4 +61,4 @@ public class LockMarketPayOrderRequestDTO { private String notifyUrl; } -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderResponseDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderResponseDTO.java index ff724a3..019751b 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderResponseDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/LockMarketPayOrderResponseDTO.java @@ -5,6 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; // 导入 Serializable 接口 import java.math.BigDecimal; /** @@ -14,7 +15,8 @@ import java.math.BigDecimal; @Builder @AllArgsConstructor @NoArgsConstructor -public class LockMarketPayOrderResponseDTO { +public class LockMarketPayOrderResponseDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** 预购订单ID */ private String orderId; @@ -29,4 +31,4 @@ public class LockMarketPayOrderResponseDTO { /** 组队ID */ private String teamId; -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/NotifyRequestDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/NotifyRequestDTO.java index a4ee159..9933b40 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/NotifyRequestDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/NotifyRequestDTO.java @@ -2,17 +2,19 @@ package edu.whut.api.dto; import lombok.Data; +import java.io.Serializable; // 导入 Serializable 接口 import java.util.List; /** * 回调请求对象 */ @Data -public class NotifyRequestDTO { +public class NotifyRequestDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** 组队ID */ private String teamId; /** 外部单号 */ private List outTradeNoList; -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderRequestDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderRequestDTO.java index 271cfd5..e136398 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderRequestDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderRequestDTO.java @@ -5,6 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; // 导入 Serializable 接口 + /** * 营销拼团退单请求对象 */ @@ -12,7 +14,8 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class RefundMarketPayOrderRequestDTO { +public class RefundMarketPayOrderRequestDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** * 用户ID diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderResponseDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderResponseDTO.java index faa1173..63a2b15 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderResponseDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/RefundMarketPayOrderResponseDTO.java @@ -5,6 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; // 导入 Serializable 接口 + /** * 营销拼团退单响应对象 */ @@ -12,7 +14,8 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class RefundMarketPayOrderResponseDTO { +public class RefundMarketPayOrderResponseDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** * 用户ID diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderRequestDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderRequestDTO.java index 509f2d0..7fee5dc 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderRequestDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderRequestDTO.java @@ -2,13 +2,15 @@ package edu.whut.api.dto; import lombok.Data; +import java.io.Serializable; // 导入 Serializable 接口 import java.util.Date; /** * 结算请求对象 */ @Data -public class SettlementMarketPayOrderRequestDTO { +public class SettlementMarketPayOrderRequestDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** 渠道 */ private String source; @@ -21,4 +23,4 @@ public class SettlementMarketPayOrderRequestDTO { /** 外部交易时间 */ private Date outTradeTime; -} +} \ No newline at end of file diff --git a/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderResponseDTO.java b/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderResponseDTO.java index 34765b5..b7912e2 100644 --- a/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderResponseDTO.java +++ b/group-buying-sys-api/src/main/java/edu/whut/api/dto/SettlementMarketPayOrderResponseDTO.java @@ -5,6 +5,8 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serializable; // 导入 Serializable 接口 + /** * 结算应答对象 */ @@ -12,7 +14,8 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class SettlementMarketPayOrderResponseDTO { +public class SettlementMarketPayOrderResponseDTO implements Serializable { // 实现 Serializable + private static final long serialVersionUID = 1L; // 添加 serialVersionUID /** 用户ID */ private String userId; @@ -23,4 +26,4 @@ public class SettlementMarketPayOrderResponseDTO { /** 外部交易单号 */ private String outTradeNo; -} +} \ No newline at end of file diff --git a/group-buying-sys-app/pom.xml b/group-buying-sys-app/pom.xml index 2108023..78db317 100644 --- a/group-buying-sys-app/pom.xml +++ b/group-buying-sys-app/pom.xml @@ -95,6 +95,7 @@ net.logstash.logback logstash-logback-encoder + edu.whut diff --git a/group-buying-sys-app/src/main/java/edu/whut/Application.java b/group-buying-sys-app/src/main/java/edu/whut/Application.java index 846bcd5..ae334d3 100644 --- a/group-buying-sys-app/src/main/java/edu/whut/Application.java +++ b/group-buying-sys-app/src/main/java/edu/whut/Application.java @@ -1,5 +1,6 @@ package edu.whut; +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -8,6 +9,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @Configurable @EnableScheduling +@EnableDubbo(scanBasePackages = "edu.whut.trigger") public class Application { public static void main(String[] args){ diff --git a/group-buying-sys-app/src/main/java/edu/whut/config/TraceIdFilter.java b/group-buying-sys-app/src/main/java/edu/whut/config/TraceIdFilter.java index f90a497..f3a93c7 100644 --- a/group-buying-sys-app/src/main/java/edu/whut/config/TraceIdFilter.java +++ b/group-buying-sys-app/src/main/java/edu/whut/config/TraceIdFilter.java @@ -1,7 +1,6 @@ package edu.whut.config; - -import org.jetbrains.annotations.NotNull; import org.slf4j.MDC; +import org.springframework.lang.NonNull; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; @@ -18,7 +17,7 @@ public class TraceIdFilter extends OncePerRequestFilter { private static final String TRACE_ID = "trace-id"; @Override - protected void doFilterInternal(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, FilterChain filterChain) + protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { try { String traceId = UUID.randomUUID().toString(); diff --git a/group-buying-sys-app/src/main/resources/application-dev.yml b/group-buying-sys-app/src/main/resources/application-dev.yml index 830392b..742570c 100644 --- a/group-buying-sys-app/src/main/resources/application-dev.yml +++ b/group-buying-sys-app/src/main/resources/application-dev.yml @@ -64,6 +64,20 @@ mybatis: mapper-locations: classpath:/mybatis/mapper/*.xml config-location: classpath:/mybatis/config/mybatis-config.xml +dubbo: + application: + name: group-buy-market-service # 换成各自服务名 + registry: + address: nacos://localhost:8848 # 远程环境写内网地址 + # username/password 如果 Nacos 开了鉴权 + protocol: + name: dubbo + port: 20880 # 生产者开放端口;消费者可不写 + consumer: + timeout: 3000 # 毫秒 + check: false # 忽略启动时服务是否可用 + + # Redis redis: sdk: diff --git a/group-buying-sys-domain/src/main/java/edu/whut/domain/activity/service/IIndexGroupBuyMarketService.java b/group-buying-sys-domain/src/main/java/edu/whut/domain/activity/service/IIndexGroupBuyMarketService.java index 7f2d6ed..fa135f8 100644 --- a/group-buying-sys-domain/src/main/java/edu/whut/domain/activity/service/IIndexGroupBuyMarketService.java +++ b/group-buying-sys-domain/src/main/java/edu/whut/domain/activity/service/IIndexGroupBuyMarketService.java @@ -24,7 +24,6 @@ public interface IIndexGroupBuyMarketService { * 查询进行中的拼团订单 * * @param activityId 活动ID - * @param userId 用户ID * @param randomCount 随机数量 * @return 用户拼团明细数据 */ diff --git a/group-buying-sys-trigger/pom.xml b/group-buying-sys-trigger/pom.xml index 19bc5a4..48f6deb 100644 --- a/group-buying-sys-trigger/pom.xml +++ b/group-buying-sys-trigger/pom.xml @@ -34,6 +34,15 @@ org.springframework.boot spring-boot-starter-amqp + + org.apache.dubbo + dubbo-spring-boot-starter + + + + org.apache.dubbo + dubbo-registry-nacos + edu.whut diff --git a/group-buying-sys-trigger/src/main/java/edu/whut/trigger/rpc/MarketTradeDubboService.java b/group-buying-sys-trigger/src/main/java/edu/whut/trigger/rpc/MarketTradeDubboService.java new file mode 100644 index 0000000..937dbfb --- /dev/null +++ b/group-buying-sys-trigger/src/main/java/edu/whut/trigger/rpc/MarketTradeDubboService.java @@ -0,0 +1,33 @@ +package edu.whut.trigger.rpc; + +import edu.whut.api.IMarketTradeService; +import edu.whut.api.dto.*; +import edu.whut.api.response.Response; +import edu.whut.trigger.http.MarketTradeController; +import org.apache.dubbo.config.annotation.DubboService; +import lombok.RequiredArgsConstructor; + +@DubboService(version = "1.0.0") // 关键注解 +@RequiredArgsConstructor +public class MarketTradeDubboService implements IMarketTradeService { + + private final MarketTradeController delegate; // 复用现有业务 + + @Override + public Response lockMarketPayOrder( + LockMarketPayOrderRequestDTO dto) { + return delegate.lockMarketPayOrder(dto); // 直接委托原 Controller 逻辑 + } + + @Override + public Response settlementMarketPayOrder( + SettlementMarketPayOrderRequestDTO dto) { + return delegate.settlementMarketPayOrder(dto); + } + + @Override + public Response refundMarketPayOrder( + RefundMarketPayOrderRequestDTO dto) { + return delegate.refundMarketPayOrder(dto); + } +} diff --git a/pom.xml b/pom.xml index 9a54e22..20647f9 100644 --- a/pom.xml +++ b/pom.xml @@ -144,6 +144,14 @@ logstash-logback-encoder 7.3 + + + org.apache.dubbo + dubbo-bom + 3.3.5 + pom + import + edu.whut