技术文档.md 13 KB

打卡结算

ui设计工具:即时设计

小程序框架:uniapp

后端框架:spring boot + mybatis + tk mybatis+ spring mvc

数据库:mysql

系统设计

功能设计

  • 用户

    1. 微信用户登录

    说明:简单记录下头像、微信id、昵称,然后用于区分即可

    1. 用户注销?-这个不要应该也可以
  • 打卡任务

    1. 查询当前用户拥有的打卡任务列表
    2. 新建任务
    3. 编辑任务
    4. 删除任务
    5. 用户完成任务
  • 奖励

    1. 查询当前用户拥有的奖励数
    2. 领取奖励
  • 系统

    1. 每晚自动结算

    说明:每日凌晨把昨天完成的任务获得的奖励进行自动统计

    1. 每天自动推送结算通知(第二版再增加这个功能)

    说明:把每日结算结果推送到微信

表设计

用户表

表名:user

字段 类型 描述
id bigint 主键
open_id varchar(128) 微信id
nickname varchar(100) 微信昵称
avatar varchar(1000) 微信头像url
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更新人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

打卡任务表

表名:punch_in

字段 类型 描述
id bigint 主键
task_name varchar(128) 任务名称
reward_num int 奖励倍数
weekend_double_flag tinyint 是否启用周末双倍标志(0-不是,1-是)
full_attendance_flag tinyint 是否启用全勤奖励标志(0-不是,1-是)
archive_flag tinyint 是否归档标志(0-不是,1-是)
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

打卡任务记录表

表名:punch_in_record

字段 类型 描述
id bigint 主键
punch_in_id bigint 打卡任务表主键
punch_in_date varchar(10) 打卡日期
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

打卡任务结算表

表名:punch_in_settlement

字段 类型 描述
id bigint 主键
user_id bigint 用户表主键
settle_reward_num int 结算奖励数
before_settle_reward_num int 结算前用户拥有的奖励数
after_settle_reward_num int 结算后用户拥有的奖励数
settlement_task_id bigint 结算任务表id
settlement_time timestamp 结算时间
notify_id bigint 通知表ID
notify_status varchar(20) 结算通知状态(fail-通知失败,success-成功通知,pending-待通知)
notify_time timestamp 结算通知时间
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

打卡任务记录与结算关联表

表名:punch_in_record_settlement_rela

字段 类型 描述
id bigint 主键
record_id bigint 打卡任务记录表ID
settlement_id bigint 打卡任务结算表ID
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

用户奖励数据表

表名:user_reward

字段 类型 描述
id bigint 主键
user_id bigint 用户表主键
total_reward_num int 总奖励数
unclaimed_reward_num int 未领取奖励数
claimed_reward_num int 已领取奖励数
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更新人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

领取奖励记录表

表名:user_claim_reward_record

字段 类型 描述
id bigint 主键
user_id bigint 用户表主键
claim_reward_num int 本次领取奖励数
claim_reward_time timestamp 领取奖励时间
before_claim_reward_num int 领取前用户拥有的奖励数
after_claim_reward_num int 领取后用户拥有的奖励数
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

奖励结算定时任务执行记录表

表名:settlement_task

字段 类型 描述
id bigint 主键
settle_date varchar(10) 结算日期
start_time timestamp 任务开始时间
end_time timestamp 任务结束时间
processed_num int 待处理结算数量
processed_settle_num int 处理已结算数量
processed_unsettle_num int 处理没结算数量
error_message text 失败异常信息
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

通知定时任务执行记录表

表名:settlement_notify_task

字段 类型 描述
id bigint 主键
start_time timestamp 任务开始时间
end_time timestamp 任务结束时间
notify_num int 通知数量
notify_success_num int 通知成功数量
notify_fail_num int 通知失败数量
error_message text 失败异常信息
created_by bigint 创建人
creation_time timestamp 创建时间
last_updated_by bigint 最后更信人
last_update_time timestamp 最后更新时间
version bigint 版本号
delete_flag tinyint 逻辑删除标志(0-未删除,1-已删除)

开发参考

常用命令

Git命令

# 创建一个仓库目录,进入目录后执行命令
mkdir my-repo
cd my-repo

# 初始化一个本地仓库,但该仓库是作为远程仓库使用。
git init --bare

MySQL命令

# 初始化后才能使用,如果失败则要进行配置
mysqld --initialize-insecure

# 注册mysql服务(需要管理员权限)
mysqld -install
# 注册mysql服务并指定配置文件(需要管理员权限)
mysqld --install MySQL --defaults-file="配置文件路径\mysql-lts\current\my.ini"

# 启动mysql服务(需要管理员权限)
# 如果启动报错:"服务没有响应控制功能。请键入 NET HELPMSG 2186 以获得更多的帮助。",则看下面的参考文章看是否缺少组件
net start mysql

# 关闭mysql服务(需要管理员权限)
net stop mysql

# 如果mysql服务无法启动,则可以手动启动mysql
mysqld --standalone

参考:

IDEA设置

类注释模板

模板

/**
 * @author ${USER}
 * @version 1.0.0
 * @date ${DATE} ${TIME}
 * @description TODO
 */

参考:IDEA 创建类注释模板