Browse Source

【feat】【v3】

1.完善表设计
2.增加sql脚本
3.修改项目依赖
ChenYL 10 months ago
parent
commit
588e618b9b
3 changed files with 555 additions and 21 deletions
  1. 488 0
      doc/sql/update-v3.sql
  2. 61 21
      doc/技术文档.md
  3. 6 0
      pom.xml

+ 488 - 0
doc/sql/update-v3.sql

@@ -0,0 +1,488 @@
+CREATE TABLE `new_user_stats` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `stats_time` char(10) NOT NULL COMMENT '统计时间(格式:yyyy-MM-dd)',
+  `new_user_count` int NOT NULL COMMENT '新用户数量',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_NewUserStats_StatsTime` (`stats_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='新用户数据统计';
+
+CREATE TABLE `points_stats` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `stats_time` char(10) NOT NULL COMMENT '统计时间(格式:yyyy-MM-dd)',
+  `settle_points` int NOT NULL COMMENT '每日积分的结算数',
+  `consume_points` int NOT NULL COMMENT '每日积分的消耗数量',
+  `total_points` int NOT NULL COMMENT '每日剩余总积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PointsStats_StatsTime` (`stats_time`),
+  KEY `idx_PointsStats_UserId` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='积分数据统计';
+
+CREATE TABLE `reward` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `reward_name` varchar(100) NOT NULL COMMENT '奖励名称',
+  `exchange_points` int NOT NULL COMMENT '兑换所需积分',
+  `auto_status` varchar(10) NOT NULL COMMENT '是否启用自动兑换(ENABLED-启用,DISABLED-关闭)',
+  `auto_exchange_count` int DEFAULT NULL COMMENT '自动兑换数量',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_Reward_UserId` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖励';
+
+CREATE TABLE `reward_account_rela` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `reward_id` bigint NOT NULL COMMENT '奖励id',
+  `account_id` bigint NOT NULL COMMENT '账户id',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_RewardAccountRela_UserId` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖励与账户关联表';
+
+CREATE TABLE `reward_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `reward_id` bigint NOT NULL COMMENT '奖励id',
+  `exchange_method` varchar(10) NOT NULL COMMENT '兑换类型(手动兑换-MANUAL,自动兑换-AUTO)',
+  `reward_name` varchar(100) NOT NULL COMMENT '奖励名称',
+  `exchange_points` int NOT NULL COMMENT '兑换所需积分',
+  `account_id` bigint NOT NULL COMMENT '兑换使用的账户id',
+  `account_name` varchar(100) NOT NULL COMMENT '账户名称',
+  `account_points_before_exchange` int NOT NULL COMMENT '兑换前账户中的积分',
+  `account_points_after_exchange` int NOT NULL COMMENT '兑换后账户中的积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_RewardHis_UserId` (`user_id`),
+  KEY `idx_RewardHis_CreationTime` (`creation_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='奖励兑换记录';
+
+CREATE TABLE `punch_in_stats_month` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `task_unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+  `stats_time` char(7) NOT NULL COMMENT '统计时间(格式:yyyy-MM)',
+  `punch_in_total_count` int NOT NULL COMMENT '本月需打卡数',
+  `punch_in_count` int NOT NULL COMMENT '本月已打卡数',
+  `punch_in_done_count` int NOT NULL COMMENT '本月完成打卡数',
+  `punch_in_rate` decimal(5,2) NOT NULL COMMENT '本月打卡率',
+  `punch_in_done_rate` decimal(5,2) NOT NULL COMMENT '本月打卡完成率',
+  `points` int NOT NULL COMMENT '本月获取积分数',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIStatsMonth_UserId` (`user_id`),
+  KEY `idx_PIStatsMonth_TaskUniqueId` (`task_unique_id`),
+  KEY `idx_PIStatsMonth_StatsTime` (`stats_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务月数据统计';
+
+CREATE TABLE `punch_in_stats_year` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `task_unique_id` bigint NOT NULL COMMENT '任务唯一ID',
+  `stats_time` char(4) NOT NULL COMMENT '统计时间(格式:yyyy)',
+  `punch_in_total_count` int NOT NULL COMMENT '本年需打卡数',
+  `punch_in_count` int NOT NULL COMMENT '本年已打卡数',
+  `punch_in_done_count` int NOT NULL COMMENT '本年完成打卡数',
+  `punch_in_rate` decimal(5,2) NOT NULL COMMENT '本年打卡率',
+  `punch_in_done_rate` decimal(5,2) NOT NULL COMMENT '本年打卡完成率',
+  `points` int NOT NULL COMMENT '本年获取积分数',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIStatsYear_UserId` (`user_id`),
+  KEY `idx_PIStatsYear_TaskUniqueId` (`task_unique_id`),
+  KEY `idx_PIStatsYear_StatsTime` (`stats_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务年数据统计';
+
+CREATE TABLE `account` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `account_name` varchar(100) NOT NULL COMMENT '账户名称',
+  `account_type` varchar(10) NOT NULL COMMENT '账户类型(BASIC-基本户,GENERAL-一般户)',
+  `points` int NOT NULL COMMENT '奖励积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_Account_UserId` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='账户';
+
+CREATE TABLE `account_transfer_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户id',
+  `sender_account_id` bigint NOT NULL COMMENT '转出账户id',
+  `recipient_account_id` bigint NOT NULL COMMENT '转入账户id',
+  `transfer_points` int NOT NULL COMMENT '转账积分',
+  `sa_points_before_transfer` int NOT NULL COMMENT '转出账户转出前积分',
+  `sa_points_after_transfer` int NOT NULL COMMENT '转出账户转出后积分',
+  `ra_points_before_transfer` int NOT NULL COMMENT '转入账户转入前积分',
+  `ra_points_after_transfer` int NOT NULL COMMENT '转入账户转入后积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_ATransferHis_UserId` (`user_id`),
+  KEY `idx_ATransferHis_CreationTime` (`creation_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='账户转账记录';
+
+CREATE TABLE `item_consume_win_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `action` varchar(30) NOT NULL COMMENT '动作(消费-CONSUME,中奖-WIN,撤销消费-REVERSE_CONSUME,撤销中奖-REVERSE_WIN)',
+  `source` varchar(100) NOT NULL COMMENT '来源',
+  `category` varchar(100) NOT NULL COMMENT '种类',
+  `amount` decimal(10,2) NOT NULL COMMENT '金额(元)',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_ICWHis_UserId` (`user_id`),
+  KEY `idx_ICWHis_CreationTime` (`creation_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='物品消费与中奖记录';
+
+CREATE TABLE `punch_in_task_ext` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_task_id` bigint NOT NULL COMMENT '打卡任务ID',
+  `dimension` varchar(10) NOT NULL COMMENT '使用维度(一天-ONE_DAY,多天-MULTI_DAY)',
+  `initial_value` int NOT NULL COMMENT '起始值(单位:次)',
+  `extra_points` int NOT NULL COMMENT '奖励的积分(额外)',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PITaskExt_UserId` (`user_id`),
+  KEY `idx_PITaskExt_PunchInTaskId` (`punch_in_task_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务拓展表';
+
+CREATE TABLE `punch_in_multi_task` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `multi_task_unique_id` bigint NOT NULL COMMENT '打卡多任务唯一ID',
+  `multi_task_status` varchar(10) NOT NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)',
+  `multi_task_version` int NOT NULL COMMENT '任务修改版本',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_method` varchar(10) NOT NULL COMMENT '打卡方式(次数-COUNT,比率-RATE)',
+  `punch_in_done_count` int DEFAULT NULL COMMENT '打卡完成次数',
+  `punch_in_done_rate` decimal(5,2) DEFAULT NULL COMMENT '打卡完成率',
+  `points` int NOT NULL COMMENT '奖励的积分(基本)',
+  `grace_status` varchar(10) NOT NULL COMMENT '是否启用宽限期(ENABLED-启用,DISABLED-关闭)',
+  `grace_day` int DEFAULT NULL COMMENT '宽限期(单位:天)',
+  `interrupted_day` int DEFAULT NULL COMMENT '打卡中断天数(单位:天)',
+  `penalty_day` int DEFAULT NULL COMMENT '惩罚天数(单位:天)',
+  `extra_method` varchar(10) NOT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)',
+  `extra_points` int DEFAULT NULL COMMENT '奖励的积分(额外)',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIMTask_UserId` (`user_id`),
+  KEY `idx_PIMTask_MultiTaskUniqueId` (`multi_task_unique_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡多任务表';
+
+CREATE TABLE `punch_in_multi_task_ext` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `multi_task_unique_id` bigint NOT NULL COMMENT '多任务ID',
+  `dimension` varchar(10) NOT NULL COMMENT '使用维度(一天-ONE_DAY,多天-MULTI_DAY)',
+  `initial_value` int NOT NULL COMMENT '起始值(单位:次)',
+  `extra_points` int NOT NULL COMMENT '奖励的积分(额外)',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIMTaskExt_UserId` (`user_id`),
+  KEY `idx_PIMTaskExt_MTaskUniqueId` (`multi_task_unique_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡多任务拓展表';
+
+CREATE TABLE `punch_in_multi_task_rela` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_multi_task_id` bigint NOT NULL COMMENT '打卡多任务ID',
+  `punch_in_task_id` bigint NOT NULL COMMENT '打卡任务ID',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIMTaskRela_UserId` (`user_id`),
+  KEY `idx_PIMTaskRela_PIMTaskId` (`punch_in_multi_task_id`),
+  KEY `idx_PIMTaskRela_PITaskId` (`punch_in_task_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡多任务关联表';
+
+CREATE TABLE `punch_in_task_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_task_unique_id` bigint NOT NULL COMMENT '打卡任务唯一ID',
+  `punch_in_date` varchar(10) NOT NULL COMMENT '打卡日期',
+  `punch_in_status` varchar(10) NOT NULL COMMENT '打卡状态(DONE-完成,UNDONE-未完成)',
+  `count_track` int DEFAULT NULL COMMENT '次数记录',
+  `time_track` time DEFAULT NULL COMMENT '时间记录',
+  `consecutive_status` varchar(20) NOT NULL COMMENT '连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)',
+  `consecutive_day` int NOT NULL COMMENT '连续天数,第一天开始就等于1',
+  `settle_status` varchar(20) NOT NULL COMMENT '结算状态(未结算-UNSETTLED,宽限期跳过J-GRACE_SKIP,惩罚跳过-PENALTY_SKIP,已结算-SETTLED)',
+  `settle_punch_in_task_id` bigint DEFAULT NULL COMMENT '结算时的打卡任务ID',
+  `settle_points` int DEFAULT NULL COMMENT '结算奖励积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PITaskHis_UserId` (`user_id`),
+  KEY `idx_PITaskHis_PITaskUniqueId` (`punch_in_task_unique_id`),
+  KEY `idx_PITaskHis_PunchInDate` (`punch_in_date`),
+  KEY `idx_PITaskHis_CreationTime` (`creation_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务记录表';
+
+CREATE TABLE `punch_in_multi_task_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_multi_task_unique_id` bigint NOT NULL COMMENT '打卡多任务唯一ID',
+  `punch_in_date` varchar(10) NOT NULL COMMENT '打卡日期',
+  `punch_in_status` varchar(10) NOT NULL COMMENT '打卡状态(DONE-完成,UNDONE-未完成)',
+  `total_task_count` int NOT NULL COMMENT '总任务数',
+  `punch_in_done_count` int NOT NULL COMMENT '打卡完成数',
+  `punch_in_done_rate` decimal(5,2) NOT NULL COMMENT '打卡完成率',
+  `consecutive_status` varchar(20) NOT NULL COMMENT '连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)',
+  `consecutive_day` int NOT NULL COMMENT '连续天数,第一天开始就等于1',
+  `settle_status` varchar(20) NOT NULL COMMENT '结算状态(未结算-UNSETTLED,宽限期跳过J-GRACE_SKIP,惩罚跳过-PENALTY_SKIP,已结算-SETTLED)',
+  `settle_punch_in_multi_task_id` bigint DEFAULT NULL COMMENT '结算时的打卡多任务ID',
+  `settle_points` int DEFAULT NULL COMMENT '结算奖励积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIMTaskHis_UserId` (`user_id`),
+  KEY `idx_PIMTaskHis_PIMTUniqueId` (`punch_in_multi_task_unique_id`),
+  KEY `idx_PIMTaskHis_PunchInDate` (`punch_in_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡多任务记录表';
+
+CREATE TABLE `punch_in_status` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_multi_task_unique_id` bigint DEFAULT NULL COMMENT '打卡多任务唯一ID',
+  `punch_in_task_unique_id` bigint DEFAULT NULL COMMENT '打卡任务唯一ID',
+  `consecutive_status` varchar(20) NOT NULL COMMENT '连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)',
+  `consecutive_day` int NOT NULL COMMENT '连续天数,第一天开始就等于1',
+  `start_date` date NOT NULL COMMENT '开始日期',
+  `end_date` date DEFAULT NULL COMMENT '结束日期',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIStatus_UserId` (`user_id`),
+  KEY `idx_PIStatus_PIMTaskUniqueId` (`punch_in_multi_task_unique_id`),
+  KEY `idx_PIStatus_PITaskUniqueId` (`punch_in_task_unique_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务状态表';
+
+CREATE TABLE `punch_in_status_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户ID',
+  `punch_in_multi_task_unique_id` bigint DEFAULT NULL COMMENT '打卡多任务唯一ID',
+  `punch_in_task_unique_id` bigint DEFAULT NULL COMMENT '打卡任务唯一ID',
+  `consecutive_status` varchar(20) NOT NULL COMMENT '连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)',
+  `consecutive_day` int NOT NULL COMMENT '连续天数,第一天开始就等于1',
+  `start_date` date NOT NULL COMMENT '开始日期',
+  `end_date` date DEFAULT NULL COMMENT '结束日期',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_PIStatusHis_UserId` (`user_id`),
+  KEY `idx_PIStatusHis_PIMTUniqueId` (`punch_in_multi_task_unique_id`),
+  KEY `idx_PIStatusHis_PITUniqueId` (`punch_in_task_unique_id`),
+  KEY `idx_PIStatusHis_CreationTime` (`creation_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='打卡任务状态记录表';
+
+CREATE TABLE `settle_points_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `user_id` bigint NOT NULL COMMENT '用户表主键',
+  `settle_date` varchar(10) NOT NULL COMMENT '结算日期',
+  `settle_points` int NOT NULL COMMENT '结算积分',
+  `before_settle_points` int NOT NULL COMMENT '结算前用户拥有的积分',
+  `after_settle_points` int NOT NULL COMMENT '结算后用户拥有的积分',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_SettlePointsHis_UserId` (`user_id`),
+  KEY `idx_SettlePointsHis_SettleDate` (`settle_date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='结算积分记录表';
+
+
+CREATE TABLE `sys_schedule_task` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `task_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '定时任务编码',
+  `task_name` varchar(100) NOT NULL COMMENT '定时任务名称',
+  `execute_status` varchar(10) NOT NULL COMMENT '是否启用定时任务(ENABLE-开启、DISABLE-关闭)',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务执行配置表';
+
+CREATE TABLE `sys_schedule_task_history` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `task_code` varchar(100) NOT NULL COMMENT '定时任务编码',
+  `task_name` varchar(100) NOT NULL COMMENT '定时任务名称',
+  `launch_method` varchar(10) NOT NULL COMMENT '启动方式(AUTO-自动,MANUAL-手动)',
+  `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '任务开始时间',
+  `end_time` timestamp NULL DEFAULT NULL COMMENT '任务结束时间',
+  `process_status` varchar(10) NOT NULL COMMENT '执行状态(RUNNING-执行中,SUCCESS-成功,FAIL-失败)',
+  `error_message` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '错误信息',
+  `created_by` bigint NOT NULL COMMENT '创建人',
+  `creation_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `last_updated_by` bigint NOT NULL COMMENT '最后更新人',
+  `last_update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  `version` bigint NOT NULL DEFAULT '1' COMMENT '版本号',
+  `delete_flag` tinyint NOT NULL DEFAULT '0' COMMENT '逻辑删除标志(0-未删除,1-已删除)',
+  PRIMARY KEY (`id`),
+  KEY `idx_SScheduleTaskHis_TaskCode` (`task_code`)
+) ENGINE=InnoDB AUTO_INCREMENT=314 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务执行记录表';
+
+ALTER TABLE `user` DROP COLUMN `avatar`;
+ALTER TABLE `user` CHANGE total_reward_num total_points int DEFAULT 0 NOT NULL COMMENT '总积分';
+ALTER TABLE `user` MODIFY COLUMN total_points int DEFAULT 0 NOT NULL COMMENT '总积分';
+ALTER TABLE `user` CHANGE unclaimed_reward_num unused_points int DEFAULT 0 NOT NULL COMMENT '未使用积分';
+ALTER TABLE `user` MODIFY COLUMN unused_points int DEFAULT 0 NOT NULL COMMENT '未使用积分';
+ALTER TABLE `user` CHANGE claimed_reward_num used_points int DEFAULT 0 NOT NULL COMMENT '已使用积分';
+ALTER TABLE `user` MODIFY COLUMN used_points int DEFAULT 0 NOT NULL COMMENT '已使用积分';
+ALTER TABLE `user` CHANGE lottery_invest_amount total_consume_amount decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT '总消费金额(元)';
+ALTER TABLE `user` MODIFY COLUMN total_consume_amount decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT '总消费金额(元)';
+ALTER TABLE `user` CHANGE lottery_win_amount total_win_amount decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT '总中奖金额(元)';
+ALTER TABLE `user` MODIFY COLUMN total_win_amount decimal(10,2) DEFAULT 0.00 NOT NULL COMMENT '总中奖金额(元)';
+
+RENAME TABLE punch_settle.punch_in TO punch_settle.punch_in_task;
+
+ALTER TABLE punch_settle.punch_in_task CHANGE reward_num points int DEFAULT 1 NOT NULL COMMENT '奖励的积分(基本)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN points int DEFAULT 1 NOT NULL COMMENT '奖励的积分(基本)';
+
+ALTER TABLE `punch_in_task`
+ADD COLUMN `task_unique_id` bigint NULL COMMENT '任务唯一ID',
+ADD COLUMN `task_status` varchar(10) NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)',
+ADD COLUMN `task_version` int NULL COMMENT '任务修改版本',
+ADD COLUMN `end_date` date DEFAULT NULL  COMMENT '结束日期',
+ADD COLUMN `archive_status` varchar(10) NULL  COMMENT '是否归档(活跃-ACTIVE,归档-ARCHIVE)',
+ADD COLUMN `display_order` int NULL  COMMENT '显示顺序',
+ADD COLUMN `display_time` time DEFAULT NULL  COMMENT '显示时间',
+ADD COLUMN `punch_in_method` varchar(10) DEFAULT NULL  COMMENT '打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)',
+ADD COLUMN `compare_rule` varchar(10) DEFAULT NULL  COMMENT '比较规则(大于等于-GTE,小于等于-LTE)',
+ADD COLUMN `holiday_status` varchar(10) NULL  COMMENT '是否启用节假日奖励(ENABLED-启用,DISABLED-关闭)',
+ADD COLUMN `holiday_count_track` int DEFAULT NULL COMMENT '次数记录(节假日用)',
+ADD COLUMN `holiday_time_track` time DEFAULT NULL COMMENT '时间记录(节假日用)',
+ADD COLUMN `full_attendance_status` varchar(10) DEFAULT NULL COMMENT '是否启用全勤奖励(ENABLED-启用,DISABLED-关闭)',
+ADD COLUMN `full_attendance_period` varchar(10) DEFAULT NULL COMMENT '全勤周期(周-WEEK,月-MONTH)',
+ADD COLUMN `full_attendance_fault_tolerance_cnt` int DEFAULT NULL COMMENT '全勤容错次数',
+ADD COLUMN `repeat_category` varchar(10) DEFAULT NULL COMMENT '重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIADY、自定义(周一至周日)-CUSTOM)',
+ADD COLUMN `repeat_custom_day` varchar(13) DEFAULT NULL COMMENT '自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7)',
+ADD COLUMN `extra_method` varchar(10) DEFAULT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)',
+ADD COLUMN `extra_time_step` time DEFAULT NULL COMMENT '额外的时间间隔',
+ADD COLUMN `grace_status` varchar(10) DEFAULT NULL COMMENT '是否启用宽限期(ENABLED-启用,DISABLED-关闭)',
+ADD COLUMN `grace_day` int DEFAULT NULL COMMENT '宽限期(单位:天)',
+ADD COLUMN `interrupted_day` int DEFAULT NULL COMMENT '打卡中断天数(单位:天)',
+ADD COLUMN `penalty_day` int DEFAULT NULL COMMENT '惩罚天数(单位:天)',
+ADD COLUMN `multi_task_status` varchar(10) DEFAULT NULL COMMENT '是否启用多任务(ENABLED-启用,DISABLED-关闭)',
+ADD COLUMN `auto_status` varchar(10) DEFAULT NULL COMMENT '是否启用自动打卡(ENABLED-启用,DISABLED-关闭)';
+
+ALTER TABLE punch_settle.sys_dict MODIFY COLUMN status varchar(10) DEFAULT 'DISABLED' NOT NULL COMMENT '状态(ENABLED-启用,DISABLED-失效)';
+UPDATE punch_settle.sys_dict SET status = 'ENABLED' WHERE status = '1';
+UPDATE punch_settle.sys_dict SET status = 'DISABLED' WHERE status = '0';
+ALTER TABLE punch_settle.sys_dict ADD UNIQUE INDEX UK_SysDict_DictCode (dict_code);
+
+ALTER TABLE punch_settle.sys_dict_item ADD UNIQUE INDEX UK_DictItem_DictId_ItemCode (dict_id, item_code);
+ALTER TABLE punch_settle.sys_dict_item ADD INDEX idx_SysDictItem_ItemCode (item_code);
+ALTER TABLE punch_settle.sys_dict_item MODIFY COLUMN status varchar(10) DEFAULT 'DISABLED' NOT NULL COMMENT '状态(ENABLED-启用,DISABLED-失效)';
+UPDATE punch_settle.sys_dict_item SET status = 'ENABLED' WHERE status = '1';
+UPDATE punch_settle.sys_dict_item SET status = 'DISABLED' WHERE status = '0';
+ALTER TABLE punch_settle.sys_dict_item MODIFY COLUMN data_type varchar(10) DEFAULT 'STRING' NOT NULL COMMENT '数据类型(STRING-字符串,INTEGER-整型数值)';
+UPDATE punch_settle.sys_dict_item SET data_type = 'INTEGER' WHERE data_type = '1';
+UPDATE punch_settle.sys_dict_item SET data_type = 'STRING' WHERE data_type = '0';
+
+INSERT INTO item_consume_win_history(id, user_id, action, source, category, amount, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag)
+SELECT id, created_by, action_type, source, category, amount, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag
+FROM lottery_scratch_record;
+UPDATE punch_settle.item_consume_win_history SET action = 'CONSUME' WHERE action = '0';
+UPDATE punch_settle.item_consume_win_history SET action = 'WIN' WHERE action = '1';
+UPDATE punch_settle.item_consume_win_history SET action = 'REVERSE_CONSUME' WHERE action = '2';
+UPDATE punch_settle.item_consume_win_history SET action = 'REVERSE_WIN' WHERE action = '3';
+DROP TABLE IF EXISTS lottery_scratch_record;
+
+-- TODO 差历史数据处理
+-- TODO 历史数据处理完毕后删除无效字段
+
+
+
+
+

+ 61 - 21
doc/技术文档.md

@@ -499,7 +499,6 @@ ui设计工具:即时设计
 | grace_day                           | int          | 宽限期(单位:天)                                           |          |
 | interrupted_day                     | int          | 打卡中断天数(单位:天)                                     |          |
 | penalty_day                         | int          | 惩罚天数(单位:天)                                         |          |
-| multi_task_status                   | varchar(10)  | 是否启用多任务(ENABLED-启用,DISABLED-关闭)                  |          |
 | auto_status                         | varchar(10)  | 是否启用自动打卡(ENABLED-启用,DISABLED-关闭)                |          |
 | created_by                          | bigint       | 创建人                                                       | 普通索引 |
 | creation_time                       | timestamp    | 创建时间                                                     |          |
@@ -540,10 +539,10 @@ ui设计工具:即时设计
 | 字段                 | 类型         | 描述                                               | 索引     |
 | -------------------- | ------------ | -------------------------------------------------- | -------- |
 | id                   | bigint       | 主键                                               | 主键索引 |
+| user_id              | bigint       | 用户ID                                             | 普通索引 |
 | multi_task_unique_id | bigint       | 打卡多任务唯一ID                                   | 普通索引 |
 | multi_task_status    | varchar(10)  | 任务状态(活跃-ACTIVE,归档-ARCHIVE)                |          |
 | multi_task_version   | int          | 任务修改版本                                       |          |
-| user_id              | bigint       | 用户ID                                             |          |
 | punch_in_method      | varchar(10)  | 打卡方式(次数-COUNT,比率-RATE)                  |          |
 | punch_in_done_count  | int          | 打卡完成次数                                       |          |
 | punch_in_done_rate   | decimal(5,2) | 打卡完成率                                         |          |
@@ -624,7 +623,7 @@ ui设计工具:即时设计
 | settle_punch_in_task_id | bigint      | 结算时的打卡任务ID                                           |          |
 | settle_points           | int         | 结算奖励积分                                                 |          |
 | created_by              | bigint      | 创建人                                                       |          |
-| creation_time           | timestamp   | 创建时间                                                     |          |
+| creation_time           | timestamp   | 创建时间                                                     | 普通索引 |
 | last_updated_by         | bigint      | 最后更新人                                                   |          |
 | last_update_time        | timestamp   | 最后更新时间                                                 |          |
 | version                 | bigint      | 版本号                                                       |          |
@@ -664,6 +663,8 @@ ui设计工具:即时设计
 
 表名:punch_in_status
 
+作用:punch_in_multi_task_unique_id和punch_in_task_unique_id字段不能同时出现,是一张公用表,punch_in_multi_task_unique_id出现时是多任务的打卡状态,punch_in_task_unique_id出现时是单任务的打卡状态
+
 | 字段                          | 类型        | 描述                                             | 索引     |
 | ----------------------------- | ----------- | ------------------------------------------------ | -------- |
 | id                            | bigint      | 主键                                             | 主键索引 |
@@ -698,7 +699,7 @@ ui设计工具:即时设计
 | start_date                    | date        | 开始日期                                         |          |
 | end_date                      | date        | 结束日期                                         |          |
 | created_by                    | bigint      | 创建人                                           |          |
-| creation_time                 | timestamp   | 创建时间                                         |          |
+| creation_time                 | timestamp   | 创建时间                                         | 普通索引 |
 | last_updated_by               | bigint      | 最后更新人                                       |          |
 | last_update_time              | timestamp   | 最后更新时间                                     |          |
 | version                       | bigint      | 版本号                                           |          |
@@ -706,9 +707,9 @@ ui设计工具:即时设计
 
 
 
-### 打卡任务结算积分记录表
+### 结算积分记录表
 
-表名:punch_in_settlement_points_history
+表名:settle_points_history
 
 | 字段                 | 类型        | 描述                               | 索引     |
 | -------------------- | ----------- | ---------------------------------- | -------- |
@@ -727,22 +728,19 @@ ui设计工具:即时设计
 
 
 
-### 奖励结算定时任务执行记录表
+### 结算任务执行记录表
 
-表名:settlement_task
+表名:settle_task_history
 
 | 字段                   | 类型        | 描述                                                |
 | ---------------------- | ----------- | --------------------------------------------------- |
 | id                     | bigint      | 主键                                                |
 | settle_date            | varchar(10) | 结算日期                                            |
 | launch_method          | varchar(10) | 启动方式(AUTO-自动,MANUAL-手动)                  |
-| start_time             | timestamp   | 任务开始时间                                        |
-| end_time               | timestamp   | 任务结束时间                                        |
 | process_status         | varchar(10) | 执行状态(RUNNING-执行中,SUCCESS-成功,FAIL-失败) |
 | processed_total_num    | int         | 待处理的总结算数量                                  |
 | processed_settle_num   | int         | 处理已结算数量                                      |
 | processed_unsettle_num | int         | 处理没结算数量                                      |
-| error_message          | text        | 失败异常信息                                        |
 | created_by             | bigint      | 创建人                                              |
 | creation_time          | timestamp   | 创建时间                                            |
 | last_updated_by        | bigint      | 最后更新人                                          |
@@ -759,13 +757,13 @@ ui设计工具:即时设计
 | 字段             | 类型          | 描述                                                         | 索引     |
 | ---------------- | ------------- | ------------------------------------------------------------ | -------- |
 | id               | bigint        | 主键                                                         | 主键索引 |
-| user_id          | bigint        | 用户ID                                                       |          |
+| user_id          | bigint        | 用户ID                                                       | 普通索引 |
 | action           | varchar(30)   | 动作(消费-CONSUME,中奖-WIN,撤销消费-REVERSE_CONSUME,撤销中奖-REVERSE_WIN) |          |
 | source           | varchar(100)  | 来源                                                         |          |
 | category         | varchar(100)  | 种类                                                         |          |
 | amount           | decimal(10,2) | 金额(元)                                                   |          |
 | created_by       | bigint        | 创建人                                                       |          |
-| creation_time    | timestamp     | 创建时间                                                     |          |
+| creation_time    | timestamp     | 创建时间                                                     | 普通索引 |
 | last_updated_by  | bigint        | 最后更新人                                                   |          |
 | last_update_time | timestamp     | 最后更新时间                                                 |          |
 | version          | bigint        | 版本号                                                       |          |
@@ -803,7 +801,7 @@ ui设计工具:即时设计
 | ---------------- | ------------ | ------------------------------------------- | -------- |
 | id               | bigint       | 主键                                        | 主键索引 |
 | dict_id          | bigint       | 字典表主键                                  | 普通索引 |
-| data_type        | int          | 数据类型(STRING-字符串,INTEGER-整型数值) |          |
+| data_type        | varchar(10)  | 数据类型(STRING-字符串,INTEGER-整型数值) |          |
 | item_code        | varchar(100) | 字典项编码                                  | 普通索引 |
 | item_name        | varchar(100) | 字典项名称                                  |          |
 | description      | varchar(200) | 描述                                        |          |
@@ -853,7 +851,7 @@ ui设计工具:即时设计
 | ra_points_before_transfer | int       | 转入账户转入前积分                 |          |
 | ra_points_after_transfer  | int       | 转入账户转入后积分                 |          |
 | created_by                | bigint    | 创建人                             |          |
-| creation_time             | timestamp | 创建时间                           |          |
+| creation_time             | timestamp | 创建时间                           | 普通索引 |
 | last_updated_by           | bigint    | 最后更新人                         |          |
 | last_update_time          | timestamp | 最后更新时间                       |          |
 | version                   | bigint    | 版本号                             |          |
@@ -918,7 +916,7 @@ ui设计工具:即时设计
 | account_points_before_exchange | int          | 兑换前账户中的积分                       |          |
 | account_points_after_exchange  | int          | 兑换后账户中的积分                       |          |
 | created_by                     | bigint       | 创建人                                   |          |
-| creation_time                  | timestamp    | 创建时间                                 |          |
+| creation_time                  | timestamp    | 创建时间                                 | 普通索引 |
 | last_updated_by                | bigint       | 最后更新人                               |          |
 | last_update_time               | timestamp    | 最后更新时间                             |          |
 | version                        | bigint       | 版本号                                   |          |
@@ -937,7 +935,7 @@ ui设计工具:即时设计
 | id                   | bigint       | 主键                               | 主键索引 |
 | user_id              | bigint       | 用户id                             | 普通索引 |
 | task_unique_id       | bigint       | 任务唯一ID                         | 普通索引 |
-| stats_time           | varchar      | 统计时间(格式:yyyy-MM)          | 普通索引 |
+| stats_time           | char(7)      | 统计时间(格式:yyyy-MM)          | 普通索引 |
 | punch_in_total_count | int          | 本月需打卡数                       |          |
 | punch_in_count       | int          | 本月已打卡数                       |          |
 | punch_in_done_count  | int          | 本月完成打卡数                     |          |
@@ -962,7 +960,7 @@ ui设计工具:即时设计
 | id                   | bigint       | 主键                               | 主键索引 |
 | user_id              | bigint       | 用户id                             | 普通索引 |
 | task_unique_id       | bigint       | 任务唯一ID                         | 普通索引 |
-| stats_time           | varchar      | 统计时间(格式:yyyy)             | 普通索引 |
+| stats_time           | char(4)      | 统计时间(格式:yyyy)             | 普通索引 |
 | punch_in_total_count | int          | 本年需打卡数                       |          |
 | punch_in_count       | int          | 本年已打卡数                       |          |
 | punch_in_done_count  | int          | 本年完成打卡数                     |          |
@@ -986,7 +984,7 @@ ui设计工具:即时设计
 | ---------------- | --------- | ---------------------------------- | -------- |
 | id               | bigint    | 主键                               | 主键索引 |
 | user_id          | bigint    | 用户id                             | 普通索引 |
-| stats_time       | varchar   | 统计时间(格式:yyyy-MM-dd)       | 普通索引 |
+| stats_time       | char(10)  | 统计时间(格式:yyyy-MM-dd)       | 普通索引 |
 | settle_points    | int       | 每日积分的结算数                   |          |
 | consume_points   | int       | 每日积分的消耗数量                 |          |
 | total_points     | int       | 每日剩余总积分                     |          |
@@ -1001,12 +999,12 @@ ui设计工具:即时设计
 
 ### 新用户数据统计
 
-表名:user_stats
+表名:new_user_stats
 
 | 字段             | 类型      | 描述                               | 索引     |
 | ---------------- | --------- | ---------------------------------- | -------- |
 | id               | bigint    | 主键                               | 主键索引 |
-| stats_time       | varchar   | 统计时间(格式:yyyy-MM-dd)       | 普通索引 |
+| stats_time       | char(10)  | 统计时间(格式:yyyy-MM-dd)       | 普通索引 |
 | new_user_count   | int       | 新用户数量                         |          |
 | created_by       | bigint    | 创建人                             |          |
 | creation_time    | timestamp | 创建时间                           |          |
@@ -1017,6 +1015,48 @@ ui设计工具:即时设计
 
 
 
+### 定时任务执行配置表
+
+表名:sys_schedule_task
+
+| 字段             | 类型         | 描述                                          |
+| ---------------- | ------------ | --------------------------------------------- |
+| id               | bigint       | 主键                                          |
+| task_code        | varchar(100) | 定时任务编码                                  |
+| task_name        | varchar(100) | 定时任务名称                                  |
+| execute_status   | varchar(10)  | 是否启用定时任务(ENABLED-启用、DISABLED-关闭) |
+| created_by       | bigint       | 创建人                                        |
+| creation_time    | timestamp    | 创建时间                                      |
+| last_updated_by  | bigint       | 最后更新人                                    |
+| last_update_time | timestamp    | 最后更新时间                                  |
+| version          | bigint       | 版本号                                        |
+| delete_flag      | tinyint      | 逻辑删除标志(0-未删除,1-已删除)            |
+
+
+
+### 定时任务执行记录表
+
+表名:sys_schedule_task_history
+
+| 字段             | 类型          | 描述                                                | 索引     |
+| ---------------- | ------------- | --------------------------------------------------- | -------- |
+| id               | bigint        | 主键                                                | 主键索引 |
+| task_code        | varchar(100)  | 定时任务编码                                        |          |
+| task_name        | varchar(100)  | 定时任务名称                                        |          |
+| launch_method    | varchar(10)   | 启动方式(AUTO-自动,MANUAL-手动)                  |          |
+| start_time       | timestamp     | 任务开始时间                                        |          |
+| end_time         | timestamp     | 任务结束时间                                        |          |
+| process_status   | varchar(10)   | 执行状态(RUNNING-执行中,SUCCESS-成功,FAIL-失败) |          |
+| error_message    | varchar(5000) | 错误信息                                            |          |
+| created_by       | bigint        | 创建人                                              |          |
+| creation_time    | timestamp     | 创建时间                                            |          |
+| last_updated_by  | bigint        | 最后更新人                                          |          |
+| last_update_time | timestamp     | 最后更新时间                                        |          |
+| version          | bigint        | 版本号                                              |          |
+| delete_flag      | tinyint       | 逻辑删除标志(0-未删除,1-已删除)                  |          |
+
+
+
 ## 开发参考
 
 * [两种优雅的获取当前登录用户ID的方式](https://blog.csdn.net/tomorrow9813/article/details/131736382)

+ 6 - 0
pom.xml

@@ -24,6 +24,7 @@
         <jwt.version>4.4.0</jwt.version>
         <tk-mybatis.version>5.0.1</tk-mybatis.version>
         <jasypt.version>3.0.5</jasypt.version>
+        <wxjava.version>4.7.0</wxjava.version>
     </properties>
 
     <dependencyManagement>
@@ -97,6 +98,11 @@
             <artifactId>jasypt-spring-boot-starter</artifactId>
             <version>${jasypt.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>wx-java-miniapp-spring-boot-starter</artifactId>
+            <version>${wxjava.version}</version>
+        </dependency>
     </dependencies>
 
     <!-- 配置阿里云仓库 -->