Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
c9fbc1d4
Commit
c9fbc1d4
authored
Jun 16, 2021
by
shiyuelong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
个人认证选择职业标签改成读取本地json 文件配置
parent
bc50fdec
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
698 additions
and
368 deletions
+698
-368
XEventConfig.kt
...ib/Common/src/main/java/com/yidian/common/XEventConfig.kt
+2
-1
Career.json
Components/newscontent/src/main/assets/Career.json
+250
-0
MerchantServiceGroupAdapter.kt
...uoquan/newscontent/adapter/MerchantServiceGroupAdapter.kt
+82
-75
CareerListBean.kt
...om/yidian/shenghuoquan/newscontent/bean/CareerListBean.kt
+15
-0
ChooseCareerActivity.kt
.../shenghuoquan/newscontent/ui/auth/ChooseCareerActivity.kt
+27
-22
LifeAccountPersonalAuthActivity.kt
...an/newscontent/ui/auth/LifeAccountPersonalAuthActivity.kt
+164
-143
MerchantCenterActivity.kt
...nghuoquan/newscontent/ui/center/MerchantCenterActivity.kt
+124
-127
JsonUtils.kt
...va/com/yidian/shenghuoquan/newscontent/utils/JsonUtils.kt
+34
-0
No files found.
CommonLib/Common/src/main/java/com/yidian/common/XEventConfig.kt
View file @
c9fbc1d4
...
@@ -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
Components/newscontent/src/main/assets/Career.json
0 → 100644
View file @
c9fbc1d4
[
{
"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
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/adapter/MerchantServiceGroupAdapter.kt
View file @
c9fbc1d4
...
@@ -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
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/bean/CareerListBean.kt
0 → 100644
View file @
c9fbc1d4
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
>
)
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/ChooseCareerActivity.kt
View file @
c9fbc1d4
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
)
}
}
}
}
...
...
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountPersonalAuthActivity.kt
View file @
c9fbc1d4
...
@@ -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
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/center/MerchantCenterActivity.kt
View file @
c9fbc1d4
...
@@ -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
?)
{
}
}
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/utils/JsonUtils.kt
0 → 100644
View file @
c9fbc1d4
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
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment