ConfideHomeHttpImpl.kt 2.71 KB
Newer Older
洪国微 committed
1 2
package com.ydl.confide.home.http

洪国微 committed
3
import com.ydl.confide.home.bean.ConfideConnectResponse
洪国微 committed
4
import com.ydl.confide.home.bean.ConfideHomeDataBean
洪国微 committed
5
import com.ydl.confide.home.bean.ConnectParamJava
洪国微 committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlnet.YDLHttpUtils
import io.reactivex.Observable

/**
 * @author yuanwai
 * @描述:倾诉首页接口实现类
 * @Copyright Copyright (c) 2018
 * @Company 壹点灵
 * @date 2018/7/26
 */
class ConfideHomeHttpImpl private constructor(): IConfideHomeHttp{

    companion object {
        fun getInstance(): ConfideHomeHttpImpl {
            return Holder.INSTANCE
        }
    }

    object Holder {
        val INSTANCE = ConfideHomeHttpImpl()
    }

    private val confideHomeApi: ConfideHomeApi by lazy {
        YDLHttpUtils.obtainApi(ConfideHomeApi::class.java)
    }

    override fun confideHomeRequest(): Observable<BaseAPIResponse<MutableList<ConfideHomeDataBean>>> {
        return RxUtils.mapObservable(ConfideHomeParam(0))
                .flatMap {
洪国微 committed
38
                    confideHomeApi.confideHome(HttpConfig.JAVA_BASE_URL+"auth/listen/home")
洪国微 committed
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
        }
    }

    override fun recommendList(param : ConfideRecommendParam): Observable<BaseAPIResponse<ConfideHomeDataBean>> {

        var inuid = StringBuffer()
        if (param != null && param.notInUid != null){
            for (i in param.notInUid.indices) {
                inuid.append(param.notInUid[i])
                if(i<param.notInUid.size-1){
                    inuid.append(",")
                }
            }
        }

        val sb = StringBuffer()
        sb.append("page").append("=").append(param.page).append("&")
                .append("sortType").append("=").append(param.getSortType()).append("&")
                .append("sexType").append("=").append(param.getSexType()).append("&")
                .append("ageType").append("=").append(param.getAgeType()).append("&")
                .append("goodType").append("=").append(param.getGoodType()).append("&")
                .append("notInUid").append("=").append(inuid.toString()).append("&")
        val confideParam = sb.toString()
        return RxUtils.mapObservable(param)
                .flatMap {
洪国微 committed
64
                    confideHomeApi.recommedChange(HttpConfig.JAVA_BASE_URL + "auth/listen/search?"+confideParam)
洪国微 committed
65 66
                }
    }
洪国微 committed
67 68 69 70 71 72 73 74

    override fun connectionJava(connectParam: ConnectParamJava): Observable<BaseAPIResponse<ConfideConnectResponse>> {
        return RxUtils.mapObservable(connectParam)
                .flatMap {
                    it->
                    YDLHttpUtils.obtainApi(ConfideHomeApi::class.java).connectJava(it)
                }
    }
洪国微 committed
75
}