temp

2020年10月28日 新增接口

返回某个学生某个时间正在上的课
方式:get
格式xxxx?id=201800301258
只给学号就行了,时间就是后端的datetime.now()
查询一下,返回当前要上的课
返回格式
{
cid:'100350' // 课程名
}

2020年10月26日 新增接口

补签功能

方法:POST

传递data:

(能给的信息都在这了,你挑着用就行)

{
  class_name: "101447",
  date: "2020-10-25",
  sid: 201800301011
}

返回信息:

{
  status:"ok" 或者fail
  error:"" 可选参数,字符串,返回错误信息
}

销假请求

方法:POST

传递data:
懒得写了,都在最外层

返回信息:

  • 前端不保证发送该请求时是已批准(未销假),这个你在后端简单判断一下就行(返回相应的error信息),因为已批准(未销假)什么的代号还没确定,
{
  status:"ok" 或者fail
  error:"" 可选参数,字符串,返回错误信息
}

撤销请假

方法:GET
格式:xxxxx?id=5
(给你请假唯一id,就是leave表的pk)
(前端可以保证撤销的请假是可撤销的,比如状态为审核中等)
(别忘了后端其他各种接口的要判断是否撤销请假等等)
返回信息:

{
  status:"ok" 或者fail
  error:"" 可选参数,字符串,返回错误信息
}

2020年10月26日 【接口修改】

1.

(用于学生界面! 结束时间<当前时间 的请假信息不再有用,不再显示到列表上)

# 按照条件筛选请假信息
def get_filter_leave(util):

2.

所有和请假信息返回有关的接口,status之前只有三种
现在变更一下,
原状态已批准变为两种
已批准(未销假)
已批准(已销假)

3.



===

==jie=

==========line=

====================

9.29新增接口

对于 教师、学生的信息查看和修改

删除和修改以及新增均传递该对象的完整data

例如,删除、修改、新增学生对象,前端传递的都是

{
    request:"delete" "insert" "update",
    //
    //
}

121.36.98.171

问题

1.返回待审批的请假、审批历史的时候,time返回的不是申请日期。

2020年9月28日新增接口

修改密码

方式:post
传递data:

{
  id: 教师/学生id,
  oldPassword: 旧密码,
  newPassword: 新密码,
}

返回数据:

{
  status:"ok" 或者fail
  error:"" 可选参数,字符串,返回错误信息
}

上传文件(批量信息导入)

方式:post

后端根据文件名判断批量导入什么

例如 学院导入.xlsx就是要导入学院数据

“学院导入" 等名字是你的模板给定的

后端通过 util.FILES['file']方法拿到一个类型为

<class 'django.core.files.uploadedfile.InMemoryUploadedFile'>

的文件,

返回数据:

{
  status:"ok" 或者fail
  error:"" 可选参数,字符串,返回错误信息
}

某学生的某周课表 / 30
某课某周的出勤情况 / 30
某个学院所有课的某周出勤情况 / 30

查看信息
修改信息

某个学生的请假历史信息
某个教师的请假历史信息

学生请假申请
教师请假查看和审批

//============
批量导入学生信息
设置学期功能
设置节假日

大接口

某学生的某周课表

{
  student: {
  id: 201800301258,
  name: "alex",
  sex: "男",
  classid: 20180101
 },
 week:1,
 data: [
  [0, 0, 0], // 一定要加上,固定写法,这一行不用管,
  [2, 1, 1, "AXP-H01", '2020-9-12'], // 周二,第一节课,正常签到,课程名, 日期
  [3, 5, 2, "SCP-173", '2020-9-13'], // 周三,第五节课,请假,课程名, 日期
  [1, 4, 3, "ISO-007", '2020-9-15'], // 周一,第四节课,缺勤,课程名, 日期
  [7, 4, -1, "ISO-007", '2020-9-14'] // 周日,第四节课,未上,课程名, 日期
 ],
 statistic:{
  1:10,
  2:2,
  3:5,
 }
}

get方法
xxxx?id=201800301258&week=1

某学生的某月课表

接口:返回某学生某个月的课表

{
  student: {
  id: 201800301258,
  name: "alex",
  sex: "男",
  classid: 20180101
 },
  firstday: "2020-09-01", // 第一天
  data: [
  [0, 0, 0], // 一定要加上,固定写法,这一行不用管,
  [12, 1, 1, "AXP-H01", '2020-9-12'], // 9-12,第一节课,正常签到,课程名, 日期
  [13, 4, 3, "ISO-007", '2020-9-13'], // 9-12,第四节课,缺勤,课程名, 日期
  [13, 5, 2, "SCP-173", '2020-9-13'], // 9-13,第五节课,请假,课程名, 日期
  [14, 4, -1, "ISO-007", '2020-9-14'] // 9-14,第四节课,未上,课程名, 日期
 ],
  statistic:{
  1:10,
  2:2,
  3:5,
 }
}

和某周的差不多,
方法:get
格式:xxxxx?id=201800301258&year=2020&month=9

某学院的某月课表

{
  dept: {
    name: "软件学院",
    code: "RJXY",
  },
  year: 2020,
  month: 9,
  data: [
    // 格式:[出勤 请假 缺勤 未上课]
    [1,2,3,4], // 2020.9.1 出勤1人 请假2人 缺勤3人 未上课4人
    [1,2,3,4],
    [1,2,3,4],
  ],
  statistic:{
    1:10,  // 这个学院这个月出勤次数
    2:2,	 // 这个学院这个月请假次数
    3:5,   //这个学院这个月缺勤次数
    4:50,  //和前面不同,这里多了一个,这个学院这个月未上课次数
  }
}

方法:get
格式:xxxxx?code=RJXY&year=2020&month=9

这里给后端的是code,就是学院代码,我不知道能不能传汉字,先传code吧

按指定条件查询某页缺勤 信息

2020年9月23日08:45:06更新

分页可以参照已实现的control_student里的get方法对应的代码

后端可能按照bit位那种记录方式不太好查询,

可以到时候定义一个视图啥的,

返回格式:

{
  count:100, // 目前符合条件的缺勤信息总数
  items:
  [
    {
      sid:201800301258,      // 学生学号
      name:"周杰伦",        
      sex:"男",
      sclass:20180101,
      dept_name:"历史学院",
      date:"2020-09-15",    // 缺勤日期
      no:3,            // 缺勤节次
      class_name:"SCP-173",    // 缺勤课程名
    },
    {
      ... ...
    },
    ...
  ]
}

请求方式:post
格式:

xxxxx
// 携带的data:
{
  page:2,
  pagesize:20,
  filter:{
    sid:201800301258,      // 学生学号
    name:"周杰伦",        
    sclass:20180101,
    dept_name:"历史学院"   
    date:"2020-09-15",    // 缺勤日期
    class_name:"SCP-173",    // 缺勤课程名
  },
}

(page即页数,pagesize即每一页的数据项,如上请求返回满足筛选条件数据的20~39条)

(filter为 筛选条件,返回的数据需满足filter中的条件,filter中的某些数据项不一定会出现)

例子:

某次请求如下:

xxxxx
// 携带的data:
{
  page:1,
  pagesize:20,
  filter:{
    date:"2020-09-15",    // 缺勤日期
    class_name:"SCP-173",    // 缺勤课程名
  }
}

后端返回2020-09-15日的,关于scp-173课程的所有缺勤信息,(可以默认按照时间排序)

按指定条件查询某页请假 信息

2020年9月23日16:15:50

返回格式:

{
  count:100, // 目前符合条件的请假信息总数
  items:
  [
    {
      id: 20200915035,        // 每条请假对应的唯一编号,记录请假信息的表 的主键
      sid:201800301258,    // 学生学号
      name:"周杰伦",        
      sex:"男",          
      sclass:20180101,
      dept_name:"历史学院",      
      time:"2020-09-15",    // 请假发起日期
      status:"审核中",        // enum(已批准、审核中、未通过),
    },
    {
      ... ...
    },
    ...
  ]
}

请求方式:post
格式:

xxxxx
// 携带的data:
{
  page:2,
  pagesize:20,
  filter:{
    sid:201800301258,      // 学生学号
    name:"周杰伦",        
    sclass:20180101,
    dept_name:"历史学院",
    time:"2020-09-15",        // 请假发起日期
    status:"已批准"
  },
}

(page即页数,pagesize即每一页的数据项,如上请求返回满足筛选条件数据的20~39条)

(filter为 筛选条件,返回的数据需满足filter中的条件,filter中的某些数据项不一定会出现)

例子:

某次请求如下:

xxxxx
// 携带的data:
{
  page:1,
  pagesize:20,
  filter:{
    date:"2020-09-15",    // 请假发起日期
  }
}

后端返回2020-09-15日所有请假信息,(可以默认按照时间排序)

登录接口修改

2020年9月24日10:57:24

除了返回status之外,再加上个用户信息

返回格式:(学生就返回学生表里的信息,老师就返回老师表的信息)

{
  status:"ok",
  userinfo:{
    id:201800301234,
    name:"哈哈",
    sex:"男",
    sclass:20180101
  }
}

发送请假申请

2020年9月24日11:27:17

方法:post
携带data:

{
  application:{
    id:201800301258,
    name: "周杰伦", // 冗余项,可以不用管
    region: "在校", // enum(在校、离校)
    startTime: 1600929278000, // 请假起始时间
    endTime: 1600929093000, // 请假结束时间
    reason: "我要去吃汉堡王", // 请假说明,(0~300个字符)
    time:1600929277000 // 请假发起时间
  },
}

返回格式:

{
  status:"ok", // enum(ok、fail)
  error:"申请时间超过最大时间限制", // 当status为fail时返回的错误信息,
}

注:带具体时间的传递一律时间戳。

python转化方法为 :

timestamp = time.localtime(req['form']['startTime']/1000)
d = time.strftime("%Y-%m-%d %H:%M", timestamp)

查看老师未处理的请假信息

2020年9月24日13:25:33

方法:get

格式:xxxxx?tid=1000542167

返回:

{
  time: "2016-05-02", // 请假发起日期
  id: 20200915035,   // 请假唯一编号
  sid: 201800301234, 
  name: "王小虎",
  sclass:20200101,
  status:"审核中",
}

查看老师已处理的请假历史信息

方法:get

格式:xxxxx?tid=1000542167

返回:

{
  time: "2016-05-02", // 请假发起日期
  id: 20200915035,   // 请假唯一编号
  sid: 201800301234, 
  name: "王小虎",
  sclass:20200101,
  status:"已批准", // enum(已批准、未通过)
}

发送老师处理信息

方法:post

携带data:

{
    id: 20200915035, // 唯一编号
    tid:10801080, // 处理人(老师)id
    time:160093055457, // 处理时间
	approval:{
        opinion:"同意",  // enum(同意、不同意)
        declineReason:"我才是龙王"  // 不同意的原因
    }   
}

通过编号返回详细请假信息

  • 这是完整的请假表,可供数据库表项建立的参考

2020年9月24日15:50:28

方法:get
格式:xxxxx?id=20200915035

返回:

{
  status:"已批准",
  id:313513513, // 唯一编号
  application:{
    id:201800301258,
    name: "龙王赘婿", // 冗余项,可以不用管
    sex:"男",
    sclass:20180101,
    dept:"软件学院",
    time:1600930354757, // 申请时间
    region: "在校", // enum(在校、离校)
    startTime: 1600929278000, // 字符串格式,请假起始时间
    endTime: 1600929093000, // 请假结束时间
    reason: "回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,回家继承百亿家产,", // 请假说明,(0~300个字符)
  },
  approval:{
    id:10510651066, // 处理人id,
    name:"王老吉", // 老师姓名
    opinion:"同意", // enum(同意、不同意)
    declineReason:"我才是龙王" // 不同意的原因
    time:160093055457, // 处理时间
  }
},

定义

posted @ 2020-09-22 14:59  aminor  阅读(288)  评论(0)    收藏  举报
/**/ /**/