Commit aae77395 by 刘鹏

Merge branch 'feat/lp/lp_expert_status' into 'd/v4.0.57_xlzx'

专家状态合并心理咨询发版分支

See merge request app_android_lib/YDL-Component!357
parents 1f2c8055 0931152d
......@@ -14,7 +14,7 @@ buildscript {
ydlrouter_version = '1.2.3'
constrait_support_version = '1.0.2'
componentVersion = "0.3.0.49.1-lp-SNAPSHOT"
componentVersion = "0.3.0.49.1-SNAPSHOT"
}
repositories {
mavenCentral()
......
......@@ -9,7 +9,6 @@ import android.app.Activity
import android.content.Context
import android.content.Intent
import android.graphics.Typeface
import android.os.Bundle
import android.os.Handler
import android.text.TextUtils
import android.view.View
......@@ -1800,7 +1799,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_ic_arrow_drop_down_grey_500_18dp,
R.drawable.consult_ic_arrow_drwn_gray,
0
)
}
......@@ -1810,7 +1809,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_arrow_drop_down_en,
R.drawable.consult_ic_arrow_drwn_en,
0
)
}
......@@ -1820,7 +1819,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_arrow_drop_down_en,
R.drawable.consult_ic_arrow_drwn_en,
0
)
}
......@@ -1836,7 +1835,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.filter_up_grey,
R.drawable.filter_up_gray,
0
)
}
......
......@@ -6,9 +6,7 @@ import android.animation.ObjectAnimator
import android.animation.PropertyValuesHolder
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.graphics.Typeface
import android.net.Uri
import android.os.Handler
import android.text.TextUtils
import android.view.View
......@@ -31,9 +29,7 @@ import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydlcommon.base.BaseMvpFragment
import com.ydl.ydlcommon.base.config.ChannelConfig
import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.data.PlatformDataManager
import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.ui.LogoLoadingView
import com.ydl.ydlcommon.utils.BuryPointUtils
......@@ -54,12 +50,8 @@ import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.PRICE_TYPE_CLICK
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.REFUSE_ALREADY
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.WHETHER_LOCATION_AUTH
import com.yidianling.consultant.listener.*
import com.yidianling.consultant.dialog.ConsultSubPayDialog
import com.yidianling.consultant.listener.OnCategoriesSelectedListener
import com.yidianling.consultant.listener.OnExpertClickListener
import com.yidianling.consultant.listener.OnFilterConfirmListener
import com.yidianling.consultant.listener.OnSortItemSelectedListener
import com.yidianling.consultant.listener.*
import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
......@@ -501,21 +493,21 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
textView.setOnClickListener {
if (textView.isSelected) {
dealHotSelect(hot, false)
textView!!.isSelected = false
textView.paint.isFakeBoldText = false
textView.isSelected = false
} else {
dealHotSelect(hot, true)
textView.isSelected = true
textView.paint.isFakeBoldText = true
// 埋点
hot.value?.let { it1 ->
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_CONSULT_COUNSELOR_LIST_PAGE,
ConsultBIConstants.ConsultEvent.POSITION_CHOICE_FILTER_CLICK,
hot.value!!,
it1,
"app",
""
)
}
}
filterLabelSet()
//开始筛选数据
refresh()
......@@ -1611,12 +1603,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private fun updateFilterTextViewStatus(tv: TextView, status: Int) {
when (status) {
FILTER_STATUS_NORMAL -> {
tv.typeface = Typeface.defaultFromStyle(Typeface.NORMAL)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault))
tv.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_ic_arrow_drop_down_grey_500_18dp,
R.drawable.consult_ic_arrow_drwn_gray,
0
)
}
......@@ -1626,7 +1618,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_arrow_drop_down_en,
R.drawable.consult_ic_arrow_drwn_en,
0
)
}
......@@ -1636,7 +1628,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.platform_arrow_drop_down_en,
R.drawable.consult_ic_arrow_drwn_en,
0
)
}
......@@ -1647,12 +1639,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private fun updateFilterRightTextViewStatus(tv: TextView, status: Int) {
when (status) {
FILTER_STATUS_NORMAL -> {
tv.typeface = Typeface.defaultFromStyle(Typeface.NORMAL)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault))
tv.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
tv.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.filter_up_grey,
R.drawable.filter_up_gray,
0
)
}
......
......@@ -8,7 +8,6 @@ import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.mvp.base.SimplePresenter
import com.ydl.ydlcommon.utils.AnimUtils
import com.ydl.ydlcommon.utils.RxLifecycleUtils
import com.ydl.ydlcommon.utils.remind.HttpErrorUtils
import com.yidianling.common.tools.RxAppTool
......@@ -266,15 +265,28 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
fieldsMap["is_free_today"] = true
fieldsMap["display_region"] = true
fieldsMap["has_servicefree_experience"] = true
//专家头像下方文案:如 忙碌;现在有空;今日可约;最近可约;已约满;休息中
fieldsMap["consult_display_status_str"] = true
//咨询显示状态:1.忙碌;2.现在有空;3.今日可约;4.最近可约;5.已约满;6.休息中
fieldsMap["consult_display_status"] = true
//私聊下方时间描述:如 最快可约今天19:00
fieldsMap["today_time_des"] = true
//服务方式:如 当面/视频
fieldsMap["attr_combine"] = true
//是否开启代聊:1开启,2关闭
fieldsMap["open_chat_agency"] = true
//年审
fieldsMap["audit_tag"] = true
map["fields"] = fieldsMap
val optionsMap = HashMap<String, Any?>()
optionsMap["search_scene_id"] = "doctor_main_search"
optionsMap["uid"] = ModularServiceManager.provide(IUserService::class.java).getUserInfo()?.uid
optionsMap["uid"] =
ModularServiceManager.provide(IUserService::class.java).getUserInfo()?.uid
optionsMap["ffrom"] = PlatformDataManager.getRam().getChannelName()
optionsMap["version"]= RxAppTool.getAppVersionName(BaseApp.getApp())
optionsMap["os_type"]= 2
if (extras!=null){
optionsMap["version"] = RxAppTool.getAppVersionName(BaseApp.getApp())
optionsMap["os_type"] = 2
if (extras != null) {
optionsMap["extras"] = extras
}
map["options"] = optionsMap
......
package com.yidianling.consultant.model.bean
import com.yidianling.consultant.bean.ExpertSearchProductsBean
import com.yidianling.consultant.bean.ExpertSearchTagsIconBean
/**
* @author yuanWai
* @描述:
......@@ -23,153 +20,97 @@ data class ExpertServiceItem(
* 专家名称
*/
val doctor_name: String?,
/**
* 跳转路由地址(正常为专家主页地址)
*/
/*** 跳转路由地址(正常为专家主页地址)*/
val link_url: String?,
/**
* 专家头像地址
*/
/*** 专家头像地址*/
val head: String?,
/**
* 专家是否在线 1.在线
*/
/*** 私聊状态:1.上线;2.离线;3.忙碌中*/
val chat_status: Int?,
/**
* 能力等级 1.实习 2.新手 3.精英
*/
val abilityLevel: Int?,
/**
* 有免费咨询:1.有,2.无
*/
val has_servicefree_consult: Int?,
/**
* 活动图标
*/
val activityImg: String?,
/**
* 是否参加活动
*/
val joinActivity: Boolean?,
/**
* 是否新入驻:true:是,false:否
*/
var is_new_enter: Boolean?,
/**
* 好评率(倾诉+咨询)
*/
var evaluation_average_score: Float = 0f,
/**
* 是否抗疫先锋图标
*/
var fightEpidemicIconShow: Boolean = false,
/**
* 评价数(咨询订单数)
*/
/*** 评价数(咨询订单数)*/
var evaluate_num: Int = 0,
/**
* 咨询最低价
*/
/*** 咨询最低价*/
val min_price: String?,
/**
* 资质材料
*/
/*** 资质材料*/
val title: String?,
/**
* 已帮助人数(咨询人数)
*/
val help_num: String?,
/**
* 月售时长
*/
var p30d_sold_hour: Float = 0f,
/**
* 服务时长
*/
/*** 服务时长*/
var sum_service_time: Float = 0f,
/**
* 服务
*/
val doctor_products: MutableList<ExpertSearchProductsBean>?,
/**
* 标签图片
*/
val icons: ExpertSearchTagsIconBean?,
// /**
// * 今日是否可约
// */
// val booking_status: Int,
// /**
// * 咨询状态 1-待服务 2-服务中
// */
// var consult_status: Int,
// /**
// * 倾诉状态 1-待服务 2-服务中
// */
// var listen_status: Int,
var open_chat_agency: Int,
/***服务状态:1.空闲,2.忙碌*/
var service_status: Int,
var is_free_today: Int,
/**
* 私聊人数
*/
/*** 私聊人数*/
var chat_num: Int = 0,
/**
* 个人铭言
*/
val famous_remark: String?,
/**
* 省
*/
val province: String?,
/**
* 市
*/
val city: String?,
/**
* 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)
*/
/*** 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)*/
val chat_btn_text: String?,
/**
* 新标签分类
*/
/*** 新标签分类*/
val feature_tags: ArrayList<FeatureTag>?,
/**
* 是否是头部headView
*/
/*** 是否是头部headView*/
val is_head_view: Boolean = false,
/**
* 搜索词
*/
/*** 搜索词*/
val search_content: String,
/**
* 联想词
*/
/*** 联想词*/
val related_word: String,
/**
* 地区
*/
/*** 地区*/
val display_region: String,
/**
* 是否展示公益图标
*/
val has_servicefree_experience: Int?
/***咨询显示状态:1.忙碌;2.现在有空;3.今日可约;4.最近可约;5.已约满;6.休息中*/
val consult_display_status: Int,
/***专家头像下方文案:如 忙碌;现在有空;今日可约;最近可约;已约满;休息中*/
val consult_display_status_str: String,
/***私聊下方时间描述:如 最快可约今天19:00*/
val today_time_des: String,
/***服务方式:如 当面/视频*/
val attr_combine: String = "",
/***0:关闭代聊,1:开启代聊*/
val open_chat_agency: Int,
/***年审*/
val audit_tag: String,
) {
) {
constructor(is_head_view: Boolean, search_content: String, related_word: String) : this(
"", "", "", "", "",
1, 1, 1, "", false, true,
1f, false, 0, "", "", "", 1f, 1f,
null, null, 1, 1, 1, 1,
"", "", "", "", null, is_head_view, search_content, related_word, "", 1
id = "",
uid = "",
doctor_name = "",
link_url = "",
head = "",
chat_status = 1,
evaluate_num = 0,
min_price = "",
title = "",
sum_service_time = 0f,
service_status = 1,
chat_num = 0,
chat_btn_text = null,
feature_tags = null,
is_head_view = is_head_view,
search_content = search_content,
related_word = related_word,
display_region = "",
consult_display_status = 2,
consult_display_status_str = "",
today_time_des = "",
attr_combine = "",
open_chat_agency = 0,
audit_tag = ""
)
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp"/>
<corners android:radius="4dp" />
<solid android:color="@color/color_1AEB892C" />
<stroke android:width="0.5dp" android:color="@color/color_EB892C"/>
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp"/>
<corners android:radius="4dp" />
<solid android:color="@color/platform_white" />
<stroke android:width="0.5dp" android:color="@color/platform_color_E0E0E0"/>
<stroke
android:width="0.5dp"
android:color="@color/color_1c1f28_20" />
</shape>
\ No newline at end of file
......@@ -4,9 +4,9 @@
<shape android:shape="rectangle">
<solid android:color="@color/platform_main_theme_bright" />
<corners android:radius="11dp"/>
<stroke
<!--<stroke
android:width="0.5dp"
android:color="@color/platform_main_theme"/>
android:color="@color/platform_main_theme"/>-->
</shape>
</item>
<item android:state_enabled="true">
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/color_f6f6f7" />
<corners android:radius="2dp" />
<padding
android:bottom="2dp"
android:left="4dp"
android:right="4dp"
android:top="1.5dp" />
</shape>
\ No newline at end of file
......@@ -4,10 +4,13 @@
android:id="@+id/tvTag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="@drawable/consultant_bg_radius_line_gray_1"
android:gravity="center"
android:layout_marginEnd="6dp"
android:padding="3dp"
android:textColor="@color/platform_color_666666"
android:textSize="10sp"
android:paddingLeft="4dp"
android:paddingTop="2dp"
android:paddingRight="4dp"
android:paddingBottom="3dp"
android:textColor="@color/color_1c1f28_50"
android:textSize="11sp"
tools:text="恋爱情感" />
......@@ -3,7 +3,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/platform_white"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
......@@ -29,12 +28,14 @@
android:id="@+id/tvSubject"
style="@style/consultant_FilterTextViewStyle"
android:layout_width="0dp"
android:drawablePadding="4dp"
android:layout_weight="1"
android:width="0dp"
android:ellipsize="end"
android:textStyle="bold"
android:singleLine="true"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="困扰"
android:textColor="@color/platform_color_242424" />
......@@ -44,8 +45,10 @@
android:layout_width="0dp"
android:layout_weight="1"
android:width="0dp"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:textStyle="bold"
android:drawablePadding="4dp"
android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="城市"
android:textColor="@color/platform_color_242424" />
......@@ -55,8 +58,10 @@
android:layout_width="0dp"
android:layout_weight="1"
android:width="0dp"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp"
android:textStyle="bold"
android:drawablePadding="4dp"
android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="价格"
android:textColor="@color/platform_color_242424" />
......@@ -66,8 +71,10 @@
android:layout_width="0dp"
android:layout_weight="1"
android:width="0dp"
android:drawableEnd="@drawable/filter_up_grey"
android:drawableRight="@drawable/filter_up_grey"
android:textStyle="bold"
android:drawablePadding="4dp"
android:drawableEnd="@drawable/filter_up_gray"
android:drawableRight="@drawable/filter_up_gray"
android:text="@string/platform_filter"
android:textColor="@color/platform_color_242424" />
</LinearLayout>
......
......@@ -26,5 +26,17 @@
<color name="consultant_colorBg">#f5f5f5</color>
<color name="color_EB892C">#EB892C</color>
<color name="color_1AEB892C">#1AEB892C</color>
<color name="color_1c1f28_60">#a61c1f28</color>
<color name="color_1c1f28_50">#801c1f28</color>
<color name="color_1c1f28_40">#661c1f28</color>
<color name="color_1c1f28_20">#331c1f28</color>
<color name="color_ef8a4a">#EF8A4A</color>
<color name="color_f6f6f7">#f6f6f7</color>
<color name="color_6ec8f9">#6ec8f9</color>
<color name="color_6ec8f9_90">#E66ec8f9</color>
<color name="color_b6bece">#B6BECE</color>
<color name="color_b6bece_90">#E6B6BECE</color>
<color name="color_f5a082">#F5A082</color>
<color name="color_f5a082_90">#E6F5A082</color>
<color name="color_f28e6b">#F28E6B</color>
</resources>
......@@ -550,9 +550,10 @@ object IMChatUtil {
val status = chatStatusBean.data.status
actionHandler.setDoctorStatus(status)
actionHandler.setDoctorBusyNum(chatStatusBean.data.busyTotal)
//1.在线,2.离线,3.忙碌 4咨询中, 5倾述中 6咨询前准备
if (status == 2) { //离线
tb.setMinTitleText("离线")
//1.在线,2.离线,3.服务中 4咨询中, 5倾述中 6咨询前准备
when (status) {
3 -> { //服务中
tb.setMinTitleText("服务中")
tb.setMinTitleColor(
ContextCompat.getColor(
context,
......@@ -562,11 +563,12 @@ object IMChatUtil {
tb.setMinTitleDrawable(
ContextCompat.getDrawable(
context,
R.drawable.im_background_chat_top_status_off_line
R.drawable.im_background_chat_top_status_online_server
)
)
} else if (status == 4 || status == 5) { //服务中
tb.setMinTitleText("服务中")
}
2 -> { //离线
tb.setMinTitleText("离线")
tb.setMinTitleColor(
ContextCompat.getColor(
context,
......@@ -576,10 +578,11 @@ object IMChatUtil {
tb.setMinTitleDrawable(
ContextCompat.getDrawable(
context,
R.drawable.im_background_chat_top_status_online_server
R.drawable.im_background_chat_top_status_off_line
)
)
} else { //在线 1,3,6..
}
else -> { //在线 1
tb.setMinTitleText("在线")
tb.setMinTitleColor(
ContextCompat.getColor(
......@@ -594,6 +597,7 @@ object IMChatUtil {
)
)
}
}
initSystemMessage(
chatStatusBean.data.promptRule,
status,
......
......@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Context
import android.os.Build
import android.text.TextUtils
import android.util.Log
import com.google.gson.Gson
import com.ydl.devicesidlib.DeviceIDHelper
import com.ydl.devicesidlib.Utils
......@@ -259,14 +260,32 @@ class HttpConfig {
}
val message = originalResponse.message()
val api = request.url().encodedPath()
ActionCountUtils.baiDuCount("ydl_user_error_business","error_log",api,params,message)
ActionCountUtils.baiDuCount(
"ydl_user_error_business",
"error_log",
api,
params,
message
)
//阿里云忽略埋点接口
if (!api.contains("maidian/writeMaiDianData")){
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.API, "error_log---api:$api---params:$params ---- message:$message")
}else{
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.API, "writeMaiDianDataError:$api---params:$params ---- message:$message")
if (!api.contains("maidian/writeMaiDianData")) {
AliYunRichLogsHelper.getInstance().sendRichLog(
AliYunLogConfig.API,
"error_log---api:$api---params:$params ---- message:$message"
)
} else {
AliYunRichLogsHelper.getInstance().sendRichLog(
AliYunLogConfig.API,
"writeMaiDianDataError:$api---params:$params ---- message:$message"
)
}
}
} else {
Log.e(
"YDL",
"\n---------------------------------------------------------------------------\n" +
"| 请求地址:" + request.url() + " |\n--------------------------------------------------------------------------\n"
)
}
originalResponse
}
......
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