ConsultAssistantEntryUtils.kt 6.78 KB
Newer Older
严久程 committed
1 2 3 4
package com.yidianling.consultant.modular.utils

import android.annotation.SuppressLint
import android.app.Activity
YKai committed
5
import androidx.appcompat.app.AppCompatActivity
6 7
import com.ydl.ydl_router.manager.YDLRouterManager
import com.ydl.ydl_router.manager.YDLRouterParams
严久程 committed
8
import com.ydl.ydlcommon.data.http.ThrowableConsumer
9
import com.ydl.ydlcommon.router.IYDLRouterConstant
霍志良 committed
10
import com.ydl.ydlcommon.utils.ActivityManager.Companion.getInstance
严久程 committed
11
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
12
import com.ydl.ydlnet.YDLHttpUtils
13
import com.yidianling.common.tools.LogUtil
严久程 committed
14 15
import com.yidianling.common.tools.ToastUtil
import com.yidianling.consultant.ConsultAssistantCenterActivity
16
import com.yidianling.consultant.ExpertSearchActivity
严久程 committed
17 18 19
import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.router.ConsultantIn
20
import com.yidianling.home.api.event.HomeModuleTabEvent
21
import de.greenrobot.event.EventBus
严久程 committed
22 23 24 25 26
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Consumer
import io.reactivex.schedulers.Schedulers

class ConsultAssistantEntryUtils {
严久程 committed
27
    companion object {
严久程 committed
28
        @SuppressLint("CheckResult")
29
        fun jumpConsultAssistant(activity: Activity, location: Int, ffrom2: String?) {
严久程 committed
30 31 32 33 34
            ActionCountUtils.count(
                ConsultBIConstants.POSITION_DAOYI_ADVERTISEMENT_CLICK,
                "$location"
            )

35
            if (ConsultantIn.loginByOneKeyLogin(activity, true)) {
严久程 committed
36
                // 请求接口获取咨询助理的uid
37
                YDLHttpUtils.obtainApi(SearchApi::class.java).getChatRouteConfig(location)
严久程 committed
38 39 40
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(Consumer {
41 42 43 44 45
                        /*
                        * location=1首页,3问答列表页,4我的入口,5亲子在线咨询入口,6咨询列表页导医入口,
                        * 7使用心理课进入,8使用心理课列表页进入,9测评解读页进入,10搜索页进入,11注册引导页
                        * 0小壹点击前往
                        * */
46 47 48 49
                        if (it.data == 100L && (location <= 11)) {
                            //跳转咨询tab栏目
                            if (location == 1 || location == 4 || location == 6 || location == 3) {
                                if (activity is ExpertSearchActivity && !activity.isFinishing) {
霍志良 committed
50 51
                                    activity.finish()
                                }
52 53

                                EventBus.getDefault().post(HomeModuleTabEvent(2))
54
                            } else {
55 56 57 58 59 60 61 62 63 64 65 66
                                if (activity.componentName.toString()
                                        .contains("CourseListContainerActivity")
                                ) {
                                    getInstance()
                                        .getSecondTaskActivity()?.finish()
                                    activity.finish()
                                } else {
                                    if (null != activity && !activity.isFinishing) {
                                        activity.finish()
                                    }
                                }
                                EventBus.getDefault().post(HomeModuleTabEvent(2))
67
                            }
68 69 70 71 72 73 74
                        } else if (it.data == 0L) {
                            //去前置信息收集页
                            ConsultantIn.startP2PSession(
                                activity as AppCompatActivity,
                                location,
                                ffrom2
                            )
严久程 committed
75 76 77 78 79
                        }
                    }, object : ThrowableConsumer() {
                        override fun accept(msg: String) {
                            if (null != activity && activity is ConsultAssistantCenterActivity && !activity.isFinishing) activity.finish()
                        }
严久程 committed
80
                    }
严久程 committed
81 82 83
                    )
            }

严久程 committed
84
        }
85

86 87 88 89 90
        /*
        * 根据Type0,1跳自主,2跳导医
        * 在跳自主的(type=1)情况下,点击item是跳专家详情页
        *
        * */
91
        @SuppressLint("CheckResult")
92
        fun getTypeJump(activity: Activity, location: Int, doctorUid: Int, url: String?) {
93 94 95
            SearchApi.getSearchApi().getJumpTypeRequest()
                .subscribeOn((Schedulers.io()))
                .observeOn(AndroidSchedulers.mainThread())
96 97 98 99 100
                .subscribe(Consumer {
                    when (it.code) {
                        "200" -> {
                            when (it.data) {
                                0 -> {
101 102
                                    jumpToAutoTalk(activity, doctorUid)
                                }
103 104
                                1 -> {
                                    if (url.isNullOrEmpty()) {
105
                                        jumpToAutoTalk(activity, doctorUid)
106
                                    } else {
107 108 109
                                        if (url.startsWith("http")) {
                                            YDLRouterManager.router(
                                                IYDLRouterConstant.ROUTER_H5_H5,
110 111 112 113
                                                YDLRouterParams().putExtra(
                                                    IYDLRouterConstant.EXTRA_URL,
                                                    url
                                                ), ""
114 115 116 117 118 119 120
                                            )
                                        } else {
                                            YDLRouterManager.router(url)
                                        }
                                    }

                                }
121 122
                                2 -> {
                                    jumpConsultAssistant(activity, location, null)
123
                                }
124
                                else -> {
125 126 127 128 129
                                    jumpToAutoTalk(activity, doctorUid)
                                    LogUtil.e(it.data.toString())
                                }
                            }
                        }
130
                        else -> {
131 132 133
                            ToastUtil.toastShort(it.code)
                        }
                    }
134
                }, object : ThrowableConsumer() {
135 136 137 138 139 140 141 142 143 144 145 146 147
                    override fun accept(msg: String) {
                        ToastUtil.toastShort(msg)
                    }

                })
        }

        private fun jumpToAutoTalk(activity: Activity, doctorUid: Int) {
            ConsultantIn.startP2PSession(
                activity as AppCompatActivity,
                doctorUid.toString()
            )
        }
严久程 committed
148 149
    }
}