监控大理市民卡支付时间
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
index 79daf31..428b3f0 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/citizencard/YnrccUtil.java
@@ -27,8 +27,8 @@
public static final String PARAM_CONFIG_ERROR = "90000"; // 参数未配置
public static final String PARAM_VALUE_ERROR = "90001"; // 参数值错误
- public static final int AGENT_CONNECT_TIMEOUT = 10;
- public static final int AGENT_READ_TIMEOUT = 10;
+ public static final int AGENT_CONNECT_TIMEOUT = 20;
+ public static final int AGENT_READ_TIMEOUT = 20;
public static final String TRANSTYPE_SIGNCARD = "1"; //签约
public static final String TRANSTYPE_UNSIGNCARD = "2"; //解约
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/MonitorDlsmkCardpayDao.java b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/MonitorDlsmkCardpayDao.java
new file mode 100644
index 0000000..283cc05
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/dao/MonitorDlsmkCardpayDao.java
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.citizencard.dao;
+
+import com.supwisdom.dlpay.citizencard.domain.TMonitorDlsmkCardpay;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface MonitorDlsmkCardpayDao extends JpaRepository<TMonitorDlsmkCardpay, String> {
+}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TMonitorDlsmkCardpay.java b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TMonitorDlsmkCardpay.java
new file mode 100644
index 0000000..6ffcaa3
--- /dev/null
+++ b/payapi/src/main/java/com/supwisdom/dlpay/citizencard/domain/TMonitorDlsmkCardpay.java
@@ -0,0 +1,64 @@
+package com.supwisdom.dlpay.citizencard.domain;
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "TB_MONITOR_DLSMK_CARDPAY",
+ indexes = {@Index(name = "idx_monitor_dlsmk_cardpay", columnList = "request_url, createtime")})
+public class TMonitorDlsmkCardpay {
+ @Id
+ @Column(name = "refno", length = 32, nullable = false)
+ private String refno;
+
+ @Column(name = "use_milli_sec", precision = 9)
+ private Long useMilliSec;
+
+ @Column(name = "resp_json", length = 600)
+ private String respJson;
+
+ @Column(name = "request_url", length = 200)
+ private String requestUrl;
+
+ @Column(name = "createtime", length = 14)
+ private String createtime;
+
+ public String getRefno() {
+ return refno;
+ }
+
+ public void setRefno(String refno) {
+ this.refno = refno;
+ }
+
+ public Long getUseMilliSec() {
+ return useMilliSec;
+ }
+
+ public void setUseMilliSec(Long useMilliSec) {
+ this.useMilliSec = useMilliSec;
+ }
+
+ public String getRespJson() {
+ return respJson;
+ }
+
+ public void setRespJson(String respJson) {
+ this.respJson = respJson;
+ }
+
+ public String getRequestUrl() {
+ return requestUrl;
+ }
+
+ public void setRequestUrl(String requestUrl) {
+ this.requestUrl = requestUrl;
+ }
+
+ public String getCreatetime() {
+ return createtime;
+ }
+
+ public void setCreatetime(String createtime) {
+ this.createtime = createtime;
+ }
+}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt
index 526d447..b5c246d 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/citizencard_service.kt
@@ -9,6 +9,7 @@
import com.supwisdom.dlpay.agent.citizencard.YnrccUtil
import com.supwisdom.dlpay.agent.domain.QrcodePayTrans
import com.supwisdom.dlpay.api.domain.TTransactionMain
+import com.supwisdom.dlpay.api.service.TransactionMonitorService
import com.supwisdom.dlpay.framework.util.MoneyUtil
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component
@@ -37,6 +38,9 @@
@Autowired
private lateinit var citizencardPayService: CitizencardPayService
+ @Autowired
+ private lateinit var transactionMonitorService: TransactionMonitorService
+
private fun agentCode(code: String, msg: String?): org.springframework.data.util.Pair<AgentCode, YnrccRespCode> {
return YnrccUtil.errcode.firstOrNull {
it.second.code == code
@@ -55,8 +59,11 @@
}
override fun pay(transaction: TTransactionMain): AgentResponse<DtlStatus> {
+ val start = System.currentTimeMillis()
val resp = citizencardPayService.cardPay(transaction.shopDtl.shopaccno, transaction.personDtl.userid, transaction.accdate,
Math.abs(MoneyUtil.YuanToFen(transaction.personDtl.amount)), transaction.dtltype, transaction.refno)
+ val end = System.currentTimeMillis()
+ transactionMonitorService.doMonitorCitizenCardPay(transaction.refno, end - start, resp)
return AgentResponse<DtlStatus>().also {
val code = agentCode(resp.code, resp.message)
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_monitor_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_monitor_service_impl.kt
new file mode 100644
index 0000000..b9d0031
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_monitor_service_impl.kt
@@ -0,0 +1,26 @@
+package com.supwisdom.dlpay.api.service.impl
+
+import com.google.gson.Gson
+import com.supwisdom.dlpay.agent.citizencard.DlpayResp
+import com.supwisdom.dlpay.api.service.TransactionMonitorService
+import com.supwisdom.dlpay.citizencard.dao.MonitorDlsmkCardpayDao
+import com.supwisdom.dlpay.citizencard.domain.TMonitorDlsmkCardpay
+import com.supwisdom.dlpay.framework.util.DateUtil
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+
+@Service
+class TransactionMonitorServiceImpl: TransactionMonitorService {
+ @Autowired
+ private lateinit var monitorDlsmkCardpayDao: MonitorDlsmkCardpayDao
+
+ override fun doMonitorCitizenCardPay(refno: String, milliSecond: Long, resp: DlpayResp) {
+ monitorDlsmkCardpayDao.save(TMonitorDlsmkCardpay().apply {
+ this.refno = refno
+ this.useMilliSec = milliSecond
+ this.respJson = Gson().toJson(resp)
+ this.requestUrl = "/api/consume/citizencard/payfinish"
+ this.createtime = DateUtil.getNow()
+ })
+ }
+}
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_monitor_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_monitor_service.kt
new file mode 100644
index 0000000..1929347
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/transaction_monitor_service.kt
@@ -0,0 +1,9 @@
+package com.supwisdom.dlpay.api.service
+
+import com.supwisdom.dlpay.agent.citizencard.DlpayResp
+import org.springframework.transaction.annotation.Transactional
+
+interface TransactionMonitorService {
+ @Transactional(rollbackFor = [Exception::class])
+ fun doMonitorCitizenCardPay(refno: String, milliSecond: Long, resp: DlpayResp)
+}
\ No newline at end of file