Commit 6aa68eee authored by zhenghongbin's avatar zhenghongbin

add 短信、登录、身份列表接口

parent 4d744424
...@@ -8,6 +8,10 @@ class AppConfig { ...@@ -8,6 +8,10 @@ class AppConfig {
const val appid = "merchant-b" const val appid = "merchant-b"
const val cv = "1.0.0.7"
const val version = "000100"
const val distribution = "official"
const val platform = "1"
//地铁项目 //地铁项目
...@@ -20,11 +24,6 @@ class AppConfig { ...@@ -20,11 +24,6 @@ class AppConfig {
const val SinaCallBackUrl = "https://api.weibo.com/oauth2/default.html" const val SinaCallBackUrl = "https://api.weibo.com/oauth2/default.html"
const val FileProvider = "com.yidian.subway.provider" const val FileProvider = "com.yidian.subway.provider"
const val cv = "1.0.0.7"
const val version = "000100"
const val distribution = "official"
const val platform = "1"
const val privacyPolicyStatement = "http://www.yidianzixun.com/landing_privacy?yidian_fs=2" const val privacyPolicyStatement = "http://www.yidianzixun.com/landing_privacy?yidian_fs=2"
const val userProtocol = "http://www.yidianzixun.com/landing_agreement?yidian_fs=2" const val userProtocol = "http://www.yidianzixun.com/landing_agreement?yidian_fs=2"
......
...@@ -3,7 +3,7 @@ package com.yidian.common ...@@ -3,7 +3,7 @@ package com.yidian.common
class HawkConfig { class HawkConfig {
companion object{ companion object{
const val GuestAccountUsername = "guestAccountUsername" const val GuestAccountUsername = "guestAccountUsername"
const val LoginStatus = "loginStatus"
const val Cookie = "cookie" const val Cookie = "cookie"
const val UmToken = "UmToken" const val UmToken = "UmToken"
const val HeadViewHeight = "headViewHeight" const val HeadViewHeight = "headViewHeight"
...@@ -13,8 +13,15 @@ class HawkConfig { ...@@ -13,8 +13,15 @@ class HawkConfig {
const val ProtocolIsAgree = "protocolIsAgree" const val ProtocolIsAgree = "protocolIsAgree"
const val ChameleonDebugRemote = "ChameleonDebugRemote" const val ChameleonDebugRemote = "ChameleonDebugRemote"
const val Username = "username" const val Username = "username"
const val Nickname = "nickname"
const val ProfileUrl = "profileUrl" const val ProfileUrl = "profileUrl"
const val GifData = "gifData" const val GifData = "gifData"
//生活圈
const val LoginStatus = "loginStatus"
const val UserId = "userId"
const val Mobile = "mobile"
const val Nickname = "nickname"
const val Avatar = "avatar"
} }
} }
\ No newline at end of file
...@@ -13,14 +13,13 @@ class HttpParamsUtils{ ...@@ -13,14 +13,13 @@ class HttpParamsUtils{
val timeStamp = System.currentTimeMillis() val timeStamp = System.currentTimeMillis()
val queryParamsMap = HashMap<String, String>() val queryParamsMap = HashMap<String, String>()
queryParamsMap["appid"] = AppConfig.appid queryParamsMap["appid"] = AppConfig.appid
// queryParamsMap["cv"] = AppConfig.cv queryParamsMap["cv"] = AppConfig.cv
// queryParamsMap["version"] = AppConfig.version queryParamsMap["version"] = AppConfig.version
// queryParamsMap["distribution"] = AppConfig.distribution queryParamsMap["distribution"] = AppConfig.distribution
// queryParamsMap["net_type"] = networkType queryParamsMap["net"] = networkType
// queryParamsMap["platform"] = AppConfig.platform queryParamsMap["platform"] = AppConfig.platform
// queryParamsMap["equipment_id"] = getEquipmentId() queryParamsMap["equipment_id"] = getEquipmentId()
// queryParamsMap["request_id"] = getRequestId(timeStamp) queryParamsMap["reqid"] = getRequestId(timeStamp)
// queryParamsMap["sign_string"] = getSignString(timeStamp)
return queryParamsMap return queryParamsMap
} }
......
...@@ -19,7 +19,6 @@ class URLs { ...@@ -19,7 +19,6 @@ class URLs {
const val guestLogin = "/login/login/guest" const val guestLogin = "/login/login/guest"
const val sendSmsCode = "/login/login/send_sms_code" const val sendSmsCode = "/login/login/send_sms_code"
const val mobileLogin = "/login/login/mobile_login"
const val videoCommentList = "/content/comment/list" const val videoCommentList = "/content/comment/list"
const val videoAddComment = "/content/comment/add" const val videoAddComment = "/content/comment/add"
const val addCollection = "/user/collect/add" const val addCollection = "/user/collect/add"
...@@ -51,5 +50,8 @@ class URLs { ...@@ -51,5 +50,8 @@ class URLs {
const val getKSYunObjectId = "Ksy/ksyun/buildObectid" const val getKSYunObjectId = "Ksy/ksyun/buildObectid"
const val getKSYunBucket = "Ksy/ksyun/getBucket" const val getKSYunBucket = "Ksy/ksyun/getBucket"
const val businessLicenseOCR = "/Identify/BusLicense/businessLicenseOcr" const val businessLicenseOCR = "/Identify/BusLicense/businessLicenseOcr"
const val sendMsgCode = "/user/user/send_sms_code"
const val mobileLogin = "/user/user/login"
const val accountList = "/merchant/auth/account_list"
} }
} }
\ No newline at end of file
...@@ -22,6 +22,57 @@ import org.json.JSONObject ...@@ -22,6 +22,57 @@ import org.json.JSONObject
class ApiService { class ApiService {
companion object { companion object {
//获取短信验证码
fun sendMsgCode(apiCallback: IMobileLoginCallback, requestParams: Map<String, String>) {
val paramsMap = HttpParamsUtils.getParamsMap()
ServiceFactory.getInstance().createService(CommonService::class.java)
.sendMsgCode(paramsMap, requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<Any?>() {
override fun onSuccess(result: HttpResult<Any?>?) {
apiCallback.sendSmsCodeCallBack(result)
}
override fun onFailer(result: HttpResult<Any?>?) {
apiCallback.sendSmsCodeCallBack(result)
}
})
}
//手机号登录登录接口
fun mobileLogin(apiCallback: IMobileLoginCallback, requestParams: Map<String, String>) {
val paramsMap = HttpParamsUtils.getParamsMap()
ServiceFactory.getInstance().createService(CommonService::class.java)
.mobileLogin(paramsMap, requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<MobileLoginBean.Response?>() {
override fun onSuccess(result: HttpResult<MobileLoginBean.Response?>?) {
apiCallback.mobileLoginCallBack(result)
}
override fun onFailer(result: HttpResult<MobileLoginBean.Response?>?) {
apiCallback.mobileLoginCallBack(result)
}
})
}
//获取生活号列表
fun getAccountList(apiCallback: IMobileLoginCallback) {
val paramsMap = HttpParamsUtils.getParamsMap()
ServiceFactory.getInstance().createService(CommonService::class.java)
.getAccountList(paramsMap)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<ArrayList<AccountItemBean>?>() {
override fun onSuccess(result: HttpResult<ArrayList<AccountItemBean>?>?) {
apiCallback.getAccountListCallBack(result)
}
override fun onFailer(result: HttpResult<ArrayList<AccountItemBean>?>?) {
}
})
}
//获取活体检测接口 //获取活体检测接口
fun identifyIdOcrVerify(apiCallback: IdentifyIdOcrVerifyCallback, requestParams: IdentifyIdOcrVerifyBean.Request) { fun identifyIdOcrVerify(apiCallback: IdentifyIdOcrVerifyCallback, requestParams: IdentifyIdOcrVerifyBean.Request) {
val paramsMap = HttpParamsUtils.getParamsMap() val paramsMap = HttpParamsUtils.getParamsMap()
...@@ -164,23 +215,6 @@ class ApiService { ...@@ -164,23 +215,6 @@ class ApiService {
}) })
} }
//手机号登录登录接口
fun mobileLogin(apiCallback: ILoginCallback, requestParams: MobileLoginBean.Request) {
val paramsMap = HttpParamsUtils.getParamsMap()
ServiceFactory.getInstance().createService(CommonService::class.java)
.mobileLogin(paramsMap, requestParams)
.compose(TransformUtil.defaultSchedulers())
.subscribe(object : HttpResultSubscriber<MobileLoginBean.Response?>() {
override fun onSuccess(result: HttpResult<MobileLoginBean.Response?>?) {
apiCallback.mobileLoginCallBack(result)
}
override fun onFailer(result: HttpResult<MobileLoginBean.Response?>?) {
apiCallback.mobileLoginCallBack(result)
}
})
}
//退出登录 //退出登录
fun logout(apiCallback: ILoginCallback) { fun logout(apiCallback: ILoginCallback) {
val paramsMap = HttpParamsUtils.getParamsMap() val paramsMap = HttpParamsUtils.getParamsMap()
......
...@@ -17,10 +17,6 @@ interface CommonService { ...@@ -17,10 +17,6 @@ interface CommonService {
@GET(URLs.sendSmsCode) @GET(URLs.sendSmsCode)
fun sendSmsCode(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String>): Observable<HttpResult<Any?>> fun sendSmsCode(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String>): Observable<HttpResult<Any?>>
@Headers("Content-Type: application/json")
@POST(URLs.mobileLogin)
fun mobileLogin(@QueryMap commonParams: Map<String, String>, @Body requestParams: MobileLoginBean.Request): Observable<HttpResult<MobileLoginBean.Response?>>
@GET(URLs.logout) @GET(URLs.logout)
fun logout(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>> fun logout(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<Any?>>
...@@ -130,4 +126,13 @@ interface CommonService { ...@@ -130,4 +126,13 @@ interface CommonService {
@Headers("Content-Type: application/json") @Headers("Content-Type: application/json")
@POST(URLs.businessLicenseOCR) @POST(URLs.businessLicenseOCR)
fun businessLicenseOCR(@QueryMap commonParams: Map<String, String>, @Body requestParams: BusinessLicenseOCRBean.Request) : Observable<HttpResult<BusinessLicenseOCRBean.Response>> fun businessLicenseOCR(@QueryMap commonParams: Map<String, String>, @Body requestParams: BusinessLicenseOCRBean.Request) : Observable<HttpResult<BusinessLicenseOCRBean.Response>>
@GET(URLs.sendMsgCode)
fun sendMsgCode(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String>): Observable<HttpResult<Any?>>
@GET(URLs.mobileLogin)
fun mobileLogin(@QueryMap commonParams: Map<String, String>, @QueryMap requestParams: Map<String, String>): Observable<HttpResult<MobileLoginBean.Response?>>
@GET(URLs.accountList)
fun getAccountList(@QueryMap commonParams: Map<String, String>): Observable<HttpResult<ArrayList<AccountItemBean>?>>
} }
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.httpbean
class AccountItemBean(var response: Response) {
data class Response(
val create_time: String,
val enterprise_audit_status: Int,
val life_account_auth_status: Int,
val life_account_id: Long,
val life_account_name: String,
val life_account_status: Int,
val life_account_type: Int,
val role_type: Int
)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.httpbean
import com.yidian.common.http.HttpResult
interface IMobileLoginCallback {
fun sendSmsCodeCallBack(t: HttpResult<Any?>?)
fun mobileLoginCallBack(t: HttpResult<MobileLoginBean.Response?>?)
fun getAccountListCallBack(t: HttpResult<ArrayList<AccountItemBean>?>?)
}
\ No newline at end of file
package com.yidian.shenghuoquan.newscontent.http.httpbean package com.yidian.shenghuoquan.newscontent.http.httpbean
class MobileLoginBean(var request: Request, var response: Response) { class MobileLoginBean(var request: Request, var response: Response) {
data class Request(var mobile: String?, var code: String?, var password: String?) data class Request(var mobile: String?, var code: String?)
data class Response( data class Response(
val createTime: String?, val app_id: Int,
val fontsize: String?, val app_name: String,
val freshuser: Boolean?, val avatar: String,
val global_id: String?, val city_id: String,
val login: Boolean?, val city_name: String,
val maskmobile: String?, val gender: Int,
val nickname: String?, val gender_text: String,
val profile_url: String?, val mobile: String,
val username: String?, val nick_name: String,
val usertype: String?, val user_id: Long
val utk: String?
) )
} }
\ No newline at end of file
...@@ -81,43 +81,6 @@ class RequestService : ZapService() { ...@@ -81,43 +81,6 @@ class RequestService : ZapService() {
ApiService.guestLogin(guestLoginImpl, requestBean) ApiService.guestLogin(guestLoginImpl, requestBean)
} }
private val loginImpl = object : ILoginCallback {
override fun sendSmsCodeCallBack(t: HttpResult<Any?>?) {
val params = Gson().toJson(t)
resolver.success(JSONObject(params))
}
override fun mobileLoginCallBack(t: HttpResult<MobileLoginBean.Response?>?) {
val params = Gson().toJson(t)
resolver.success(JSONObject(params))
if (t?.code == 0) {
val loginBean = t.result
Hawk.put(HawkConfig.LoginStatus, true)
Hawk.put(HawkConfig.Username, loginBean?.username)
Hawk.put(HawkConfig.Nickname, loginBean?.nickname)
Hawk.put(HawkConfig.ProfileUrl, loginBean?.profile_url)
subscriptionManager.initAuthorSubscribeList()
bindPushToken()
}
}
private fun bindPushToken() {
val data = ToolsUtil.getYDEncryptionToken()
val pushLevel = AppConfig.PUSH_LEVEL+ToolsUtil.getDeviceBrandMask()
val requestParams = PushTokenAndroidBean.Request("", data, 1, 1, Hawk.get(HawkConfig.UmToken),pushLevel)
ApiService.pushTokenAndroid(requestParams)
}
override fun logoutCallBack(t: HttpResult<Any?>?) {
val params = Gson().toJson(t)
resolver.success(JSONObject(params))
if (t?.code == 0) {
Hawk.put(HawkConfig.LoginStatus, false)
guestLogin()
}
}
}
private val videoContentImpl = object : IVideoContentCallback { private val videoContentImpl = object : IVideoContentCallback {
override fun videoContentDetailCallback(t: HttpResult<MutableList<VideoContentDetailBean>?>?) { override fun videoContentDetailCallback(t: HttpResult<MutableList<VideoContentDetailBean>?>?) {
...@@ -163,22 +126,6 @@ class RequestService : ZapService() { ...@@ -163,22 +126,6 @@ class RequestService : ZapService() {
private fun requestApi(path: String, params: JSONObject) { private fun requestApi(path: String, params: JSONObject) {
when (path) { when (path) {
URLs.sendSmsCode -> {
val mobile = params.optString("mobile")
val requestMap = HashMap<String, String>()
requestMap["mobile"] = mobile
ApiService.sendSmsCode(loginImpl, requestMap)
}
URLs.mobileLogin -> {
val mobile = params.optString("mobile")
val code = params.optString("code")
val password = AccountUtil.getPassword(mobile)
val requestParams = MobileLoginBean.Request(mobile, code, password)
ApiService.mobileLogin(loginImpl, requestParams)
}
URLs.logout -> {
ApiService.logout(loginImpl)
}
URLs.videoCommentList -> { URLs.videoCommentList -> {
val docId = params.optString("docid") val docId = params.optString("docid")
val pageSize = params.optInt("page_size") val pageSize = params.optInt("page_size")
......
...@@ -13,6 +13,8 @@ import com.yidian.shenghuoquan.newscontent.adapter.LifeAccountIdentityAdapter ...@@ -13,6 +13,8 @@ import com.yidian.shenghuoquan.newscontent.adapter.LifeAccountIdentityAdapter
import com.yidian.shenghuoquan.newscontent.bean.LifeAccountIdentityBean import com.yidian.shenghuoquan.newscontent.bean.LifeAccountIdentityBean
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountIdentityBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityLifeAccountIdentityBinding
import com.yidian.xpage.XPageManager import com.yidian.xpage.XPageManager
import com.yidian.yac.core.zap.ZapTicket
import org.json.JSONObject
/** /**
* author: yinjiacheng * author: yinjiacheng
...@@ -44,6 +46,12 @@ class LifeAccountIdentityActivity : BaseActivity<ActivityLifeAccountIdentityBind ...@@ -44,6 +46,12 @@ class LifeAccountIdentityActivity : BaseActivity<ActivityLifeAccountIdentityBind
} }
private fun initData() { private fun initData() {
val paramsMap = intent?.getSerializableExtra(XRouterPathConstants.ParamsKey)
if (paramsMap != null) {
paramsMap as HashMap<String, Any?>
val accountList = paramsMap["accountList"]
}
val data: List<LifeAccountIdentityBean> = val data: List<LifeAccountIdentityBean> =
listOf( listOf(
LifeAccountIdentityBean("一点网娱商业化大佬们的生活号还有更多文字可以换行", "超级管理员"), LifeAccountIdentityBean("一点网娱商业化大佬们的生活号还有更多文字可以换行", "超级管理员"),
......
...@@ -3,15 +3,28 @@ package com.yidian.shenghuoquan.newscontent.ui ...@@ -3,15 +3,28 @@ package com.yidian.shenghuoquan.newscontent.ui
import android.os.Bundle import android.os.Bundle
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
import android.util.Log
import com.google.gson.Gson
import com.orhanobut.hawk.Hawk
import com.yidian.common.AppConfig
import com.yidian.common.HawkConfig
import com.yidian.common.XRouterPathConstants import com.yidian.common.XRouterPathConstants
import com.yidian.common.XRouterPathConstants.Companion.LOGIN_LIFE_CIRCLE import com.yidian.common.XRouterPathConstants.Companion.LOGIN_LIFE_CIRCLE
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.common.http.HttpResult
import com.yidian.common.utils.ToolsUtil
import com.yidian.common.utils.YdToastUtil
import com.yidian.common.widget.EditTextInputCallback import com.yidian.common.widget.EditTextInputCallback
import com.yidian.common.widget.PhoneNumberTextWatcher import com.yidian.common.widget.PhoneNumberTextWatcher
import com.yidian.shenghuoquan.newscontent.databinding.ActivityLoginBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityLoginBinding
import com.yidian.shenghuoquan.newscontent.http.ApiService
import com.yidian.shenghuoquan.newscontent.http.httpbean.*
import com.yidian.shenghuoquan.newscontent.subscription.subscriptionManager
import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
import com.yidian.xpage.XPageManager import com.yidian.xpage.XPageManager
import com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import org.json.JSONObject
/** /**
* Author: zhb * Author: zhb
...@@ -45,7 +58,14 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() { ...@@ -45,7 +58,14 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() {
private fun setOnListener() { private fun setOnListener() {
viewBind.tvGetCode.setOnClickListener { viewBind.tvGetCode.setOnClickListener {
mCountDownTimerUtils.start() val mobile = viewBind.etMobileNo.text.toString().replace(" ", "")
if(mobile.length == 11){
val paramsMap = HashMap<String, String>()
paramsMap["mobile"] = mobile
ApiService.sendMsgCode(loginImpl, paramsMap)
}else{
ToastUtil.showToast(this, "请输入11位手机号")
}
} }
viewBind.etMobileNo.addTextChangedListener(PhoneNumberTextWatcher(viewBind.etMobileNo, object: EditTextInputCallback{ viewBind.etMobileNo.addTextChangedListener(PhoneNumberTextWatcher(viewBind.etMobileNo, object: EditTextInputCallback{
...@@ -82,7 +102,12 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() { ...@@ -82,7 +102,12 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() {
}) })
viewBind.tvLogin.setOnClickListener { viewBind.tvLogin.setOnClickListener {
XPageManager.push(XRouterPathConstants.LIFE_ACCOUNT_IDENTITY, null) val mobile = viewBind.etMobileNo.text.toString().replace(" ", "")
val code = viewBind.etCode.text.toString()
val paramsMap = HashMap<String, String>()
paramsMap["mobile"] = mobile
paramsMap["code"] = code
ApiService.mobileLogin(loginImpl, paramsMap)
} }
viewBind.cbProtocol.setOnCheckedChangeListener { buttonView, isChecked -> viewBind.cbProtocol.setOnCheckedChangeListener { buttonView, isChecked ->
...@@ -117,4 +142,46 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() { ...@@ -117,4 +142,46 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>() {
viewBind.tvLogin.isEnabled = false viewBind.tvLogin.isEnabled = false
} }
} }
private fun getAccountList(){
ApiService.getAccountList(loginImpl)
}
private val loginImpl = object : IMobileLoginCallback {
override fun sendSmsCodeCallBack(t: HttpResult<Any?>?) {
if(t?.code == 0){
mCountDownTimerUtils.start()
}
}
override fun mobileLoginCallBack(t: HttpResult<MobileLoginBean.Response?>?) {
val loginResponse = t?.result
Hawk.put(HawkConfig.LoginStatus, true)
Hawk.put(HawkConfig.UserId, loginResponse?.user_id)
Hawk.put(HawkConfig.Mobile, loginResponse?.mobile)
Hawk.put(HawkConfig.Nickname, loginResponse?.nick_name)
Hawk.put(HawkConfig.Avatar, loginResponse?.avatar)
getAccountList()
}
override fun getAccountListCallBack(t: HttpResult<ArrayList<AccountItemBean>?>?) {
val accountList = t?.result
if(accountList != null){
when(accountList.size){
0 -> {//没有身份
}
1 -> {//一个身份
val paramsMap = HashMap<String, Any?>()
paramsMap["accountList"] = accountList
}
else -> {//多个身份
val paramsMap = HashMap<String, Any?>()
paramsMap["accountList"] = accountList
XPageManager.push(XRouterPathConstants.LIFE_ACCOUNT_IDENTITY, paramsMap)
}
}
}
}
}
} }
\ No newline at end of file
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