Commit e4ed1517 by upwork.021

feat: 排序代码提交

parent 54348d30
...@@ -21,9 +21,9 @@ import java.util.List; ...@@ -21,9 +21,9 @@ 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_NEW_TEST;//配置未上传到maven库 // public static String appEnv = YDLConstants.ENV_NEW_TEST;//配置未上传到maven库
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) {
lifecycles.add(new DemoAppLifecycles()); lifecycles.add(new DemoAppLifecycles());
......
...@@ -68,7 +68,7 @@ dependencies { ...@@ -68,7 +68,7 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
kapt 'com.alibaba:arouter-compiler:1.2.2' kapt 'com.alibaba:arouter-compiler:1.2.2'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapterHelper"]
api rootProject.ext.dependencies["ydl-user-router"] api rootProject.ext.dependencies["ydl-user-router"]
if (rootProject.ext.dev_mode){ if (rootProject.ext.dev_mode){
//开发时使用 //开发时使用
......
...@@ -3,23 +3,20 @@ package com.yidianling.consultant ...@@ -3,23 +3,20 @@ package com.yidianling.consultant
import android.widget.ImageView import android.widget.ImageView
import com.ydl.ydl_image.config.SimpleImageOpConfiger import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydlcommon.mvp.base.IView import com.ydl.ydlcommon.mvp.base.IView
import com.yidianling.consultant.model.bean.DoctorServiceItem import com.yidianling.consultant.model.bean.ExpertServiceItem
import com.yidianling.consultant.model.bean.ExpertBannerBean import com.yidianling.consultant.model.bean.Extras
import com.yidianling.consultant.model.bean.ExpertSearchBean
import com.yidianling.consultant.model.bean.HeadData import com.yidianling.consultant.model.bean.HeadData
/** /**
* Created by zqk on 17-9-19. * Created by zqk on 17-9-19.
*/ */
interface IExpertSearchView : IView { interface IExpertSearchView : IView {
fun onServiceListFetched(data: MutableList<DoctorServiceItem>, page: Int, totalPage: Int)
fun showRefreshLayout() fun showRefreshLayout()
fun localData() fun localData()
fun updateCache(showType: Int,searchBean: ExpertSearchBean)
fun onHeadFetched(headData: HeadData?) fun onHeadFetched(headData: HeadData?)
fun onDoctorListFetched(data: MutableList<DoctorServiceItem>, page: Int,totalPage : Int) fun onDoctorListFetched(data: MutableList<ExpertServiceItem>, extras: Extras?,curPage:Int)
fun fetchFailed(msg: String?) fun fetchFailed(msg: String?)
fun fetchListFailed(msg: String?) fun fetchListFailed(msg: String?)
fun fetchListEmpty(msg: String?) fun fetchListEmpty(msg: String?)
......
...@@ -32,7 +32,7 @@ class CategoryRecyclerViewAdapter(private val context: Context, private val cate ...@@ -32,7 +32,7 @@ class CategoryRecyclerViewAdapter(private val context: Context, private val cate
override fun getItemCount(): Int = categories.size override fun getItemCount(): Int = categories.size
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val tvSubjectName: TextView = itemView.tvSubjectName val tvSubjectName: TextView = itemView.tv_sort_name
init { init {
itemView.setOnClickListener { itemView.setOnClickListener {
......
package com.yidianling.consultant.adapter
import android.widget.TextView
import androidx.core.content.ContextCompat
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yidianling.consultant.R
import com.yidianling.consultant.model.bean.ChildrenBean
/**
* Created by Ykai on 2022/5/18.
*/
class SortAdapter(data: List<ChildrenBean>) : BaseMultiItemQuickAdapter<ChildrenBean, BaseViewHolder>(data) {
var isVisible = false
init {
addItemType(1, R.layout.consultant_item_sort1)
addItemType(2, R.layout.consultant_item_sort2)
}
override fun convert(holder: BaseViewHolder, item: ChildrenBean) {
when(holder.itemViewType){
1 ->{
holder.setGone(R.id.ll_sort_item,item.isVisible)
holder.setText(R.id.tv_sort_name, item.cate_name)
holder.getView<TextView>(R.id.tv_sort_name).isSelected = item.isSelected
if (item.isSelected){
holder.setTextColor(R.id.tv_sort_name,ContextCompat.getColor(mContext,R.color.platform_main_theme))
}else{
holder.setTextColor(R.id.tv_sort_name,ContextCompat.getColor(mContext,R.color.platform_color_242424))
}
}
2->{
holder.setGone(R.id.ll_sort_item,item.isVisible)
holder.setText(R.id.tv_sort_name, item.cate_name)
holder.getView<TextView>(R.id.tv_sort_name).isSelected = item.isSelected
if (item.isSelected){
holder.setTextColor(R.id.tv_sort_name,ContextCompat.getColor(mContext,R.color.platform_main_theme))
}else{
holder.setTextColor(R.id.tv_sort_name,ContextCompat.getColor(mContext,R.color.platform_color_242424))
}
}
}
}
/**
* 设置大于第12个之后的标签全部显示
*/
fun setAllVisible(){
mData.forEach { bean ->
bean.isVisible = true
}
notifyDataSetChanged()
isVisible = true
}
/**
* 设置大于第12个之后的标签全部隐藏
*/
fun setGone(){
mData.forEachIndexed { index, bean ->
if (index>12){
bean.isVisible = false
}
}
notifyDataSetChanged()
isVisible = false
}
}
\ No newline at end of file
...@@ -31,7 +31,7 @@ class SortRecyclerViewAdapter(private val context: Context, ...@@ -31,7 +31,7 @@ class SortRecyclerViewAdapter(private val context: Context,
val item = sortItems[position] val item = sortItems[position]
holder.tvSort.text = item.value holder.tvSort.text = item.value
if (item.key == selectedSort.key) { if (item.key == selectedSort.key) {
holder.tvSort.setTypeface(Typeface.DEFAULT_BOLD) holder.tvSort.typeface = Typeface.DEFAULT_BOLD
holder.tvSort.setTextColor(ContextCompat.getColor(context, R.color.platform_main_theme)) holder.tvSort.setTextColor(ContextCompat.getColor(context, R.color.platform_main_theme))
// holder.ivCheck.visibility = View.VISIBLE // holder.ivCheck.visibility = View.VISIBLE
} }
......
...@@ -11,8 +11,8 @@ data class ExpertSearchProductsBean( ...@@ -11,8 +11,8 @@ data class ExpertSearchProductsBean(
/** /**
* 1.单次/2.套餐 * 1.单次/2.套餐
*/ */
val isPackage : Int?, val product_type: String?,
/** /**
* 套餐名称 * 套餐名称
*/ */
val name : String?) val product_name : String?)
\ No newline at end of file \ No newline at end of file
...@@ -11,16 +11,16 @@ data class ExpertSearchTagsIconBean( ...@@ -11,16 +11,16 @@ data class ExpertSearchTagsIconBean(
/** /**
* 优质图标 * 优质图标
*/ */
val abilityLevelIcon : String?, val ability_level_icon : String?,
/** /**
* 公益图标 * 公益图标
*/ */
val serviceFreeIcon : String?, val service_free_icon : String?,
/** /**
* 新入驻图标 * 新入驻图标
*/ */
val newEnterIcon : String?, val new_enter_icon : String?,
/** /**
* 抗疫先锋图标地址 * 抗疫先锋图标地址
*/ */
var fightEpidemicIcon: String? = null) var fight_epidemic_icon: String? = null)
\ No newline at end of file \ No newline at end of file
...@@ -5,8 +5,7 @@ import com.ydl.ydlcommon.data.http.BaseAPIResponse ...@@ -5,8 +5,7 @@ import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlnet.YDLHttpUtils import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.consultant.bean.ExpertSearchTopShowBean import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.model.SearchApi import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.ExpertBannerBean import com.yidianling.consultant.model.bean.ExpertBean
import com.yidianling.consultant.model.bean.ExpertSearchBean
import io.reactivex.Observable import io.reactivex.Observable
/** /**
...@@ -45,9 +44,13 @@ class ExpertSearchHttpImpl : IExpertSearchHttp { ...@@ -45,9 +44,13 @@ class ExpertSearchHttpImpl : IExpertSearchHttp {
return searchApi!! return searchApi!!
} }
override fun searchDoctor(params: String?): Observable<BaseAPIResponse<ExpertSearchBean>> { // override fun searchDoctor(params: String?): Observable<BaseAPIResponse<ExpertSearchBean>> {
return getSearchApi().searchDoctorService(HttpConfig.JAVA_BASE_URL+ "doctor/nlist?"+params) // return getSearchApi().searchDoctorService(HttpConfig.JAVA_BASE_URL+ "doctor/nlist?"+params)
//
// }
override fun getExpertList(map: Map<String, Any>): Observable<BaseAPIResponse<ExpertBean>> {
return getSearchApi().getExpertList(map)
} }
override fun getBigShotData(): Observable<BaseAPIResponse<ExpertSearchTopShowBean>> { override fun getBigShotData(): Observable<BaseAPIResponse<ExpertSearchTopShowBean>> {
......
...@@ -2,8 +2,7 @@ package com.yidianling.consultant.http ...@@ -2,8 +2,7 @@ package com.yidianling.consultant.http
import com.ydl.ydlcommon.data.http.BaseAPIResponse import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.yidianling.consultant.bean.ExpertSearchTopShowBean import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.model.bean.ExpertBannerBean import com.yidianling.consultant.model.bean.ExpertBean
import com.yidianling.consultant.model.bean.ExpertSearchBean
import io.reactivex.Observable import io.reactivex.Observable
/** /**
...@@ -17,7 +16,12 @@ interface IExpertSearchHttp{ ...@@ -17,7 +16,12 @@ interface IExpertSearchHttp{
/** /**
* 专家搜索页请求 * 专家搜索页请求
*/ */
fun searchDoctor(params : String?): Observable<BaseAPIResponse<ExpertSearchBean>> // fun searchDoctor(params : String?): Observable<BaseAPIResponse<ExpertSearchBean>>
/**
* 获取专家列表
*/
fun getExpertList(map:Map<String,Any>): Observable<BaseAPIResponse<ExpertBean>>
/** /**
* 获取当前筛选条件结果数 * 获取当前筛选条件结果数
......
package com.yidianling.consultant.listener package com.yidianling.consultant.listener
import com.yidianling.consultant.model.bean.CateItem
/** /**
* Created by zqk on 17-9-20. * Created by zqk on 17-9-20.
*/ */
interface OnCategoriesSelectedListener { interface OnCategoriesSelectedListener {
fun onCategoriesSelected(categories: ArrayList<CateItem>) fun onCategoriesSelected()
} }
\ No newline at end of file
...@@ -9,7 +9,7 @@ import com.ydl.ydlnet.YDLHttpUtils ...@@ -9,7 +9,7 @@ import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.consultant.bean.ExpertSearchTopShowBean import com.yidianling.consultant.bean.ExpertSearchTopShowBean
import com.yidianling.consultant.bean.GuideBean import com.yidianling.consultant.bean.GuideBean
import com.yidianling.consultant.bean.HotSearchBean import com.yidianling.consultant.bean.HotSearchBean
import com.yidianling.consultant.model.bean.ExpertSearchBean import com.yidianling.consultant.model.bean.ExpertBean
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.*
...@@ -38,14 +38,23 @@ interface SearchApi { ...@@ -38,14 +38,23 @@ interface SearchApi {
fun listHead(@FieldMap maps: Map<String, String>): Observable<BaseResponse<HeadData>> fun listHead(@FieldMap maps: Map<String, String>): Observable<BaseResponse<HeadData>>
//搜索条件 //搜索条件
@GET("consult/search/v2/conditions") @GET("consult/search/v3/conditions")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun searchConditions(@Query("cateSource") cateSource: Int): 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")
@GET // @GET
fun searchDoctorService(@Url url: String): Observable<BaseAPIResponse<ExpertSearchBean>> // fun searchDoctorService(@Url url: String): Observable<BaseAPIResponse<ExpertSearchBean>>
/**
* 新咨询师列表接口(包含搜索、筛选咨询师)
*/
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA,"X-App-Id: plough_cloud")
@POST("smart-rank/v1/search")
fun getExpertList(@Body map: Map<String,@JvmSuppressWildcards Any>):Observable<BaseAPIResponse<ExpertBean>>
//搜索页面接口 //搜索页面接口
@retrofit2.http.Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA, "Content-Type:application/json") @retrofit2.http.Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA, "Content-Type:application/json")
......
...@@ -7,5 +7,5 @@ data class AgeItem( ...@@ -7,5 +7,5 @@ data class AgeItem(
val value: String? = null, val value: String? = null,
@field:SerializedName("key") @field:SerializedName("key")
val key: Int? = null val key: Int
) )
\ No newline at end of file
...@@ -23,5 +23,20 @@ data class AllFilter( ...@@ -23,5 +23,20 @@ data class AllFilter(
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() // 擅长人群 val specialityCrowd:ArrayList<SpecialityCrowdBean> = ArrayList(), // 擅长人群
// 八大类标签集合
val childList:ArrayList<ChildrenBean> = ArrayList(), // 亲子教育
val stressList:ArrayList<ChildrenBean> = ArrayList(), // 情绪压力
val loveEmotionList:ArrayList<ChildrenBean> = ArrayList(), // 恋爱情感
val marriedFamilyList:ArrayList<ChildrenBean> = ArrayList(), // 婚姻家庭
val personalGrowthList:ArrayList<ChildrenBean> = ArrayList(), // 个人成长
val interpersonalRelationshipList:ArrayList<ChildrenBean> = ArrayList(), // 人际关系
val careerDevelopmentList:ArrayList<ChildrenBean> = ArrayList(), // 职场发展
val mentalHealthList:ArrayList<ChildrenBean> = ArrayList(), // 心理健康
// 八大类已选中标签id集合
val categoryId2List:ArrayList<String> = ArrayList(), // 一级类目id集合
val categoryId3List:ArrayList<String> = ArrayList() // 二级类目id集合
) )
\ No newline at end of file
package com.yidianling.consultant.model.bean package com.yidianling.consultant.model.bean
import android.os.Parcel import com.chad.library.adapter.base.entity.MultiItemEntity
import android.os.Parcelable
import com.google.gson.annotations.SerializedName import com.google.gson.annotations.SerializedName
data class CateItem( data class CateItem(
...@@ -10,30 +9,23 @@ data class CateItem( ...@@ -10,30 +9,23 @@ data class CateItem(
var cateName: String? = null, var cateName: String? = null,
@field:SerializedName("cate_id") @field:SerializedName("cate_id")
var cateId: String? = null var cateId: String? = null,
) : Parcelable {
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString()
) {
}
override fun writeToParcel(parcel: Parcel, flags: Int) { @field:SerializedName("children")
parcel.writeString(cateName) var children: ArrayList<ChildrenBean>?=null
parcel.writeString(cateId) )
}
override fun describeContents(): Int { data class ChildrenBean(var cate_name: String,var cate_id:String,var isVisible: Boolean, var type: Int): MultiItemEntity {
return 0 // @field:SerializedName("cate_name")
} // var cateName: String? = null,
companion object CREATOR : Parcelable.Creator<CateItem> { // @field:SerializedName("cate_id")
override fun createFromParcel(parcel: Parcel): CateItem { // var cateId: String? = null,
return CateItem(parcel)
}
override fun newArray(size: Int): Array<CateItem?> { // var isVisible: Boolean = false // 是否显示
return arrayOfNulls(size) var isSelected: Boolean = false // 是否选中
}
override fun getItemType(): Int {
return type
} }
} }
\ No newline at end of file
...@@ -8,7 +8,7 @@ data class EnquiryItem( ...@@ -8,7 +8,7 @@ data class EnquiryItem(
val value: String? = null, val value: String? = null,
@field:SerializedName("key") @field:SerializedName("key")
val key: Int? = null, val key: Int,
val checkRrl: String?, val checkRrl: String?,
val unCheckUrl: String? val unCheckUrl: String?
......
package com.yidianling.consultant.model.bean
/**
* @author yuanWai
* @描述:专家搜索页数据bean
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2018/12/11
*/
data class ExpertBean(
val amount : Int = 0,
val skip : Int = 0,
val limit : Int = 0,
val size : Int = 10,
val objects : MutableList<ExpertServiceItem>?,
// 分页需要
val extras: Extras?)
data class Extras(
val skips: HashMap<String, Int>
)
\ No newline at end of file
package com.yidianling.consultant.model.bean
/**
* @author yuanWai
* @描述:专家搜索页数据bean
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2018/12/11
*/
data class ExpertSearchBean(val endRow : Int = 0,
val hasNextPage : Boolean = false,
val hasPreviousPage : Boolean = false,
val isFirstPage : Boolean = false,
val isLastPage : Boolean = false,
/**
* 数据列表
*/
val list : MutableList<DoctorServiceItem>?,
val navigateFirstPage : Int = 0,
val navigateLastPage : Int = 0,
val navigatePages : Int = 0,
val navigatepageNums : MutableList<Int>?,
val nextPage : Int = 0,
val pageNum : Int = 0,
val pageSize : Int = 0,
/**
* 总页数
*/
val pages : Int = 0,
val prePage : Int = 0,
val size : Int = 0,
val startRow : Int = 0,
/**
* 数据总条数
*/
val total : Int = 0)
\ No newline at end of file
...@@ -10,11 +10,11 @@ import com.yidianling.consultant.bean.ExpertSearchTagsIconBean ...@@ -10,11 +10,11 @@ import com.yidianling.consultant.bean.ExpertSearchTagsIconBean
* @Company 壹点灵 * @Company 壹点灵
* @date 2018/12/11 * @date 2018/12/11
*/ */
data class DoctorServiceItem( data class ExpertServiceItem(
/** /**
* 专家ID * 专家ID
*/ */
val doctorId: String?, val id: String?,
/** /**
* 专家uid * 专家uid
*/ */
...@@ -22,11 +22,11 @@ data class DoctorServiceItem( ...@@ -22,11 +22,11 @@ data class DoctorServiceItem(
/** /**
* 专家名称 * 专家名称
*/ */
val name: String?, val doctor_name: String?,
/** /**
* 跳转路由地址(正常为专家主页地址) * 跳转路由地址(正常为专家主页地址)
*/ */
val linkUrl: String?, val link_url: String?,
/** /**
* 专家头像地址 * 专家头像地址
*/ */
...@@ -34,7 +34,7 @@ data class DoctorServiceItem( ...@@ -34,7 +34,7 @@ data class DoctorServiceItem(
/** /**
* 专家是否在线 1.在线 * 专家是否在线 1.在线
*/ */
val isOnline: Int?, val chat_status: Int?,
/** /**
* 能力等级 1.实习 2.新手 3.精英 * 能力等级 1.实习 2.新手 3.精英
*/ */
...@@ -42,7 +42,7 @@ data class DoctorServiceItem( ...@@ -42,7 +42,7 @@ data class DoctorServiceItem(
/** /**
* 有免费咨询:1.有,2.无 * 有免费咨询:1.有,2.无
*/ */
val hasServiceFree: Int?, val has_servicefree_consult: Int?,
/** /**
* 活动图标 * 活动图标
*/ */
...@@ -54,11 +54,11 @@ data class DoctorServiceItem( ...@@ -54,11 +54,11 @@ data class DoctorServiceItem(
/** /**
* 是否新入驻:true:是,false:否 * 是否新入驻:true:是,false:否
*/ */
var isNewEnter: Boolean = false, var is_new_enter: Boolean = false,
/** /**
* 好评率(倾诉+咨询) * 好评率(倾诉+咨询)
*/ */
var feedbackRate: Float = 0f, var evaluation_average_score: Float = 0f,
/** /**
* 是否抗疫先锋图标 * 是否抗疫先锋图标
*/ */
...@@ -66,59 +66,55 @@ data class DoctorServiceItem( ...@@ -66,59 +66,55 @@ data class DoctorServiceItem(
/** /**
* 评价数(咨询订单数) * 评价数(咨询订单数)
*/ */
var zixunOrderNum: Int = 0, var evaluate_num: Int = 0,
/** /**
* 咨询最低价 * 咨询最低价
*/ */
val minBookingPrice: String?, val min_price: String?,
/** /**
* 资质材料 * 资质材料
*/ */
val teamCertifications: String?, val title: String?,
/**
* 标签分类
*/
val tags: String?,
/** /**
* 已帮助人数(咨询人数) * 已帮助人数(咨询人数)
*/ */
val zixunOrderUser: String?, val help_num: String?,
/** /**
* 月售时长 * 月售时长
*/ */
var saleDurationForMonth: Float = 0f, var p30d_sold_hour: Float = 0f,
/** /**
* 服务时长 * 服务时长
*/ */
var allSaleDuration: Float = 0f, var sum_service_time: Float = 0f,
/** /**
* 服务 * 服务
*/ */
val products: MutableList<ExpertSearchProductsBean>?, val doctor_products: MutableList<ExpertSearchProductsBean>?,
/** /**
* 标签图片 * 标签图片
*/ */
val tagsIcon: ExpertSearchTagsIconBean?, val icons: ExpertSearchTagsIconBean?,
/** /**
* 今日是否可约 * 今日是否可约
*/ */
val isTodayFree: Boolean?, val booking_status: Int,
/** /**
* 是否咨询 * 咨询状态 1-待服务 2-服务
*/ */
var inConsult: Boolean = false, var consult_status: Int,
/** /**
* 是否聆听 * 倾诉状态 1-待服务 2-服务
*/ */
var isListening: Boolean = false, var listen_status: Int,
/** /**
* 私聊人数 * 私聊人数
*/ */
var chatNum: Int = 0, var chat_num: Int = 0,
/** /**
* 个人铭言 * 个人铭言
*/ */
val famousRemark: String?, val famous_remark: String?,
/** /**
* 省 * 省
*/ */
...@@ -130,7 +126,7 @@ data class DoctorServiceItem( ...@@ -130,7 +126,7 @@ data class DoctorServiceItem(
/** /**
* 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”) * 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)
*/ */
val chatBtnText: String?, val chat_btn_text: String?,
/** /**
* 新标签分类 * 新标签分类
......
...@@ -45,12 +45,6 @@ data class Filters( ...@@ -45,12 +45,6 @@ data class Filters(
@field:SerializedName("title") @field:SerializedName("title")
val title: List<ReorderItem> = ArrayList(), val title: List<ReorderItem> = ArrayList(),
// /**
// * 擅长人群
// */
// @field:SerializedName("crowdsTags")
// val crowdsTags: List<AgeItem> = ArrayList()
/** /**
* 擅长人群 * 擅长人群
......
...@@ -8,5 +8,11 @@ data class OtherItem( ...@@ -8,5 +8,11 @@ data class OtherItem(
val value: String? = null, val value: String? = null,
@field:SerializedName("key") @field:SerializedName("key")
val key: Int? = null val key: Int? = null,
@field:SerializedName("value1")
val value1: String,
@field:SerializedName("key1")
val key1: String
) )
\ No newline at end of file
...@@ -8,5 +8,11 @@ data class ReorderItem( ...@@ -8,5 +8,11 @@ data class ReorderItem(
var value: String? = null, var value: String? = null,
@field:SerializedName("key") @field:SerializedName("key")
var key: String? = null var key: String? = null,
@field:SerializedName("value1")
var value1: String="",
@field:SerializedName("key1")
var key1: String=""
) )
\ No newline at end of file
//package com.yidianling.consultant.model.bean;
//
//import com.chad.library.adapter.base.entity.MultiItemEntity;
//
///**
// * Created by Ykai on 2022/5/18.
// */
//
//public class SortBean implements MultiItemEntity {
// public String name;
// int type;
// public boolean isVisible; // 是否显示
// public boolean isSelected; // 是否选中
//
//
// public SortBean(String name, int type){
// this.name = name;
// this.type = type;
// isVisible = true;
// }
//
// @Override
// public int getItemType() {
// return type;
// }
//}
...@@ -53,7 +53,7 @@ object TempH5RouteUtils { ...@@ -53,7 +53,7 @@ object TempH5RouteUtils {
if (!TextUtils.isEmpty(host) && host == "h5") { if (!TextUtils.isEmpty(host) && host == "h5") {
//如果是h5,跳转至NewH5Activity //如果是h5,跳转至NewH5Activity
try { try {
var params = URLDecoder.decode(linkUri.getQueryParameter("params"),"UTF-8") val params = URLDecoder.decode(linkUri.getQueryParameter("params"),"UTF-8")
ARouter.getInstance().build("/new_h5/h5").withSerializable("routerParam", params).navigation() ARouter.getInstance().build("/new_h5/h5").withSerializable("routerParam", params).navigation()
return return
}catch (e : NullPointerException){ }catch (e : NullPointerException){
......
...@@ -34,17 +34,14 @@ import io.reactivex.schedulers.Schedulers ...@@ -34,17 +34,14 @@ import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.consultant_item_filter.view.* import kotlinx.android.synthetic.main.consultant_item_filter.view.*
import kotlinx.android.synthetic.main.consultant_item_price_range.view.* import kotlinx.android.synthetic.main.consultant_item_price_range.view.*
import kotlinx.android.synthetic.main.consultant_ui_filter_popup.view.* import kotlinx.android.synthetic.main.consultant_ui_filter_popup.view.*
import kotlin.math.roundToInt
/** /**
* 筛选弹窗 * 筛选弹窗
* Created by zqk on 17-9-15. * Created by zqk on 17-9-15.
*/ */
class FilterPopupWindow( class FilterPopupWindow(private val context: Context, private val filterData: Filters, private val tempFilter: AllFilter) : PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) {
private val context: Context,
private val filterData: Filters,
private val tempFilter: AllFilter
) : PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) {
private val mDisposableList = CompositeDisposable() private val mDisposableList = CompositeDisposable()
...@@ -121,7 +118,7 @@ class FilterPopupWindow( ...@@ -121,7 +118,7 @@ class FilterPopupWindow(
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
private fun initKeyboardListener(view: View) { private fun initKeyboardListener(view: View) {
var svFilter = view.findViewById<ScrollView>(R.id.sv_filter) val svFilter = view.findViewById<ScrollView>(R.id.sv_filter)
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
svFilter.setOnTouchListener { _, _ -> svFilter.setOnTouchListener { _, _ ->
...@@ -282,7 +279,7 @@ class FilterPopupWindow( ...@@ -282,7 +279,7 @@ class FilterPopupWindow(
account += tempFilter.priceRanges?.maxPrice?.toDouble()!! account += tempFilter.priceRanges?.maxPrice?.toDouble()!!
} }
biEventParams = (Math.round(account / 2)).toString() biEventParams = ((account / 2).roundToInt()).toString()
} }
} }
...@@ -294,7 +291,7 @@ class FilterPopupWindow( ...@@ -294,7 +291,7 @@ class FilterPopupWindow(
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.compose(RxUtils.resultJavaData()) .compose(RxUtils.resultJavaData())
.map { it } .map { it }
.filter { it != null } .filter { true }
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe({ .subscribe({
......
...@@ -16,7 +16,7 @@ import kotlinx.android.synthetic.main.consultant_ui_sort_popup_window.view.* ...@@ -16,7 +16,7 @@ import kotlinx.android.synthetic.main.consultant_ui_sort_popup_window.view.*
* 排序弹窗 * 排序弹窗
* Created by zqk on 17-9-15. * Created by zqk on 17-9-15.
*/ */
class SortPopupWindow(val context: Context, private val sortItems: ArrayList<ReorderItem>, var selectedSort: ReorderItem, private val onSortItemSelectedListener: OnSortItemSelectedListener) class SortPopupWindow(val context: Context, sortItems: ArrayList<ReorderItem>, var selectedSort: ReorderItem, onSortItemSelectedListener: OnSortItemSelectedListener)
: PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) { : PopupWindow(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) {
private var adapter: SortRecyclerViewAdapter private var adapter: SortRecyclerViewAdapter
...@@ -31,12 +31,7 @@ class SortPopupWindow(val context: Context, private val sortItems: ArrayList<Reo ...@@ -31,12 +31,7 @@ class SortPopupWindow(val context: Context, private val sortItems: ArrayList<Reo
val rvSortItem = view.rvSortItem val rvSortItem = view.rvSortItem
adapter = SortRecyclerViewAdapter(context, sortItems, selectedSort, onSortItemSelectedListener) adapter = SortRecyclerViewAdapter(context, sortItems, selectedSort, onSortItemSelectedListener)
rvSortItem.adapter = adapter rvSortItem.adapter = adapter
rvSortItem.layoutManager = rvSortItem.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
LinearLayoutManager(
context,
LinearLayoutManager.VERTICAL,
false
)
// rvSortItem.addItemDecoration(DividerItemDecoration(context, LinearLayoutManager.VERTICAL)) // rvSortItem.addItemDecoration(DividerItemDecoration(context, LinearLayoutManager.VERTICAL))
} }
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="10dp"
android:paddingTop="12dp"
android:orientation="vertical"
android:id="@+id/ll_sort_item"
>
<TextView
android:id="@+id/tv_sort_name"
android:layout_width="75dp"
android:layout_height="34dp"
android:gravity="center"
android:textColor="@color/consultant_color_search_filter_selector"
android:orientation="vertical"
android:background="@drawable/consultant_bg_search_filter_selector"
android:textSize="14sp"
tools:text="恋爱婚姻" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="10dp"
android:paddingTop="12dp"
android:orientation="vertical"
android:id="@+id/ll_sort_item"
>
<TextView
android:id="@+id/tv_sort_name"
android:layout_width="wrap_content"
android:layout_height="34dp"
android:gravity="center"
android:textColor="@color/consultant_color_search_filter_selector"
android:orientation="vertical"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:background="@drawable/consultant_bg_search_filter_selector"
android:textSize="14sp"
tools:text="恋爱婚姻" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" <TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/tvSubjectName" android:id="@+id/tv_sort_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="36dp" android:layout_height="36dp"
android:gravity="center" android:gravity="center"
......
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