Jelajahi Sumber

【feat】【技术文档】
1.完善表设计
2.增加历史数据迁移sql

ChenYL 11 bulan lalu
induk
melakukan
7ec23ae913
2 mengubah file dengan 195 tambahan dan 60 penghapusan
  1. 137 12
      doc/sql/update-v3.sql
  2. 58 48
      doc/技术文档.md

+ 137 - 12
doc/sql/update-v3.sql

@@ -33,6 +33,9 @@ CREATE TABLE `points_stats` (
 CREATE TABLE `reward` (
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
   `user_id` bigint NOT NULL COMMENT '用户id',
+  `reward_unique_id` bigint DEFAULT NULL COMMENT '奖励唯一id',
+  `reward_status` varchar(10) DEFAULT NULL COMMENT '奖励状态(活跃-ACTIVE,归档-ARCHIVE)',
+  `reward_version` int DEFAULT NULL COMMENT '奖励修改版本',
   `reward_name` varchar(100) NOT NULL COMMENT '奖励名称',
   `exchange_points` int NOT NULL COMMENT '兑换所需积分',
   `auto_status` varchar(10) NOT NULL COMMENT '是否启用自动兑换(ENABLED-启用,DISABLED-关闭)',
@@ -50,7 +53,7 @@ CREATE TABLE `reward` (
 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',
+  `reward_unique_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 '创建时间',
@@ -67,8 +70,8 @@ CREATE TABLE `reward_history` (
   `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 '兑换所需积分',
+  `exchange_count` int NOT NULL COMMENT '兑换次数',
+  `exchange_total_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 '兑换前账户中的积分',
@@ -273,8 +276,9 @@ CREATE TABLE `punch_in_task_history` (
   `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',
+  `consecutive_status` varchar(20) DEFAULT NULL COMMENT '连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)',
+  `consecutive_day` int DEFAULT NULL COMMENT '连续天数,第一天开始就等于1',
+  `settle_task_history_id` bigint DEFAULT NULL COMMENT '结算任务执行ID',
   `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 '结算奖励积分',
@@ -302,6 +306,7 @@ CREATE TABLE `punch_in_multi_task_history` (
   `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_task_history_id` bigint DEFAULT NULL COMMENT '结算任务执行ID',
   `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 '结算奖励积分',
@@ -362,6 +367,7 @@ CREATE TABLE `punch_in_status_history` (
 
 CREATE TABLE `settle_points_history` (
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `settle_task_history_id` bigint NOT NULL COMMENT '结算任务执行ID',
   `user_id` bigint NOT NULL COMMENT '用户表主键',
   `settle_date` varchar(10) NOT NULL COMMENT '结算日期',
   `settle_points` int NOT NULL COMMENT '结算积分',
@@ -374,8 +380,9 @@ CREATE TABLE `settle_points_history` (
   `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`)
+  KEY `idx_SPointsHis_UserId` (`user_id`),
+  KEY `idx_SPointsHis_SettleDate` (`settle_date`),
+  KEY `idx_SPointsHis_STaskHisId` (`settle_task_history_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='结算积分记录表';
 
 
@@ -391,7 +398,7 @@ CREATE TABLE `sys_schedule_task` (
   `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='定时任务执行配置表';
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='定时任务执行配置表';
 
 CREATE TABLE `sys_schedule_task_history` (
   `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
@@ -410,7 +417,7 @@ CREATE TABLE `sys_schedule_task_history` (
   `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='定时任务执行记录表';
+) ENGINE=InnoDB AUTO_INCREMENT=1 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 '总积分';
@@ -453,9 +460,70 @@ ADD COLUMN `grace_status` varchar(10) DEFAULT NULL COMMENT '是否启用宽限
 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.punch_in_task CHANGE created_by created_by bigint NOT NULL COMMENT '创建人' AFTER auto_status;
+ALTER TABLE punch_settle.punch_in_task CHANGE creation_time creation_time timestamp DEFAULT CURRENT_TIMESTAMP  NOT NULL COMMENT '创建时间' AFTER created_by;
+ALTER TABLE punch_settle.punch_in_task CHANGE last_updated_by last_updated_by bigint NOT NULL COMMENT '最后更新人' AFTER creation_time;
+ALTER TABLE punch_settle.punch_in_task CHANGE last_update_time last_update_time timestamp DEFAULT CURRENT_TIMESTAMP  on update CURRENT_TIMESTAMP NOT NULL COMMENT '最后更新时间' AFTER last_updated_by;
+ALTER TABLE punch_settle.punch_in_task CHANGE version version bigint DEFAULT 1 NOT NULL COMMENT '版本号' AFTER last_update_time;
+ALTER TABLE punch_settle.punch_in_task CHANGE delete_flag delete_flag tinyint DEFAULT 0 NOT NULL COMMENT '逻辑删除标志(0-未删除,1-已删除)' AFTER version;
+ALTER TABLE punch_settle.punch_in_task CHANGE task_unique_id task_unique_id bigint NULL COMMENT '任务唯一ID' AFTER id;
+ALTER TABLE punch_settle.punch_in_task CHANGE task_status task_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)' AFTER task_unique_id;
+ALTER TABLE punch_settle.punch_in_task CHANGE task_version task_version int NULL COMMENT '任务修改版本' AFTER task_status;
+ALTER TABLE punch_settle.punch_in_task CHANGE description description varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '任务描述' AFTER task_name;
+ALTER TABLE punch_settle.punch_in_task CHANGE points points int DEFAULT 1 NOT NULL COMMENT '奖励的积分(基本)' AFTER description;
+ALTER TABLE punch_settle.punch_in_task CHANGE end_date end_date date NULL COMMENT '结束日期' AFTER points;
+ALTER TABLE punch_settle.punch_in_task CHANGE archive_status archive_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '是否归档(活跃-ACTIVE,归档-ARCHIVE)' AFTER end_date;
+ALTER TABLE punch_settle.punch_in_task CHANGE display_order display_order int NULL COMMENT '显示顺序' AFTER archive_status;
+ALTER TABLE punch_settle.punch_in_task CHANGE display_time display_time time NULL COMMENT '显示时间' AFTER display_order;
+ALTER TABLE punch_settle.punch_in_task CHANGE punch_in_method punch_in_method varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)' AFTER rule;
+ALTER TABLE punch_settle.punch_in_task CHANGE compare_rule compare_rule varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '比较规则(大于等于-GTE,小于等于-LTE)' AFTER punch_in_method;
+update punch_settle.punch_in_task
+set task_unique_id = id,
+task_status = 'ACTIVE',
+task_version = 1;
+
+UPDATE punch_settle.punch_in_task SET archive_status = 'ACTIVE' WHERE archive_flag = 0;
+UPDATE punch_settle.punch_in_task SET archive_status = 'ARCHIVE' WHERE archive_flag = 1;
+UPDATE punch_settle.punch_in_task SET punch_in_method = 'SINGLE' WHERE category = 0;
+UPDATE punch_settle.punch_in_task SET punch_in_method = 'COUNT' WHERE category = 1;
+UPDATE punch_settle.punch_in_task SET punch_in_method = 'TIMING' WHERE category = 2;
+update punch_settle.punch_in_task set compare_rule = 'GTE' WHERE rule = 0 and category != 0;
+update punch_settle.punch_in_task set compare_rule = 'LTE' WHERE rule = 1 and category != 0;
+ALTER TABLE punch_settle.punch_in_task DROP COLUMN archive_flag;
+ALTER TABLE punch_settle.punch_in_task DROP COLUMN category;
+ALTER TABLE punch_settle.punch_in_task DROP COLUMN rule;
+-- 节假日没有节假日的判断目标数据无法初始化,因此初始化为关闭
+UPDATE punch_settle.punch_in_task SET holiday_status = 'DISABLED';
+UPDATE punch_settle.punch_in_task SET full_attendance_status = 'DISABLED' WHERE full_attendance_flag = 0;
+UPDATE punch_settle.punch_in_task
+SET full_attendance_status = 'ENABLED',
+full_attendance_fault_tolerance_cnt = 1,
+full_attendance_period = 'WEEK'
+WHERE full_attendance_flag = 1;
+ALTER TABLE punch_settle.punch_in_task DROP COLUMN full_attendance_flag;
+ALTER TABLE punch_settle.punch_in_task DROP COLUMN weekend_double_flag;
+UPDATE punch_settle.punch_in_task SET repeat_category = 'EVERYDAY';
+UPDATE punch_settle.punch_in_task SET extra_method = 'NONE';
+UPDATE punch_settle.punch_in_task SET grace_status = 'DISABLED';
+UPDATE punch_settle.punch_in_task SET auto_status = 'DISABLED';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN archive_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否归档(活跃-ACTIVE,归档-ARCHIVE)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN task_unique_id bigint NOT NULL COMMENT '任务唯一ID';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN task_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '任务状态(活跃-ACTIVE,归档-ARCHIVE)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN task_version int NOT NULL COMMENT '任务修改版本';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN punch_in_method varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN holiday_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否启用节假日奖励(ENABLED-启用,DISABLED-关闭)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN full_attendance_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否启用全勤奖励(ENABLED-启用,DISABLED-关闭)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN repeat_category varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIADY、自定义(周一至周日)-CUSTOM)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN extra_method varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN grace_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否启用宽限期(ENABLED-启用,DISABLED-关闭)';
+ALTER TABLE punch_settle.punch_in_task MODIFY COLUMN auto_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否启用自动打卡(ENABLED-启用,DISABLED-关闭)';
+
+ALTER TABLE punch_settle.punch_in_multi_task MODIFY COLUMN punch_in_method varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '打卡方式(次数-COUNT,比率-RATE)';
+ALTER TABLE punch_settle.punch_in_multi_task MODIFY COLUMN grace_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '是否启用宽限期(ENABLED-启用,DISABLED-关闭)';
+ALTER TABLE punch_settle.punch_in_multi_task MODIFY COLUMN extra_method varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL)';
+
 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';
@@ -479,8 +547,65 @@ UPDATE punch_settle.item_consume_win_history SET action = 'REVERSE_CONSUME' WHER
 UPDATE punch_settle.item_consume_win_history SET action = 'REVERSE_WIN' WHERE action = '3';
 DROP TABLE IF EXISTS lottery_scratch_record;
 
--- TODO 差历史数据处理
--- TODO 历史数据处理完毕后删除无效字段
+RENAME TABLE punch_settle.settlement_task TO punch_settle.settle_task_history;
+ALTER TABLE punch_settle.settle_task_history COMMENT '结算任务执行记录表';
+ALTER TABLE punch_settle.settle_task_history ADD INDEX idx_SettleTaskHis_SettleDate (settle_date);
+ALTER TABLE punch_settle.settle_task_history DROP COLUMN start_time;
+ALTER TABLE punch_settle.settle_task_history DROP COLUMN end_time;
+ALTER TABLE punch_settle.settle_task_history DROP COLUMN error_message;
+ALTER TABLE punch_settle.settle_task_history CHANGE processed_num processed_total_num int DEFAULT 0 NOT NULL COMMENT '待处理结算数量';
+ALTER TABLE punch_settle.settle_task_history MODIFY COLUMN processed_total_num int DEFAULT 0 NOT NULL COMMENT '待处理总结算数量';
+
+INSERT INTO punch_settle.settle_points_history(id, settle_task_history_id, user_id, settle_date, settle_points, before_settle_points, after_settle_points, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag)
+SELECT pis.id, settlement_task_id, user_id, sth.settle_date , settle_reward_num, before_settle_reward_num, after_settle_reward_num, pis.created_by, pis.creation_time, pis.last_updated_by, pis.last_update_time, pis.version, pis.delete_flag
+FROM punch_in_settlement pis
+left join settle_task_history sth on pis.settlement_task_id = sth.id;
+DROP TABLE IF EXISTS punch_in_settlement;
+
+-- 删除无效的用户数据
+delete from user where id not in (select created_by from punch_in_task group by created_by);
+-- 初始化账户数据,account数从user导入
+insert into account(user_id, account_name, account_type, points, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag)
+select id, '基本户', 'BASIC', unused_points, id, CURRENT_TIMESTAMP(), id, CURRENT_TIMESTAMP(), 1, 0
+from user;
+-- 初始化基本奖励数据
+insert into reward(user_id, reward_name, exchange_points, auto_status, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag)
+select id, '刮一次刮刮乐', 1, 'DISABLED', id, CURRENT_TIMESTAMP(), id, CURRENT_TIMESTAMP(), 1, 0
+from user;
+update reward
+set reward_unique_id = id,
+reward_version = 1,
+reward_status = 'ACTIVE';
+ALTER TABLE punch_settle.reward MODIFY COLUMN reward_unique_id bigint NOT NULL COMMENT '奖励唯一id';
+ALTER TABLE punch_settle.reward MODIFY COLUMN reward_status varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '奖励状态(活跃-ACTIVE,归档-ARCHIVE)';
+ALTER TABLE punch_settle.reward MODIFY COLUMN reward_version int NOT NULL COMMENT '奖励修改版本';
+
+ALTER TABLE punch_settle.reward_history DROP COLUMN account_name;
+insert into reward_history(user_id, reward_id, exchange_method, exchange_count, exchange_total_points, account_id, account_points_before_exchange, account_points_after_exchange, created_by, creation_time, last_updated_by, last_update_time, version, delete_flag)
+select created_by,
+(select id from reward r where r.user_id = rr.created_by and r.reward_name = '刮一次刮刮乐'),
+'MANUAL', claim_reward_num, claim_reward_num,
+(SELECT ID FROM account a where a.user_id = rr.created_by and a.account_type = 'BASIC'),
+rr.before_claim_reward_num , rr.after_claim_reward_num ,
+created_by, creation_time, last_updated_by, last_update_time, version, delete_flag
+from user_claim_reward_record rr;
+DROP TABLE IF EXISTS user_claim_reward_record;
+
+insert into punch_in_task_history(id, user_id, punch_in_task_unique_id,
+punch_in_date, punch_in_status, count_track, time_track, settle_task_history_id,
+settle_status, settle_punch_in_task_id, created_by, creation_time,
+last_updated_by, last_update_time, version, delete_flag)
+select pir.id, pir.created_by, punch_in_id, punch_in_date, punch_in_status,
+count_track, time_track, pirsr.settlement_id , 'SETTLED', pir.punch_in_id , pir.created_by,
+pir.creation_time, pir.last_updated_by, pir.last_update_time, pir.version, pir.delete_flag
+from punch_in_record pir
+left join punch_in_record_settlement_rela pirsr on pir.id = pirsr.record_id;
+
+update punch_in_task_history set punch_in_status = 'DONE' where punch_in_status = '1';
+update punch_in_task_history set punch_in_status = 'UNDONE' where punch_in_status = '2';
+update punch_in_task_history set punch_in_status = 'UNDONE' where punch_in_status = '0';
+DROP TABLE IF EXISTS punch_in_record;
+DROP TABLE IF EXISTS punch_in_record_settlement_rela;
 
 
 

+ 58 - 48
doc/技术文档.md

@@ -152,6 +152,7 @@ ui设计工具:即时设计
    注意点:
 
    1. 列表需要根据排序进行显示
+   2. 查询时可以筛选是否显示已归档任务,默认不显示
 
 2. 支持的功能操作:创建打卡任务、编辑、删除、打卡、补打卡、误打卡撤销、归档
 
@@ -316,9 +317,15 @@ ui设计工具:即时设计
 ##### 运维接口
 
 1. 清除缓存
+
 2. 调起定时任务
+
 3. 手动结算接口,注:需要**防止重复结算**
 
+4. 初始化逻辑:打卡任务记录表(punch_in_task_history)中的连续状态、连续时间和结算的积分需要用代码进行初始化
+
+   初始化后需要把对应的字段改回去
+
 
 
 
@@ -619,6 +626,7 @@ ui设计工具:即时设计
 | time_track              | time        | 时间记录                                                     |          |
 | consecutive_status      | varchar(20) | 连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)             |          |
 | consecutive_day         | int         | 连续天数,第一天开始就等于1                                  |          |
+| settle_task_history_id  | bigint      | 结算任务执行记录ID                                           | 普通索引 |
 | settle_status           | varchar(20) | 结算状态(未结算-UNSETTLED,宽限期跳过J-GRACE_SKIP,惩罚跳过-PENALTY_SKIP,已结算-SETTLED) |          |
 | settle_punch_in_task_id | bigint      | 结算时的打卡任务ID                                           |          |
 | settle_points           | int         | 结算奖励积分                                                 |          |
@@ -647,6 +655,7 @@ ui设计工具:即时设计
 | punch_in_done_rate            | decimal(5,2) | 打卡完成率                                                   |          |
 | consecutive_status            | varchar(20)  | 连续打卡状态(正常打卡-NORMAL、中断--INTERRUPTED)             |          |
 | consecutive_day               | int          | 连续天数,第一天开始就等于1                                  |          |
+| settle_task_history_id        | bigint       | 结算任务执行记录ID                                           | 普通索引 |
 | settle_status                 | varchar(20)  | 结算状态(未结算-UNSETTLED,宽限期跳过J-GRACE_SKIP,惩罚跳过-PENALTY_SKIP,已结算-SETTLED) |          |
 | settle_punch_in_multi_task_id | bigint       | 结算时的打卡多任务ID                                         |          |
 | settle_points                 | int          | 结算奖励积分                                                 |          |
@@ -711,20 +720,21 @@ ui设计工具:即时设计
 
 表名:settle_points_history
 
-| 字段                 | 类型        | 描述                               | 索引     |
-| -------------------- | ----------- | ---------------------------------- | -------- |
-| id                   | bigint      | 主键                               | 主键索引 |
-| user_id              | bigint      | 用户表主键                         | 普通索引 |
-| settle_date          | varchar(10) | 结算日期                           | 普通索引 |
-| settle_points        | int         | 结算积分                           |          |
-| before_settle_points | int         | 结算前用户拥有的积分               |          |
-| after_settle_points  | int         | 结算后用户拥有的积分               |          |
-| created_by           | bigint      | 创建人                             |          |
-| creation_time        | timestamp   | 创建时间                           |          |
-| last_updated_by      | bigint      | 最后更新人                         |          |
-| last_update_time     | timestamp   | 最后更新时间                       |          |
-| version              | bigint      | 版本号                             |          |
-| delete_flag          | tinyint     | 逻辑删除标志(0-未删除,1-已删除) |          |
+| 字段                   | 类型        | 描述                               | 索引     |
+| ---------------------- | ----------- | ---------------------------------- | -------- |
+| id                     | bigint      | 主键                               | 主键索引 |
+| settle_task_history_id | bigint      | 结算任务执行记录ID                 | 普通索引 |
+| user_id                | bigint      | 用户表主键                         | 普通索引 |
+| settle_date            | varchar(10) | 结算日期                           | 普通索引 |
+| settle_points          | int         | 结算积分                           |          |
+| before_settle_points   | int         | 结算前用户拥有的积分               |          |
+| after_settle_points    | int         | 结算后用户拥有的积分               |          |
+| created_by             | bigint      | 创建人                             |          |
+| creation_time          | timestamp   | 创建时间                           |          |
+| last_updated_by        | bigint      | 最后更新人                         |          |
+| last_update_time       | timestamp   | 最后更新时间                       |          |
+| version                | bigint      | 版本号                             |          |
+| delete_flag            | tinyint     | 逻辑删除标志(0-未删除,1-已删除) |          |
 
 
 
@@ -732,21 +742,19 @@ ui设计工具:即时设计
 
 表名:settle_task_history
 
-| 字段                   | 类型        | 描述                                                |
-| ---------------------- | ----------- | --------------------------------------------------- |
-| id                     | bigint      | 主键                                                |
-| settle_date            | varchar(10) | 结算日期                                            |
-| launch_method          | varchar(10) | 启动方式(AUTO-自动,MANUAL-手动)                  |
-| process_status         | varchar(10) | 执行状态(RUNNING-执行中,SUCCESS-成功,FAIL-失败) |
-| processed_total_num    | int         | 待处理的总结算数量                                  |
-| processed_settle_num   | int         | 处理已结算数量                                      |
-| processed_unsettle_num | int         | 处理没结算数量                                      |
-| created_by             | bigint      | 创建人                                              |
-| creation_time          | timestamp   | 创建时间                                            |
-| last_updated_by        | bigint      | 最后更新人                                          |
-| last_update_time       | timestamp   | 最后更新时间                                        |
-| version                | bigint      | 版本号                                              |
-| delete_flag            | tinyint     | 逻辑删除标志(0-未删除,1-已删除)                  |
+| 字段                   | 类型        | 描述                               | 索引     |
+| ---------------------- | ----------- | ---------------------------------- | -------- |
+| id                     | bigint      | 主键                               | 主键索引 |
+| settle_date            | varchar(10) | 结算日期                           | 普通索引 |
+| processed_total_num    | int         | 待处理的总结算数量                 |          |
+| processed_settle_num   | int         | 处理已结算数量                     |          |
+| processed_unsettle_num | int         | 处理没结算数量                     |          |
+| created_by             | bigint      | 创建人                             |          |
+| creation_time          | timestamp   | 创建时间                           |          |
+| last_updated_by        | bigint      | 最后更新人                         |          |
+| last_update_time       | timestamp   | 最后更新时间                       |          |
+| version                | bigint      | 版本号                             |          |
+| delete_flag            | tinyint     | 逻辑删除标志(0-未删除,1-已删除) |          |
 
 
 
@@ -867,6 +875,9 @@ ui设计工具:即时设计
 | ------------------- | ------------ | --------------------------------------------- | -------- |
 | id                  | bigint       | 主键                                          | 主键索引 |
 | user_id             | bigint       | 用户id                                        | 普通索引 |
+| reward_unique_id    | bigint       | 奖励唯一ID                                    |          |
+| reward_status       | varchar(10)  | 奖励状态(活跃-ACTIVE,归档-ARCHIVE)           |          |
+| reward_version      | int          | 奖励修改版本                                  |          |
 | reward_name         | varchar(100) | 奖励名称                                      |          |
 | exchange_points     | int          | 兑换所需积分                                  |          |
 | auto_status         | varchar(10)  | 是否启用自动兑换(ENABLED-启用,DISABLED-关闭) |          |
@@ -888,7 +899,7 @@ ui设计工具:即时设计
 | ---------------- | --------- | ---------------------------------- | -------- |
 | id               | bigint    | 主键                               | 主键索引 |
 | user_id          | bigint    | 用户id                             | 普通索引 |
-| reward_id        | bigint    | 奖励id                             |          |
+| reward_unique_id | bigint    | 奖励唯一id                         |          |
 | account_id       | bigint    | 账户id                             |          |
 | created_by       | bigint    | 创建人                             |          |
 | creation_time    | timestamp | 创建时间                           |          |
@@ -903,24 +914,23 @@ ui设计工具:即时设计
 
 表名:reward_history
 
-| 字段                           | 类型         | 描述                                     | 索引     |
-| ------------------------------ | ------------ | ---------------------------------------- | -------- |
-| id                             | bigint       | 主键                                     | 主键索引 |
-| user_id                        | bigint       | 用户id                                   | 普通索引 |
-| reward_id                      | bigint       | 奖励id                                   |          |
-| exchange_method                | varchar(10)  | 兑换类型(手动兑换-MANUAL,自动兑换-AUTO) |          |
-| reward_name                    | varchar(100) | 奖励名称                                 |          |
-| exchange_points                | int          | 兑换所需积分                             |          |
-| account_id                     | bigint       | 兑换使用的账户id                         |          |
-| account_name                   | varchar(100) | 账户名称                                 |          |
-| account_points_before_exchange | int          | 兑换前账户中的积分                       |          |
-| account_points_after_exchange  | int          | 兑换后账户中的积分                       |          |
-| created_by                     | bigint       | 创建人                                   |          |
-| creation_time                  | timestamp    | 创建时间                                 | 普通索引 |
-| last_updated_by                | bigint       | 最后更新人                               |          |
-| last_update_time               | timestamp    | 最后更新时间                             |          |
-| version                        | bigint       | 版本号                                   |          |
-| delete_flag                    | tinyint      | 逻辑删除标志(0-未删除,1-已删除)       |          |
+| 字段                           | 类型        | 描述                                     | 索引     |
+| ------------------------------ | ----------- | ---------------------------------------- | -------- |
+| id                             | bigint      | 主键                                     | 主键索引 |
+| user_id                        | bigint      | 用户id                                   | 普通索引 |
+| reward_id                      | bigint      | 奖励id                                   |          |
+| exchange_method                | varchar(10) | 兑换类型(手动兑换-MANUAL,自动兑换-AUTO) |          |
+| exchange_count                 | int         | 兑换次数                                 |          |
+| exchange_total_points          | int         | 兑换所需总积分                           |          |
+| account_id                     | bigint      | 兑换使用的账户id                         |          |
+| account_points_before_exchange | int         | 兑换前账户中的积分                       |          |
+| account_points_after_exchange  | int         | 兑换后账户中的积分                       |          |
+| created_by                     | bigint      | 创建人                                   |          |
+| creation_time                  | timestamp   | 创建时间                                 | 普通索引 |
+| last_updated_by                | bigint      | 最后更新人                               |          |
+| last_update_time               | timestamp   | 最后更新时间                             |          |
+| version                        | bigint      | 版本号                                   |          |
+| delete_flag                    | tinyint     | 逻辑删除标志(0-未删除,1-已删除)       |          |