Commit c9fbc1d4 authored by shiyuelong's avatar shiyuelong

个人认证选择职业标签改成读取本地json 文件配置

parent bc50fdec
...@@ -14,5 +14,6 @@ class XEventConfig { ...@@ -14,5 +14,6 @@ class XEventConfig {
const val UPDATE_COMMENT: String = "updateComment" const val UPDATE_COMMENT: String = "updateComment"
const val UPDATE_LIKE: String = "updateLike" const val UPDATE_LIKE: String = "updateLike"
const val GIF_DATA: String = "gifData" const val GIF_DATA: String = "gifData"
const val CHOOSE_CAREER: String = "chooseCareer"
} }
} }
\ No newline at end of file
[
{
"category": "专业咨询服务",
"list": [
"律师",
"心理咨询",
"情感咨询",
"翻译"
]
},
{
"category": "互联网IT",
"list": [
"程序员",
"运营",
"电商",
"IT服务"
]
},
{
"category": "农林畜牧",
"list": [
"养殖/繁殖",
"农民",
"农业种植",
"花匠"
]
},
{
"category": "医疗健康",
"list": [
"医生",
"护士",
"中医",
"口腔",
"兽医",
"养生保健"
]
},
{
"category": "司机货运",
"list": [
"出租车",
"专职司机",
"物料运输",
"汽车租赁",
"代驾"
]
},
{
"category": "媒体广告",
"list": [
"广告传媒",
"平面设计",
"新媒体运营",
"记者",
"自媒体",
"演员",
"手艺人",
"经纪人",
"主播",
"网红",
"导演",
"编辑",
"摄像师",
"模特",
"歌手",
"运动员",
"自由撰稿人"
]
},
{
"category": "工程基建",
"list": [
"普通",
"工程师",
"施工管理",
"工程设备租赁",
"建材",
"农民工",
"消防施工改造"
]
},
{
"category": "房租销售",
"list": [
"房屋中介",
"房产顾问",
"房屋出租",
"地产开发",
"房屋买卖"
]
},
{
"category": "教育培训",
"list": [
"公办教师",
"课外培训",
"艺术培训",
"教育咨询",
"游泳教练",
"幼师",
"驾校培训",
"学历提升"
]
},
{
"category": "生成制造",
"list": [
"汽车制造",
"数控车床",
"机械加工制造",
"电焊工",
"纺织制造",
"农业生产",
"视频加工",
"手工制造"
]
},
{
"category": "生活服务",
"list": [
"快递",
"安保/保安",
"家政",
"保洁",
"空调维修",
"汽车服务",
"搬家",
"保姆",
"水电维修",
"电脑维修",
"家电维修",
"宠物美容",
"宠物医院",
"手机维修",
"代办服务",
"社工/义工",
"导游服务",
"汽车评估师",
"宝妈",
"插画师",
"画家",
"废品回收",
"电梯维护",
"烟酒回收",
"珠宝首饰回收",
"风水师",
"疏通维修"
]
},
{
"category": "美容美体",
"list": [
"理发",
"美容护肤",
"美甲",
"美瞳",
"化妆师",
"烫发染发",
"保健按摩",
"健身",
"医美整形",
"纹身师",
"减肥瘦身"
]
},
{
"category": "行政管理",
"list": [
"人力资源",
"猎头顾问",
"企业管理",
"劳务派遣",
"酒店管理",
"企业员工",
"后勤管理"
]
},
{
"category": "装修装饰",
"list": [
"室内装修",
"装修设计",
"装修装潢施工",
"家具定制",
"水电暖施工改造"
]
},
{
"category": "财务审计",
"list": [
"财务",
"审计",
"会计",
"出纳",
"财务代理"
]
},
{
"category": "金融保险",
"list": [
"保险销售",
"理财投资",
"银行贷款"
]
},
{
"category": "销售营销",
"list": [
"二手车",
"家具销售",
"五金建材",
"服装销售",
"建材销售",
"房租销售",
"市场营销策划",
"烟酒销售",
"超市",
"电商",
"手机销售",
"珍宝贵金属销售",
"蔬菜水果销售",
"食品销售",
"销售经理",
"个体经营"
]
},
{
"category": "餐饮娱乐",
"list": [
"餐饮服务",
"KTV",
"酒吧",
"网吧/网咖",
"洗浴",
"温泉",
"旅游服务"
]
},
{
"category": "其他",
"list": [
"退休人员",
"退伍军人",
"家庭主妇",
"收藏家"
]
}
]
\ No newline at end of file
...@@ -17,93 +17,100 @@ import com.yidian.utils.DensityUtil ...@@ -17,93 +17,100 @@ import com.yidian.utils.DensityUtil
* description: 商户服务分组adapter * description: 商户服务分组adapter
*/ */
class MerchantServiceGroupAdapter @JvmOverloads constructor( class MerchantServiceGroupAdapter @JvmOverloads constructor(
val context: Context, val context: Context,
data: List<GetConfigListBean.Item>? = null data: List<GetConfigListBean.Item>? = null
) : ) :
RecyclerView.Adapter<MerchantServiceGroupAdapter.MerchantServiceGroupViewHolder>() { RecyclerView.Adapter<MerchantServiceGroupAdapter.MerchantServiceGroupViewHolder>() {
companion object { companion object {
// 是否显示标识 // 是否显示标识(1:显示;0:不显示)
private const val GROUP_SHOW = 1 private const val GROUP_SHOW = 1
} }
private lateinit var viewBinding: ItemMerchantServiceGroupBinding private lateinit var viewBinding: ItemMerchantServiceGroupBinding
/** /**
* 数据源 * 数据源
*/ */
private val groupData by lazy { private val groupData by lazy {
ArrayList<GetConfigListBean.Item>() ArrayList<GetConfigListBean.Item>()
} }
init { init {
// 将不显示的数据去除 // 将不显示的数据去除
data?.let { data?.let {
(it as ArrayList<GetConfigListBean.Item>).iterator().apply { it.forEach { menuItem ->
while (hasNext()) { if (menuItem.show == GROUP_SHOW) {
if (next().show != GROUP_SHOW) remove() groupData.add(menuItem)
}
}
groupData.addAll(it)
} }
}
// (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
// while (hasNext()) {
// if (next().show != GROUP_SHOW) remove()
// }
// }
// groupData.addAll(it)
} }
}
/** // /**
* 更换数据 将不显示的数据去除 // * 更换数据 将不显示的数据去除
*/ // */
fun updateData(data: List<GetConfigListBean.Item>?) { // fun updateData(data: List<GetConfigListBean.Item>?) {
data?.let { // data?.let {
groupData.clear() // groupData.clear()
(it as ArrayList<GetConfigListBean.Item>).iterator().apply { // (it as ArrayList<GetConfigListBean.Item>).iterator().apply {
while (hasNext()) { // while (hasNext()) {
if (next().show != GROUP_SHOW) remove() // if (next().show != GROUP_SHOW) remove()
} // }
} // }
groupData.addAll(it) // groupData.addAll(it)
notifyDataSetChanged() // notifyDataSetChanged()
} // }
} // }
override fun onCreateViewHolder( override fun onCreateViewHolder(
parent: ViewGroup, parent: ViewGroup,
viewType: Int viewType: Int
): MerchantServiceGroupViewHolder { ): MerchantServiceGroupViewHolder {
viewBinding = viewBinding =
ItemMerchantServiceGroupBinding.inflate( ItemMerchantServiceGroupBinding.inflate(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
parent, parent,
false false
) )
return MerchantServiceGroupViewHolder(viewBinding.root, viewBinding) return MerchantServiceGroupViewHolder(viewBinding.root, viewBinding)
} }
override fun onBindViewHolder(holder: MerchantServiceGroupViewHolder, position: Int) { override fun onBindViewHolder(holder: MerchantServiceGroupViewHolder, position: Int) {
val data = groupData[position] val data = groupData[position]
if (data.show != GROUP_SHOW) return if (data.show != GROUP_SHOW) return
holder.viewBinding.tvTitle.text = data.group_name holder.viewBinding.tvTitle.text = data.group_name
viewBinding.rvService.layoutManager = viewBinding.rvService.layoutManager = GridLayoutManager(context, 4)
GridLayoutManager(context, 4) viewBinding.rvService.adapter = MerchantServiceFunctionAdapter(context, data.functions)
viewBinding.rvService.adapter = MerchantServiceFunctionAdapter(context, data.functions) }
}
override fun getItemCount(): Int { override fun getItemCount(): Int {
return groupData.size return groupData.size
} }
class MerchantServiceGroupViewHolder( class MerchantServiceGroupViewHolder(
itemView: View, itemView: View,
val viewBinding: ItemMerchantServiceGroupBinding val viewBinding: ItemMerchantServiceGroupBinding
) : RecyclerView.ViewHolder(itemView) ) : RecyclerView.ViewHolder(itemView)
class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() { /**
override fun getItemOffsets( * 管理中心菜单列表的分割线
outRect: Rect, */
view: View, class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() {
parent: RecyclerView, override fun getItemOffsets(
state: RecyclerView.State outRect: Rect,
) { view: View,
outRect.bottom = DensityUtil.dp2px(10f) parent: RecyclerView,
} state: RecyclerView.State
) {
outRect.bottom = DensityUtil.dp2px(10f)
} }
}
} }
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.bean
import com.google.gson.annotations.SerializedName
/**
* 职业列表数据模型
*/
class CareerListBean : ArrayList<CareerListBeanItem>()
data class CareerListBeanItem(
@SerializedName("category")
val category: String,
@SerializedName("list")
val list: List<String>
)
package com.yidian.shenghuoquan.newscontent.ui.auth package com.yidian.shenghuoquan.newscontent.ui.auth
import android.os.Bundle import android.os.Bundle
import com.google.gson.Gson
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants.Companion.CHOOSE_CAREER import com.yidian.common.XRouterPathConstants.Companion.CHOOSE_CAREER
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.common.extensions.initTitleBar import com.yidian.common.extensions.initTitleBar
import com.yidian.common.services.XEventService
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.adapter.FirstCareerListAdapter import com.yidian.shenghuoquan.newscontent.adapter.FirstCareerListAdapter
import com.yidian.shenghuoquan.newscontent.adapter.SecondCareerListAdapter import com.yidian.shenghuoquan.newscontent.adapter.SecondCareerListAdapter
import com.yidian.shenghuoquan.newscontent.bean.CareerListBean
import com.yidian.shenghuoquan.newscontent.databinding.ActivityChooseCareerBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityChooseCareerBinding
import com.yidian.shenghuoquan.newscontent.utils.JsonUtils
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
/** /**
...@@ -16,11 +23,8 @@ import com.yidian.utils.ToastUtil ...@@ -16,11 +23,8 @@ import com.yidian.utils.ToastUtil
*/ */
class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() { class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
var secondCareer1 = arrayListOf("第一职业1", "第一职业2", "第一职业3", "第一职业4", "第一职业5") private var firstCareer = arrayListOf<String>()
var secondCareer2 = arrayListOf("第二职业1", "第二职业2", "第二职业3", "第二职业4", "第二职业5") private var secondCareer = arrayListOf<String>()
var secondCareer3 = arrayListOf("第三职业1", "第三职业2", "第三职业3", "第三职业4", "第三职业5")
var secondCareer4 = arrayListOf("第四职业1", "第四职业2", "第四职业3", "第四职业4", "第四职业5")
var firstCareer = arrayListOf("互联网", "金融类", "公务员", "自由职业")
private val firstListAdapter: FirstCareerListAdapter by lazy { FirstCareerListAdapter() } private val firstListAdapter: FirstCareerListAdapter by lazy { FirstCareerListAdapter() }
private val secondListAdapter: SecondCareerListAdapter by lazy { SecondCareerListAdapter() } private val secondListAdapter: SecondCareerListAdapter by lazy { SecondCareerListAdapter() }
...@@ -42,30 +46,31 @@ class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() { ...@@ -42,30 +46,31 @@ class ChooseCareerActivity : BaseActivity<ActivityChooseCareerBinding>() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.choose_career)) initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, resources.getString(R.string.choose_career))
viewBind.rvListFirst.adapter = firstListAdapter viewBind.rvListFirst.adapter = firstListAdapter
viewBind.rvListSecond.adapter = secondListAdapter viewBind.rvListSecond.adapter = secondListAdapter
// 解析本地json数据
val jsonStr = JsonUtils.file2JsonStr(this, "Career.json")
val gson = Gson()
val beanList: CareerListBean = gson.fromJson(jsonStr, CareerListBean::class.java)
// 赋值给一级职业分类
beanList.forEach {
firstCareer.add(it.category)
}
// 二级列表默认值
secondCareer.addAll(beanList[0].list)
// 赋值给适配器
firstListAdapter.setList(firstCareer) firstListAdapter.setList(firstCareer)
secondListAdapter.setList(secondCareer1) secondListAdapter.setList(secondCareer)
firstListAdapter.setOnItemClickListener { _, _, position -> firstListAdapter.setOnItemClickListener { _, _, position ->
when (position) { secondListAdapter.setList(beanList[position].list)
0 -> {
secondListAdapter.setList(secondCareer1)
}
1 -> {
secondListAdapter.setList(secondCareer2)
}
2 -> {
secondListAdapter.setList(secondCareer3)
}
3 -> {
secondListAdapter.setList(secondCareer4)
}
}
firstListAdapter.setSelectedIndex(position) firstListAdapter.setSelectedIndex(position)
} }
secondListAdapter.setOnItemClickListener { adapter, _, position -> secondListAdapter.setOnItemClickListener { adapter, _, position ->
secondListAdapter.setSelectedIndex(position) secondListAdapter.setSelectedIndex(position)
val secondCareer = adapter.data[position] as String val secondCareer = adapter.data[position] as String
// todo 回传选择的职业 // 回传选择的职业
ToastUtil.showToast(this, "选择的职业:$secondCareer") val event = XBaseEvent(XEventConfig.CHOOSE_CAREER, secondCareer)
XEventService.postEvent(event)
} }
} }
......
...@@ -6,6 +6,7 @@ import android.view.View ...@@ -6,6 +6,7 @@ import android.view.View
import android.widget.CompoundButton import android.widget.CompoundButton
import com.orhanobut.hawk.Hawk import com.orhanobut.hawk.Hawk
import com.yidian.common.HawkConfig import com.yidian.common.HawkConfig
import com.yidian.common.XEventConfig
import com.yidian.common.XRouterPathConstants import com.yidian.common.XRouterPathConstants
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
...@@ -15,7 +16,11 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService ...@@ -15,7 +16,11 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.callback.IAuthPersonalCompleteCallback import com.yidian.shenghuoquan.newscontent.http.callback.IAuthPersonalCompleteCallback
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthAuthenticationBean import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthAuthenticationBean
import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthPersonalCompleteBean import com.yidian.shenghuoquan.newscontent.http.httpbean.AuthPersonalCompleteBean
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
import com.yidian.xpage.XPageManager import com.yidian.xpage.XPageManager
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
/** /**
* author: yinjiacheng * author: yinjiacheng
...@@ -23,152 +28,168 @@ import com.yidian.xpage.XPageManager ...@@ -23,152 +28,168 @@ import com.yidian.xpage.XPageManager
* description: 生活号个人认证 * description: 生活号个人认证
*/ */
class LifeAccountPersonalAuthActivity : class LifeAccountPersonalAuthActivity :
BaseActivity<ActivityLifeAccountPersonalAuthBinding>(), BaseActivity<ActivityLifeAccountPersonalAuthBinding>(),
View.OnClickListener, CompoundButton.OnCheckedChangeListener, IAuthPersonalCompleteCallback { View.OnClickListener, CompoundButton.OnCheckedChangeListener, IAuthPersonalCompleteCallback {
companion object { companion object {
// 认证数据 // 认证数据
const val EXTRA_AUTH_DATA = "authData" const val EXTRA_AUTH_DATA = "authData"
} }
/** /**
* 当前fragment * 当前fragment
*/ */
private val fragment by lazy { LifeAccountIDCardAuthFragment() } private val fragment by lazy { LifeAccountIDCardAuthFragment() }
/** /**
* 认证数据 还原认证流程用 * 认证数据 还原认证流程用
*/ */
private val authData by lazy { private val authData by lazy {
intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let { intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
(it as HashMap<*, *>)[EXTRA_AUTH_DATA]?.let { data -> (it as HashMap<*, *>)[EXTRA_AUTH_DATA]?.let { data ->
data as AuthAuthenticationBean.Response data as AuthAuthenticationBean.Response
} }
}
}
override fun createViewBinding(): ActivityLifeAccountPersonalAuthBinding {
return ActivityLifeAccountPersonalAuthBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.LIFE_ACCOUNT_PERSONAL_AUTH
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.personal_auth)
}
private fun initListener() {
viewBind.viewCommonHeader.ivBack.setOnClickListener(this)
viewBind.svOccupation.setOnClickListener(this)
viewBind.cbProtocol.setOnCheckedChangeListener(this)
viewBind.btnNext.setOnClickListener(this)
} }
}
private fun initData() {
// 如果有已存在的认证流程则还原进度 override fun createViewBinding(): ActivityLifeAccountPersonalAuthBinding {
authData?.let { LifeAccountAuthDataManager.generatePersonalAuthData(it) } return ActivityLifeAccountPersonalAuthBinding.inflate(layoutInflater)
authData?.occupation?.let { viewBind.svOccupation.setContentResult(it) } }
val bundle = Bundle()
bundle.putSerializable(LifeAccountIDCardAuthFragment.EXTRA_AUTH_DATA, authData) override fun getXPageName(): String {
fragment.arguments = bundle return XRouterPathConstants.LIFE_ACCOUNT_PERSONAL_AUTH
supportFragmentManager.beginTransaction() }
.add(R.id.fragment_container, fragment).commit()
} override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
/** XEventManager.register(this)
* 检查是否可以进行下一步 initView()
*/ initListener()
fun checkNextCondition() { initData()
if (viewBind.cbProtocol.isChecked }
&& !LifeAccountAuthDataManager.personalAuthData.occupation.isNullOrEmpty()
&& LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass private fun initView() {
) { viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.personal_auth)
viewBind.btnNext.alpha = 1f }
viewBind.btnNext.isEnabled = true
} else { private fun initListener() {
viewBind.btnNext.alpha = 0.32f viewBind.viewCommonHeader.ivBack.setOnClickListener(this)
viewBind.btnNext.isEnabled = false viewBind.svOccupation.setOnClickListener(this)
} viewBind.cbProtocol.setOnCheckedChangeListener(this)
} viewBind.btnNext.setOnClickListener(this)
}
/**
* 禁止修改职业标签 用于人脸验证通过后 private fun initData() {
*/ // 如果有已存在的认证流程则还原进度
fun disableModifyOccupation() { authData?.let { LifeAccountAuthDataManager.generatePersonalAuthData(it) }
viewBind.svOccupation.enableSelect(false) authData?.occupation?.let { viewBind.svOccupation.setContentResult(it) }
} val bundle = Bundle()
bundle.putSerializable(LifeAccountIDCardAuthFragment.EXTRA_AUTH_DATA, authData)
override fun onClick(v: View?) { fragment.arguments = bundle
when (v?.id) { supportFragmentManager.beginTransaction()
R.id.iv_back -> XPageManager.pop(null) .add(R.id.fragment_container, fragment).commit()
R.id.sv_occupation -> { }
// TODO: 5/27/21 跳转职业标签选择 选择完成后进行下一步检查
LifeAccountAuthDataManager.personalAuthData.occupation = "工程师" /**
viewBind.svOccupation.setContentResult("工程师") * 检查是否可以进行下一步
checkNextCondition() */
} fun checkNextCondition() {
R.id.btn_next -> { if (viewBind.cbProtocol.isChecked
// 个人认证 完成认证 && !LifeAccountAuthDataManager.personalAuthData.occupation.isNullOrEmpty()
val requestParams = HashMap<String, String?>() && LifeAccountAuthDataManager.personalAuthData.isFaceAuthPass
requestParams["mobile"] = Hawk.get(HawkConfig.Mobile, "") ) {
ApiService.authComplete( viewBind.btnNext.alpha = 1f
this, viewBind.btnNext.isEnabled = true
requestParams } else {
) viewBind.btnNext.alpha = 0.32f
} viewBind.btnNext.isEnabled = false
}
} }
}
override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
if (buttonView?.isPressed == false) return /**
checkNextCondition() * 禁止修改职业标签 用于人脸验证通过后
} */
fun disableModifyOccupation() {
override fun authPersonalCompleteSuccess(result: AuthPersonalCompleteBean.Response?) { viewBind.svOccupation.enableSelect(false)
// 本地保存生活号id }
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 跳转个人认证成功页 override fun onClick(v: View?) {
XPageManager.push( when (v?.id) {
XRouterPathConstants.LIFE_ACCOUNT_PERSONAL_AUTH_COMPLETE, R.id.iv_back -> XPageManager.pop(null)
hashMapOf( R.id.sv_occupation -> {
Pair( XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
LifeAccountPersonalAuthCompleteActivity.OCCUPATION, }
LifeAccountAuthDataManager.personalAuthData.occupation R.id.btn_next -> {
), // 个人认证 完成认证
Pair( val requestParams = HashMap<String, String?>()
LifeAccountPersonalAuthCompleteActivity.PHONE_NUM, requestParams["mobile"] = Hawk.get(HawkConfig.Mobile, "")
Hawk.get(HawkConfig.Mobile, "") ApiService.authComplete(
), this,
Pair( requestParams
LifeAccountPersonalAuthCompleteActivity.REAL_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountPersonalAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountPersonalAuthCompleteActivity.LIFE_ACCOUNT_ID,
result?.life_account_id
)
)
) )
finish() }
} }
}
override fun authPersonalCompleteFailure(message: String?) {
Log.e( override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
Constant.LIFE_ACCOUNT_AUTH_TAG, if (buttonView?.isPressed == false) return
"request auth complete failure: message: $message" checkNextCondition()
}
override fun authPersonalCompleteSuccess(result: AuthPersonalCompleteBean.Response?) {
// 本地保存生活号id
Hawk.put(HawkConfig.LifeAccountId, result?.life_account_id)
// 跳转个人认证成功页
XPageManager.push(
XRouterPathConstants.LIFE_ACCOUNT_PERSONAL_AUTH_COMPLETE,
hashMapOf(
Pair(
LifeAccountPersonalAuthCompleteActivity.OCCUPATION,
LifeAccountAuthDataManager.personalAuthData.occupation
),
Pair(
LifeAccountPersonalAuthCompleteActivity.PHONE_NUM,
Hawk.get(HawkConfig.Mobile, "")
),
Pair(
LifeAccountPersonalAuthCompleteActivity.REAL_NAME,
LifeAccountAuthDataManager.personalAuthData.realName
),
Pair(
LifeAccountPersonalAuthCompleteActivity.ID_CARD_NUM,
LifeAccountAuthDataManager.personalAuthData.idCardNum
),
Pair(
LifeAccountPersonalAuthCompleteActivity.LIFE_ACCOUNT_ID,
result?.life_account_id
) )
)
)
finish()
}
override fun authPersonalCompleteFailure(message: String?) {
Log.e(
Constant.LIFE_ACCOUNT_AUTH_TAG,
"request auth complete failure: message: $message"
)
}
override fun onDestroy() {
super.onDestroy()
XEventManager.unRegister(this)
}
@Subscribe(sticky = false, threadMode = ThreadMode.MAIN)
fun onEvent(event: XBaseEvent?) {
when (event?.name) {
XEventConfig.CHOOSE_CAREER -> {
val selectedCareer = event.body as String
LifeAccountAuthDataManager.personalAuthData.occupation = selectedCareer
viewBind.svOccupation.setContentResult(selectedCareer)
checkNextCondition()
}
} }
} }
\ No newline at end of file }
...@@ -27,136 +27,133 @@ import com.yidian.xpage.XPageManager ...@@ -27,136 +27,133 @@ import com.yidian.xpage.XPageManager
* description: 商户管理中心 * description: 商户管理中心
*/ */
class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
IGetConfigListCallback, IGetLifeAccountListCallback, View.OnClickListener, IGetConfigListCallback, IGetLifeAccountListCallback, View.OnClickListener,
MerchantSwitchDialog.OnMerchantSwitchCallback, LifeAccountLabelView.OnLifeAccountLabelCallback, MerchantSwitchDialog.OnMerchantSwitchCallback, LifeAccountLabelView.OnLifeAccountLabelCallback,
IGetLifeAccountInfoByIdCallback { IGetLifeAccountInfoByIdCallback {
companion object {
// 传递的生活号信息
const val EXTRA_LIFE_ACCOUNT_INFO = "lifeAccountInfo"
companion object { // 是否有多个生活号
// 传递的生活号信息 const val EXTRA_IS_MULTI = "isMulti"
const val EXTRA_LIFE_ACCOUNT_INFO = "lifeAccountInfo"
// 是否有多个生活号 const val PARAMS_LIFE_ACCOUNT_ID = "life_account_id"
const val EXTRA_IS_MULTI = "isMulti" }
const val PARAMS_LIFE_ACCOUNT_ID = "life_account_id" /**
} * 当前生活号
*/
/** private lateinit var curLifeAccount: LifeAccountItemBean.Response
* 当前生活号
*/
private lateinit var curLifeAccount: LifeAccountItemBean.Response
override fun createViewBinding(): ActivityMerchantCenterBinding {
return ActivityMerchantCenterBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.MERCHANT_CENTER
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.management_center)
viewBind.viewCommonHeader.ivBack.isVisible = false
// 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
}
private fun initListener() {
viewBind.tvSwitch.setOnClickListener(this)
viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this)
}
private fun initData() {
val params = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
it as HashMap<*, *>
}
// 切换主体入口判断
viewBind.tvSwitch.isVisible = params?.get(EXTRA_IS_MULTI)?.let { it as Boolean } ?: false
curLifeAccount = params?.get(EXTRA_LIFE_ACCOUNT_INFO)?.let { it as LifeAccountItemBean.Response } ?: return
// 设置当前生活号信息
viewBind.lvLifeAccountLabel.setLifeAccountData(curLifeAccount)
// 请求功能入口配置清单
ApiService.getConfigList(this)
// 判断是否提示升级企业认证或提示认证驳回
if (curLifeAccount.life_account_type == Constant.TYPE_LIFE_ACCOUNT_PERSONAL) {
// 当前是个人生活号 提示升级
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_UPGRADE
).show()
}
if (curLifeAccount.enterprise_audit_status == Constant.STATUS_AUDIT_REJECT) {
// 当前企业认证驳回 提示修改
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_REJECT
).show()
}
}
override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager =
LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(
this,
result?.merchant_manager_center?.items
)
}
override fun getConfigListFailure(message: String?) { override fun createViewBinding(): ActivityMerchantCenterBinding {
return ActivityMerchantCenterBinding.inflate(layoutInflater)
}
override fun getXPageName(): String {
return XRouterPathConstants.MERCHANT_CENTER
}
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initListener()
initData()
}
private fun initView() {
viewBind.viewCommonHeader.tvTitle.text = resources.getString(R.string.management_center)
viewBind.viewCommonHeader.ivBack.isVisible = false
// 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
viewBind.avMerchantAsset.setOnClickListener {
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
}
private fun initListener() {
viewBind.tvSwitch.setOnClickListener(this)
viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this)
}
private fun initData() {
val params = intent.getSerializableExtra(XRouterPathConstants.ParamsKey)?.let {
it as HashMap<*, *>
}
// 切换主体入口判断
viewBind.tvSwitch.isVisible = params?.get(EXTRA_IS_MULTI)?.let { it as Boolean } ?: false
curLifeAccount = params?.get(EXTRA_LIFE_ACCOUNT_INFO)?.let { it as LifeAccountItemBean.Response } ?: return
// 设置当前生活号信息
viewBind.lvLifeAccountLabel.setLifeAccountData(curLifeAccount)
// 请求功能入口配置清单
ApiService.getConfigList(this)
// 判断是否提示升级企业认证或提示认证驳回
if (curLifeAccount.life_account_type == Constant.TYPE_LIFE_ACCOUNT_PERSONAL) {
// 当前是个人生活号 提示升级
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_UPGRADE
).show()
}
if (curLifeAccount.enterprise_audit_status == Constant.STATUS_AUDIT_REJECT) {
// 当前企业认证驳回 提示修改
MerchantCenterBottomHintDialog(
this,
MerchantCenterBottomHintDialog.TYPE_AUTH_REJECT
).show()
}
}
override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager = LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(this, result?.merchant_manager_center?.items)
}
override fun getConfigListFailure(message: String?) {
}
override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) {
// 生活号列表请求成功 弹出切换主体弹窗
result?.let { MerchantSwitchDialog(this, curLifeAccount.life_account_id, it, this).show() }
}
override fun getLifeAccountListFailure(message: String?) {
}
override fun onClick(v: View?) {
if (v?.id == R.id.tv_switch) {
// 切换主体 请求生活号列表接口
ApiService.getLifeAccountList(this)
}
}
} override fun onLifeAccountSelect(data: LifeAccountItemBean.Response) {
// 用户切换主体 更新当前生活号信息
override fun getLifeAccountListSuccess(result: ArrayList<LifeAccountItemBean.Response>?) { curLifeAccount = data
// 生活号列表请求成功 弹出切换主体弹窗 viewBind.lvLifeAccountLabel.setLifeAccountData(data)
result?.let { MerchantSwitchDialog(this, curLifeAccount.life_account_id, it, this).show() } }
}
override fun onEnterLifeAccountInfo(lifeAccountId: String) {
override fun getLifeAccountListFailure(message: String?) { // 请求生活号详情接口
ApiService.getLifeAccountInfoById(this, hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId)))
} }
override fun onClick(v: View?) { override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
if (v?.id == R.id.tv_switch) { // 跳转生活号基本信息
// 切换主体 请求生活号列表接口 XPageManager.push(
ApiService.getLifeAccountList(this) XRouterPathConstants.MERCHANT_INFO,
} hashMapOf(Pair(MerchantInfoActivity.EXTRA_LIFE_ACCOUNT_INFO, result))
} )
}
override fun onLifeAccountSelect(data: LifeAccountItemBean.Response) {
// 用户切换主体 更新当前生活号信息 override fun getLifeAccountInfoByIdFailure(message: String?) {
curLifeAccount = data
viewBind.lvLifeAccountLabel.setLifeAccountData(data) }
}
override fun onEnterLifeAccountInfo(lifeAccountId: String) {
// 请求生活号详情接口
ApiService.getLifeAccountInfoById(
this,
hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId))
)
}
override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
// 跳转生活号基本信息
XPageManager.push(
XRouterPathConstants.MERCHANT_INFO,
hashMapOf(Pair(MerchantInfoActivity.EXTRA_LIFE_ACCOUNT_INFO, result))
)
}
override fun getLifeAccountInfoByIdFailure(message: String?) {
}
} }
package com.yidian.shenghuoquan.newscontent.utils
import android.content.Context
import android.content.res.AssetManager
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
/**
* JSON解析工具类
*/
object JsonUtils {
//从文件中读取内容转成json字符串
fun file2JsonStr(context: Context, fileName: String): String? {
val stringBuilder = StringBuilder()
try {
val assetManager: AssetManager = context.assets
val isr = InputStreamReader(assetManager.open(fileName))
val bf = BufferedReader(isr)
var line: String?
while (bf.readLine().also { line = it } != null) {
stringBuilder.append(line)
}
bf.close()
isr.close()
return stringBuilder.toString()
} catch (e: IOException) {
e.printStackTrace()
}
return null
}
}
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