修改绑定接口
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
index 6694d81..cf71a6d 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
@@ -11,6 +11,7 @@
import com.supwisdom.dlpay.framework.util.*
import com.supwisdom.dlpay.mobile.domain.TBMobileUser
import com.supwisdom.dlpay.mobile.service.MobileApiService
+import com.supwisdom.dlpay.system.service.DictionaryProxy
import com.supwisdom.dlpay.util.ConstantUtil
import org.apache.commons.lang.StringUtils
import org.springframework.beans.factory.annotation.Autowired
@@ -187,10 +188,10 @@
if (!user.paypwd.isNullOrEmpty()) {
payseted = true
}
- var signed=""
- if(!user.userid.isNullOrEmpty()){
+ var signed = ""
+ if (!user.userid.isNullOrEmpty()) {
val card = mobileApiService.findCardByUserid(user.userid!!)
- if(card!=null&&card.signed){
+ if (card != null && card.signed) {
signed = TradeDict.STATUS_YES
}
}
@@ -215,6 +216,14 @@
lateinit var userService: UserService
@Autowired
lateinit var redisTemplate: RedisTemplate<String, String>
+ @Autowired
+ lateinit var dictionaryProxy: DictionaryProxy
+
+ @RequestMapping("/idtypes")
+ fun idtypes(): JsonResult {
+ var dict = dictionaryProxy.getDictionaryAsMap(Dictionary.IDTYPE)
+ return JsonResult.ok("OK").put("idtypes", dict)!!
+ }
/**
* 用户信息
@@ -248,7 +257,7 @@
}
@RequestMapping("/checkcode")
- fun check(@RequestParam code: String
+ fun check(@RequestParam code: String, @RequestParam personid: String?
): JsonResult {
val p = SecurityContextHolder.getContext().authentication
val user = mobileApiService.findUserById(p.name)
@@ -261,6 +270,13 @@
val newCode = RandomUtils.getRandomString(30)
redisTemplate.opsForValue().set(user.uid, newCode, Duration.ofHours(1))
redisTemplate.delete(user.phone)
+ if (!personid.isNullOrEmpty()) {
+ //绑定用户
+ val person = userService.findOnePersonByUserid(personid)
+ user.bindtime = DateUtil.getNow()
+ user.userid = person.userid
+ mobileApiService.saveUser(user)
+ }
return JsonResult.ok("OK").put("randcode", newCode)!!
} else {
return JsonResult.error(-1, "验证码无效或已过期,请重新获取")
@@ -271,51 +287,41 @@
* 绑卡
* */
@RequestMapping("/bindcard")
- fun bindcard(cardno: String, name: String, code: String): JsonResult {
+ fun bindcard(cardno: String, name: String, idtype: String, idno: String): JsonResult {
val p = SecurityContextHolder.getContext().authentication
val user = mobileApiService.findUserById(p.name)
?: return JsonResult.error("用户不存在,请注册")
val phone = user.phone
- val temp = redisTemplate.opsForValue().get(phone)
- if (!temp.isNullOrEmpty()) {
- if (temp != code) {
- return JsonResult.error("验证码错误")
- }
- val card = mobileApiService.findCardByNo(cardno)
- ?: return JsonResult.error("银行卡号有误")
- if (card.userid.isNullOrEmpty() || card.status != TradeDict.STATUS_NORMAL) {
- return JsonResult.error("银行卡号信息有误")
- }
- if (card.transStatus==TradeDict.STATUS_NORMAL) {
- return JsonResult.error("该卡片非正常卡,无法绑定,请联系客服人员,更新卡状态")
- }
- val person = userService.findOnePersonByUserid(card.userid)
- if(name!=person.name){
- return JsonResult.error("姓名错误")
- }
- val exsitUser = mobileApiService.findUserById(card.userid)
- if (exsitUser != null) {
- return JsonResult.error("该银行卡号已被绑定,如有疑问,请联系客服")
- }
- user.bindtime = DateUtil.getNow()
- user.userid = card.userid
- mobileApiService.saveUser(user)
- redisTemplate.delete(phone)
- var payseted = false
- if (!user.paypwd.isNullOrEmpty()) {
- payseted = true
- }
- var signed=""
- if(card.signed){
- signed = TradeDict.STATUS_YES
- }
- return JsonResult.ok("OK").put("userid", user.userid)
- ?.put("paypwdset", payseted)
- ?.put("signed", signed)!!
-
- } else {
- return JsonResult.error(-1, "验证码无效或已过期,请重新获取")
+ val card = mobileApiService.findCardByNo(cardno)
+ ?: return JsonResult.error("银行卡号有误")
+ if (card.userid.isNullOrEmpty() || card.status != TradeDict.STATUS_NORMAL) {
+ return JsonResult.error("银行卡号信息有误")
}
+ val exsitUser = mobileApiService.findUserById(card.userid)
+ if (exsitUser != null) {
+ return JsonResult.error("该银行卡号已被绑定,如有疑问,请联系客服")
+ }
+ //TODO call api
+ //user.bindtime = DateUtil.getNow()
+ //user.userid = card.userid
+ //mobileApiService.saveUser(user)
+ val code = RandomUtils.randomNumber(6)
+ System.out.println(code)
+ redisTemplate.opsForValue().set(user.phone, code, Duration.ofMinutes(5))
+ var payseted = false
+ if (!user.paypwd.isNullOrEmpty()) {
+ payseted = true
+ }
+ var signed = ""
+ if (card.signed) {
+ signed = TradeDict.STATUS_YES
+ }
+ return JsonResult.ok("OK").put("personid", card.userid)
+ ?.put("paypwdset", payseted)
+ ?.put("phonex", StringUtil.phoneReplace(phone))
+ ?.put("signed", signed)!!
+
+
}
/**
@@ -349,19 +355,19 @@
return JsonResult.error("原支付密码错误")
}
val paypwdtimes = user.checkPaypwdtime()
- if(paypwdtimes==-1){
+ if (paypwdtimes == -1) {
return JsonResult.error("密码错误次数过多,请30分钟后再试")
- }else if(paypwdtimes==1){
+ } else if (paypwdtimes == 1) {
mobileApiService.saveUser(user)
}
- if(!encoder.matches(oldpwd, user.paypwd)){
+ if (!encoder.matches(oldpwd, user.paypwd)) {
user.updatePaypwderror(false).also {
- if(it) mobileApiService.saveUser(user)
+ if (it) mobileApiService.saveUser(user)
}
return JsonResult.error("原支付密码错误")
- }else{
+ } else {
user.updatePaypwderror(true).also {
- if(it) mobileApiService.saveUser(user)
+ if (it) mobileApiService.saveUser(user)
}
}
user.paypwd = encoder.encode(pwd)
@@ -398,16 +404,17 @@
val p = SecurityContextHolder.getContext().authentication
val user = mobileApiService.findUserById(p.name)
?: return JsonResult.error("用户不存在,请注册")
- var signed=""
- if(!user.userid.isNullOrEmpty()){
- var card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error(-1,"卡片不存在,请重新绑定")
- if(card.signed){
+ var signed = ""
+ if (!user.userid.isNullOrEmpty()) {
+ var card = mobileApiService.findCardByUserid(user.userid!!)
+ ?: return JsonResult.error(-1, "卡片不存在,请重新绑定")
+ if (card.signed) {
signed = TradeDict.STATUS_YES
}
- }else{
- return JsonResult.error(-1,"请先绑定银行卡")
+ } else {
+ return JsonResult.error(-1, "请先绑定银行卡")
}
- return JsonResult.ok("OK").put("page", page.pageContent)?.put("signed",signed)!!
+ return JsonResult.ok("OK").put("page", page.pageContent)?.put("signed", signed)!!
}
return JsonResult.error("页面未配置")
}
@@ -423,17 +430,21 @@
?: return JsonResult.error("用户不存在,请注册")
user.issigned = TradeDict.STATUS_YES
user.signedtime = DateUtil.getNow()
- var signed=""
- if(!user.userid.isNullOrEmpty()){
+ var signed: String
+ if (!user.userid.isNullOrEmpty()) {
var card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error("卡片不存在,请重新绑定")
- if(card.signed){
+ if (card.signed) {
+ signed = TradeDict.STATUS_YES
+ }else{
+ //TODO call sign api
+ card.signed = true
+ mobileApiService.saveCard(card)
signed = TradeDict.STATUS_YES
}
- card.signed = true
- mobileApiService.saveCard(card)
+ }else{
+ return JsonResult.error("请先绑定银行卡")
}
mobileApiService.saveUser(user)
- //TODO 调用第三方接口签约
return JsonResult.ok("ok")
.put("signed", signed)!!
}
@@ -478,12 +489,12 @@
val person = userService.findOnePersonByUserid(user.userid!!)
val card = mobileApiService.findCardByUserid(user.userid!!)
var needrebind = false
- var signed=""
- if(card==null){
+ var signed = ""
+ if (card == null) {
//卡片已补办,或绑定失败,需要重新绑定
needrebind = true
- }else{
- if(card.signed){
+ } else {
+ if (card.signed) {
signed = TradeDict.STATUS_YES
}
}
@@ -496,7 +507,7 @@
?.put("amount", amount)
?.put("paypwdset", payseted)
?.put("name", name)
- ?.put("needrebind",needrebind)
+ ?.put("needrebind", needrebind)
?.put("signed", signed)
?.put("userid", if (user.userid.isNullOrEmpty()) "" else user.userid)!!.put("t", t)!!
}
@@ -531,24 +542,25 @@
return JsonResult.error("请重新设置密码,密码不能小于6位字符")
}
val pwdtimes = user.checkLoginpwdtime()
- if(pwdtimes==-1){
- return JsonResult.error(-1,"原密码错误次数过多,将退出系统,请重新登录系统或点击忘记密码功能找回密码")
- }else if(pwdtimes==1){
+ if (pwdtimes == -1) {
+ return JsonResult.error(-1, "原密码错误次数过多,将退出系统,请重新登录系统或点击忘记密码功能找回密码")
+ } else if (pwdtimes == 1) {
mobileApiService.saveUser(user)
}
val encoder = BCryptPasswordEncoder()
- if(!encoder.matches(oldpwd, user.loginpwd)){
+ if (!encoder.matches(oldpwd, user.loginpwd)) {
user.updateLoginpwderror(false).also {
- if(it) mobileApiService.saveUser(user)
+ if (it) mobileApiService.saveUser(user)
}
return JsonResult.error("原密码错误")
- }else{
+ } else {
user.updateLoginpwderror(true)
}
user.loginpwd = encoder.encode(newpwd)
mobileApiService.saveUser(user)
return JsonResult.ok("密码修改成功")
}
+
/**
*
* 市民卡挂失
@@ -558,23 +570,24 @@
val p = SecurityContextHolder.getContext().authentication
val user = mobileApiService.findUserById(p.name)
?: return JsonResult.error("用户不存在,请注册")
- if(user.userid.isNullOrEmpty()){
- return JsonResult.error(-1,"银行卡未绑定,请先绑定")
+ if (user.userid.isNullOrEmpty()) {
+ return JsonResult.error(-1, "银行卡未绑定,请先绑定")
}
val person = userService.findOnePersonByUserid(user.userid!!)
- val card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error(-1,"银行卡未绑定,请先绑定")
- var status=""
+ val card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ var status = ""
//normal/loss/frozen/locked
- when(card.transStatus){
- TradeDict.STATUS_NORMAL-> status = "正常"
- TradeDict.STATUS_LOST-> status = "已挂失"
- TradeDict.STATUS_LOCKED-> status = "已锁定"
- TradeDict.STATUS_FROZEN-> status = "已冻结"
+ when (card.transStatus) {
+ TradeDict.STATUS_NORMAL -> status = "正常"
+ TradeDict.STATUS_LOST -> status = "已挂失"
+ TradeDict.STATUS_LOCKED -> status = "已锁定"
+ TradeDict.STATUS_FROZEN -> status = "已冻结"
}
- return JsonResult.ok("ok").put("name",person.name)
- ?.put("cardno",card.cardno)
- ?.put("cardstatus",status)!!
+ return JsonResult.ok("ok").put("name", person.name)
+ ?.put("cardno", card.cardno)
+ ?.put("cardstatus", status)!!
}
+
/**
*
* 市民卡挂失
@@ -585,27 +598,27 @@
val user = mobileApiService.findUserById(p.name)
?: return JsonResult.error("用户不存在,请注册")
val paypwdtimes = user.checkPaypwdtime()
- if(paypwdtimes==-1){
+ if (paypwdtimes == -1) {
return JsonResult.error("支付密码错误次数过多,请30分钟后再试")
- }else if(paypwdtimes==1){
+ } else if (paypwdtimes == 1) {
mobileApiService.saveUser(user)
}
val encoder = BCryptPasswordEncoder()
- if(!encoder.matches(paypwd, user.paypwd)){
+ if (!encoder.matches(paypwd, user.paypwd)) {
user.updatePaypwderror(false).also {
- if(it) mobileApiService.saveUser(user)
+ if (it) mobileApiService.saveUser(user)
}
return JsonResult.error("支付密码错误")
- }else{
+ } else {
user.updatePaypwderror(true).also {
- if(it) mobileApiService.saveUser(user)
+ if (it) mobileApiService.saveUser(user)
}
}
- var card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error(-1,"银行卡未绑定,请先绑定")
- if(card.transStatus!=TradeDict.STATUS_NORMAL){
+ var card = mobileApiService.findCardByUserid(user.userid!!) ?: return JsonResult.error(-1, "银行卡未绑定,请先绑定")
+ if (card.transStatus != TradeDict.STATUS_NORMAL) {
return JsonResult.error("卡状态非正常,不能挂失")
}
- card.transStatus=TradeDict.STATUS_LOST
+ card.transStatus = TradeDict.STATUS_LOST
mobileApiService.saveCard(card)
return JsonResult.ok("ok")
}