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"
} }
} }
[
{
"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
...@@ -23,7 +23,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor( ...@@ -23,7 +23,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
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
} }
...@@ -39,30 +39,35 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor( ...@@ -39,30 +39,35 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
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,
...@@ -81,8 +86,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor( ...@@ -81,8 +86,7 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
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)
} }
...@@ -95,6 +99,9 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor( ...@@ -95,6 +99,9 @@ class MerchantServiceGroupAdapter @JvmOverloads constructor(
val viewBinding: ItemMerchantServiceGroupBinding val viewBinding: ItemMerchantServiceGroupBinding
) : RecyclerView.ViewHolder(itemView) ) : RecyclerView.ViewHolder(itemView)
/**
* 管理中心菜单列表的分割线
*/
class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() { class MerchantServiceGroupItemDecorator : RecyclerView.ItemDecoration() {
override fun getItemOffsets( override fun getItemOffsets(
outRect: Rect, outRect: Rect,
......
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
...@@ -57,6 +62,7 @@ class LifeAccountPersonalAuthActivity : ...@@ -57,6 +62,7 @@ class LifeAccountPersonalAuthActivity :
override fun init(savedInstanceState: Bundle?) { override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState) super.init(savedInstanceState)
XEventManager.register(this)
initView() initView()
initListener() initListener()
initData() initData()
...@@ -111,10 +117,7 @@ class LifeAccountPersonalAuthActivity : ...@@ -111,10 +117,7 @@ class LifeAccountPersonalAuthActivity :
when (v?.id) { when (v?.id) {
R.id.iv_back -> XPageManager.pop(null) R.id.iv_back -> XPageManager.pop(null)
R.id.sv_occupation -> { R.id.sv_occupation -> {
// TODO: 5/27/21 跳转职业标签选择 选择完成后进行下一步检查 XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
LifeAccountAuthDataManager.personalAuthData.occupation = "工程师"
viewBind.svOccupation.setContentResult("工程师")
checkNextCondition()
} }
R.id.btn_next -> { R.id.btn_next -> {
// 个人认证 完成认证 // 个人认证 完成认证
...@@ -171,4 +174,22 @@ class LifeAccountPersonalAuthActivity : ...@@ -171,4 +174,22 @@ class LifeAccountPersonalAuthActivity :
"request auth complete failure: message: $message" "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()
}
}
}
} }
...@@ -67,6 +67,10 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), ...@@ -67,6 +67,10 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
// 本期需求无资产功能 仅做UI展示 // 本期需求无资产功能 仅做UI展示
viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00") viewBind.avMerchantAsset.setMerchantAssetData("8856.88", "675.00")
viewBind.avMerchantAsset.setOnClickListener {
XPageManager.push(XRouterPathConstants.CHOOSE_CAREER, null)
}
} }
private fun initListener() { private fun initListener() {
...@@ -105,13 +109,9 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), ...@@ -105,13 +109,9 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
} }
override fun getConfigListSuccess(result: GetConfigListBean.Response?) { override fun getConfigListSuccess(result: GetConfigListBean.Response?) {
viewBind.rvServiceGroup.layoutManager = viewBind.rvServiceGroup.layoutManager = LinearLayoutManager(this)
LinearLayoutManager(this)
viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator()) viewBind.rvServiceGroup.addItemDecoration(MerchantServiceGroupAdapter.MerchantServiceGroupItemDecorator())
viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter( viewBind.rvServiceGroup.adapter = MerchantServiceGroupAdapter(this, result?.merchant_manager_center?.items)
this,
result?.merchant_manager_center?.items
)
} }
override fun getConfigListFailure(message: String?) { override fun getConfigListFailure(message: String?) {
...@@ -142,10 +142,7 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), ...@@ -142,10 +142,7 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
override fun onEnterLifeAccountInfo(lifeAccountId: String) { override fun onEnterLifeAccountInfo(lifeAccountId: String) {
// 请求生活号详情接口 // 请求生活号详情接口
ApiService.getLifeAccountInfoById( ApiService.getLifeAccountInfoById(this, hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId)))
this,
hashMapOf(Pair(PARAMS_LIFE_ACCOUNT_ID, lifeAccountId))
)
} }
override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) { override fun getLifeAccountInfoByIdSuccess(result: GetLifeAccountInfoByIdBean.Response?) {
......
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