作者 杨谦

1.添加目前接口api定义

package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.view.bank.bean.PracticeBean
import com.br_technology.securitytrain_master.ui.view.bank.bean.RankListBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FieldMap
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description 全能题库接口
* PS: Not easy to write code, please indicate.
*/
interface AllItemApi : ApiService {
/**
* 答题相关参数
*/
@FormUrlEncoded
@POST("/api/item/item_about")
fun itemAbout(): Observable<BaseResponse<String>>
/**
* 挑战答题规则
*/
@FormUrlEncoded
@POST("/api/item/challenge_rule")
fun itemRule(): Observable<BaseResponse<String>>
/**
* 工种列表
*/
@FormUrlEncoded
@POST("/api/item/pos")
fun itemPos(): Observable<BaseResponse<String>>
/**
* 专项练习列表
* @param pos_id 工种id
* @param type 所属类型:1=模拟考试,2=专项练习
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/item/paper_list")
fun specialPracticeList(
// @Field("pos_id") pos_id: Int, // 工种ID
@Field("type") type: Int, //
@Field("page") page: Int,
@Field("page_num") page_num: Int,
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<PracticeBean>>
/**
* 专项练习详情
* @param paper_id 卷子id
*/
@FormUrlEncoded
@POST("/api/item/paper_list_detail")
fun specialPracticeDetail(
@Field("paper_id") paper_id: Int
): Observable<BaseResponse<String>>
/**
* 专项练习题目列表
* @param paper_id 专项练习id
*/
@FormUrlEncoded
@POST("/api/item/paper_item_list")
fun specialPracticeItemList(
@Field("paper_id") paper_id: Int
): Observable<BaseResponse<String>>
/**
* 每日一练获取列表
* @param pos_ia 专项练习id
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/item/test_daily_list")
fun dayPracticeList(
@Field("pos_ia") pos_ia: Int, // 专项练习id
// @Field("page") page: Int, // 页数
// @Field("pageNum") pageNum: Int, // 每页条数
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 开始答题
* @param pos_id 专项练习id
* @param type 题库类型1=每日一练2=挑战答题3=专项答题4=模拟考试
* @param paper_id 题卷id(type=1时传每日一练Id
*/
@FormUrlEncoded
@POST("/api/item/start_item")
fun itemStart(
@Field("pos_id") pos_id: Int,
// @Field("paper_id") paper_id: Int,
@Field("type") type: Int,
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 题目列表
* @param user_item_id 答题id
*/
@FormUrlEncoded
@POST("/api/item/item_list")
fun itemList(
@Field("user_item_id") user_item_id: Int
): Observable<BaseResponse<String>>
/**
* 获取挑战答题弹板信息
* @param user_item_id 答题id
*/
@FormUrlEncoded
@POST("/api/item/get_challenge_info")
fun challengeInfo(
@Field("user_item_id") user_item_id: Int
): Observable<BaseResponse<String>>
/**
* 提交答题(某一题)
* @param user_item_id 答题记录ID
* @param item_id 题目id
* @param answer 答案
*/
@FormUrlEncoded
@POST("/api/item/item_sub_single")
fun subSingle(
@Field("user_item_id") user_item_id: Int,
@Field("item_id") item_id: Int,
@Field("answer") answer: String
): Observable<BaseResponse<String>>
/**
* 提交答题
* @param item_id 题目ID
* @param answer 答题结果[{'id':1,'answer':'A'}]
*/
@FormUrlEncoded
@POST("/api/item/item_sub_single")
fun subSingle(
@Field("item_id") item_id: Int,
@Field("answer") answer: String
): Observable<BaseResponse<String>>
/**
* 交卷
* @param user_item_id 题目id
*/
@FormUrlEncoded
@POST("/api/item/item_sub_paper")
fun subPaper(
@Field("user_item_id") user_item_id: Int
): Observable<BaseResponse<String>>
/**
* 错题列表
* @param type 类型1=单选题2=多选题3=判断题
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/item/user_error_list")
fun errorList(
@Field("type") type: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 错题列表
* @param id 类型1=单选题2=多选题3=判断题
*/
@FormUrlEncoded
@POST("/api/item/user_error_detail")
fun errorDetail(
@Field("id") id: Int
): Observable<BaseResponse<String>>
/**
* 提交错题
* @param error_id 错题id
* @param answer 答案都好分开
*/
@FormUrlEncoded
@POST("/api/item/user_sub_error")
fun subError(
@Field("error_id") error_id: Int,
@Field("answer") answer: String
): Observable<BaseResponse<String>>
/**
* 删除错题
* @param item_id 题目id
* @param type 类型1=单选题2=多选题3=判断题
* @param item_type 答题类型1=每日一练2=挑战答题3=专项练习4=模拟考试
*/
@FormUrlEncoded
@POST("/api/item/user_del_error")
fun delError(
@Field("item_id") item_id: Int,
@Field("type") type: Int,
@Field("item_type") item_type: Int
): Observable<BaseResponse<String>>
/**
* 答题记录
* @param type 类型1=单选题2=多选题3=判断题
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/item/user_item_list")
fun errorSubList(
@Field("type") type: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 答题记录详情
* @param id 练习及考试的id
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/item/user_item_list_detail")
fun errorSubDetail(
@Field("id") id: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.bean.UploadFileData
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import okhttp3.MultipartBody
import retrofit2.http.*
import java.io.File
/**
* Author by YSir
* Date on 2022/1/2.
* description 公共接口
* PS: Not easy to write code, please indicate.
*/
interface CommonApi : ApiService {
/**
* 注册企业
* @param type 类型1=企业2=机构
* @param name 企业名称
* @param cert 统一社会信用代码
* @param corporation 法人姓名
* @param contacts 联系人
* @param contact_tel 联系人电话
* @param username 账号
* @param password 密码
* @param business_license 营业执照
* @param code 短信验证码
*/
@FormUrlEncoded
@POST("/api/common/register_company")
fun registerCompany(
@Field("type") type: Int,
@Field("name") name: String,
@Field("cert") cert: String,
@Field("corporation") corporation: String,
@Field("contacts") contacts: String,
@Field("contact_tel") contact_tel: String,
@Field("username") username: String,
@Field("password") password: String,
@Field("business_license") business_license: String,
@Field("code") code: Int
): Observable<BaseResponse<String>>
/**
* 用户协议
*/
@FormUrlEncoded
@POST("/api/common/user_rule")
fun userAgreement(): Observable<BaseResponse<String>>
/**
* 历史搜索记录
*/
@FormUrlEncoded
@POST("/api/common/search_log")
fun searchLog(): Observable<BaseResponse<String>>
/**
* 清除搜索记录
*/
@FormUrlEncoded
@POST("/api/common/search_log_clear")
fun searchLogClear(): Observable<BaseResponse<String>>
/**
* 加载初始化
* @param type 版本号
* @param lat 纬度
* @param lnt 精度
*/
@GET("/api/common/init")
fun searchLogClear(
@Field("type") type: String,
@Field("lng") lng: String,
@Field("lat") lat: String
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.bean.CommonBean
import com.br_technology.securitytrain_master.ui.view.home.bean.DataBaseClassifyBean
import com.br_technology.securitytrain_master.ui.view.home.bean.NoticeBean
import com.br_technology.securitytrain_master.ui.view.home.bean.RecommendBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description 资料库分类
* PS: Not easy to write code, please indicate.
*/
interface DocApi : ApiService {
/**
* 资料库分类
* @param type 类型1=共享资料库2=企业资料库
*/
@FormUrlEncoded
@POST("/api/material/material_sort_list")
fun getDocClassify(
@Field("type") type: Int
): Observable<BaseResponse<String>>
/**
* 资料库列表
* @param type 类型1=共享资料库2=企业资料库
* @param sort_id 分类id
* @param keyword 搜索关键词
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/material/material_list")
fun getDocList(
@Field("type") type: Int,
@Field("sort_id") sort_id: Int,
@Field("keyword") keyword: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 资料库详情
* @param id 资料库id
*/
@FormUrlEncoded
@POST("/api/material/material_detail")
fun getDocDetail(
@Field("id") id: Int
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.view.home.bean.BannerBean
import com.br_technology.securitytrain_master.ui.view.home.bean.NoticeBean
import com.br_technology.securitytrain_master.ui.view.home.bean.RecommendBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description 首页接口
* PS: Not easy to write code, please indicate.
*/
interface HomeApi : ApiService {
/**
* 轮播图
*/
@FormUrlEncoded
@POST("/api/index/banner")
fun getHomeBanner(): Observable<BaseResponse<BannerBean>>
/**
* 最新公告
*/
@FormUrlEncoded
@POST("/api/index/notice")
fun getLatestNotice(): Observable<BaseResponse<NoticeBean>>
/**
* 推荐资料
*/
@FormUrlEncoded
@POST("/api/index/material_rec")
fun getRecommendData(): Observable<BaseResponse<RecommendBean>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FieldMap
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description
* PS: Not easy to write code, please indicate.
*/
interface LessonApi : ApiService {
/**
* 文本课程列表
* @param keyword 搜索关键词
* @param keyword 工种id
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_word")
fun lessonTxtList(
// @Field("keyword") keyword: String,
// @Field("pos_id") pos_id: String,
@Field("page") page: String,
@Field("page_num") page_num: String,
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 文本课程详情
* @param id 课程id
* @param train_class_id 文本课所在id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_word_detail")
fun lessonTxtDetail(
@Field("id") id: String,
@Field("train_class_id") train_class_id: String
): Observable<BaseResponse<String>>
/**
* 视频课程列表
* @param is_rec: Int, // 是否为推荐课程0=否1=是
* @param keyword: String, // 搜索关键词
* @param pos_id: String, // 工种id
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/lesson/lesson")
fun lessonVideoList(
// @Field("is_rec") is_rec: Int, // 是否为推荐课程0=否1=是
// @Field("keyword") keyword: String, // 搜索关键词
// @Field("pos_id") pos_id: String, // 工种id
@Field("page") page: String,
@Field("page_num") page_num: String,
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 视频课程详情
* @param id 课程id
* @param train_class_id 班级id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_detail")
fun lessonVideoDetail(
@Field("id") id: Int,
@Field("train_class_id") train_class_id: Int
): Observable<BaseResponse<String>>
/**
* 视频详情
* @param id 视频id
* @param train_class_id 培训计划课程id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_class_detail")
fun videoDetail(
@Field("id") id: Int,
@Field("train_class_id") train_class_id: Int
): Observable<BaseResponse<String>>
/**
* 直播课程列表
* @param keyword 搜索关键词
* @param type 直播类型1=正在直播2=回放直播3=即将开播
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_live")
fun lessonLiveList(
// @Field("keyword") keyword: String, // 搜索关键词
@Field("type") type: Int, // 直播类型1=正在直播2=回放直播3=即将开播
@Field("page") page: String,
@Field("page_num") page_num: String,
@FieldMap fieldMap: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 直播课程详情
* @param id 课程id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_live_detail")
fun lessonLiveDetail(
@Field("id") id: Int
): Observable<BaseResponse<String>>
/**
* 线下培训列表
* @param id 线下课主键id
* @param train_class_id 线下课班级id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_offline")
fun lessonOffList(
@Field("id") id: Int,
@Field("train_class_id") train_class_id: Int
): Observable<BaseResponse<String>>
/**
* 线下培训详情
* @param id 线下培训id
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_offline_detail")
fun lessonOffList(
@Field("id") id: Int
): Observable<BaseResponse<String>>
/**
* 线下培训打卡
* @param lesson_id 课程id
* @param lat 纬度
* @param lng 经度
*/
@FormUrlEncoded
@POST("/api/lesson/lesson_offline_signup")
fun lessonOffSignup(
@Field("lesson_id") lesson_id: Int,
@Field("lat") lat: String,
@Field("lng") lng: String
): Observable<BaseResponse<String>>
/**
* 课程进度记录
* @param type 课程类型:1=视频课,2=直播课,3=线下培训课,4=文本课
* @param view_len 当前观看视频/文本课程时长
* @param lng: String, // 纬度
* @param lat: String // 经度
* @param lesson_id: String // 课程id
* @param class_id: String // 视频id
* @param train_id: String // 培训计划id
* @param train_class_id: String // 培训计划班级课程id(获取数据有这个字段的必传
*/
@FormUrlEncoded
@POST("/api/lesson/user_class_log")
fun lessonLog(
@Field("type") type: Int,
@Field("view_len") view_len: String,
@FieldMap fieldMap: HashMap<String, String>
// @Field("lng") lng: String, // 纬度
// @Field("lat") lat: String // 经度
// @Field("lesson_id") lesson_id: String // 课程id
// @Field("class_id") class_id: String // 视频id
// @Field("train_id") train_id: String // 培训计划id
// @Field("train_class_id") train_class_id: String // 培训计划班级课程id(获取数据有这个字段的必传
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.bean.CommonBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description 手机短信接口
* PS: Not easy to write code, please indicate.
*/
interface MsgApi : ApiService {
/**
* 发送验证码
* @param mobile: String, // 手机号
* @param event: String // 事件名称
*/
@FormUrlEncoded
@POST("/api/sms/send")
fun smsSend(
@Field("mobile") mobile: String,
@Field("event") event: String
): Observable<BaseResponse<CommonBean>>
/**
* 发送验证码
* @param mobile: String, // 手机号
* @param event: String, // 事件名称
* @param captcha: Int // 验证码
*/
@FormUrlEncoded
@POST("/api/sms/check")
fun smsCheck(
@Field("mobile") mobile: String,
@Field("event") event: String,
@Field("captcha") captcha: Int
): Observable<BaseResponse<String>>
/**
* 发送验证码
* @param email: String, // 邮箱
* @param event: String // 事件名称
*/
@FormUrlEncoded
@POST("/api/ems/send")
fun emsSend(
@Field("email") email: String,
@Field("event") event: String
): Observable<BaseResponse<String>>
/**
* 发送验证码
* @param email: String, // 邮箱
* @param event: String, // 事件名称
* @param captcha: Int // 验证码
*/
@FormUrlEncoded
@POST("/api/ems/check")
fun emsCheck(
@Field("email") email: String,
@Field("event") event: String,
@Field("captcha") captcha: Int
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.view.mine.bean.MessageListBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description
* PS: Not easy to write code, please indicate.
*/
interface NotificationApi : ApiService {
/**
* 未读消息总数
*/
@FormUrlEncoded
@POST("/api/message/msg_unread_count")
fun notificationUnreadCount(): Observable<BaseResponse<String>>
/**
* 消息列表
* @param page 页数
* @param page_num 每页的数量
*/
@FormUrlEncoded
@POST("/api/message/msg_list")
fun notificationList(
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<MessageListBean>>
/**
* 消息详情
* @param id 消息id,逗号隔开
*/
@FormUrlEncoded
@POST("/api/message/msg_detail")
fun notificationDetail(
@Field("id") id: String
): Observable<BaseResponse<String>>
/**
* 批量/全部已读
* @param ids: String // 消息id,逗号隔开
*/
@FormUrlEncoded
@POST("/api/message/msg_read_mul")
fun notificationDeal(
@Field("ids") ids: String // 消息id,逗号隔开
): Observable<BaseResponse<String>>
/**
* 批量删除
* @param ids: String // 消息id,逗号隔开
*/
@FormUrlEncoded
@POST("/api/message/msg_del_mul")
fun notificationDelete(
@Field("ids") ids: String // 消息id,逗号隔开
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.view.login.bean.TokenBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
/**
* Author by YSir
* Date on 2022/1/2.
* description token 接口
* PS: Not easy to write code, please indicate.
*/
interface TokenApi : ApiService {
/**
* 检测token是否过期
*/
@GET("/api/token/check")
fun tokenCheck(): Observable<BaseResponse<TokenBean>>
/**
* 刷新token
*/
@GET("/api/token/refresh")
fun tokenRefresh(): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.view.home.bean.DataBaseClassifyBean
import com.br_technology.securitytrain_master.ui.view.mine.bean.AcademicFeedbackBean
import com.br_technology.securitytrain_master.ui.view.mine.bean.AcademicFeedbackDetailBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.Field
import retrofit2.http.FormUrlEncoded
import retrofit2.http.GET
import retrofit2.http.POST
/**
* Author by YSir
* Date on 2022/1/2.
* description 培训计划
* PS: Not easy to write code, please indicate.
*/
interface TrainApi : ApiService {
/**
* 我的任务(课程)
* @param type 状态0=全部1=已完成2=未完成
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/train/train_lesson_list")
fun getTrainLessonList(
@Field("type") type: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 我的任务(练习)
* @param type 状态0=全部1=已完成2=未完成
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/train/train_practise_list")
fun getTrainPractiseList(
@Field("type") type: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 我的任务(考试)
* @param type 状态0=全部1=已完成2=未完成
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/train/train_exam_list")
fun getTrainExamList(
@Field("type") type: Int,
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 考试详情
* @param train_exam_id 考试id
*/
@FormUrlEncoded
@POST("/api/train/train_exam_detail")
fun getTrainExamDetail(
@Field("train_exam_id") train_exam_id: Int
): Observable<BaseResponse<String>>
/**
* 开始答题(练习)
* @param train_practise_id 培训计划练习id
*/
@FormUrlEncoded
@POST("/api/train/start_practise")
fun startPractise(
@Field("train_practise_id") train_practise_id: Int
): Observable<BaseResponse<String>>
/**
* 开始答题(考试)
* @param train_exam_id 培训计划考试id
*/
@FormUrlEncoded
@POST("/api/train/start_exam")
fun startExam(
@Field("train_exam_id") train_exam_id: Int
): Observable<BaseResponse<String>>
/**
* 开始答题(模拟考试)
* @param train_exam_id 配u下计划考试id
*/
@FormUrlEncoded
@POST("/api/train/start_exam_exp")
fun startExamExp(
@Field("train_exam_id") train_exam_id: Int
): Observable<BaseResponse<String>>
/**
* 学情反馈列表
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/train/train_chat_list")
fun trainChatList(
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<AcademicFeedbackBean>>
/**
* 学情反馈详情
* @param train_class_id
*/
@FormUrlEncoded
@POST("/api/train/train_chat_detail")
fun trainChatDetail(
@Field("train_class_id") train_class_id: Int
): Observable<BaseResponse<AcademicFeedbackDetailBean>>
/**
* 阅读学情反馈内容
* @param train_class_id 班级id
*/
@FormUrlEncoded
@POST("/api/train/train_chat_read")
fun trainChatRead(
@Field("train_class_id") train_class_id: Int
): Observable<BaseResponse<String>>
/**
* 成长报告
*/
@FormUrlEncoded
@POST("/api/train/train_report")
fun trainReport(): Observable<BaseResponse<String>>
/**
* 课程备份列表
*/
@FormUrlEncoded
@GET("/api/train/train_lesson_list_bak")
fun trainLessonBak(): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...
package com.br_technology.securitytrain_master.base.network.api
import com.br_technology.securitytrain_master.ui.bean.CommonBean
import com.br_technology.securitytrain_master.ui.view.login.bean.LoginBean
import com.br_technology.securitytrain_master.ui.view.mine.bean.ContactServiceBean
import com.br_technology.securitytrain_master.ui.view.mine.bean.MineInfoBean
import com.wjx.android.wanandroidmvvm.network.ApiService
import com.wjx.android.wanandroidmvvm.network.response.BaseResponse
import io.reactivex.rxjava3.core.Observable
import retrofit2.http.*
/**
* Author by YSir
* Date on 2022/1/2.
* description 会员接口
* PS: Not easy to write code, please indicate.
*/
interface UserApi : ApiService {
/**
* 会员中心
*/
@GET("/api/user/index")
fun getUserCenter(): Observable<BaseResponse<MineInfoBean>>
/**
* 会员登录
* @param account 账号
* @param password 密码
*/
@FormUrlEncoded
@POST("/api/user/login")
fun loginPwd(
@Field("account") account: String,
@Field("password") password: String
): Observable<BaseResponse<LoginBean>>
/**
* 手机验证码登录
* @param account 账号
* @param captcha 验证码
*/
@FormUrlEncoded
@POST("/api/user/mobilelogin")
fun loginCaptcha(
@Field("account") account: String,
@Field("captcha") captcha: String
): Observable<BaseResponse<LoginBean>>
/**
* 三方登录
* @param platform 平台名称
* @param code Code码
*/
@FormUrlEncoded
@POST("/api/user/third")
fun loginThird(
@Field("platform") platform: String,
): Observable<BaseResponse<LoginBean>>
/**
* 修改手机号
* @param mobile 手机号
* @param captcha 验证码
*/
@FormUrlEncoded
@POST("/api/user/changemobile")
fun changeMobile(
@Field("mobile") mobile: String,
@Field("captcha") captcha: String
): Observable<BaseResponse<CommonBean>>
/**
* 获取图片验证码
*/
@FormUrlEncoded
@POST("/api/user/base64EncodeImage")
fun changeMobile(): Observable<BaseResponse<String>>
// /**
// * 退出登录
// */
// @FormUrlEncoded
// @POST("/api/user/logout")
// fun logout(): Observable<BaseResponse<CommonBean>>
/**
* 修改会员个人信息
* @param avatar 头像图片地址
* @param nickname 昵称
* @param bio 个人简介
*/
@FormUrlEncoded
@POST("/api/user/profile")
fun setUserProfile(
@Field("avatar") avatar: String,
@Field("nickname") nickname: String,
@Field("bio") bio: String
): Observable<BaseResponse<CommonBean>>
/**
* 联系客服
*/
@FormUrlEncoded
@POST("/api/user/contact")
fun userContact(
): Observable<BaseResponse<ContactServiceBean>>
/**
* 投诉与建议(h5+app)
* @param platform string 是 平台:2=h5,3=app
* @param type string 是 投诉类型:1=功能异常,2=体验问题,3=功能建议,4=服务投诉,5=其他问题
* @param mobile string 是 手机号
* @param des string 是 描述
* @param sub_type string 否 建议类型:1=平台建议,2=企业建议
* @param images string 否 照片
* @param is_hide string 是 匿名提交:0=否,1=是
*/
@FormUrlEncoded
@POST("/api/user/feedback_m")
fun feedback(
@Field("platform") platform: String,
@Field("type") type: String,
@Field("mobile") mobile: String,
@Field("des") des: String,
@Field("sub_type") sub_type: String,
@Field("is_hide") is_hide: Int
): Observable<BaseResponse<Any>>
// /**
// * 忘记密码
// */
// @FormUrlEncoded
// @POST("/api/user/resetpwd")
// fun resetPwd(
// @Field("mobile") mobile: String, // 手机号
// @Field("captcha") captcha: String, // 验证码
// @Field("newpassword") newpassword: String, // 新密码
// @Field("confirmpassword") confirmpassword: String // 确认密码
// ): Observable<BaseResponse<CommonBean>>
// /**
// * 修改密码
// */
// @FormUrlEncoded
// @POST("/api/user/changepwd")
// fun changePwd(
// @Field("mobile") mobile: String, // 手机号
// @Field("captcha") captcha: String, // 验证码
// @Field("oldpassword") oldpassword: String, // 原密码
// @Field("newpassword") newpassword: String, // 新密码
// @Field("confirmpassword") confirmpassword: String // 确认密码
// ): Observable<BaseResponse<CommonBean>>
/**
* 收藏/取消收藏
* @param type 收藏类型:1=资料库2=文本课程
* @param favorite_id 收藏id
*/
@FormUrlEncoded
@POST("/api/user/favorite")
fun favorite(
@Field("type") type: String,
@Field("favorite_id") favorite_id: String
): Observable<BaseResponse<String>>
/**
* 我的收藏(资料)
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/user/my_favorite_material")
fun favoriteMaterial(
@Field("page") page: Int,
@Field("page_num") page_num: String
): Observable<BaseResponse<String>>
/**
* 我的收藏(文本课程)
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/user/my_favorite_lesson_word")
fun favoriteLesson(
@Field("page") page: Int,
@Field("page_num") page_num: String
): Observable<BaseResponse<String>>
/**
* 我的证件(文本课程)
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/user/my_cert")
fun certList(
@Field("page") page: Int,
@Field("page_num") page_num: String
): Observable<BaseResponse<String>>
/**
* 证件详情
* @param id 证件id
*/
@FormUrlEncoded
@POST("/api/user/my_cert_detail")
fun certDetail(
@Field("id") id: Int
): Observable<BaseResponse<String>>
/**
* 证件类型
*/
@FormUrlEncoded
@POST("/api/user/cert_list")
fun certClassify(): Observable<BaseResponse<String>>
/**
* 证件失效时间
* @param cert_id 证件类型id
* @param start_time 生效时间
*/
@FormUrlEncoded
@POST("/api/user/cert_end_time")
fun certEndTime(
@Field("cert_id") cert_id: Int,
@Field("start_time") start_time: String
): Observable<BaseResponse<String>>
/**
* 新增/重新上传证件
* @param id integer 否 证件id
* @param cert_id integer 是 证件类型id
* @param image string 是 证件照片
* @param start_time string 是 生效时间-开始时间
* @param end_time string 是 生效时间-结束时间
*/
@FormUrlEncoded
@POST("/api/user/my_cert_add")
fun certAdd(
// @Field("id") id: Int,
@Field("cert_id") cert_id: Int,
@Field("image") image: Int,
@Field("start_time") start_time: String,
@Field("end_time") end_time: String,
@FieldMap map: HashMap<String, String>
): Observable<BaseResponse<String>>
/**
* 证件变更记录
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/user/my_cert_log")
fun certLog(
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
/**
* 删除证件
* @param id 证件id
*/
@FormUrlEncoded
@POST("/api/user/my_cert_del")
fun certDel(
@Field("id") id: Int
): Observable<BaseResponse<String>>
/**
* 积分记录
* @param page 页数
* @param page_num 每页显示数量
*/
@FormUrlEncoded
@POST("/api/user/score_log")
fun scoreLog(
@Field("page") page: Int,
@Field("page_num") page_num: Int
): Observable<BaseResponse<String>>
}
\ No newline at end of file
... ...