Commit 0b9cc604 by YKai

feat:增加擅长人群标签,修改cate_id字段数据类型,升级相关组件

parent 257a75dc
...@@ -20,8 +20,8 @@ import java.util.List; ...@@ -20,8 +20,8 @@ import java.util.List;
public final class DemoGlobalConfig implements IConfigModule { public final class DemoGlobalConfig implements IConfigModule {
String APP_DOMAIN = "https://api.github.com/"; String APP_DOMAIN = "https://api.github.com/";
// public static String appEnv = YDLConstants.ENV_AUTO_TEST; // public static String appEnv = YDLConstants.ENV_AUTO_TEST;
// public static String appEnv = YDLConstants.ENV_TEST; public static String appEnv = YDLConstants.ENV_TEST;
public static String appEnv = YDLConstants.ENV_PROD; // public static String appEnv = YDLConstants.ENV_PROD;
@Override @Override
public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) { public void injectAppLifecycle(@NotNull Context context, @NotNull List<IAppLifecycles> lifecycles) {
......
...@@ -6,12 +6,12 @@ ext { ...@@ -6,12 +6,12 @@ ext {
// -------------- 业务模块 -------------- // -------------- 业务模块 --------------
//第三步 若干 //第三步 若干
"m-confide" : "0.0.49.09", "m-confide" : "0.0.49.09",
"m-consultant" : "0.0.59.79", "m-consultant" : "0.0.59.81",
"m-fm" : "0.0.30.03", "m-fm" : "0.0.30.03",
"m-user" : "0.0.61.36", "m-user" : "0.0.61.36",
"m-home" : "0.0.22.64", "m-home" : "0.0.22.65",
"m-im" : "0.0.19.22", "m-im" : "0.0.19.23",
"m-dynamic" : "0.0.7.22", "m-dynamic" : "0.0.7.24",
"m-article" : "0.0.0.8", "m-article" : "0.0.0.8",
"m-muse" : "0.0.28.22", "m-muse" : "0.0.28.22",
...@@ -21,7 +21,7 @@ ext { ...@@ -21,7 +21,7 @@ ext {
//-------------- 业务模块 API 层 -------------- //-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.6", "m-audioim-api" : "0.0.6",
"m-confide-api" : "0.0.2.11", "m-confide-api" : "0.0.2.11",
"m-consultant-api": "0.0.5.62", "m-consultant-api": "0.0.5.63",
"m-course-api" : "0.0.3.6", "m-course-api" : "0.0.3.6",
"m-fm-api" : "0.0.3", "m-fm-api" : "0.0.3",
"m-muse-api" : "0.0.1", "m-muse-api" : "0.0.1",
...@@ -89,12 +89,12 @@ ext { ...@@ -89,12 +89,12 @@ ext {
//第三步 若干 //第三步 若干
"m-confide" : "0.0.49.09", "m-confide" : "0.0.49.09",
"m-consultant" : "0.0.59.79", "m-consultant" : "0.0.59.81",
"m-fm" : "0.0.30.01", "m-fm" : "0.0.30.01",
"m-user" : "0.0.61.36", "m-user" : "0.0.61.36",
"m-home" : "0.0.22.64", "m-home" : "0.0.22.65",
"m-im" : "0.0.19.22", "m-im" : "0.0.19.23",
"m-dynamic" : "0.0.7.22", "m-dynamic" : "0.0.7.24",
"m-article" : "0.0.0.8", "m-article" : "0.0.0.8",
"m-muse" : "0.0.20.7", "m-muse" : "0.0.20.7",
...@@ -102,8 +102,8 @@ ext { ...@@ -102,8 +102,8 @@ ext {
"m-course" : "0.0.42.62", "m-course" : "0.0.42.62",
//-------------- 业务模块 API 层 -------------- //-------------- 业务模块 API 层 --------------
"m-audioim-api" : "0.0.6", "m-audioim-api" : "0.0.6",
"m-confide-api" : "0.0.2.1", "m-confide-api" : "0.0.2.11",
"m-consultant-api": "0.0.5.62", "m-consultant-api": "0.0.5.63",
"m-course-api" : "0.0.3.6", "m-course-api" : "0.0.3.6",
"m-fm-api" : "0.0.3", "m-fm-api" : "0.0.3",
"m-muse-api" : "0.0.1", "m-muse-api" : "0.0.1",
...@@ -133,7 +133,7 @@ ext { ...@@ -133,7 +133,7 @@ ext {
dependencies = [ dependencies = [
//support //support
"appcompat-v7" : 'androidx.appcompat:appcompat:1.2.0', "appcompat-v7" : 'androidx.appcompat:appcompat:1.2.0',
"design" : 'com.google.android.material:material:1.0.0', "design" : 'com.google.android.material:material:1.3.0',
"support-v4" : 'androidx.legacy:legacy-support-v4:1.0.0', "support-v4" : 'androidx.legacy:legacy-support-v4:1.0.0',
"cardview-v7" : 'androidx.cardview:cardview:1.0.0', "cardview-v7" : 'androidx.cardview:cardview:1.0.0',
"annotations" : "androidx.annotation:annotation:1.0.0", "annotations" : "androidx.annotation:annotation:1.0.0",
......
...@@ -6,10 +6,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN ...@@ -6,10 +6,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN
import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import com.ydl.ydlcommon.data.http.BaseAPIResponse import com.ydl.ydlcommon.data.http.BaseAPIResponse
import io.reactivex.Observable import io.reactivex.Observable
import retrofit2.http.GET import retrofit2.http.*
import retrofit2.http.Headers
import retrofit2.http.QueryMap
import retrofit2.http.Url
/** /**
* @author yuanwai * @author yuanwai
...@@ -22,7 +19,7 @@ interface ConfideHomeApi{ ...@@ -22,7 +19,7 @@ interface ConfideHomeApi{
//倾诉首页 //倾诉首页
@Headers( YDL_DOMAIN + YDL_DOMAIN_JAVA,"Content-Type:application/json") @Headers( YDL_DOMAIN + YDL_DOMAIN_JAVA,"Content-Type:application/json")
@GET @GET
fun confideHome(@Url url: String): Observable<BaseAPIResponse<MutableList<ConfideHomeDataBean>>> fun confideHome(@Url url: String,@Query("cateSource") cateSource:Int): Observable<BaseAPIResponse<MutableList<ConfideHomeDataBean>>>
//每日精选 换一批 //每日精选 换一批
@Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json") @Headers( YDL_DOMAIN+ YDL_DOMAIN_JAVA,"Content-Type:application/json")
......
...@@ -35,7 +35,7 @@ class ConfideHomeHttpImpl private constructor(): IConfideHomeHttp{ ...@@ -35,7 +35,7 @@ class ConfideHomeHttpImpl private constructor(): IConfideHomeHttp{
override fun confideHomeRequest(): Observable<BaseAPIResponse<MutableList<ConfideHomeDataBean>>> { override fun confideHomeRequest(): Observable<BaseAPIResponse<MutableList<ConfideHomeDataBean>>> {
return RxUtils.mapObservable(ConfideHomeParam(0)) return RxUtils.mapObservable(ConfideHomeParam(0))
.flatMap { .flatMap {
confideHomeApi.confideHome(HttpConfig.JAVA_BASE_URL+"auth/listen/home") confideHomeApi.confideHome(HttpConfig.JAVA_BASE_URL+"auth/listen/home",2)
} }
} }
......
...@@ -48,7 +48,6 @@ import com.yidianling.consultant.listener.OnFilterConfirmListener ...@@ -48,7 +48,6 @@ import com.yidianling.consultant.listener.OnFilterConfirmListener
import com.yidianling.consultant.listener.OnSortItemSelectedListener import com.yidianling.consultant.listener.OnSortItemSelectedListener
import com.yidianling.consultant.model.bean.* import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils.Companion.REALATION_EDUCATION
import com.yidianling.consultant.router.ConsultantIn import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.consultant.ui.view.AreaPopupWindow import com.yidianling.consultant.ui.view.AreaPopupWindow
import com.yidianling.consultant.ui.view.CategoryPopupWindow import com.yidianling.consultant.ui.view.CategoryPopupWindow
...@@ -70,8 +69,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -70,8 +69,8 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
View.OnClickListener, IExpertSearchView, View.OnClickListener, IExpertSearchView,
OnCategoriesSelectedListener, OnSortItemSelectedListener, OnFilterConfirmListener, OnCategoriesSelectedListener, OnSortItemSelectedListener, OnFilterConfirmListener,
SwipeRefreshLayout.OnRefreshListener { SwipeRefreshLayout.OnRefreshListener {
private lateinit var mContext:Context private lateinit var mContext: Context
private lateinit var mActivity:FragmentActivity private lateinit var mActivity: FragmentActivity
override fun layoutResId(): Int { override fun layoutResId(): Int {
return R.layout.consultant_activity_expert_search_list return R.layout.consultant_activity_expert_search_list
...@@ -154,7 +153,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -154,7 +153,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private val doctorList = ArrayList<DoctorServiceItem>() private val doctorList = ArrayList<DoctorServiceItem>()
private val serviceList = ArrayList<DoctorServiceItem>() private val serviceList = ArrayList<DoctorServiceItem>()
private var hasMore = true private var hasMore = true
private var initCategory: Int = 0 private var initCategory = "0"
private var initShowType: Int = 0 private var initShowType: Int = 0
private lateinit var doctorAdapter: ExpertSearchAdapter private lateinit var doctorAdapter: ExpertSearchAdapter
private lateinit var onScrollListener: EndlessRecyclerViewScrollListener private lateinit var onScrollListener: EndlessRecyclerViewScrollListener
...@@ -181,7 +180,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -181,7 +180,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
btn_call.setOnClickListener(this) btn_call.setOnClickListener(this)
tv_guide.setOnClickListener(this) tv_guide.setOnClickListener(this)
rl_search.setOnClickListener(this) rl_search.setOnClickListener(this)
srlContainer.setColorSchemeColors(ContextCompat.getColor(mActivity, R.color.platform_main_theme)) srlContainer.setColorSchemeColors(
ContextCompat.getColor(
mActivity,
R.color.platform_main_theme
)
)
srlContainer.setProgressViewOffset(false, 0, 200) srlContainer.setProgressViewOffset(false, 0, 200)
srlContainer.setOnRefreshListener(this) srlContainer.setOnRefreshListener(this)
initNetLossView() initNetLossView()
...@@ -395,7 +399,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -395,7 +399,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
override fun onHeadFetched(headData: HeadData?) { override fun onHeadFetched(headData: HeadData?) {
//头部数据获取到后初始化筛选数据 //头部数据获取到后初始化筛选数据
this.headData = headData this.headData = headData
if (initCategory != 0) { if (initCategory != "0") {
if (headData?.cates != null) { if (headData?.cates != null) {
for (cate in headData.cates) { for (cate in headData.cates) {
if (cate.cateId == initCategory) { if (cate.cateId == initCategory) {
...@@ -413,7 +417,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -413,7 +417,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
} }
} }
} }
initCategory = 0 initCategory = "0"
} else { } else {
allFilter.categories.clear() allFilter.categories.clear()
allFilter.categories.add(headData?.cates?.get(0) ?: CateItem()) allFilter.categories.add(headData?.cates?.get(0) ?: CateItem())
...@@ -483,7 +487,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -483,7 +487,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
for (bean in headData?.cates!!) { for (bean in headData?.cates!!) {
if (TextUtils.equals(hotData.id, bean.cateId.toString())) { if (TextUtils.equals(hotData.id, bean.cateId.toString())) {
if (isAdd) { if (isAdd) {
if (allFilter.categories.size == 1 && allFilter.categories[0].cateId == 0) { if (allFilter.categories.size == 1 && allFilter.categories[0].cateId == "0") {
allFilter.categories.clear() allFilter.categories.clear()
} }
allFilter.categories.add(bean) allFilter.categories.add(bean)
...@@ -958,6 +962,9 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -958,6 +962,9 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
tempFilter.ages.addAll(allFilter.ages) tempFilter.ages.addAll(allFilter.ages)
tempFilter.enquiries.clear() tempFilter.enquiries.clear()
tempFilter.enquiries.addAll(allFilter.enquiries) tempFilter.enquiries.addAll(allFilter.enquiries)
// 擅长人群添加数据
tempFilter.specialityCrowd.clear()
tempFilter.specialityCrowd.addAll(allFilter.specialityCrowd)
tempFilter.others.clear() tempFilter.others.clear()
tempFilter.others.addAll(allFilter.others) tempFilter.others.addAll(allFilter.others)
tempFilter.priceRanges = allFilter.priceRanges tempFilter.priceRanges = allFilter.priceRanges
...@@ -966,7 +973,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -966,7 +973,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
if (headData?.filters != null) { if (headData?.filters != null) {
val filterPopupWindow = FilterPopupWindow(mContext, headData?.filters!!, tempFilter) val filterPopupWindow = FilterPopupWindow(mContext, headData?.filters!!, tempFilter)
filterPopupWindow.setOnDismissListener { filterPopupWindow.setOnDismissListener {
// viewDim.visibility = View.INVISIBLE viewDim.visibility = View.INVISIBLE
viewDim_filter.visibility = View.GONE viewDim_filter.visibility = View.GONE
if (allFilter.others.size + allFilter.enquiries.size + allFilter.ages.size + allFilter.title.size > 0 || !TextUtils.isEmpty( if (allFilter.others.size + allFilter.enquiries.size + allFilter.ages.size + allFilter.title.size > 0 || !TextUtils.isEmpty(
allFilter.priceRanges?.minPrice allFilter.priceRanges?.minPrice
...@@ -979,12 +986,11 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -979,12 +986,11 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
showConsultAssistantDialog() showConsultAssistantDialog()
} }
filterPopupWindow.isClippingEnabled = false filterPopupWindow.isClippingEnabled = false
filterPopupWindow.showAtLocation(viewSep2.rootView, Gravity.TOP + Gravity.RIGHT, 0, 0) filterPopupWindow.showAsDropDown(viewSep2)
hideConsultAssistantDialog() hideConsultAssistantDialog()
filterPopupWindow.onFilterConfirmListener = this filterPopupWindow.onFilterConfirmListener = this
updateFilterTextViewStatus(tvFilter, FILTER_STATUS_OPEN) updateFilterTextViewStatus(tvFilter, FILTER_STATUS_OPEN)
// viewDim.visibility = View.VISIBLE viewDim.visibility = View.VISIBLE
viewDim_filter.visibility = View.VISIBLE
} else { } else {
ToastUtil.toastShort("数据初始化失败,请重试") ToastUtil.toastShort("数据初始化失败,请重试")
getPresenter().fetchListHead() getPresenter().fetchListHead()
...@@ -995,15 +1001,18 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -995,15 +1001,18 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
override fun onFilterConfirmed() { override fun onFilterConfirmed() {
updateFilterTextViewStatus(tvFilter, FILTER_STATUS_OPEN) updateFilterTextViewStatus(tvFilter, FILTER_STATUS_OPEN)
LogUtil.d( LogUtil.d(
"filter: " + tempFilter.showType.value + "," + tempFilter.enquiries.map { it.value }.joinToString( "filter: " + tempFilter.showType.value + "," + tempFilter.enquiries.map { it.value }
"," .joinToString(
) + "," + tempFilter.ages.map { it.value }.joinToString(",") + "," + tempFilter.others.map { it.value }.joinToString( ","
) + "," + tempFilter.ages.map { it.value }
.joinToString(",") + "," + tempFilter.others.map { it.value }.joinToString(
"," ","
) )
) )
props1.put( props1.put(
"filtrate_second", "filtrate_second",
tempFilter.showType.value + "," + tempFilter.enquiries.map { it.value }.joinToString(",") + "," + tempFilter.ages.map { it.value }.joinToString( tempFilter.showType.value + "," + tempFilter.enquiries.map { it.value }
.joinToString(",") + "," + tempFilter.ages.map { it.value }.joinToString(
"," ","
) + "," + tempFilter.others.map { it.value }.joinToString(",") ) + "," + tempFilter.others.map { it.value }.joinToString(",")
) )
...@@ -1015,6 +1024,10 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1015,6 +1024,10 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
allFilter.enquiries.addAll(tempFilter.enquiries) allFilter.enquiries.addAll(tempFilter.enquiries)
allFilter.ages.clear() allFilter.ages.clear()
allFilter.ages.addAll(tempFilter.ages) allFilter.ages.addAll(tempFilter.ages)
// 擅长人群
allFilter.specialityCrowd.clear()
allFilter.specialityCrowd.addAll(tempFilter.specialityCrowd)
// 其它
allFilter.others.clear() allFilter.others.clear()
allFilter.others.addAll(tempFilter.others) allFilter.others.addAll(tempFilter.others)
allFilter.title.clear() allFilter.title.clear()
...@@ -1350,7 +1363,6 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1350,7 +1363,6 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
//如果是亲自教育类别----->点击咨询顾问---会跳转到一个只是亲自教育的导医队列中 //如果是亲自教育类别----->点击咨询顾问---会跳转到一个只是亲自教育的导医队列中
//判断主题选中,判断热门筛选中是否也有该主题 //判断主题选中,判断热门筛选中是否也有该主题
Executors.newCachedThreadPool().execute { Executors.newCachedThreadPool().execute {
if (headData!!.highlighter.size > 0) { if (headData!!.highlighter.size > 0) {
...@@ -1483,7 +1495,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1483,7 +1495,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
FILTER_STATUS_OPEN -> { FILTER_STATUS_OPEN -> {
tv.typeface = Typeface.DEFAULT_BOLD tv.typeface = Typeface.DEFAULT_BOLD
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault)) tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault))
tv.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.platform_arrow_drop_down_en, 0) tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_arrow_drop_down_en,
0
)
} }
} }
} }
......
...@@ -11,7 +11,6 @@ import com.ydl.ydlcommon.utils.RxLifecycleUtils ...@@ -11,7 +11,6 @@ import com.ydl.ydlcommon.utils.RxLifecycleUtils
import com.ydl.ydlcommon.utils.YDLAsyncUtils import com.ydl.ydlcommon.utils.YDLAsyncUtils
import com.ydl.ydlcommon.utils.YDLCacheUtils import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.remind.HttpErrorUtils import com.ydl.ydlcommon.utils.remind.HttpErrorUtils
import com.yidianling.common.tools.LogUtil
import com.yidianling.consultant.http.ExpertSearchDataManager import com.yidianling.consultant.http.ExpertSearchDataManager
import com.yidianling.consultant.model.SearchApi import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.AllFilter import com.yidianling.consultant.model.bean.AllFilter
...@@ -29,8 +28,8 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -29,8 +28,8 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
fun fetchListHead() { fun fetchListHead() {
SearchApi.getSearchApi() SearchApi.getSearchApi()
.searchConditions() .searchConditions(2)
.compose(RxLifecycleUtils.bindToLifecycle(mView!!))//使用 Rxlifecycle,使 Disposable 和 Activity 一起销毁 .compose(RxLifecycleUtils.bindToLifecycle(mView))//使用 Rxlifecycle,使 Disposable 和 Activity 一起销毁
.compose(RxUtils.resultJavaData()) .compose(RxUtils.resultJavaData())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -106,7 +105,7 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -106,7 +105,7 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
fun fetchListData(allFilter: AllFilter, page: Int) { fun fetchListData(allFilter: AllFilter, page: Int) {
//是否亲子教育字段 //是否亲子教育字段
ConsultAssistantDialogUtils.REALATION_EDUCATION = allFilter.categories.size==1&&allFilter.categories[0].cateId==23 ConsultAssistantDialogUtils.REALATION_EDUCATION = allFilter.categories.size==1&&allFilter.categories[0].cateId=="23"
var showType = 0 var showType = 0
val sb = StringBuffer() val sb = StringBuffer()
...@@ -133,6 +132,10 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -133,6 +132,10 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
if (allFilter.ages.isNotEmpty()) { if (allFilter.ages.isNotEmpty()) {
sb.append("&ages=").append(allFilter.ages.map { it.key }.joinToString(",")) sb.append("&ages=").append(allFilter.ages.map { it.key }.joinToString(","))
} }
// 擅长人群拼接
if (allFilter.specialityCrowd.isNotEmpty()){
sb.append("&crowdsTags=").append(allFilter.specialityCrowd.map { it.key }.joinToString(","))
}
if (allFilter.others.isNotEmpty()) { if (allFilter.others.isNotEmpty()) {
sb.append("&others=").append(allFilter.others.map { it.key }.joinToString(",")) sb.append("&others=").append(allFilter.others.map { it.key }.joinToString(","))
} }
...@@ -149,18 +152,18 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -149,18 +152,18 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
} }
sb.append("&page=").append(page) sb.append("&page=").append(page)
ExpertSearchDataManager.getHttp().searchDoctor(sb.toString()) ExpertSearchDataManager.getHttp().searchDoctor(sb.toString())
.compose(RxLifecycleUtils.bindToLifecycle(mView!!)) .compose(RxLifecycleUtils.bindToLifecycle(mView))
.compose(RxUtils.resultJavaData()) .compose(RxUtils.resultJavaData())
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(Consumer { .subscribe(Consumer {
if (null != it.list && !it.list!!.isEmpty()) { if (null != it.list && it.list.isNotEmpty()) {
// if (showType == 0) { // if (showType == 0) {
// mView.onDoctorListFetched(it.list!!, page, it.pages) // mView.onDoctorListFetched(it.list!!, page, it.pages)
// } else { // } else {
// mView.onServiceListFetched(it.list!!, page, it.pages) // mView.onServiceListFetched(it.list!!, page, it.pages)
// } // }
mView.onDoctorListFetched(it.list!!, page, it.pages) mView.onDoctorListFetched(it.list, page, it.pages)
//更新缓存 只更新第一页的缓存 //更新缓存 只更新第一页的缓存
if (page == 1){ if (page == 1){
updateCache(showType,it) updateCache(showType,it)
......
...@@ -13,6 +13,7 @@ class ConsultBIConstants { ...@@ -13,6 +13,7 @@ class ConsultBIConstants {
const val POSITION_AVERAGE_SERVICE_INPUT = "average_service_input" //服务均价 const val POSITION_AVERAGE_SERVICE_INPUT = "average_service_input" //服务均价
const val POSITION_AGE_CHOICE_CLICK = "age_choice_click" //年龄选择 const val POSITION_AGE_CHOICE_CLICK = "age_choice_click" //年龄选择
const val POSITION_QUALIFICATION_CHOICE_CLICK = "qualification_choice_click" //资质选择 const val POSITION_QUALIFICATION_CHOICE_CLICK = "qualification_choice_click" //资质选择
const val POSITION_GOOD_AT_CLICK = "good_at_click" // 擅长人群
const val POSITION_OTHER_CHOICE_CLICK = "other_choice_click" //其他选择 const val POSITION_OTHER_CHOICE_CLICK = "other_choice_click" //其他选择
const val POSITION_CONSULT_FILTER_RESET_CLICK = "consult_filter_reset_click" //重置 const val POSITION_CONSULT_FILTER_RESET_CLICK = "consult_filter_reset_click" //重置
const val POSITION_CONSULT_FILTER_CHECKOUT_CLICK = "consult_filter_checkoutallconsultants_click" //查看XXX位咨询师 const val POSITION_CONSULT_FILTER_CHECKOUT_CLICK = "consult_filter_checkoutallconsultants_click" //查看XXX位咨询师
......
...@@ -13,7 +13,6 @@ import com.yidianling.consultant.model.bean.ExpertSearchBean ...@@ -13,7 +13,6 @@ import com.yidianling.consultant.model.bean.ExpertSearchBean
import com.yidianling.consultant.model.bean.HeadData import com.yidianling.consultant.model.bean.HeadData
import io.reactivex.Observable import io.reactivex.Observable
import retrofit2.http.* import retrofit2.http.*
import kotlin.reflect.jvm.internal.impl.load.kotlin.JvmType
/** /**
...@@ -41,7 +40,7 @@ interface SearchApi { ...@@ -41,7 +40,7 @@ interface SearchApi {
//搜索条件 //搜索条件
@GET("consult/search/conditions") @GET("consult/search/conditions")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchConditions(): Observable<BaseAPIResponse<HeadData>> fun searchConditions(@Query("cateSource") cateSource: Int): Observable<BaseAPIResponse<HeadData>>
//专家服务搜索 //专家服务搜索
@retrofit2.http.Headers("Content-Type:application/json") @retrofit2.http.Headers("Content-Type:application/json")
......
...@@ -21,5 +21,6 @@ data class AllFilter( ...@@ -21,5 +21,6 @@ data class AllFilter(
val ages: ArrayList<AgeItem> = ArrayList(), //年龄 val ages: ArrayList<AgeItem> = ArrayList(), //年龄
val others: ArrayList<OtherItem> = ArrayList(),//其他筛选 val others: ArrayList<OtherItem> = ArrayList(),//其他筛选
val title:ArrayList<ReorderItem> = ArrayList()//资质 val title:ArrayList<ReorderItem> = ArrayList(), //资质
val specialityCrowd:ArrayList<SpecialityCrowdBean> = ArrayList() // 擅长人群
) )
\ No newline at end of file
...@@ -6,29 +6,34 @@ import com.google.gson.annotations.SerializedName ...@@ -6,29 +6,34 @@ import com.google.gson.annotations.SerializedName
data class CateItem( data class CateItem(
@field:SerializedName("cate_name") @field:SerializedName("cate_name")
var cateName: String? = null, var cateName: String? = null,
@field:SerializedName("cate_id") @field:SerializedName("cate_id")
var cateId: Int? = null var cateId: String? = null
) : Parcelable { ) : Parcelable {
constructor(source: Parcel) : this( constructor(parcel: Parcel) : this(
source.readString(), parcel.readString(),
source.readValue(Int::class.java.classLoader) as Int? parcel.readString()
) ) {
}
override fun describeContents() = 0 override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(cateName)
parcel.writeString(cateId)
}
override fun writeToParcel(dest: Parcel, flags: Int) = with(dest) { override fun describeContents(): Int {
writeString(cateName) return 0
writeValue(cateId)
} }
companion object { companion object CREATOR : Parcelable.Creator<CateItem> {
@JvmField override fun createFromParcel(parcel: Parcel): CateItem {
val CREATOR: Parcelable.Creator<CateItem> = object : Parcelable.Creator<CateItem> { return CateItem(parcel)
override fun createFromParcel(source: Parcel): CateItem = CateItem(source) }
override fun newArray(size: Int): Array<CateItem?> = arrayOfNulls(size)
override fun newArray(size: Int): Array<CateItem?> {
return arrayOfNulls(size)
} }
} }
} }
\ No newline at end of file
...@@ -3,39 +3,52 @@ package com.yidianling.consultant.model.bean ...@@ -3,39 +3,52 @@ package com.yidianling.consultant.model.bean
import com.google.gson.annotations.SerializedName import com.google.gson.annotations.SerializedName
data class Filters( data class Filters(
/** /**
* 按服务或者按专家 * 按服务或者按专家
*/ */
@field:SerializedName("show_type") @field:SerializedName("show_type")
val showType: List<ShowTypeItem> = ArrayList(), val showType: List<ShowTypeItem> = ArrayList(),
/** /**
* 其他选择 * 其他选择
*/ */
@field:SerializedName("other") @field:SerializedName("other")
val other: List<OtherItem> = ArrayList(), val other: List<OtherItem> = ArrayList(),
/** /**
* 咨询方式 * 咨询方式
*/ */
@field:SerializedName("enquiry") @field:SerializedName("enquiry")
val enquiry: List<EnquiryItem> = ArrayList(), val enquiry: List<EnquiryItem> = ArrayList(),
/** /**
* 服务均价 * 服务均价
*/ */
@field:SerializedName("priceRanges") @field:SerializedName("priceRanges")
val priceRanges: List<PriceRangesItem> = ArrayList(), val priceRanges: List<PriceRangesItem> = ArrayList(),
/** /**
* 年龄选择 * 年龄选择
*/ */
@field:SerializedName("age") @field:SerializedName("age")
val age: List<AgeItem> = ArrayList(), val age: List<AgeItem> = ArrayList(),
/** /**
* 资质选择 * 资质选择
*/ */
@field:SerializedName("title") @field:SerializedName("title")
val title: List<ReorderItem> = ArrayList() //资质 val title: List<ReorderItem> = ArrayList(),
// /**
// * 擅长人群
// */
// @field:SerializedName("crowdsTags")
// val crowdsTags: List<AgeItem> = ArrayList()
/**
* 擅长人群
*/
@field:SerializedName("specialityCrowd")
val specialityCrowd: ArrayList<SpecialityCrowdBean> = ArrayList()
) )
\ No newline at end of file
...@@ -4,33 +4,33 @@ import com.google.gson.annotations.SerializedName ...@@ -4,33 +4,33 @@ import com.google.gson.annotations.SerializedName
data class HeadData( data class HeadData(
/** /**
* 主题 * 主题
*/ */
@field:SerializedName("cates") @field:SerializedName("cates")
val cates: ArrayList<CateItem> = ArrayList(), val cates: ArrayList<CateItem> = ArrayList(),
/** /**
* 排序 * 排序
*/ */
@field:SerializedName("reorder") @field:SerializedName("reorder")
val reorder: ArrayList<ReorderItem> = ArrayList(), val reorder: ArrayList<ReorderItem> = ArrayList(),
/** /**
* 筛选 * 筛选
*/ */
@field:SerializedName("filters") @field:SerializedName("filters")
val filters: Filters = Filters(), val filters: Filters = Filters(),
/** /**
* 热门 * 热门
*/ */
@field:SerializedName("highlighter") @field:SerializedName("highlighter")
val highlighter: ArrayList<HighlighterItem> = ArrayList(), val highlighter: ArrayList<HighlighterItem> = ArrayList(),
/** /**
* 地区 * 地区
*/ */
@field:SerializedName("region") @field:SerializedName("region")
val region: ArrayList<RegionItem> = ArrayList() val region: ArrayList<RegionItem> = ArrayList()
) )
\ No newline at end of file
package com.yidianling.consultant.model.bean
import com.google.gson.annotations.SerializedName
data class SpecialityCrowdBean(
@field:SerializedName("value")
var value: String? = null,
@field:SerializedName("key")
var key: String? = null
)
\ No newline at end of file
...@@ -36,7 +36,7 @@ class ConsultantServiceImp : IConsultantService { ...@@ -36,7 +36,7 @@ class ConsultantServiceImp : IConsultantService {
override fun expertSearchIntent( override fun expertSearchIntent(
activity: Activity, activity: Activity,
category: Int, category: String,
showType: Int, showType: Int,
isInitShowHot: Boolean isInitShowHot: Boolean
): Intent { ): Intent {
...@@ -72,14 +72,14 @@ class ConsultantServiceImp : IConsultantService { ...@@ -72,14 +72,14 @@ class ConsultantServiceImp : IConsultantService {
override fun startExpertSearchActivity( override fun startExpertSearchActivity(
mContext: Context, mContext: Context,
category: Int, category: String,
categoryName: String, categoryName: String,
showType: Int showType: Int
) { ) {
ExpertSearchActivity.start(mContext, category, categoryName, showType) ExpertSearchActivity.start(mContext, category, categoryName, showType)
} }
override fun startExpertSearchActivity(mContext: Context, category: Int) { override fun startExpertSearchActivity(mContext: Context, category: String) {
ExpertSearchActivity.start(mContext, category) ExpertSearchActivity.start(mContext, category)
} }
......
...@@ -23,11 +23,11 @@ interface IConsultantService: IProvider { ...@@ -23,11 +23,11 @@ interface IConsultantService: IProvider {
fun resetConsultAssistantDialogStatus() fun resetConsultAssistantDialogStatus()
fun expertSearchIntent(activity: android.app.Activity, category: kotlin.Int, showType: kotlin.Int, isInitShowHot: kotlin.Boolean): android.content.Intent fun expertSearchIntent(activity: android.app.Activity, category: String, showType: Int, isInitShowHot: kotlin.Boolean): android.content.Intent
fun startExpertSearchActivity(context: Context, category: Int, categoryName: String, showType: Int) fun startExpertSearchActivity(context: Context, category: String, categoryName: String, showType: Int)
fun startExpertSearchActivity(mContext: Context, category: Int) fun startExpertSearchActivity(mContext: Context, category: String)
fun getHotSearch(): kotlin.collections.MutableList<Keyworks> fun getHotSearch(): kotlin.collections.MutableList<Keyworks>
......
...@@ -78,7 +78,7 @@ object DynamicIn { ...@@ -78,7 +78,7 @@ object DynamicIn {
fun getUserInfo(): UserResponseBean.UserInfo? = getUserService().getUserInfo() fun getUserInfo(): UserResponseBean.UserInfo? = getUserService().getUserInfo()
fun loginWayIntent(activity: Activity): Intent? { fun loginWayIntent(activity: Activity): Intent {
return getUserService().loginWayIntent(activity) return getUserService().loginWayIntent(activity)
} }
...@@ -86,7 +86,7 @@ object DynamicIn { ...@@ -86,7 +86,7 @@ object DynamicIn {
getAppService().personalInfoIntent(activity) getAppService().personalInfoIntent(activity)
} }
fun inputPhoneIntent(activity: Activity, smsAction: String): Intent? { fun inputPhoneIntent(activity: Activity, smsAction: String): Intent {
return getUserService().inputPhoneIntent(activity, smsAction) return getUserService().inputPhoneIntent(activity, smsAction)
} }
...@@ -104,7 +104,7 @@ object DynamicIn { ...@@ -104,7 +104,7 @@ object DynamicIn {
showType: Int, showType: Int,
isInitShowHot: Boolean isInitShowHot: Boolean
): Intent? { ): Intent? {
return getConsultService().expertSearchIntent(activity, category, showType, isInitShowHot) return getConsultService().expertSearchIntent(activity, category.toString(), showType, isInitShowHot)
} }
fun testResultH5(testResultId: Int) { fun testResultH5(testResultId: Int) {
...@@ -115,11 +115,11 @@ object DynamicIn { ...@@ -115,11 +115,11 @@ object DynamicIn {
getTestsService().testDetailH5(testId.toString()); getTestsService().testDetailH5(testId.toString());
} }
fun phoneCallIntent(activity: Activity): Intent? { fun phoneCallIntent(activity: Activity): Intent {
return getConfideService().phoneCallIntent(activity) return getConfideService().phoneCallIntent(activity)
} }
fun fmDetailIntent(activity: Activity, fmId: Int): Intent? { fun fmDetailIntent(activity: Activity, fmId: Int): Intent {
return getFMService().fmDetailIntent(activity, fmId) return getFMService().fmDetailIntent(activity, fmId)
} }
...@@ -131,7 +131,7 @@ object DynamicIn { ...@@ -131,7 +131,7 @@ object DynamicIn {
getAppService().rechargeIntent(activity) getAppService().rechargeIntent(activity)
} }
fun phoneCallFragment(head: String, callId: String): DialogFragment? { fun phoneCallFragment(head: String, callId: String): DialogFragment {
return getConfideService().phoneCallFragment(head, callId) return getConfideService().phoneCallFragment(head, callId)
} }
...@@ -141,11 +141,11 @@ object DynamicIn { ...@@ -141,11 +141,11 @@ object DynamicIn {
} }
fun isFmPlaying(): Boolean { fun isFmPlaying(): Boolean {
return getFMService().isPlaying() ?: false return getFMService().isPlaying()
} }
fun isCoursePlaying(): Boolean { fun isCoursePlaying(): Boolean {
return getCourseService().isPlaying() ?: false return getCourseService().isPlaying()
} }
fun playCourse() { fun playCourse() {
......
...@@ -39,7 +39,7 @@ class HomeBaseHttp { ...@@ -39,7 +39,7 @@ class HomeBaseHttp {
//首页头部 分类&Banner 请求 //首页头部 分类&Banner 请求
fun newHomeHeaderRequest(): Observable<BaseAPIResponse<HomeHeaderBean>> { fun newHomeHeaderRequest(): Observable<BaseAPIResponse<HomeHeaderBean>> {
return getHomePagerApi().getHomeHeaderData() return getHomePagerApi().getHomeHeaderData(2)
} }
//首页倾述请求 //首页倾述请求
......
...@@ -25,7 +25,7 @@ interface HomeBasePagerApi { ...@@ -25,7 +25,7 @@ interface HomeBasePagerApi {
*/ */
@GET("home/index") @GET("home/index")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun getHomeHeaderData(): Observable<BaseAPIResponse<HomeHeaderBean>> fun getHomeHeaderData(@Query("cateSource") cateSource: Int): Observable<BaseAPIResponse<HomeHeaderBean>>
/** /**
* 首页咨询请求 * 首页咨询请求
......
...@@ -287,7 +287,7 @@ class ChatFragment : BaseFragment(), XRecyclerView.LoadingListener { ...@@ -287,7 +287,7 @@ class ChatFragment : BaseFragment(), XRecyclerView.LoadingListener {
ll_chat_unusual_view.setListener(object : ChatUnusualView.ChatUnusualListener { ll_chat_unusual_view.setListener(object : ChatUnusualView.ChatUnusualListener {
override fun onButtonClick() { override fun onButtonClick() {
startActivity( startActivity(
ImIn.getConsultService().expertSearchIntent(activity!!, 0, 0, false) ImIn.getConsultService().expertSearchIntent(activity!!, "0", 0, false)
) )
} }
}) })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment