ui设计工具:即时设计
小程序框架:uniapp
后端框架:spring boot + mybatis + tk mybatis+ spring mvc
数据库:mysql
数据库备份工具:gobackup
| 任务类型 | 时间范围 | 启用状态(启用/禁用/可选) | 计量单位 | 前置判断 | 基本奖励 | 额外奖励 | 全勤奖励 | 节假日奖励 |
|---|---|---|---|---|---|---|---|---|
| 单任务 | 当天 | 启用 | 单次、计数、计时 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 单任务 | 连续 | 可选 | 天数 | ✅ | ✅ | |||
| 多任务 | 当天 | 可选 | 任务数 | ✅ | ✅ | ✅ | ||
| 多任务 | 连续 | 可选 | 天数 | ✅ | ✅ |
单个任务积分=基本积分+额外积分+法定节假日(含周末)双倍奖励+全勤双倍奖励+连续完成额外积分
多个任务积分=基本积分+额外积分+连续完成额外积分
总积分=单个任务积分+多个任务积分
作用:用于那些连续性比较强的任务,希望一直连续完成,不是三天晒网两天打鱼
计量单位:连续天数
目标对象:单任务、多任务
规则:设宽限期N天,中断X次,惩罚Y天
计算方式:固定、区间
计算前提:要把其它计量单位按规则转换为具体数值才能进行计算
计算规则(假设已有具体数值)
例如:3✖️4=12
具体数值:3,固定奖励:4,最后得出额外积分:12
例如:具体数值:12,根据区间规则计算得最后总奖励数:50。
| 区间起始值 | 区间奖励 | 是否满足区间条件 (需大于等于区间起始值) |
区间内次数 | 区间总奖励 |
|---|---|---|---|---|
| 1 | 1 | 是 | 5 | 1✖️5=5 |
| 6 | 5 | 是 | 5 | 5✖️5=25 |
| 11 | 10 | 是 | 2 | 2✖️10=20 |
| 15 | 15 | 否 | ||
| 合计:50 |
重复频率由多到小: 每天 ≥ 自定义(整周) > 法定 工作日 > 自定义(单独设置几天) > 法定 节假日(含周末)
对本周/本月的总打卡次数影响:
计算公式:总打卡次数=历史真实发生的总打卡次数+上次发生的总打卡次数+本次可能的总打卡次数
| 变换时间点 | 重复类型 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周日 | 总打卡次数 |
|---|---|---|---|---|---|---|---|---|---|
| 周一 | 每天 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 7 |
| 周三 | 自定义1 | ✅ | ✅ | ✅ | 5=2+3+0 | ||||
| 周六 | 自定义2 | ✅ | 4=2+1+1 |
对全勤结算的影响:
全勤周期类型:每周、每月
影响原因:总打卡数和完成打卡数发生变化
影响范围
如果是在每周的中途更换:会影响本周总打卡数和完成打卡数
对全勤周期类型是每月的影响
如果是在每月第一天进行更换:不会影响本月的总打卡数和完成打卡数
如果是在每月的中途更换:会影响本月总打卡数和完成打卡数
影响分析
注:下表✅即是自设的打卡时间
| 时间范围 | 自定义次数 | 容错次数数 | 周一 | 周二 | 周三 | 周四 | 周五 | 周六 | 周日 | 总可打卡次数 | 完成打卡次数 | 结果 | | -------- | ---------- | ---------- | ---- | ---- | ---- | ---- | ---- | ---- | --------------- | ------------ | ------------ | -------------- | | 7 | 3 | 1 | | | ✅ | ✅ | ✅ | | 周日增加到到5次 | 3 | 3 | 满足全勤条件 | | 7 | 5 | 1 | ✅ | ✅ | ✅ | ✅ | ✅ | | | 3 | 3 | 不满足全勤条件 |
全勤周期类型:每周、每月
影响分析:全勤周期变换会影响全勤的判断时机,即影响奖励次数(周奖励次数多于月)
场景:
结论:虽然会影响奖励次数,但是是正常的,已奖励的是正常发放的,继续按照新的周期继续进行判断即可,无需在代码上特意考虑
基本户:用于结算积分转入,或者兑换奖励
一般户:专项专用,只能兑换指定奖励
显示今日待办的打卡任务数量
显示今日待办的打卡任务列表
显示元素:任务名称、任务描述、奖励的基本积分数、节假日奖励标识、全勤奖励标识、自动打卡标识、本周的打卡情况、打卡按钮、宽限期/惩罚期/正常打卡期标识
注意点:
打卡按钮根据不同的打卡类型有不同的显示
打卡类型:单次打卡,未完成则显示“完成”
打卡类型:计数,未完成则显示“计数”,并且显示当前已打卡次数
打卡类型:计时,未完成则显示“计时”,并且显示当前已记录的打卡时间
任务显示时机控制,控制过了某个时间点才出现,不要一下子就把当天的都列出来
列表需要根据排序进行显示
支持的功能操作:创建打卡任务、打卡
显示总的打卡任务数量
显示总的打卡任务列表
显示元素:任务名称、任务描述、奖励的基本积分数、节假日奖励标识、全勤奖励标识、自动打卡标识
注意点:
查询时可以筛选是否显示已归档任务,默认不显示
支持的功能操作:创建打卡任务、编辑、删除、打卡、补打卡、误打卡撤销、归档
补打卡规则:
误打卡撤销规则:
只允许当天撤销
数据变化
对于单次打卡:直接删除打卡记录即可
对于计数打卡:直接扣减次数(-1)即可,次数变成0即删除打卡记录
对于计时打卡:直接删除打卡记录即可,然后重新再打卡即可
月选项卡
本月打卡统计数据显示,包含:本月需打卡数、本月已打卡数、本月完成打卡数、本月打卡率、本月打卡完成率,本月获取积分数
数据折线图(本月每日)
说明:
数据直接从打卡任务记录表获取
显示本月的打卡日志
打卡类型:单次,显示元素包含:打卡日期(格式:xxxx-xx-xx) 、打卡状态(完成打卡/未完成打卡)、打卡时长(格式:00:00:00,计时打卡特有)、打卡次数(格式:x次,计数打卡特有)、结算状态、结算积分,结算时对应的打卡任务配置快照
年选项卡
本年打卡统计数据显示,包含:本年需打卡数、本年已打卡数、本年完成打卡数、本年打卡率、本年打卡完成率,本年获取积分数
数据折线图(全年每日)
说明:
如果是打卡类型是单次打卡则无须显示;如果是如果打卡类型是计时或者计数,那么折线图显示对应的每日的时间/次数变化
数据直接从打卡任务记录表获取
显示全年的打卡日志(需分页)
打卡类型:单次,显示元素包含:打卡日期(格式:xxxx-xx-xx) 、打卡状态(完成打卡/未完成打卡)、打卡时长(格式:00:00:00,计时打卡特有)、打卡次数(格式:x次,计数打卡特有)、结算状态、结算积分,结算时对应的打卡任务配置快照
图表选项卡
积分折线表,显示包含:每日积分的结算数(增加数量)、每日积分的消耗数量、每日剩余总积分
打卡任务数折线表,包含:总打卡任务数量、每日的打卡数量、每日完成的打卡任务数量
说明:数据可以从打卡多任务记录表中获取
打卡日志选项卡
日历显示完成的打卡数,如果为0则不显示
具体某日的打卡记录(通过打卡日历,直接在打卡任务记录表中筛选即可)
说明:通过在打卡日历选择具体日期,然后直接在打卡任务记录表中筛选即可
显示用户的基本信息,显示元素包含:字符头像、昵称、昵称修改按钮、登录按钮
显示统计数据
说明:数据从用户表中获取
显示可跳转页面
支持的功能操作:昵称修改、退出登录、登录
说明:登录时,只需要记录昵称和微信openId即可
自动结算
自动归档
自动打卡,按最低完成标准打卡
自动兑换,按设定的兑换次数进行自动兑换,优先从专用账户兑换,再从基本账户兑换
注:如果奖励关联了专用账户,需要校验兑换账户和
打卡任务-月统计,包含:本月需打卡数、本月已打卡数、本月完成打卡数、本月打卡率、本月打卡完成率,本月获取积分数
打卡任务-年统计,包含:本年需打卡数、本年已打卡数、本年完成打卡数、本年打卡率、本年打卡完成率,本年获取积分数
积分统计,包含:每日积分的结算数(增加数量)、每日积分的消耗数量、每日剩余总积分
新用户数量统计
自动删除无使用的数据
清除缓存
调起定时任务
手动结算接口,注:需要防止重复结算
初始化逻辑:打卡任务记录表(punch_in_task_history)中的连续状态、连续时间和结算的积分需要用代码进行初始化
初始化后需要把对应的字段改回去
注:数据库备份使用的是gobackup,时间:每晚凌晨5点
| 定时任务名称 | 执行时间 | cron表达式 | 实现类 |
|---|---|---|---|
| 拉取全年日历数据 | 每年1月1日零点零一秒 | 1 0 0 1 1 ? | CalendarTask |
| 结算积分 | 每天凌晨0点10分 | 0 10 0 * * ? | SettlePointsTask |
| 结算后积分分发 | 每天凌晨0点40分 | 0 40 0 * * ? | SettleDistributeTask |
| 打卡任务自动归档 | 每天凌晨1点05分 | 0 5 1 * * ? | PiTaskAutoArchiveTask |
| 打卡任务自动打卡 | 每天凌晨1点15分 | 0 15 1 * * ? | PiTaskAutoPunchInTask |
| 奖励自动兑换 | 每天凌晨1点30分 | 0 30 1 * * ? | RewardAutoExchangeTask |
| 新用户数据统计 | 每天凌晨2点 | 0 0 2 * * ? | StatNewUserTask |
| 积分数据统计 | 每天凌晨2点15分 | 0 15 2 * * ? | StatPointsTask |
| 任务数据统计(周,月,年) | 每天凌晨2点30分 | 0 30 2 * * ? | StatTask |
字典名称:刮刮乐来源
字典编码:LOTTERY_SCRATCH_SOURCE
字典项:
| 字典项编码 | 字典名称 |
|---|---|
| WELFARE_SCRATCH | 福利彩票 |
| SPORTS_SCRATCH | 体育彩票 |
字典名称:福利彩票刮刮乐种类
字典编码:WELFARE_SCRATCH
字典项
| 字典项编码 | 字典名称 |
|---|---|
| XINGYUN88 | 幸运88 |
| CHAOGEILI | 超给力 |
| XIXIANGFENG | 喜相逢 |
字典名称:体育彩票刮刮乐种类
字典编码:SPORTS_SCRATCH
字典项
| 字典项编码 | 字典名称 |
|---|---|
字典名称:刮刮乐动作类型
字典编码:SCRATCH_ACTION_TYPE
字典项
| 字典项编码 | 字典名称 |
|---|---|
| 0 | 投入 |
| 1 | 中奖 |
字典名称:启用状态标志
字典编码:ENABLE_STATUS
字典项
| 字典项编码 | 字典名称 |
|---|---|
| 0 | 关闭 |
| 1 | 启用 |
字典名称:打卡类型
字典编码:PUNCH_IN_CATEGORY
字典项
| 字典项编码 | 字典名称 |
|---|---|
| 0 | 单次打卡 |
| 1 | 计数 |
| 2 | 计时 |
字典名称:打卡比较规则
字典编码:PUNCH_IN_RULE
字典项
| 字典项编码 | 字典名称 |
|---|---|
| 0 | 大于等于 |
| 1 | 小于等于 |
表名:user
| 字段 | 类型 | 描述 |
|---|---|---|
| id | bigint | 主键 |
| open_id | varchar(128) | 微信小程序openId |
| user_category | varchar(10) | 用户类型(普通-NORMAL,管理员-ADMIN) |
| nickname | varchar(100) | 昵称 |
| total_points | int | 总积分 |
| unused_points | int | 未使用积分 |
| used_points | int | 已使用积分 |
| total_consume_amount | decimal(10,2) | 总消费金额(元) |
| total_win_amount | decimal(10,2) | 总中奖金额(元) |
| created_by | bigint | 创建人 |
| creation_time | timestamp | 创建时间 |
| last_updated_by | bigint | 最后更新人 |
| last_update_time | timestamp | 最后更新时间 |
| version | bigint | 版本号 |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_task
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| unique_id | bigint | 任务唯一ID | 普通索引 |
| task_status | varchar(10) | 任务状态(活跃-ACTIVE,归档-ARCHIVE,删除-DELETE) | |
| task_version | int | 任务修改版本 | |
| task_name | varchar(128) | 任务名称 | |
| description | varchar(300) | 任务描述 | |
| points | int | 奖励的积分(基本) | |
| auto_archive_date | date | 自动归档日期 | |
| archive_status | varchar(10) | 是否归档(活跃-ACTIVE,归档-ARCHIVE) | |
| manual_archive_date | date | 手动归档日期 | |
| display_order | int | 显示顺序 | |
| display_time | time | 显示时间 | |
| punch_in_method | varchar(10) | 打卡方式(单次打卡-SINGLE,计数-COUNT、计时-TIMING) | |
| compare_rule | varchar(10) | 比较规则(大于等于-GTE,小于等于-LTE) | |
| count_track | int | 次数记录 | |
| time_track | time | 时间记录 | |
| holiday_status | varchar(10) | 是否启用节假日奖励(ENABLED-启用,DISABLED-关闭) | |
| holiday_count_track | int | 次数记录(节假日用) | |
| holiday_time_track | time | 时间记录(节假日用) | |
| full_attendance_status | varchar(10) | 是否启用全勤奖励(ENABLED-启用,DISABLED-关闭) | |
| full_attendance_period | varchar(10) | 全勤周期(周-WEEK,月-MONTH) | |
| full_attendance_fault_tolerance_cnt | int | 全勤容错次数 | |
| repeat_category | varchar(10) | 重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM) | |
| repeat_custom_day | varchar(13) | 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7) | |
| extra_method | varchar(10) | 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL) | |
| extra_time_step | int | 额外的时间间隔(单位:分钟) | |
| extra_points | int | 奖励的积分(额外) | |
| continue_status | varchar(10) | 是否启用连续规则(ENABLED-启用,DISABLED-关闭) | |
| grace_day | int | 宽限期(单位:天) | |
| continue_interrupted_count | int | 连续中断次数 | |
| penalty_day | int | 惩罚天数(单位:天) | |
| auto_status | varchar(10) | 是否启用自动打卡(ENABLED-启用,DISABLED-关闭) | |
| task_points_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-已删除) |
表名:pi_task_ext
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| task_id | bigint | 打卡任务ID | 普通索引 |
| dimension | varchar(10) | 使用维度(一天-ONE_DAY,多天-MULTI_DAY) | |
| initial_value | int | 起始值(单位:次) | |
| extra_points | int | 奖励的积分(额外) | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_multi_task
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| unique_id | bigint | 打卡多任务唯一ID | 普通索引 |
| user_id | bigint | 用户ID | 普通索引 |
| task_status | varchar(10) | 任务状态(活跃-ACTIVE,归档-ARCHIVE,删除-DELETE) | |
| task_version | int | 任务修改版本 | |
| task_points_status | varchar(10) | 是否启用多任务积分计算(ENABLED-启用,DISABLED-关闭) | |
| punch_in_done_count | int | 打卡完成次数 | |
| points | int | 奖励的积分(基本) | |
| continue_status | varchar(10) | 是否启用连续规则(ENABLED-启用,DISABLED-关闭) | |
| grace_day | int | 宽限期(单位:天) | |
| continue_interrupted_count | int | 连续中断次数 | |
| penalty_day | int | 惩罚天数(单位:天) | |
| extra_method | varchar(10) | 额外奖励方式(无-NONE,固定-FIXED,区间-INTERVAL) | |
| extra_points | int | 奖励的积分(额外) | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_multi_task_ext
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| multi_task_id | bigint | 多任务ID | 普通索引 |
| dimension | varchar(10) | 使用维度(一天-ONE_DAY,多天-MULTI_DAY) | |
| initial_value | int | 起始值(单位:次) | |
| extra_points | int | 奖励的积分(额外) | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_multi_task_rela
说明:这里的打卡多任务ID和打卡任务ID均不用唯一ID,用于记录对应的快照关系
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| multi_task_id | bigint | 打卡多任务ID | 普通索引 |
| task_id | bigint | 打卡任务ID | 普通索引 |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_task_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| task_unique_id | bigint | 打卡任务唯一ID | 普通索引 |
| punch_in_date | varchar(10) | 打卡日期 | 普通索引 |
| count_track | int | 次数记录 | |
| time_track | time | 时间记录 | |
| task_id | bigint | 打卡任务ID | |
| punch_in_result | varchar(10) | 打卡结果(DONE-完成,UNDONE-未完成) | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | 普通索引 |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_multi_task_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| multi_task_unique_id | bigint | 打卡多任务唯一ID | 普通索引 |
| punch_in_date | varchar(10) | 打卡日期 | 普通索引 |
| total_task_count | int | 总任务数 | |
| punch_in_done_count | int | 打卡完成数 | |
| task_continue_status | varchar(20) | 任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED) | |
| task_continue_day | int | 任务连续天数,第一天开始就等于1 | |
| continue_stage | varchar(10) | 连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE) | |
| stage_start_date | date | 阶段开始日期 | |
| stage_end_date | date | 阶段结束日期 | |
| continue_interrupted_count | int | 连续中断次数 | |
| punch_in_result | varchar(10) | 打卡结果(DONE-完成,UNDONE-未完成) | |
| settle_result | varchar(10) | 结算结果(未结算-UNSETTLED,已结算-SETTLED) | |
| settle_pi_multi_task_id | bigint | 结算时的打卡多任务ID | |
| settle_task_history_id | bigint | 结算任务执行记录ID | 普通索引 |
| settle_points | int | 结算奖励积分 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_status
作用:multi_task_unique_id和task_unique_id字段不能同时出现,是一张公用表,multi_task_unique_id出现时是多任务的打卡状态,task_unique_id出现时是单任务的打卡状态
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| multi_task_unique_id | bigint | 打卡多任务唯一ID | 普通索引 |
| multi_task_id | bigint | 打卡多任务ID | |
| task_unique_id | bigint | 打卡任务唯一ID | 普通索引 |
| taks_id | bigint | 打卡任务ID | |
| status_date | date | 记录状态的时间 | |
| task_continue_status | varchar(20) | 任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED) | |
| task_continue_day | int | 任务连续天数,第一天开始就等于1 | |
| continue_stage | varchar(10) | 连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE) | |
| stage_start_date | date | 阶段开始日期 | |
| stage_end_date | date | 阶段结束日期 | |
| continue_interrupted_count | int | 连续中断次数 | |
| repeat_category | varchar(10) | 重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM) | |
| repeat_custom_day | varchar(13) | 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7) | |
| repeat_start_date_in_week | date | 本周重复周期开始时间 | |
| repeat_prev_total_count_in_week | int | 本周需打卡数(变更重复类型前) | |
| repeat_start_date_in_month | date | 本月重复周期开始时间 | |
| repeat_prev_total_count_in_month | int | 本月需打卡数(变更重复类型前) | |
| stat_time_in_week | char(8) | 本周时间(格式:yyyy-W周数) | |
| punch_in_total_count_in_week | int | 本周需打卡数 | |
| punch_in_count_in_week | int | 本周已打卡数 | |
| punch_in_done_count_in_week | int | 本周完成打卡数 | |
| points_in_week | int | 本周获取积分数 | |
| stat_time_in_month | char(7) | 本月时间(格式:yyyy-MM) | |
| punch_in_total_count_in_month | int | 本月需打卡数 | |
| punch_in_count_in_month | int | 本月已打卡数 | |
| punch_in_done_count_in_month | int | 本月完成打卡数 | |
| points_in_month | int | 本月获取积分数 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:pi_status_history
作用:multi_task_unique_id和task_unique_id字段不能同时出现,是一张公用表,multi_task_unique_id出现时是多任务的打卡状态,task_unique_id出现时是单任务的打卡状态
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户ID | 普通索引 |
| multi_task_unique_id | bigint | 打卡多任务唯一ID | 普通索引 |
| multi_task_id | bigint | 打卡多任务ID | |
| task_unique_id | bigint | 打卡任务唯一ID | 普通索引 |
| taks_id | bigint | 打卡任务ID | |
| status_date | date | 记录状态的时间 | |
| task_continue_status | varchar(20) | 任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED) | |
| task_continue_day | int | 任务连续天数,第一天开始就等于1 | |
| continue_stage | varchar(10) | 连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE) | |
| stage_start_date | date | 阶段开始日期 | |
| stage_end_date | date | 阶段结束日期 | |
| continue_interrupted_count | int | 连续中断次数 | |
| repeat_category | varchar(10) | 重复周期类型(每日-EVERYDAY、法定工作日-WORKDAY、法定节假日(含周末)-HOLIDAY、自定义(周一至周日)-CUSTOM) | |
| repeat_custom_day | varchar(13) | 自定义重复日(周一-1,周二-2,周三-3,周四-4,周五-5,周六-6,周日-7) | |
| repeat_start_date_in_week | date | 本周重复周期开始时间 | |
| repeat_prev_total_count_in_week | int | 本周需打卡数(变更重复类型前) | |
| repeat_start_date_in_month | date | 本月重复周期开始时间 | |
| repeat_prev_total_count_in_month | int | 本月需打卡数(变更重复类型前) | |
| stat_time_in_week | char(8) | 本周时间(格式:yyyy-W周数) | |
| punch_in_total_count_in_week | int | 本周需打卡数 | |
| punch_in_count_in_week | int | 本周已打卡数 | |
| punch_in_done_count_in_week | int | 本周完成打卡数 | |
| points_in_week | int | 本周获取积分数 | |
| stat_time_in_month | char(7) | 本月时间(格式:yyyy-MM) | |
| punch_in_total_count_in_month | int | 本月需打卡数 | |
| punch_in_count_in_month | int | 本月已打卡数 | |
| punch_in_done_count_in_month | int | 本月完成打卡数 | |
| points_in_month | int | 本月获取积分数 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:settle_task_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| 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-已删除) |
表名:settle_user_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| 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 | 结算后用户拥有的积分 | |
| settle_result | varchar(20) | 结算结果(已结算-SETTLED,撤销结算-REVOKE_SETTLED) | |
| distribute_status | varchar(20) | 积分下发状态(已分发-DISTRIBUTE,未分发-NOT_DISTRIBUTE) | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:settle_task_rela_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| settle_task_history_id | bigint | 结算任务执行记录ID | 普通索引 |
| settle_user_history_id | bigint | 结算用户记录id | 普通索引 |
| user_id | bigint | 用户表主键 | 普通索引 |
| settle_date | varchar(10) | 结算日期 | 普通索引 |
| pi_task_id | bigint | 单任务ID | |
| pi_task_unique_id | bigint | 单任务唯一ID | |
| pi_task_history_id | bigint | 单任务打卡记录ID | |
| settle_result | varchar(20) | 结算结果(已结算-SETTLED,无需结算-NOT_SETTLED) | |
| settle_points | int | 结算积分 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:sys_dict
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| dict_code | varchar(100) | 字典编码 | 普通索引 |
| dict_name | varchar(100) | 字典名称 | |
| description | varchar(200) | 描述 | |
| 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_dict_item
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| dict_id | bigint | 字典表主键 | 普通索引 |
| data_type | varchar(10) | 数据类型(STRING-字符串,INTEGER-整型数值) | |
| item_code | varchar(100) | 字典项编码 | 普通索引 |
| item_name | varchar(100) | 字典项名称 | |
| description | varchar(200) | 描述 | |
| 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_calendar
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| gregorian_date | char(10) | 公历日期,格式:yyyy-MM-dd | 普通索引 |
| lunar_date | char(10) | 农历日期,格式:yyyy-MM-dd | |
| week_day | int | 周内天数(1-7),周一为1,周日为7 | |
| status | char(7) | 状态:WORKDAY-上班, HOLIDAY-放假;上班:含正常工作日及补班;放假:含周末及节假日。 | |
| festival | varhcar(30) | 国家法定节日:元旦节, 春节, 清明节, 劳动节, 端午节, 中秋节, 国庆节。 | |
| bad_day | char(1) | 是否补班:Y-是,N-否。需要补班,真是难受的一天!仅当需要补班时有该字段。 | |
| description | varhcar(300) | 描述,表示什么时候补班,例如劳动节前补班、国庆节后补班等。仅需要补班时有该字段。 | |
| statutory | char(1) | 是否法定节假日:Y-是,N-否。如果是法定节假日则返回1,仅当是法定节假日时有该字段。 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名: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-已删除) |
表名:account
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| account_name | varchar(100) | 账户名称 | |
| account_category | varchar(30) | 账户类型(BASIC-基本户,GENERAL-一般户) | |
| points | int | 奖励积分 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:account_transfer_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| sender_account_id | bigint | 转出账户id | |
| recipient_account_id | bigint | 转入账户id | |
| transfer_category | varchar(10) | 转账类型(转账-TRANSFER,结算-SETTLE) | |
| transfer_points | int | 转账积分 | |
| sa_points_before_transfer | int | 转出账户转出前积分 | |
| sa_points_after_transfer | int | 转出账户转出后积分 | |
| ra_points_before_transfer | int | 转入账户转入前积分 | |
| ra_points_after_transfer | int | 转入账户转入后积分 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | 普通索引 |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:reward
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| reward_unique_id | bigint | 奖励唯一ID | |
| reward_status | varchar(10) | 奖励状态(活跃-ACTIVE,归档-ARCHIVE,删除-DELETE) | |
| reward_version | int | 奖励修改版本 | |
| reward_name | varchar(100) | 奖励名称 | |
| exchange_points | int | 兑换所需积分 | |
| auto_status | varchar(10) | 是否启用自动兑换(ENABLED-启用,DISABLED-关闭) | |
| auto_exchange_count | int | 自动兑换数量 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:reward_account_rela
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| reward_unique_id | bigint | 奖励唯一id | |
| account_id | bigint | 账户id | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:reward_exchange_history
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| 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 | 兑换后账户中的积分 | |
| unused_points_before_exchange | int | 兑换前用户未使用的积分 | |
| unused_points_after_exchange | int | 兑换后用户未使用的积分 | |
| used_points_before_exchange | int | 兑换前用户已使用的积分 | |
| used_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-已删除) |
表名:stat_pi_task_week
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| task_unique_id | bigint | 任务唯一ID | 普通索引 |
| stat_time | char(8) | 统计时间(格式:yyyy-W周数) | 普通索引 |
| punch_in_total_count | int | 本周需打卡数 | |
| punch_in_count | int | 本周已打卡数 | |
| punch_in_done_count | int | 本周完成打卡数 | |
| punch_in_rate | decimal(5,2) | 本周打卡率 | |
| punch_in_done_rate | decimal(5,2) | 本周打卡完成率 | |
| points | int | 本周获取积分数 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:stat_pi_task_month
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| task_unique_id | bigint | 任务唯一ID | 普通索引 |
| stat_time | char(7) | 统计时间(格式:yyyy-MM) | 普通索引 |
| punch_in_total_count | int | 本月需打卡数 | |
| punch_in_count | int | 本月已打卡数 | |
| punch_in_done_count | int | 本月完成打卡数 | |
| punch_in_rate | decimal(5,2) | 本月打卡率 | |
| punch_in_done_rate | decimal(5,2) | 本月打卡完成率 | |
| points | int | 本月获取积分数 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:stat_pi_task_year
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| task_unique_id | bigint | 任务唯一ID | 普通索引 |
| stat_time | char(4) | 统计时间(格式:yyyy) | 普通索引 |
| punch_in_total_count | int | 本年需打卡数 | |
| punch_in_count | int | 本年已打卡数 | |
| punch_in_done_count | int | 本年完成打卡数 | |
| punch_in_rate | decimal(5,2) | 本年打卡率 | |
| punch_in_done_rate | decimal(5,2) | 本年打卡完成率 | |
| points | int | 本年获取积分数 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:stat_points
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| user_id | bigint | 用户id | 普通索引 |
| stat_time | char(10) | 统计时间(格式:yyyy-MM-dd) | 普通索引 |
| settle_points | int | 每日积分的结算数 | |
| consume_points | int | 每日积分的消耗数量 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |
表名:stat_new_user
| 字段 | 类型 | 描述 | 索引 |
|---|---|---|---|
| id | bigint | 主键 | 主键索引 |
| stat_time | char(10) | 统计时间(格式:yyyy-MM-dd) | 普通索引 |
| new_user_count | int | 新用户数量 | |
| created_by | bigint | 创建人 | |
| creation_time | timestamp | 创建时间 | |
| last_updated_by | bigint | 最后更新人 | |
| last_update_time | timestamp | 最后更新时间 | |
| version | bigint | 版本号 | |
| delete_flag | tinyint | 逻辑删除标志(0-未删除,1-已删除) |