AppRepository.kt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package vn.hongyegroup.yybusiness.mvvm
  2. import com.android.basiclib.base.vm.BaseRepository
  3. import com.android.basiclib.bean.BaseBean
  4. import com.android.basiclib.bean.OkResult
  5. import com.android.basiclib.bean.PageInfo
  6. import com.android.basiclib.engine.network.httpRequest
  7. import com.android.basiclib.utils.CheckUtil
  8. import com.android.basiclib.utils.log.MyLogUtils
  9. import okhttp3.MediaType
  10. import okhttp3.MultipartBody
  11. import okhttp3.RequestBody
  12. import vn.hongyegroup.yybusiness.entity.AttendanceBean
  13. import vn.hongyegroup.yybusiness.entity.CheckInOut
  14. import vn.hongyegroup.yybusiness.entity.LoginBean
  15. import vn.hongyegroup.yybusiness.http.AppRetrofit
  16. import java.io.File
  17. import javax.inject.Inject
  18. import javax.inject.Singleton
  19. @Singleton
  20. class AppRepository @Inject constructor() : BaseRepository() {
  21. /**
  22. * 登录
  23. */
  24. suspend inline fun requestLogin(code: String, password: String, registerId: String?): OkResult<LoginBean> {
  25. val params = hashMapOf<String, String>()
  26. params["code"] = code
  27. params["password"] = password
  28. if (!CheckUtil.isEmpty(registerId)) {
  29. params["register_id"] = registerId!!
  30. }
  31. MyLogUtils.w("请求参数:$params")
  32. return httpRequest {
  33. AppRetrofit.apiService.requestLogin(params)
  34. }
  35. }
  36. /**
  37. * 登出
  38. */
  39. suspend inline fun requestLogout(token: String): OkResult<Boolean> {
  40. MyLogUtils.w("请求参数,token:$token")
  41. return httpRequest {
  42. AppRetrofit.apiService.requestLogout(token)
  43. }
  44. }
  45. /**
  46. * 获取考勤成员列表
  47. */
  48. suspend inline fun fetchAppliedList(
  49. token: String,
  50. keyword: String?,
  51. startDate: String,
  52. endDate: String
  53. ): OkResult<PageInfo<AttendanceBean>> {
  54. val params = hashMapOf<String, String>()
  55. params["token"] = token
  56. params["cur_page"] = "1"
  57. params["page_size"] = "9999"
  58. if (!CheckUtil.isEmpty(keyword)) {
  59. params["keyword"] = keyword!!
  60. }
  61. if (!CheckUtil.isEmpty(startDate)) {
  62. params["start_date"] = startDate
  63. }
  64. if (!CheckUtil.isEmpty(endDate)) {
  65. params["end_date"] = endDate
  66. }
  67. return httpRequest {
  68. AppRetrofit.apiService.fetchAppliedList(params)
  69. }
  70. }
  71. /**
  72. * 签到签出
  73. */
  74. suspend inline fun requestCheckInOut(
  75. token: String,
  76. appliedId: String,
  77. isCheckIn: Boolean,
  78. path: String?
  79. ): OkResult<CheckInOut> {
  80. val builder = MultipartBody.Builder()
  81. builder.setType(MultipartBody.FORM)
  82. builder.addFormDataPart("token", token)
  83. builder.addFormDataPart("applied_id", appliedId)
  84. builder.addFormDataPart("check_type", if (isCheckIn) "1" else "2")
  85. if (!CheckUtil.isEmpty(path)) {
  86. val file = File(path!!)
  87. val imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file)
  88. builder.addFormDataPart("capture", file.name, imageBody)
  89. }
  90. val parts = builder.build().parts()
  91. return httpRequest {
  92. AppRetrofit.apiService.checkInOrOut(parts)
  93. }
  94. }
  95. }