checkin.js 8.53 KB
/*
 * @Date: 2025-06-06 09:26:16
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2026-01-21 13:15:07
 * @FilePath: /mlaj/src/api/checkin.js
 * @Description: 签到模块相关接口
 */
import { fn, fetch } from './fn'

const Api = {
  GET_TASK_LIST: '/srv/?a=task&t=my_list',
  GET_TASK_DETAIL: '/srv/?a=task&t=detail',
  GET_SUBTASK_LIST: '/srv/?a=subtask&t=list',
  TASK_CHECKIN: '/srv/?a=checkin&t=checkin',
  TASK_UPLOAD_ADD: '/srv/?a=checkin&t=upload_add',
  TASK_UPLOAD_LIST: '/srv/?a=checkin&t=upload_list',
  TASK_UPLOAD_INFO: '/srv/?a=checkin&t=upload_info',
  TASK_UPLOAD_EDIT: '/srv/?a=checkin&t=upload_edit',
  TASK_UPLOAD_DEL: '/srv/?a=checkin&t=upload_del',
  TASK_UPLOAD_LIKE: '/srv/?a=checkin&t=like',
  TASK_UPLOAD_DISLIKE: '/srv/?a=checkin&t=dislike',
  CHECKIN_TEACHER_LIST: '/srv/?a=checkin&t=teacher_list',
  CHECKIN_TEACHER_REVIEW: '/srv/?a=checkin&t=teacher_review',
  CHECKIN_TEACHER_CHECKED_DATES: '/srv/?a=checkin&t=teacher_checked_dates',
  CHECKIN_TEACHER_REUSE_GRATITUDE_FORM: '/srv/?a=checkin&t=reuse_gratitude_form',
}

/**
 * @description: 我的大作业列表
 * @param: keyword 搜索作业名称
 * @return: data: [{ id 大作业id, cover 作业封面, title 大作业名称, begin_date 开始时间, end_date 结束时间, task_type 任务类型 [checkin=签到 | upload=上传附件 | count=计数], is_gray 作业是否应该置灰, is_finish 作业在当前周期是否已经达标, checkin_subtask_id 签到小作业的ID }]
 */

export const  getTaskListAPI = (params) => fn(fetch.get(Api.GET_TASK_LIST, params))

/**
 * @description: 大作业详情
 * @param: i 作业ID
 * @param: month 月份
 * @param: subtask_id 小作业ID
 * @returns data: {
 *    id 大作业id, cover 封面图, title 大作业名称, note 大作业描述, frequency 交作业的频次, cycle 交作业的周期 {0=本周期 | 30=每月 | 7=每周 | 1=每日},
 *    attachment_type 上传附件的类型 [text=文本 image=图片 video=视频 audio=音频], begin_date 开始时间, end_date 结束时间,
 *    task_type 任务类型 [checkin=签到 | upload=上传附件 | count=计数], is_gray 作业是否应该置灰, is_finish 作业在当前周期是否已经达标,
 *    my_checkin_dates[] 我在日历中打过卡的日期, makeup_checkin_dates[] 我在日历中,可以补卡的日期, target_number 打卡的目标数量,
 *    checkin_number 已经打卡的数量, checkin_avatars 最后打卡的10个人的头像, my_today_gratitude_count 我在今天的感恩次数, my_total_gratitude_count 我累计感恩次数,
 *    subtask_list 小作业列表 [{id,title,cycle,frequency,attachment_type,begin_date,end_date,is_finish}] ,
 * }
 */
export const  getTaskDetailAPI = (params) => fn(fetch.get(Api.GET_TASK_DETAIL, params))

/**
 * @description: 小作业列表
 * @param task_id 大作业ID
 * @param date 日期(用来判断是否可以补卡)
 * @returns data: [{
 * id 作业id,
 * title 作业名称 ,
 * cycle 作业周期 [0=本周期 | 30=每月 | 7=每周 | 1=每日],
 * frequency 交作业的频次,
 * attachment_type array [object] 提交类型 [{type,max_size}] type string 提交类型 [text=文本 image=图片 video=视频 audio=音频], max_size number 文件的最大尺寸(MB)
 * begin_date 开始时间,
 * end_date 结束时间,
 * is_finish 作业在当前周期是否已经达标,
 * is_gray 作业是否应该置灰,
 * is_makeup 是否可以补卡
 * field_list 动态表单字段列表 [{field_name,label,type}]
 * }]
 */
export const  getSubtaskListAPI = (params) => fn(fetch.get(Api.GET_SUBTASK_LIST, params))

/**
 * @description: 签到打卡
 * @param subtask_id 小作业ID
 * @returns
 */
export const  checkinTaskAPI = (params) => fn(fetch.post(Api.TASK_CHECKIN, params))

/**
 * @description: 新增上传打卡
 * @param subtask_id 小作业ID
 * @param note 打卡文字
 * @param meta_id[] 附件ID列表
 * @param file_type 上传附件的类型 image=上传图片,video=视频,audio=音频
 * @param makeup_time 补卡时间
 * @param gratitude_count 感恩次数
 * @param gratitude_form_list 感恩表单数据 [{id,name,city,unit,其他信息字段}]
 * @returns
 */
export const  addUploadTaskAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_ADD, params))

/**
 * @description: 获取打卡动态列表
 * @param task_id 上传作业ID
 * @param subtask_id 小作业ID
 * @param date 日期
 * @param keyword 搜索
 * @param order_by_time asc=正序,desc=倒序。默认为倒序
 * @param limit 条数
 * @param offset 页码
 * @returns data: [{id 打卡动态ID, status 审批状态 3=待审批,5=审批通过,7=审批不通过, created_by 打卡人ID, username 打卡人昵称
 * avatar 打卡人头像, created_time 打卡时间, created_time_desc 打卡时间描述, note 打卡内容, files[{meta_id,name,value,extension}] 附件列表,
 * file_type 上传附件的类型 image=上传图片,video=视频,audio=音频, like_count 点赞数, is_my 是不是我的打卡, is_like 我是否已经点赞, is_makeup 是否补卡
 * subtask_title 小作业标题
 * gratitude_count 感恩次数
 * gratitude_form_list 感恩对象列表 [{id,name,city,unit}]
 * }]
 */
export const  getUploadTaskListAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_LIST, params))

/**
 * @description: 上传打卡详情
 * @param i 打卡动态ID
 * @returns data: {id 打卡动态ID, subtask_id 小作业ID, status 审批状态 3=待审批,5=审批通过,7=审批不通过, created_by 打卡人ID, username 打卡人昵称
 * avatar 打卡人头像, created_time 打卡时间, created_time_desc 打卡时间描述, note 打卡内容, files[{meta_id,name,value,extension}] 附件列表,
 * file_type 上传附件的类型 image=上传图片,video=视频,audio=音频, like_count 点赞数, is_my 是不是我的打卡, is_like 我是否已经点赞, is_makeup 是否补卡
 * gratitude_count 感恩次数
 * gratitude_form_list 感恩表单数据 [{id,name,city,unit,其他信息字段}]
 * }
 */
export const  getUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_INFO, params))

/**
 * @description: 编辑打卡动态
 * @param i 打卡动态ID
 * @param note 打卡文字
 * @param meta_id[] 附件ID列表
 * @param file_type 上传附件的类型 image=上传图片,video=视频,audio=音频
 * @param gratitude_count 感恩次数
 * @param gratitude_form_list 感恩表单数据 [{id,name,city,unit,其他信息字段}]
 * @returns
 */
export const  editUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_EDIT, params))

/**
 * @description: 删除打卡动态详情
 * @param i 打卡动态ID
 * @returns
 */
export const  delUploadTaskInfoAPI = (params) => fn(fetch.get(Api.TASK_UPLOAD_DEL, params))

/**
 * @description: 给打卡点赞
 * @param checkin_id 打卡动态ID
 * @returns
 */
export const  likeUploadTaskInfoAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_LIKE, params))

/**
 * @description: 取消点赞
 * @param checkin_id 打卡动态ID
 * @returns
 */
export const  dislikeUploadTaskInfoAPI = (params) => fn(fetch.post(Api.TASK_UPLOAD_DISLIKE, params))

/**
 * @description: 老师查看打卡动态列表
 * @param grade_id 年级ID
 * @param class_id 班级ID
 * @param group_id 课程ID
 * @param team_id 大分组ID
 * @param subteam_id 小分组ID
 * @param created_by 学员ID
 * @param task_id 大作业ID
 * @param subtask_id 小作业ID
 * @param date 日期
 * @param keyword 搜索
 * @param order_by_time asc=正序,desc=倒序。默认为倒序
 * @param limit
 * @param offset
 * @returns
 */
export const  getCheckinTeacherListAPI = (params) => fn(fetch.get(Api.CHECKIN_TEACHER_LIST, params))

/**
 * @description: 老师审批打卡
 * @param checkin_id 打卡动态ID
 * @param status 审批状态 5=通过,7=拒绝
 * @returns
 */
export const  checkinTaskReviewAPI = (params) => fn(fetch.post(Api.CHECKIN_TEACHER_REVIEW, params))

/**
 * @description: 老师查看已打卡日期
 * @param grade_id 年级ID
 * @param class_id 班级ID
 * @param group_id 课程ID
 * @param task_id 大作业ID
 * @param subtask_id 小作业ID
 * @param month 月份
 * @param keyword 搜索
 * @returns data: { my_checkin_dates 已打卡日期列表 }
 */
export const  getCheckinTeacherCheckedDatesAPI = (params) => fn(fetch.get(Api.CHECKIN_TEACHER_CHECKED_DATES, params))

/**
 * @description: 复用感恩表单数据
 * @param subtask_id 小作业ID
 * @returns data: { gratitude_form_list 感恩表单数据 [{id,name,city,unit,其他信息字段}], last_used_list 最近使用的表单数据 [{id,name,city,unit,其他信息字段}] }
 */
export const  reuseGratitudeFormAPI = (params) => fn(fetch.post(Api.CHECKIN_TEACHER_REUSE_GRATITUDE_FORM, params))