技术文档.md 11 KB

打卡结算

ui设计工具:即时设计

小程序框架:uniapp

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

数据库:mysql

系统设计

功能设计

  • 用户

    1. 微信用户登录

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

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

    1. 新建任务
    2. 编辑任务
    3. 删除任务
    4. 用户完成任务
  • 系统

    1. 每晚自动结算

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

    1. 每天自动推送结算通知

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

表设计

用户表

表名:user

字段 类型 描述
id bigint 主键
open_id varchar(128) 微信id
nickname varchar(100) 微信昵称
avator 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_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_settlement

字段 类型 描述
id bigint 主键
user_id bigint 用户表主键
reward_num int 结算奖励数
claim_reward_flag tinyint 是否已领取奖励(0-未领取,1-已领取)
claim_reward_time timestamp 领取奖励时间
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-已删除)

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

表名:settlement_task

字段 类型 描述
id bigint 主键
start_time timestamp 任务开始时间
end_time timestamp 任务结束时间
task_status varchar(20) 任务状态(success-成功,fail-失败,processing-处理中)
processed_num int 处理数量
processed_success_num int 处理成功数量
processed_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-已删除)

通知定时任务执行记录表

表名:settlement_notify_task

字段 类型 描述
id bigint 主键
start_time timestamp 任务开始时间
end_time timestamp 任务结束时间
task_status varchar(20) 任务状态(success-成功,fail-失败,processing-处理中)
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

参考: