讨论数量:
任务本身可以有一张表 内含比如任务类型 ,循环类型(每日 每周 每月 一次性),完成次数(一周几次),完成条件(达成几次),奖励类型,奖励数量,奖励可以考虑分出去 而后是用户任务完成表,用来记录开始状态与完成状态以及奖励领取状态(奖励信息快照等),以及循环的标记等等 再细化一点可以装抽象一步任务动作,任务动作限制等,以完成整体的任务后台可配置化 还有奖励发放模块等等
博客:使用pipeline设计模式实现用户积分任务需求
看我回答 我做的跟你做的是一样的事情…
CREATE TABLE `user_tasks` (
`id` int NOT NULL AUTO_INCREMENT,
`image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`scriptname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`starttime` timestamp NULL DEFAULT NULL,
`endtime` timestamp NOT NULL,
`reward` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '奖励类型 credit: 积分,',
`reward_var` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
`bonus` int DEFAULT NULL,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
`is_once` int DEFAULT NULL,
`group` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC;
CREATE TABLE `user_task_finish` (
`id` int NOT NULL AUTO_INCREMENT,
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`user_id` int NOT NULL,
`task_id` int NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=35331 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC;
博客:使用pipeline设计模式实现用户积分任务需求
看我回答 我做的跟你做的是一样的事情…