Newer
Older
CasicSmartTube / app / src / main / java / com / casic / smarttube / retrofit / RetrofitService.kt
package com.casic.smarttube.retrofit

import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.http.*


interface RetrofitService {
    /**
     * PublicKey校验
     */
    @GET("/config/baseConfig")
    suspend fun obtainPublicKey(): String

    /**
     * 登录并获取Token
     *
     * @param sid
     * @param account 用户名
     * @param secretKey 加密后的密码
     */
    @FormUrlEncoded
    @POST("/user/login")
    suspend fun obtainLoginResult(
        @Field("sid") sid: String,
        @Field("username") account: String,
        @Field("password") secretKey: String
    ): String

    /**
     * 退出登录
     */
    @GET("/user/logout")
    suspend fun loginOut(@Header("token") token: String): String

    /**
     * 获取用户信息
     */
    @GET("/user/info")
    suspend fun obtainUserDetail(@Header("token") token: String): String

    /**
     * 修改密码
     *
     * @param oldPwd 旧密码
     * @param newPwd 新密码
     */
    @FormUrlEncoded
    @POST("/mgr/changePwd")
    suspend fun changePassword(
        @Header("token") token: String,
        @Field("oldPwd") oldPwd: String,
        @Field("newPwd") newPwd: String
    ): String

    /**
     * 上传图片
     * 系统路径static拼接图片返回路径
     * http://xx.com/static/2019-10/8050891248624f2bbefedcb196ce89cb.jpeg
     */
    @Multipart
    @POST("/imageUpload")
    suspend fun uploadImage(
        @Header("token") token: String,
        @Part file: MultipartBody.Part
    ): String

    /**
     * 更新APK版本
     */
    @POST("/app/checkVersion")
    suspend fun obtainVersionResult(@Header("token") token: String): String

    /**
     * 地图设备列表
     */
    @GET("/tube/well/list")
    suspend fun obtainMapDeviceList(@Header("token") token: String): String

    /**
     * 项目列表
     */
    @GET("/tube/groups/list")
    suspend fun obtainProGroupList(@Header("token") token: String): String

    /**
     * 根据项目ID查询该项目下的设备列表
     */
    @GET("/tube/groupdevice/list")
    suspend fun obtainDeviceListByGroup(
        @Header("token") token: String,
        @Query("wellGroupId") wellGroupId: String
    ): String

    /**
     * 获取设备分页列表
     * */
    @GET("/tube/groupdevice/listpage")
    suspend fun obtainDeviceListByPage(
        @Header("token") token: String,
        @Query("wellGroupId") wellGroupId: String?,
        @Query("order") order: Int,
        @Query("offset") offset: Int,
        @Query("limit") limit: Int
    ): String

    /**
     * 获取设备详情
     *
     * @param wellGroupId 组
     * @param devcode 管盯设备编号
     */
    @GET("/tube/detail")
    suspend fun obtainDeviceDetail(
        @Header("token") token: String,
        @Query("wellGroupId") wellGroupId: String,
        @Query("devcode") devcode: String
    ): String

    /**
     * 根据部门获取区ID
     *
     * @param deptId
     */
    @GET("/config/getAreaByDept")
    suspend fun obtainAreaByDept(
        @Header("token") token: String,
        @Query("deptId") deptId: String
    ): String

    /**
     * 获取区/县等
     *
     * @param pid
     */
    @GET("/area/list")
    suspend fun obtainDistrict(
        @Header("token") token: String,
        @Query("pid") pid: String
    ): String

    /**
     * 获取街道
     *
     * @param pid
     */
    @GET("/area/list")
    suspend fun obtainStreet(
        @Header("token") token: String,
        @Query("pid") pid: String
    ): String

    /**
     * 获取管盯历史数据
     * */
    @GET("/tube/groupdevice/history")
    suspend fun obtainDeviceHistoryData(
        @Header("token") token: String,
        @Query("wellGroupId") wellGroupId: String,
        @Query("devcode") devcode: String?,
        @Query("beginTime") beginTime: String?,
        @Query("endTime") endTime: String?
    ): String

    /**
     * 获取设备最新数据
     *
     * @param wellGroupId 管盯设备编号
     */
    @GET("/tube/latestdata")
    suspend fun obtainTubeLastData(
        @Header("token") token: String,
        @Query("wellGroupId") wellGroupId: String,
        @Query("devcode") devcode: String
    ): String

    /**
     * 查询工单
     * */
    @POST("/tube/qrcode-entry/add")
    suspend fun addDevice(
        @Header("token") token: String,
        @Body requestBody: RequestBody
    ): String

    /**
     * 获取项目编号列表
     */
    @GET("/tube/groupdict")
    suspend fun obtainGroupList(
        @Header("token") token: String
    ): String

    /**
     * 修改项目编号
     */
    @GET("/tube/group/edit")
    suspend fun changeGroupId(
        @Header("token") token: String,
        @Query("oldGroupName") oldGroupId: String,
        @Query("newGroupName") newGroupId: String
    ): String

    /**
     * 删除设备
     * */
    @POST("/tube/batch/delete")
    suspend fun deleteDeviceById(
        @Header("token") token: String,
        @Body requestBody: RequestBody
    ): String
}