# 打卡结算 * 期望:通过找到同为通过打卡并刮刮乐的人,为他们提供服务,进而产生收益 * 目标客户:每天打卡,且是用刮刮刮乐作为激励的人群 * 变现方式: 1. 广告? 2. 订阅? ## 功能 * 用户 1. (已开发)微信用户登录 说明:简单获取头像、微信openid、昵称,然后用于后台数据处理和前端显示即可 2. (已开发)昵称修改 3. (现阶段不支持该功能)头像修改 * 打卡任务 1. (已开发)查询当前用户拥有的打卡任务列表 显示内容:任务名称、任务描述、奖励数、全勤奖励标识、周末奖励标识、本周打卡记录,今日打卡情况 说明:今日打卡情况未完成时的状态,根据不同的打卡类型有不同的显示 * 打卡类型:单次打卡,未完成显示“完成” * 打卡类型:计数,未完成显示“计数”,并且显示当前已打卡次数 * 打卡类型:计时,未完成显示“计时”,并且显示当前已记录的打卡时间 2. (已开发)新建/编辑任务 显示内容:任务名称、奖励数、全勤奖励标识、周末奖励标识、任务描述,打卡类型,打卡配置(四种比较规则、两种数值类型) 说明:目前有3种打卡类型,打卡配置根据打卡类型的不同而有所变化,从而形成丰富的打卡规则 * 打卡类型:单次打卡、计数、计时 * 打卡配置: * 单次打卡:这个不需要额外配置 * 计数:需要设置比较规则和数值 * 计时:需要设置比较规则和时间 * 比较规则:大于、小于、大于等于、小于等于 3. (已开发)删除任务 4. (已开发)打卡 5. (已开发)补打卡 对于不同的打卡类型,都是默认直接完成打卡 如果完全没有打过卡:按照当时的打卡规则,直接生成一条新的打卡记录和结算记录 如果打过卡但是未完成的 * 对于单次打卡:不存在这种情况 * 对于计数打卡:修改打卡记录的数据并记录修改值和对应的状态位,修改结算记录并记录修改值和对应的状态位 * 对于计时打卡:修改打卡记录的数据并记录修改值和对应的状态位,修改结算记录并记录修改值和对应的状态位 6. (已开发,待自测)误打卡撤销 有两种情况: 1. 当天撤销 对于单次打卡:直接删除打卡记录即可 对于计数打卡:直接扣减次数(-1)即可,次数变成0即删除打卡记录 对于计时打卡:直接删除打卡记录即可,然后重新再打卡即可 2. (这种情况应该不存在,打卡当时应该就能即时处理不会留到结算后)~~结算后撤销,对于不同的打卡类型,都是默认直接没有打过卡~~ ~~删除对应记录,根据对应任务反向计算即可,并记录修改值和对应的状态位~~ 7. (已开发)归档 8. (已开发)针对单一任务查询时间范围内的打卡信息 显示内容:具体到天是否已打卡、打卡记录、打卡统计(打卡次数、全勤率) 注意:这里在表增加一个状态值辅助判断 * 奖励 1. (已开发)查询当前用户拥有的奖励数 显示内容:总奖励数、已领取奖励数、待领取奖励数 2. (已开发,全部领取需要前端部分支持)领取奖励(部分领取、一次性全部领取) 说明:全部领取功能通过前端页面支持,后端不需要额外开发 3. (已开发)按时间范围查询当前用户的领取奖励记录 * 刮刮乐 1. (已开发)查询当前用户的投入刮刮乐信息 显示内容:投入金额、中奖金额 2. (已开发)追加投入金额记录/中奖记录 3. (已开发)撤销投入金额记录/中奖记录 4. (已开发)按时间范围的刮刮乐查询记录 显示内容:投入金额记录、中奖记录 * 结算 1. (已完成)手动运维接口,可以指定具体结算日期 2. (已完成)按时间范围查询当前用户的结算记录 * 系统 1. (已开发,待自测)每晚自动结算