TCard定义和同步
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
index 91c7bac..174a3a3 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/AccountDao.java
@@ -3,10 +3,7 @@
import com.supwisdom.dlpay.api.domain.TAccount;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Lock;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.jpa.repository.QueryHints;
+import org.springframework.data.jpa.repository.*;
import org.springframework.data.repository.query.Param;
import javax.persistence.LockModeType;
@@ -39,4 +36,8 @@
@Query("select a from TAccount a where a.person.name like CONCAT('%',:accname,'%') ")
Page<TAccount> findAllByAccnameContaining(@Param("accname") String accname, Pageable pageable);
+
+ @Modifying
+ @Query("update TAccount set accname=?1 where userid=?2")
+ void updateAccnameByUserid(String accname, String userid);
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/CardDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/CardDao.java
new file mode 100644
index 0000000..74473d8
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/CardDao.java
@@ -0,0 +1,16 @@
+package com.supwisdom.dlpay.api.dao;
+
+import com.supwisdom.dlpay.api.domain.TCard;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+
+public interface CardDao extends JpaRepository<TCard, String> {
+
+ @Query("from TCard t where t.cardno=?1 and t.cardtype=?2")
+ TCard findCardByCardnoAndCardtype(String cardno, String cardtype);
+
+ @Modifying
+ @Query("update TCard set status='closed' where userid=?1 and cardtype='bankcard' ")
+ void closedBankcardStatusByUserid(String userid);
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TCard.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TCard.java
new file mode 100644
index 0000000..dcf8f49
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TCard.java
@@ -0,0 +1,151 @@
+package com.supwisdom.dlpay.api.domain;
+
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.*;
+import javax.validation.constraints.NotNull;
+
+@Entity
+@Table(name = "TB_CARD",
+ indexes = {@Index(name = "tb_card_uk", columnList = "cardno,cardtype", unique = true)})
+public class TCard {
+ @Id
+ @GenericGenerator(name = "idGenerator", strategy = "uuid")
+ @GeneratedValue(generator = "idGenerator")
+ @Column(name = "ID", nullable = false, length = 32)
+ private String id;
+
+ @Column(name = "CARDNO", nullable = false, length = 32)
+ private String cardno;
+
+ @Column(name = "CARDTYPE", nullable = false, length = 20)
+ private String cardtype;
+
+ @Column(name = "CARDPHYID", length = 20)
+ private String cardphyid;
+
+ @Column(name = "STATUS", nullable = false, length = 20)
+ private String status; //normal/closed
+
+ @Column(name = "TRANS_STATUS", nullable = false, length = 20)
+ private String transStatus; //normal/loss/frozen/locked
+
+ @Column(name = "EXPIREDATE", length = 20)
+ private String expiredate;
+
+ @Column(name = "SIGNED", nullable = false, length = 10)
+ private Boolean signed = false; //签约状态
+
+ @Column(name = "USERID", nullable = false, length = 20)
+ private String userid;
+
+ @Column(name = "LASTSAVED", length = 20)
+ private String lastsaved;
+
+ @Column(name = "tenantid", length = 20)
+ @NotNull
+ private String tenantid = "";
+
+ public TCard() {
+ }
+
+ public TCard(String cardno, String cardtype, String cardphyid, String status, String transStatus, String expiredate, Boolean signed, String userid, String lastsaved) {
+ this.cardno = cardno;
+ this.cardtype = cardtype;
+ this.cardphyid = cardphyid;
+ this.status = status;
+ this.transStatus = transStatus;
+ this.expiredate = expiredate;
+ this.signed = signed;
+ this.userid = userid;
+ this.lastsaved = lastsaved;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getCardno() {
+ return cardno;
+ }
+
+ public void setCardno(String cardno) {
+ this.cardno = cardno;
+ }
+
+ public String getCardtype() {
+ return cardtype;
+ }
+
+ public void setCardtype(String cardtype) {
+ this.cardtype = cardtype;
+ }
+
+ public String getCardphyid() {
+ return cardphyid;
+ }
+
+ public void setCardphyid(String cardphyid) {
+ this.cardphyid = cardphyid;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getTransStatus() {
+ return transStatus;
+ }
+
+ public void setTransStatus(String transStatus) {
+ this.transStatus = transStatus;
+ }
+
+ public String getExpiredate() {
+ return expiredate;
+ }
+
+ public void setExpiredate(String expiredate) {
+ this.expiredate = expiredate;
+ }
+
+ public Boolean getSigned() {
+ return signed;
+ }
+
+ public void setSigned(Boolean signed) {
+ this.signed = signed;
+ }
+
+ public String getUserid() {
+ return userid;
+ }
+
+ public void setUserid(String userid) {
+ this.userid = userid;
+ }
+
+ public String getLastsaved() {
+ return lastsaved;
+ }
+
+ public void setLastsaved(String lastsaved) {
+ this.lastsaved = lastsaved;
+ }
+
+ public String getTenantid() {
+ return tenantid;
+ }
+
+ public void setTenantid(String tenantid) {
+ this.tenantid = tenantid;
+ }
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
index 3434b87..d669146 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/domain/TSyspara.java
@@ -28,7 +28,7 @@
private String paraunit;
@Column(name = "VALUETYPE", length = 10)
- private String valueType = SysparaUtil.SYSPARA_VALUETYPE_STRING;
+ private String valueType = SysparaUtil.VALUETYPE_STRING;
@Column(name = "EDITFLAG", precision = 1)
@NotNull
@@ -156,17 +156,17 @@
*/
public boolean checkValueInvalid() {
if (!StringUtil.isEmpty(this.paraval)) {
- if (SysparaUtil.SYSPARA_VALUETYPE_AMOUNT.equals(this.valueType) && !NumberUtil.isAmount(this.paraval)) {
+ if (SysparaUtil.VALUETYPE_AMOUNT.equals(this.valueType) && !NumberUtil.isAmount(this.paraval)) {
return true; //参数值非金额类型
- } else if (SysparaUtil.SYSPARA_VALUETYPE_DECIMAL.equals(this.valueType) && !NumberUtil.isDecimal(this.paraval)) {
+ } else if (SysparaUtil.VALUETYPE_DECIMAL.equals(this.valueType) && !NumberUtil.isDecimal(this.paraval)) {
return true; //参数值非数值类型
- } else if (SysparaUtil.SYSPARA_VALUETYPE_NUMBER.equals(this.valueType) && !NumberUtil.isNumber(this.paraval)) {
+ } else if (SysparaUtil.VALUETYPE_NUMBER.equals(this.valueType) && !NumberUtil.isNumber(this.paraval)) {
return true; //参数值非整数
- } else if (SysparaUtil.SYSPARA_VALUETYPE_SWITCH.equals(this.valueType) && !"1".equals(this.paraval) && !"0".equals(this.paraval)) {
+ } else if (SysparaUtil.VALUETYPE_SWITCH.equals(this.valueType) && !"1".equals(this.paraval) && !"0".equals(this.paraval)) {
return true; //参数值非开关量 0/1
- } else if (SysparaUtil.SYSPARA_VALUETYPE_DATE.equals(this.valueType) && !DateUtil.checkDatetimeValid(this.paraval, "yyyyMMdd")) {
+ } else if (SysparaUtil.VALUETYPE_DATE.equals(this.valueType) && !DateUtil.checkDatetimeValid(this.paraval, "yyyyMMdd")) {
return true; //参数值非日期格式
- } else if (SysparaUtil.SYSPARA_VALUETYPE_DATETIME.equals(this.valueType) && !DateUtil.checkDatetimeValid(this.paraval, "yyyyMMddHHmmss")) {
+ } else if (SysparaUtil.VALUETYPE_DATETIME.equals(this.valueType) && !DateUtil.checkDatetimeValid(this.paraval, "yyyyMMddHHmmss")) {
return true; //参数值非日期时间格式
}
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/XssHttpServletRequestWrapper.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/XssHttpServletRequestWrapper.java
index ddc4d15..ba7ac78 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/XssHttpServletRequestWrapper.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/filter/XssHttpServletRequestWrapper.java
@@ -110,6 +110,7 @@
value = value.replaceAll("'", "& #39;");
value = value.replaceAll("eval\\((.*)\\)", "");
value = value.replaceAll("[\\\"\\\'][\\s]*javascript:(.*)[\\\"\\\']", "\"\"");
+// value = value.replaceAll("'", "‘").replaceAll(";", ";").replaceAll("=", "").replaceAll("%", "").replaceAll("\\+", "");
value = value.replaceAll("script", "");
value = cleanSqlKeyWords(value);
return value;
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
index 652a35c..a67d6ff 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/SysparaUtil.java
@@ -1,23 +1,26 @@
package com.supwisdom.dlpay.framework.util;
public class SysparaUtil {
- public static final String SYSPARA_VALUETYPE_AMOUNT = "amount"; //金额类型 Double
- public static final String SYSPARA_VALUETYPE_SWITCH = "switch"; //开关类型 Boolean 0/1
- public static final String SYSPARA_VALUETYPE_DATE = "date"; //日期类型 yyyyMMdd
- public static final String SYSPARA_VALUETYPE_DATETIME = "datetime"; //日期+时间 yyyyMMddHHmmss
- public static final String SYSPARA_VALUETYPE_DECIMAL = "decimal"; //数值
- public static final String SYSPARA_VALUETYPE_NUMBER = "number "; //整数,包含正负
- public static final String SYSPARA_VALUETYPE_STRING = "string"; //字符串
+ public static final String VALUETYPE_AMOUNT = "amount"; //金额类型 Double
+ public static final String VALUETYPE_SWITCH = "switch"; //开关类型 Boolean 0/1
+ public static final String VALUETYPE_DATE = "date"; //日期类型 yyyyMMdd
+ public static final String VALUETYPE_DATETIME = "datetime"; //日期+时间 yyyyMMddHHmmss
+ public static final String VALUETYPE_DECIMAL = "decimal"; //数值
+ public static final String VALUETYPE_NUMBER = "number "; //整数,包含正负
+ public static final String VALUETYPE_STRING = "string"; //字符串
- public static final int SYSPARAID_NO1 = 1; //系统默认最大余额限制的ID
- public static final int SYSPARAID_NO2 = 2; //paraid=2
- public static final int SYSPARAID_NO3 = 3; //手机端用户过期时间(秒)
+ public static final int BALANCE_LIMIT = 1; //系统默认最大余额限制的ID
+ public static final int MOBILE_LOGIN_EXPIRE_IN_SECONDS = 4; //手机端用户过期时间(秒)
+ public static final int NOPASS_LIMIT = 2; //默认免密额度
+ public static final int DAY_PAY_LIMIT = 3; //默认日累计额度
- public static final int SYSPARAID_NO2019 = 2019; //与卡管系统对接的应用ID
- public static final int SYSPARAID_NO2020 = 2020; //与卡管系统对接的应用appkey
- public static final int SYSPARAID_NO2021 = 2021; //与卡管系统对接的业务参数deskey
+ public static final int DLCARDMANAGER_APPID = 2019; //与卡管系统对接的应用ID
+ public static final int DLCARDMANAGER_SECRET = 2020; //与卡管系统对接的应用appkey
+ public static final int DLCARDMANAGER_DESKEY = 2021; //与卡管系统对接的业务参数deskey
- public static final double SYSPARA_NO1_DEFAULT = 10000.0; // 系统默认最大余额限制
+ public static final double DEFAULT_BALANCE_LIMIT = 10000.0; // 系统默认最大余额限制
+ public static final double DEFAULT_NOPASS_LIMIT = 100.0; // 默认免密额度
+ public static final double DEFAULT_DAY_PAY_LIMIT = 200.0; // 默认日累计额度
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
index 7fc2400..0cc0b4d 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/service/impl/UserDataServiceImpl.java
@@ -114,7 +114,7 @@
account.setAvailbal(0.0);
account.setFrozebal(0.0);
account.setLowfreeFlag(false);
- account.setMaxbal(systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT));
+ account.setMaxbal(systemUtilService.getSysparaValueAsDouble(SysparaUtil.BALANCE_LIMIT, SysparaUtil.DEFAULT_BALANCE_LIMIT));
account.setLastdayDpsamt(0.0);
account.setLastdayTransamt(0.0);
account.setOpendate(systemDateTime.getHostdate());
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
index 6f56ce7..4bd34fe 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/util/ConstantUtil.java
@@ -40,4 +40,10 @@
public static final String PAGE_USERXIEYI = "xieyi";//用户协议页面
public static final String PAGE_BANKXIEYI = "bankxieyi";//银行协议页面
+
+ /**
+ * 卡库同步的Cardtype
+ * */
+ public static final String CARDTYPE_CITIZENCARD = "citizencard";
+ public static final String CARDTYPE_BANKCARD = "bankcard";
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
index 564689e..d373525 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/bean/api_request_param.kt
@@ -66,6 +66,18 @@
var idno: String = ""
var mobile: String? = null
var email: String? = null
+
+ fun checkParam(): Boolean {
+ if (StringUtil.isEmpty(idtype) || StringUtil.isEmpty(idno) || StringUtil.isEmpty(username)) throw RequestParamCheckException("用户明细数据关键字段为空")
+ if (StringUtil.isEmpty(cardno) || StringUtil.isEmpty(cardphyid) || StringUtil.isEmpty(expiredate) || StringUtil.isEmpty(cardstatus)) throw RequestParamCheckException("卡片明细数据关键字段为空")
+ return true
+ }
+}
+
+class DaliDatasyncErrorDetail{
+ var cardno:String=""
+ var errcode:String=""
+ var errmsg:String=""
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
index dade3f2..5b5c19c 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/dali_datasync_api_controller.kt
@@ -1,7 +1,10 @@
package com.supwisdom.dlpay.api.controller
+import com.google.gson.Gson
+import com.supwisdom.dlpay.api.bean.DaliDatasyncErrorDetail
import com.supwisdom.dlpay.api.bean.DaliDatasyncParam
import com.supwisdom.dlpay.api.exception.RequestParamCheckException
+import com.supwisdom.dlpay.api.service.DaliDatasyncService
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.StringUtil
@@ -14,6 +17,8 @@
class DaliDatasyncApiController {
@Autowired
lateinit var systemUtilService: SystemUtilService
+ @Autowired
+ lateinit var daliDatasyncService: DaliDatasyncService
/**
* ============================================================================
@@ -25,9 +30,9 @@
fun daliDatasync(@RequestBody param: DaliDatasyncParam): ResponseEntity<Any> {
try {
param.checkParam()
- val appid = systemUtilService.getSysparaValue(SysparaUtil.SYSPARAID_NO2019)
- val appkey = systemUtilService.getSysparaValue(SysparaUtil.SYSPARAID_NO2020)
- val deskey = systemUtilService.getSysparaValue(SysparaUtil.SYSPARAID_NO2021)
+ val appid = systemUtilService.getSysparaValue(SysparaUtil.DLCARDMANAGER_APPID)
+ val appkey = systemUtilService.getSysparaValue(SysparaUtil.DLCARDMANAGER_SECRET)
+ val deskey = systemUtilService.getSysparaValue(SysparaUtil.DLCARDMANAGER_DESKEY)
if (StringUtil.isEmpty(appid) || StringUtil.isEmpty(appkey) || StringUtil.isEmpty(deskey)) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(1000, "系统参数未配置"))
@@ -45,14 +50,34 @@
.fail(2002, "请求参数错误[数据条数不匹配]"))
}
- datalist.forEach {
- TODO("更新数据逻辑")
+ var errlist = ArrayList<DaliDatasyncErrorDetail>(0)
+
+ datalist.forEach {detail->
+ try {
+ detail.checkParam()
+ daliDatasyncService.doUpdateUserInfos(detail)
+ } catch (e1: RequestParamCheckException) {
+ errlist.add(DaliDatasyncErrorDetail().apply {
+ cardno = detail.cardno
+ errcode = "2001"
+ errmsg = e1.message?:"明细数据关键字段为空"
+ })
+ }catch (e2: Exception){
+ errlist.add(DaliDatasyncErrorDetail().apply {
+ cardno = detail.cardno
+ errcode = "3000"
+ errmsg = e2.message?:"明细处理错误"
+ })
+ }
}
- return ResponseEntity.ok(mapOf("retcode" to "0000", "retmsg" to "SUCCESS"))
+ return when(StringUtil.isEmpty(errlist)){
+ true -> ResponseEntity.ok(mapOf("retcode" to "0000", "retmsg" to "SUCCESS", "resultcode" to "0000", "resultmsg" to ""))
+ false -> ResponseEntity.ok(mapOf("retcode" to "0000", "retmsg" to "请求成功接收", "resultcode" to "0000", "resultmsg" to "明细数据处理有错", "data" to Gson().toJson(errlist)))
+ }
} catch (ex: RequestParamCheckException) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
- .fail(ex.errCode, ex.message ?: "请求参数错误"))
+ .fail(2001, ex.message ?: "请求参数错误"))
} catch (e: Exception) {
e.printStackTrace()
return ResponseEntity.ok(ResponseBodyBuilder.create()
@@ -60,4 +85,4 @@
}
}
-}
\ No newline at end of file
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt
new file mode 100644
index 0000000..b85342f
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt
@@ -0,0 +1,12 @@
+package com.supwisdom.dlpay.api.service
+
+import com.supwisdom.dlpay.api.bean.DaliDatasyncDetail
+import org.springframework.transaction.annotation.Propagation
+import org.springframework.transaction.annotation.Transactional
+
+interface DaliDatasyncService{
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
+ fun doUpdateUserInfos(bean: DaliDatasyncDetail): Boolean
+
+}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt
new file mode 100644
index 0000000..be69c42
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt
@@ -0,0 +1,134 @@
+package com.supwisdom.dlpay.api.service.impl
+
+import com.supwisdom.dlpay.api.bean.DaliDatasyncDetail
+import com.supwisdom.dlpay.api.dao.AccountDao
+import com.supwisdom.dlpay.api.dao.CardDao
+import com.supwisdom.dlpay.api.dao.PersonDao
+import com.supwisdom.dlpay.api.domain.TAccount
+import com.supwisdom.dlpay.api.domain.TCard
+import com.supwisdom.dlpay.api.domain.TPerson
+import com.supwisdom.dlpay.api.service.DaliDatasyncService
+import com.supwisdom.dlpay.exception.TransactionProcessException
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.tenant.TenantContext
+import com.supwisdom.dlpay.framework.util.*
+import com.supwisdom.dlpay.util.ConstantUtil
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+
+@Service
+class DaliDatasyncServiceImpl : DaliDatasyncService {
+ @Autowired
+ lateinit var accountDao: AccountDao
+ @Autowired
+ lateinit var personDao: PersonDao
+ @Autowired
+ lateinit var cardDao: CardDao
+ @Autowired
+ lateinit var systemUtilService: SystemUtilService
+
+ override fun doUpdateUserInfos(bean: DaliDatasyncDetail): Boolean {
+ val maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.BALANCE_LIMIT, SysparaUtil.DEFAULT_BALANCE_LIMIT)
+ val lowfreeLimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.NOPASS_LIMIT, SysparaUtil.DEFAULT_NOPASS_LIMIT)
+ val daylimit = systemUtilService.getSysparaValueAsDouble(SysparaUtil.DAY_PAY_LIMIT, SysparaUtil.DEFAULT_DAY_PAY_LIMIT)
+
+ val systime = systemUtilService.sysdatetime
+ var person = personDao.findByIdentity(bean.idtype.trim(), bean.idno.trim())
+ if (null != person) {
+ if (person.name != bean.username) {
+ person.name = bean.username
+ person.lastsaved = systime.hostdatetime
+ person = personDao.save(person)
+ accountDao.updateAccnameByUserid(person.name, person.userid)
+ }
+ } else {
+ person = TPerson().apply {
+ name = bean.username
+ status = TradeDict.STATUS_NORMAL
+ idtype = bean.idtype.trim()
+ idno = bean.idno.trim()
+ email = bean.email
+ mobile = bean.mobile
+ lastsaved = systime.hostdatetime
+ }
+ person.tenantid = TenantContext.getTenantSchema()
+ person = personDao.save(person)
+
+ var account = TAccount().apply {
+ accname = person.name
+ subjno = Subject.SUBJNO_PERSONAL_DEPOSIT
+ userid = person.userid
+ transStatus = person.status
+ balance = 0.00
+ availbal = 0.00
+ frozebal = 0.00
+ lowfreeFlag = false
+ this.lowfreeLimit = lowfreeLimit
+ this.daylimit = daylimit
+ this.maxbal = maxbal
+ lasttranstime = systime.sysdate
+ lastdayTransamt = 0.00
+ lastdayDpsamt = 0.00
+ opendate = systime.hostdate
+ }
+ account.generateTac()
+ account.tenantid = TenantContext.getTenantSchema()
+ accountDao.save(account)
+ }
+
+ var cityCard = cardDao.findCardByCardnoAndCardtype(bean.cardno.trim(), ConstantUtil.CARDTYPE_CITIZENCARD)
+ if (null != cityCard) {
+ //仅修改有效期和状态
+ if (cityCard.expiredate != bean.expiredate.trim()) {
+ cityCard.expiredate = bean.expiredate.trim()
+ }
+ //fixme: bean.cardstatus 判断修改状态
+
+ cardDao.save(cityCard)
+ } else {
+ cityCard = TCard().apply {
+ cardno = bean.cardno.trim()
+ cardtype = ConstantUtil.CARDTYPE_CITIZENCARD
+ cardphyid = bean.cardphyid.trim()
+ status = TradeDict.STATUS_NORMAL // fixme: bean.cardstatus 判断
+ transStatus = TradeDict.STATUS_NORMAL
+ expiredate = bean.expiredate.trim()
+ signed = false
+ userid = person.userid
+ lastsaved = systime.hostdatetime
+ }
+ cityCard.tenantid = TenantContext.getTenantSchema()
+ cardDao.save(cityCard)
+ }
+
+ if (!StringUtil.isEmpty(bean.bankcardno)) {
+ var bankCard = cardDao.findCardByCardnoAndCardtype(bean.bankcardno!!.trim(), ConstantUtil.CARDTYPE_BANKCARD)
+ if (null == bankCard) {
+ bankCard = TCard().apply {
+ cardno = bean.bankcardno!!.trim()
+ cardtype = ConstantUtil.CARDTYPE_BANKCARD
+ cardphyid = ""
+ status = TradeDict.STATUS_NORMAL // fixme: bean.cardstatus 判断
+ transStatus = TradeDict.STATUS_NORMAL
+ expiredate = "21991231"
+ signed = false
+ userid = person.userid
+ lastsaved = systime.hostdatetime
+ }
+ cardDao.closedBankcardStatusByUserid(bankCard.userid) //注销其他银行卡
+ bankCard.tenantid = TenantContext.getTenantSchema()
+ cardDao.save(bankCard) //绑定新的银行卡
+
+ } else {
+ if (bankCard.userid != person.userid) {
+ throw TransactionProcessException(3000, "银行卡已被人绑定")
+ }
+ }
+ }
+
+ return true
+ }
+
+
+
+}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
index 6a17565..80ad233 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/user_service_impl.kt
@@ -7,7 +7,6 @@
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.api.service.UserService
import com.supwisdom.dlpay.exception.TransactionProcessException
-import com.supwisdom.dlpay.framework.domain.TOperator
import com.supwisdom.dlpay.framework.util.*
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.data.domain.PageRequest
@@ -68,7 +67,7 @@
lowfreeFlag = false
lowfreeLimit = lowfreeLimit
daylimit = daylimit
- maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.SYSPARAID_NO1, SysparaUtil.SYSPARA_NO1_DEFAULT)
+ maxbal = systemUtilService.getSysparaValueAsDouble(SysparaUtil.BALANCE_LIMIT, SysparaUtil.DEFAULT_BALANCE_LIMIT)
lasttranstime = systemdatetime.sysdate
lastdayTransamt = 0.0
lastdayDpsamt = 0.0
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
index 19d96ea..bd43e6f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/AuthLoginHandler.kt
@@ -3,11 +3,9 @@
import com.fasterxml.jackson.databind.ObjectMapper
import com.supwisdom.dlpay.api.bean.JsonResult
import com.supwisdom.dlpay.api.service.UserService
-import com.supwisdom.dlpay.exception.ValidateCodeException
import com.supwisdom.dlpay.framework.core.JwtConfig
import com.supwisdom.dlpay.framework.core.JwtTokenUtil
import com.supwisdom.dlpay.framework.domain.JwtRedis
-import com.supwisdom.dlpay.framework.redisrepo.ApiClientRepository
import com.supwisdom.dlpay.framework.redisrepo.ApiJwtRepository
import com.supwisdom.dlpay.framework.service.SystemUtilService
import com.supwisdom.dlpay.framework.util.*
@@ -48,7 +46,7 @@
logger.error(request.getParameter("platform"))
val temp = authentication.principal as TBMobileUser
val user = mobileUserDao.findByPhone(temp.phone)
- val exp = systemUtilService.getSysparaValueAsInt(SysparaUtil.SYSPARAID_NO3,60*60*24*3)
+ val exp = systemUtilService.getSysparaValueAsInt(SysparaUtil.MOBILE_LOGIN_EXPIRE_IN_SECONDS,60*60*24*3)
jwtConfig.expiration = exp.toLong()
if (user != null) {
//TODO 从数据取jwtConfig.expiration
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 cf9247c..dc9457e 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/mobile/MobileApi.kt
@@ -154,7 +154,7 @@
}
val encoder = BCryptPasswordEncoder()
user!!.loginpwd = encoder.encode(pwd)
- val exp = systemUtilService.getSysparaValueAsInt(SysparaUtil.SYSPARAID_NO3, 60 * 60 * 24 * 3)
+ val exp = systemUtilService.getSysparaValueAsInt(SysparaUtil.MOBILE_LOGIN_EXPIRE_IN_SECONDS, 60 * 60 * 24 * 3)
jwtConfig.expiration = exp.toLong()
val authorities: Collection<GrantedAuthority> = AuthorityUtils.createAuthorityList("ROLE_USER")
user.auths = authorities