| | |
| | | package com.example.firstapp.database.service |
| | | |
| | | import TokenResponse |
| | | import com.example.firstapp.database.entity.ApiResponse |
| | | import com.example.firstapp.database.entity.KeywordConfig |
| | | import com.example.firstapp.database.request.ProductOrdersRequest |
| | | import com.example.firstapp.database.request.SmsLoginRequest |
| | | import com.example.firstapp.database.request.SmsSendRequest |
| | | import com.example.firstapp.database.response.AlipayOrderInfoResponse |
| | | import com.example.firstapp.database.response.ContentResponse |
| | | import com.example.firstapp.database.response.DictResponse |
| | | import com.example.firstapp.database.response.LoginResponse |
| | | import com.example.firstapp.database.response.SecurityResponse |
| | | import com.example.firstapp.database.response.SmsProcessResponse |
| | | import com.example.firstapp.database.response.UserInfo |
| | | import com.example.firstapp.model.CategoryConfig |
| | | import com.example.firstapp.model.CategoryConfigSync |
| | | import com.example.firstapp.network.AuthInterceptor |
| | | import okhttp3.MultipartBody |
| | | import okhttp3.OkHttpClient |
| | | import okhttp3.RequestBody |
| | | import retrofit2.Retrofit |
| | | import retrofit2.converter.gson.GsonConverterFactory |
| | | import retrofit2.http.Body |
| | | import retrofit2.http.GET |
| | | import retrofit2.http.Multipart |
| | | import retrofit2.http.POST |
| | | import retrofit2.http.Part |
| | | import retrofit2.http.Path |
| | | import retrofit2.http.Query |
| | | import retrofit2.http.Body |
| | | import java.util.concurrent.TimeUnit |
| | | |
| | | /** |
| | | * API调用接口 |
| | |
| | | @GET("keywords") |
| | | suspend fun getKeywords():ApiResponse<List<KeywordConfig>> //异步挂起 |
| | | |
| | | @GET("cloudContent/getByType") |
| | | suspend fun getContentByType(@Query("type") type: String): ContentResponse |
| | | @GET("api/config/content/list/view") |
| | | suspend fun getContentById(@Query("id") id: String): ContentResponse |
| | | |
| | | @GET("sysDict/getByDictCodeAndItemText") |
| | | suspend fun getDictValue(@Query("dictCode") dictCode: String, @Query("itemText") itemText: String): DictResponse |
| | | |
| | | @POST("sms/send-code") |
| | | suspend fun sendVerificationCode(@Query("phone") phone: String): LoginResponse |
| | | // 发送短信验证码 |
| | | @POST("api/sms/send/code") |
| | | suspend fun sendVerificationCode(@Body request: SmsSendRequest): LoginResponse |
| | | |
| | | @POST("sms/login") |
| | | suspend fun verifyCode(@Query("phone") phone: String, @Query("code") code: String): LoginResponse |
| | | // 验证短信验证码 |
| | | @POST("api/login/customer/phone/v2") |
| | | suspend fun verifyCode(@Body request: SmsLoginRequest): TokenResponse |
| | | |
| | | @GET("config-security/enable-list-all") |
| | | suspend fun getSecurityList(): SecurityResponse |
| | | |
| | | @GET("alipay/pay-order-info") |
| | | suspend fun getPayOrderInfo(): AlipayOrderInfoResponse |
| | | @POST("v2/alipay/pay-order-info") |
| | | suspend fun getPayOrderInfo(@Body request: ProductOrdersRequest): AlipayOrderInfoResponse |
| | | |
| | | @GET("flower/api/supplier/info/{phone}") |
| | | // 获取用户信息 |
| | | @GET("api/customer/info/{phone}") |
| | | suspend fun getUserInfo(@Path("phone") phone: String): ApiResponse<UserInfo> |
| | | |
| | | @Multipart |
| | | @POST("api/supplier/operation/update") |
| | | @POST("flower/api/supplier/operation/update") |
| | | suspend fun updateProfile( |
| | | @Part("nickname") nickname: RequestBody, |
| | | @Part avatar: MultipartBody.Part? |
| | | ): ApiResponse<Unit> |
| | | |
| | | @POST("process-sms") |
| | | suspend fun processSms(@Body body: Map<String, String>): SmsProcessResponse |
| | | |
| | | fun getUserCategories(currentUserId: String): List<CategoryConfig> |
| | | |
| | | fun saveUserCategories(categoryConfigSync: CategoryConfigSync) |
| | | |
| | | } |
| | | |
| | | // 创建Retrofit实例(单例) |
| | | object RetrofitClient{ |
| | | |
| | | // private const val BASE_URL ="http://192.168.1.213:8888/jshERP-boot/" |
| | | private const val BASE_URL ="http://192.168.1.213:5000/" |
| | | private const val BASE_URL ="http://192.168.1.213:8080/flower/" |
| | | |
| | | // 创建OkHttpClient,配置拦截器和超时时间 |
| | | private val okHttpClient = OkHttpClient.Builder() |
| | | .addInterceptor(AuthInterceptor()) |
| | | .connectTimeout(30, TimeUnit.SECONDS) |
| | | .readTimeout(30, TimeUnit.SECONDS) |
| | | .writeTimeout(30, TimeUnit.SECONDS) |
| | | .build() |
| | | |
| | | |
| | | //添加Gson解析器,用于自动将JSON响应转换为Kotlin/Java对象 |
| | | private val retrofit = Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build() |
| | | private val retrofit = Retrofit |
| | | .Builder() |
| | | .client(okHttpClient) |
| | | .baseUrl(BASE_URL) |
| | | .addConverterFactory(GsonConverterFactory.create()) |
| | | .build() |
| | | |
| | | //通过动态代理技术创建ApiService接口的具体实现类 |
| | | val apiService:ApiService = retrofit.create(ApiService::class.java) |
| | | |
| | | } |
| | | } |