Giter Club home page Giter Club logo

lwapi's People

Contributors

naituw avatar wavechao avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

naituw

lwapi's Issues

登陆验证接口,密码错误时返回503

用用户名 bobo, 密码 12344321 登陆,返回503

错误信息

java.lang.NullPointerException



com.wave.service.impl.UserServiceImpl.getDepartment(UserServiceImpl.java:235)
com.wave.service.impl.UserServiceImpl.setDepartment(UserServiceImpl.java:240)
com.wave.service.impl.UserServiceImpl.login(UserServiceImpl.java:73)
com.wave.action.users.Verify_credentialsAction.getUser(Verify_credentialsAction.java:81)
com.wave.action.users.Verify_credentialsAction.execute(Verify_credentialsAction.java:49)

[私信]获取私信对话的 信息列表接口

GET messages/list.json

参数列表:
conversation_id: 对话的id
since_id: 获取id大于此参数的消息,可选
max_id: 获取id 小于等于 此参数的消息,可选
count: 获取的条数,可选,默认20

限制:
conversation_id 对应的user_a或 user_b中必须存在当前登陆用户

返回结果:
object为数组,每个元素包括:
message_id : 消息的id
user_id : 发送此消息的用户id
content : 内容
create_at : 发送时间

users/show.json 接口的 max_level 无效

GET users/show.json

deptid:1
max_level:40
min_level:30
page:1
count:20

response:

{"code":200,"message":"成功","object":[{"avatar":"http://lwapi-pic.stor.sinaapp.com/user_1_27.jpg","avatar_thumb":"http://lwapi-picmin.stor.sinaapp.com/user_1_27.jpg","department":null,"email":"[email protected]","gender":1,"level":80,"major_id":1,"screenname":"波潮","userid":1,"username":"bobo"},{"avatar":null,"avatar_thumb":null,"department":null,"email":null,"gender":1,"level":70,"major_id":1,"screenname":"波潮","userid":8,"username":"092011061"},{"avatar":null,"avatar_thumb":null,"department":null,"email":null,"gender":1,"level":40,"major_id":1,"screenname":"波潮","userid":9,"username":"092011062"},{"avatar":"http://null-pic.stor.sinaapp.com/user_1_40.png","avatar_thumb":"http://null-picmin.stor.sinaapp.com/user_1_40.png","department":null,"email":"","gender":0,"level":30,"major_id":1,"screenname":"","userid":4,"username":"bobo1"},{"avatar":null,"avatar_thumb":null,"department":null,"email":null,"gender":2,"level":30,"major_id":0,"screenname":"教师测试","userid":12,"username":"teacher"},{"avatar":null,"avatar_thumb":null,"department":null,"email":null,"gender":1,"level":60,"major_id":0,"screenname":"电软系测试","userid":13,"username":"dzx"}]}

应该返回系id为1且level在 30-40之间的用户

[通知]用户获取通知列表接口

GET notifications/list.json

参数列表:
page:页数,可选,默认1
count:条数,可选,默认20

限制:
超级管理员只能获取 deptid为0的
其他用户获取 deptid 和自己一样的

返回:
object为数组,每个元素包括:
notification_id,
title,
content,
url,
create_at

获取单个对象接口

major/single.json?id=1
department/single.json?id=1
user/single?id=1
title/single?id=1

返回单个对象

暂时无level限制

学生上传文档接口

POST documents/upload.json

参数列表:
titleid: 论题ID,必填
name: 显示的文件名称,必填
file: 文件,必须

限制:
必须是学生上传;
titleid是学生当前论题的ID;
当前是论文撰写时间;

获取论题附加信息的接口

GET title/extra_info.json

参数列表:
titleid: 论题ID

返回内容:
teacher: 论文教师的完整信息
students: 选择了论题的学生的完整信息,数组,长度可能为0,1,... N

接口限制:
如果当前用户是学生,则titleid必须是自己当前论题的ID
如果是出题教师,则titleid的teacherid必须是自己
如果是管理员、高级管理员,则titleid必须是当前系的

departments/show.json 接口需要对所有用户开放权限

目前教师以上等级的用户登陆后都会获取这个接口,有时候用户的系信息只返回id时,可以在这个接口返回的数据里查询。

考虑到这个接口的信息没有必要保密,希望能对所有level的用户开放。

现在教师获取这个接口会返回 403 没有权限

学生选题接口

POST theses/choose.json
学生选择一个论题

参数列表:
titleid: 要选的论文ID,必选

限制:
类型为学生;
学生与论题需要是同一个系的;
论题还有剩余可选人数;
学生当前没有选择或申请其他论题;
学生的专业是否符合论题的可选专业;
当前为学生选题时间;

获取单条论文信息接口

GET title/show.json
获取单条论题,注意返回数据 不用 数组包装

参数列表:
titleid : 论题ID,必选

限制:
所有人都可以调用

教师打分接口

POST theses/mark.json

参数列表:
selectionid 可选,如果不传这个,必须传titleid,优先级高于titleid
titleid 可选,如果不传这个,必须传selectionid
studentid 可选,配合titleid,传了给单个人打分,不传给整个论题下所有学生打分

article_score、oral_score:论文分数、答辩分数,可选,不传则保持原值,0为默认值,传0恢复默认

comment 评语,可选,不传(null)为保持原值,空字符串为置空

限制:必须是在打分或答辩阶段由titleid对应的出题教师调用

[私信]获取私信对话列表接口

GET conversations/list.json

返回结果按 last_update 从新到旧排序

参数列表:
later_than: 筛选 last_update 旧于此参数的对话,可选,不传则获取最新的
count: 获取条数,可选,默认20

限制:
所有用户均可以调用

返回内容:
object为数组,每个元素包含字段:

conversation_id : 对话的id,
with_user:对方的完整用户结构
last_content:最后说的内容(有可能是登陆用户或with_user说的)
last_is_me: 最后说话的是否为登陆用户, 1为是,0为否
last_update:最后说话的时间

增加获取“我的论题”接口,供学生与教师获取

GET theses/mine.json

获取我的论题:
1.如果是学生登陆,获取学生已选的论题,没有返回空数组
2.如果是教师登陆,获取教师出的题以及“学生申请的且自己已审核通过”的论题,没有返回空数组

参数列表:
page: 页数,可选,默认为1
count: 条数,可选,默认20

限制:
只有学生和教师可以获取(level <= 40)

文档删除接口

GET documents/remove.json

参数列表
docid: 文档ID

限制:
当前系的管理员可以删除
上传此文档的学生可以删除
其他用户不能删除

说明:
成功时,返回200,object为空字典 {}

[私信]发送私信接口

POST message/create.json

参数列表:
to_user_id: 发给的用户
content: 要说的内容

限制:

返回结果:
object是一个message对象,发送成功的私信

注意:
每次发送都要创建或更新conversation

users/show.json 未返回department信息

目前department字段全部返回null,应该返回系的统一结构,如果有性能问题,也可以返回系id。

以后所有用户信息的返回,都要返回统一的数据

获取待审核论文列表接口

GET theses/waiting_reviews.json

参数列表:
count: 条数,可选,默认为20
page: 页码,可选,默认为1

限制:
仅出题教师和高级管理员有权限

特殊说明:
出题教师调用此接口返回需要教师审核的列表,包括学生选取的和申请的
高级管理员获取的包括 学生申请并且老师通过申请的 和 老师出好的

[通知]管理员发通知接口

POST notification/create.json

参数列表
title: 通知标题,必选
content: 通知内容,可选
url: 通知的跳转url,可选
(其中content 和 url 至少选一个)

限制:
管理员才能发送

说明:
系管理员创建时,记deptid为 管理员的系id
超级管理员创建时,记deptid为 0(代表所有系)

若发送成功,需要给deptid(若为0代表所有系)中的所有填写了email的用户发送邮件,邮件内容暂以title为标题,content为内容。注意用SAE的特性来异步发送

待审核论题列表接口需要返回教师信息和已选择的学生信息

theses/waiting_reviews.json 接口中需要返回教师信息和已选择的学生信息

增加两个字段:

teacher: 教师的完整信息
students:返回用户结构的数组,若还没有人选返回空数组,N人选返回长度为N的数组

其他字段保持不变。

其他的论题列表接口不返回此信息

学生申请论题接口

POST theses/apply.json
学生申请一个论题

参数列表:
title: 论题名称,必填,限制同教师出题接口
teacherid: 教师,必填,必须是出题教师,必须和学生同系
student_num: 可选人数,可选,默认为1
description: 说明,可选

限制:
必须学生调用;
当前必须是选题时间;

其他:
可选专业为学生当前专业

teachers/levelup.json 及 leveldown.json 未判断用户是否为教师

如,level为90的bobo的id作为参数 POST teachers/levelup.json 后,bobo的level变为40

此处应当判断提交的id当前的level,若非教师,应返回统一的错误结构(参数错误)

对于已经是出题教师的用户再次调用levelup.json,以操作成功处理。leveldown.json同理。

获取论题文档列表

GET documents/show.json

参数列表:
titleid: 论题ID,必须
authorid: 上传者ID,可选,必须是论题对应的学生(用于多个学生选一题的情况),不传则全部返回

限制:
如果当前用户是学生,则titleid必须是自己当前论题的ID
如果是出题教师,则titleid的teacherid必须是自己
如果是管理员、高级管理员,则titleid必须是当前系的

说明:
返回数组结构

下载文档接口

GET documents/download.json

参数列表:
docid: 文档ID

限制:
与获取文档列表限制相同

说明:
出错时按正常json格式返回,

验证成功时直接开始下载

成功时object的格式为 object:{url:"http://...."}
此url不验证用户信息,访问后即开始下载文件,但下载开始后地址便失效

学生获取当前论题接口

GET theses/current_title.json
获取学生的当前论题信息

参数列表:无

限制:
必须是学生调用

说明:
现在只能选一题,但也通过数组结构返回,如果已选,数组长度为1,未选长度为0;
学生申请的论题、待审核的论题也包括在内

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.