# xjwc **Repository Path**: Ar1es/xjwc ## Basic Information - **Project Name**: xjwc - **Description**: 123 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2020-02-17 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [toc] ## 活动相关 ### 添加活动信息 - POST /activity - payload ```json { "name":"test", "info":"", "startTime":"2020-04-30T16:00:00.000Z", "endTime":"2020-05-30T16:00:00.000Z", "unit":"test", "type":1, "list":[ "0cc9b2235f444bbf85e89709895d850e", "456f92ec9c1845dd92a20a4be5c9d3c4" ], "tag":[ { "index":0, "lname":"创新", "value":null, "part":0.5 }, { "index":1, "lname":"技术", "value":null, "part":0.5 } ] } ``` - return ```json { "resultCode":200, "message":"OK", "data":"新建活动成功" } ``` ### 条件查询所有活动 - POST /act - payload ```json { "type" : 1 } ``` - return ```json { "resultCode": 200, "message": "OK", "data": [ { "activityId": 11, "name": "5.2测试活动", "info": "5.2测试活动", "startTime": "2020-04-30T16:00:00.000Z", "endTime": "2020-05-30T16:00:00.000Z", "unit": "5.2测试活动", "type": 1 }, { "activityId": 12, "name": "test", "info": "", "startTime": "2020-04-30T16:00:00.000Z", "endTime": "2020-05-30T16:00:00.000Z", "unit": "test", "type": 1 } ] } ``` ### 更改活动信息 - PUT /activity - payload ```json { "name":"test", "info":"这是修改专用的", "startTime":"2020-04-30T16:00:00.000Z", "endTime":"2020-05-30T16:00:00.000Z", "unit":"test", "list":[ "0cc9b2235f444bbf85e89709895d850e", "456f92ec9c1845dd92a20a4be5c9d3c4" ], "type":1, "tag":[ { "index":0, "lname":"创新", "value":null, "part":0.5 }, { "index":1, "lname":"技术", "value":null, "part":0.5 } ], "activityId":12 } ``` - return ```json { "resultCode":200, "message":"OK", "data":"更新活动成功" } ``` ### 查询所有活动信息 - GET /allactivity - return ```json { "resultCode":200, "message":"OK", "data":[ { "activityId":12, "unit":"test", "name":"test", "startTime":"2020-04-30T16:00:00.000Z", "endTime":"2020-05-30T16:00:00.000Z", "tag":[ { "index":0, "lname":"创新", "value":null, "part":0.5 }, { "index":1, "lname":"技术", "value":null, "part":0.5 } ], "type":1, "list":[ { "unit":"1", "role":2, "activity":null, "phone":"1", "userName":"1", "userId":"0cc9b2235f444bbf85e89709895d850e" }, { "unit":"2", "role":2, "activity":null, "phone":"2", "userName":"2", "userId":"456f92ec9c1845dd92a20a4be5c9d3c4" } ], "info":"这是修改专用的" } ] } ``` ### 删除活动信息 - DELETE /activity/{activityId} - return ```json { "resultCode":200, "message":"OK", "data":"删除活动成功" } ``` ### 查看专家在日期内活动信息 - GET /activity/now?userId=#{userId} - eg. /activity/now?userId=0cc9b2235f444bbf85e89709895d850e - return ```json { "resultCode": 200, "message": "OK", "data": [ { "activityId": 13, "unit": "test", "name": "test", "startTime": "2020-04-30T16:00:00.000Z", "endTime": "2020-05-30T16:00:00.000Z", "type": 1, "info": "" } ] } ``` --- ## 项目相关 ### 新增项目信息 - POST /project - payload ```json { "activityId":13, "info":"test", "unit":"test", "leader":"test", "score":0, "name":"test" } ``` - return ```json { "resultCode":200, "message":"OK", "data":27 } ``` ### 查询项目信息 - POST /pro - payload ```json { "activityId": 13 } ``` - return ```json { "resultCode":200, "message":"OK", "data":[ { "activityId":13, "leader":"test", "score":"0", "unit":"test", "name":"test", "docUrl":"www.baidu.com", "projectId":27, "info":"test" } ] } ``` ### 根据关键字查询项目 - GET /project/{keyword} - eg. /project/tes - 应该限制一下活动下的项目查询,没用到就没改 - return ```json { "resultCode": 200, "message": "OK", "data": [ { "score": "0", "activityId": 13, "leader": "test", "unit": "test", "name": "test", "projectId": 27, "info": "test" } ] } ``` ### 根据活动id和项目名获取项目id - GET /project/getId/{activityId}/{name} - eg. /project/getId/13/test - return ```json { "resultCode": 200, "message": "OK", "data": 27 } ``` ### 修改项目信息 - PUT /project - payload ```json { "projectId":27, "activityId":13, "name":"test", "info":"123", "leader":"test", "unit":"test", "score":"0", "docUrl":null } ``` - return ```json { "resultCode":200, "message":"OK", "data":1 } ``` ### 删除项目信息 - DELETE /project - payload ```json { "projectId" : 27 } ``` - return ```json { "resultCode":200, "message":"OK", "data":1 } ``` ### 按照分数排名查询项目信息 - POST /sort 应该是活动下项目的排名,没用到就没有更改 - payload ```json { "activityId":13 } ``` - return ```json { "resultCode": 200, "message": "OK", "data": [ { "score": "0", "leader": "5.2测试活动", "activityId": 11, "unit": "5.2测试活动", "name": "5.2测试活动", "projectId": 25, "info": "" }, { "score": "0", "leader": "1", "activityId": 11, "unit": "1", "name": "15545645", "projectId": 26, "info": "1" }, { "score": "0", "leader": "test", "activityId": 13, "unit": "test", "name": "test", "projectId": 27, "info": "123" } ] } ``` ### 查询项目详细信息 - GET /detail?id={id} - eg. /detail?id=27 - return ```json { "resultCode": 200, "message": "OK", "data": { "activityId": 13, "leader": "test", "score": "0", "unit": "test", "name": "test", "tag": [ { "index": 0, "lname": "创新", "value": null, "part": 0.5 }, { "index": 1, "lname": "技术", "value": null, "part": 0.5 } ], "list": [ { "unit": "1", "role": 2, "activity": null, "phone": "1", "userName": "1", "userId": "0cc9b2235f444bbf85e89709895d850e" }, { "unit": "2", "role": 2, "activity": null, "phone": "2", "userName": "2", "userId": "456f92ec9c1845dd92a20a4be5c9d3c4" } ], "projectId": 27, "info": "123" } } ``` ### 根据activityId和userId查询项目 - GET /project/user?userId=#{userId}&activityId=#{activityId} - eg. /project/user?userId=0cc9b2235f444bbf85e89709895d850e&activityId=13 - return ```json { "resultCode": 200, "message": "OK", "data": [ { "activityId": 13, "leader": "test", "score": "0", "unit": "test", "name": "test", "docUrl": "www.baidu.com", "tag": "", "projectId": 27, "isScored": "未评分", "info": "123" } ] } ``` --- ## 文件相关 - 和文件相关的后续优化考虑多线程上传,断点上传。 - 服务器安装openoffice,把字体包配置一下,找博客。 - 大文件分片上传/多线程上传 : https://www.sohu.com/a/223553425_100012573 ### 上传文件 - 文件不是必须的,只能上传一个.zip压缩包 / 一个单独的符合格式的文件(代码中体现) - 新建项目成功后根据项目id再搞文件相关的上传。所以注意各种情况的组合怎么处理。(前端处理的,后台也有部分) - 项目文件夹路径 :prefix + activityId + activityName + projectId + projectName - 为了进行更好的区分才这样做 - 组合情况 - 新建项目成功 - 传 docUrl , 不传文件 - 传 docUrl , 传文件 - 不传 docUrl , 传文件 - 不传 docUrl , 不传文件 - 新建项目失败 - 前端不调用后面传文件的接口 - 需要把ppt,word,excel这些转化成pdf,为了后面的预览,但是需要很多字体包,转换格式可能出现字体缺失 最好的办法是前端预览这些文件,后端就不用转化格式了 - 后面的更新文件同理 - POST /document/upload - payload - file :文件,目前只支持单个文件(非必须) - document :主要是为了在数据库新建一条记录,传的有 docUrl(非必须),projectId(必须) - return ```json { "resultCode": 200, "message": "OK", "data": "上传成功" } ``` ### 更新文件 - 具体和上传文件类似,看代码逻辑,写的很清楚,要考虑各种情况组合的处理 - 组合情况 - 更新项目成功 - 传 docUrl , 不传文件 - 传 docUrl , 传文件 - 不传 docUrl , 传文件 - 不传 docUrl , 不传文件 - 更新项目失败 - 前端不调用后面传文件的接口 - PUT /document/update - return ```json { "resultCode": 200, "message": "OK", "data": "更新文件成功" } ``` ### 预览文件 - GET /document/preview/{projectId} - url意思是超链接,file意思是正常的文件 - 这个链接在浏览器直接就可以访问,如果有更好的也可以,这是直接利用tomcat的原理。在tomcat配置一个外界可以访问的路径 ```json { "resultCode": 200, "message": "OK", "data": { "url": null, "file": [ "http://140.143.194.109:8080/file/27-AbcFileTest/146-李希文的TestFile/视频.mp4", "http://140.143.194.109:8080/file/27-AbcFileTest/146-李希文的TestFile/excel.pdf", "http://140.143.194.109:8080/file/27-AbcFileTest/146-李希文的TestFile/趣味气象.pdf", "http://140.143.194.109:8080/file/27-AbcFileTest/146-李希文的TestFile/JAVA开发工程师.pdf", "http://140.143.194.109:8080/file/27-AbcFileTest/146-李希文的TestFile/林业可视化中期.pdf" ] } } ``` - tomcat的部分配置,在server.xml最下面 ```xml ``` ## 评分表相关 - ExportExcelApi里面的,权限代码没加,因为前端做了,后续根据老师需求改。 - 权限说明 - 管理员 - 生成项目分数汇总Excel表格(评审打分汇总表) - 导出活动下面所有项目的汇总表(评审汇总表) - 预览某项目打分汇总表 - 专家评委 - 导出某位专家评分表(专家评审意见表) ### 生成项目分数汇总Excel表格(评审打分汇总表) - 管理员 - GET /excel/project-total/export/{projectId} - 返回 String, 在浏览器点击链接,直接下载了,并在服务器目录生成表格 ### 导出活动下面所有项目的汇总表(评审汇总表) - 管理员 - GET /excel/activity/export/{activityId} - 返回 String, 在浏览器点击链接,直接下载了,并在服务器目录生成表格 ### 导出某位专家评分表(专家评审意见表) - 评委(专家) - GET /excel/project/export/{projectId}/{userId} - 返回 String, 在浏览器点击链接,直接下载了,并在服务器目录生成表格 ### 预览某项目打分汇总表 - 管理员 - GET /excel/preview/{projectId} - 实际调用了(GET /excel/project-total/export/{projectId},这个对应的service)。 - 前端预览的(在打分展示页面) --- ## 用户信息管理 - 对应UserController - 加密的时候用了用户账号加密,所以不能有`修改用户账号`的操作 - 权限说明 - 管理员 - 增加专家信息 ,/register - 新建管理员 ,/admin/add - 修改用户密码 ,/updatePassword - 修改专家信息 ,/updateInfo - 查询用户信息 ,/user - 查询用户详细信息 ,/userInfo - 删除用户信息 ,/user/{userId} - 专家 - 无 ### 增加专家信息 - POST /register - payload - unit非必填 ```json { "unit": "", "userName": "李四", "phone": "lisi", "password": "lisi" } ``` - return ```json { "resultCode": 200, "message": "OK", "data": 1 } ``` - error ```json { "resultCode": 500, "message": "该号码已被注册,请重试", "data": null } ``` ### 新建管理员 - POST /admin/add - payload - unit非必填 ```json { "unit": "", "userName": "李四", "phone": "lisi", "password": "lisi" } ``` - return ```json { "resultCode": 200, "message": "OK", "data": "添加管理员成功!" } ``` ### 修改用户密码 - PUT /updatePassword - payload ```json { "phone" : "33333333333", "password": "12345678" } ``` return ```json { "resultCode": 200, "message": "OK", "data": 1 } ``` error ```json { "resultCode": 500, "message": "修改失败", "data": null } ``` ### 修改专家信息 - PUT /updateInfo - payload - unit 非必填 ```json { "userId" : "383afb7f007e4d538fe5c4058ab5ef89", "userName" : "abcde", "unit" : "李四的单位" } ``` - return ```json { "resultCode": 200, "message": "OK", "data": 1 } ``` - error ```json { "resultCode": 500, "message": "修改失败", "data": null } ``` ### 查询用户信息 - 包括专家和管理员 - POST /user - 密码没查,查也没用,存的是加密过的,这个是所有的,role=1代表管理员,role=2代表专家,必须传 - payload ```json { "role" : "1" } ``` - return ```json { "resultCode": 200, "message": "OK", "data": [ { "userId": "1", "userName": "lxw", "password": null, "phone": "13091896371", "role": 1, "roles": null, "activity": null, "unit": null }, { "userId": "3517a790ad8f4aa790eced70cfe024c6", "userName": "bbb", "password": null, "phone": "22222222222", "role": 1, "roles": null, "activity": null, "unit": null }, { "userId": "7249f5b5c62c47f0a72b9fa90b054fcc", "userName": "aaa", "password": null, "phone": "11111111111", "role": 1, "roles": null, "activity": null, "unit": null } ] } ``` - error ```json { "resultCode": 500, "message": "查询用户失败,请重试", "data": null } ``` ### 查询用户详细信息 - POST /userInfo - 单独查一个用户的所有信息 - payload ```json { "userId": "05d711f87e0e403d9243a93ed5d8b7b5" } ``` - return ```json { "resultCode": 200, "message": "OK", "data": [ { "userId": "05d711f87e0e403d9243a93ed5d8b7b5", "userName": "44", "password": "42c8ae37803bab71179c69270fc06765", "phone": "55", "role": 2, "roles": null, "activity": "33", "unit": "2" } ] } ``` - error ```json { "resultCode": 500, "message": "查询用户失败,请重试", "data": null } ``` ### 删除用户信息 - DELETE /user/{userId} ```json { "resultCode":200, "message":"OK", "data":"删除成功!" } ```