优化代码
diff --git a/src/main/java/com/supwisdom/dlpay/consume/service/impl/PaytypeServiceImpl.java b/src/main/java/com/supwisdom/dlpay/consume/service/impl/PaytypeServiceImpl.java
index 5aad223..1c99381 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/service/impl/PaytypeServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/service/impl/PaytypeServiceImpl.java
@@ -17,23 +17,23 @@
*/
@Service
public class PaytypeServiceImpl implements PaytypeService {
- @Autowired
- private PaytypeDao paytypeDao;
- @Autowired
- private PaytypeConfigDao paytypeConfigDao;
+ @Autowired
+ private PaytypeDao paytypeDao;
+ @Autowired
+ private PaytypeConfigDao paytypeConfigDao;
- @Override
- public TPaytype getByPaytype(String paytype) {
- return paytypeDao.getOne(paytype);
- }
+ @Override
+ public TPaytype getByPaytype(String paytype) {
+ return paytypeDao.getOne(paytype);
+ }
- @Override
- public Map<String, String> getPaytypeConfigByPaytype(String pattype) {
- List<TPaytypeConfig> list = paytypeConfigDao.getByPaytype(pattype);
- Map<String, String> map = new HashMap<>(list.size());
- for (TPaytypeConfig paytypeConfig : list) {
- map.put(paytypeConfig.getConfigid(), paytypeConfig.getConfigValue());
- }
- return map;
+ @Override
+ public Map<String, String> getPaytypeConfigByPaytype(String pattype) {
+ List<TPaytypeConfig> list = paytypeConfigDao.getByPaytype(pattype);
+ Map<String, String> map = new HashMap<>(list.size());
+ for (TPaytypeConfig paytypeConfig : list) {
+ map.put(paytypeConfig.getConfigid(), paytypeConfig.getConfigValue());
}
+ return map;
+ }
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
index 71940c4..b2638c1 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/SubjectbalDao.java
@@ -1,6 +1,5 @@
package com.supwisdom.dlpay.framework.dao;
-import com.supwisdom.dlpay.framework.data.AmountBean;
import com.supwisdom.dlpay.framework.data.MerchBean;
import com.supwisdom.dlpay.framework.data.SubjectInfoBean;
import com.supwisdom.dlpay.framework.domain.TSubjectbal;
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java b/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
index ede84de..32718c2 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/Subject.java
@@ -17,6 +17,15 @@
*/
public static final String SUBJ_CHEQUE = "1003";
+ /**
+ * 一卡通支付款
+ */
+ public static final String SUBJ_PAY_YKT = "112240";
+
+ /**
+ * 折扣预存款
+ */
+ public static final String SUBJ_DISCOUNT_PRE_DEPOSIT = "2003";
// 负债类科目
/**
diff --git a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
index 0a93fd2..de02e7b 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/consume/controller/consume_service.kt
@@ -7,6 +7,8 @@
import com.supwisdom.dlpay.consume.service.PaytypeService
import com.supwisdom.dlpay.consume.service.PersonBalancePayService
import com.supwisdom.dlpay.consume.service.PersonService
+import com.supwisdom.dlpay.exception.TransactionException
+import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.util.*
import com.supwisdom.dlpay.util.PaytypeUtil
import org.springframework.beans.factory.annotation.Autowired
@@ -69,35 +71,44 @@
stuempno: String, shopid: String, transdate: String, transtime: String,
outtradeno: String, payinfo: String, feetype: String): ResponseEntity<Any> {
//一卡通支付款 112240
- val person = personService.getPersonByThirdUniqueIdenty(stuempno)
- val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
- .setTransDatetime(transdate, transtime)
- .selectPaytype(PaytypeUtil.YKTPAY, payinfo)
- .setOuttradeno(outtradeno)
- .setOwner(person)
- .setTransinfo(TradeCode.TRANSCODE_YKTPAY, "一卡通支付")
- .chooseTradetype(Tradetype.CONSUME)
- .also {
- when (feetype) {
- TradeDict.FEETYPE_CONSUME_MEALER -> {
- it.addDetail(AccountHolder.subject("112240"),
- AccountHolder.shop(shopid),
- amount / 100.0, "一卡通支付")
- .addDetail(AccountHolder.subject("112240"),
- AccountHolder.subject(Subject.SUBJ_MACHANT_INCOME),
- manageFee / 100.0, "收搭伙费")
+ return try {
+ val person = personService.getPersonByThirdUniqueIdenty(stuempno)
+ val dtl = PersonTransBuilder.newBuilder(accountUtilServcie)
+ .setTransDatetime(transdate, transtime)
+ .selectPaytype(PaytypeUtil.YKTPAY, payinfo)
+ .setOuttradeno(outtradeno)
+ .setOwner(person)
+ .setTransinfo(TradeCode.TRANSCODE_YKTPAY, "一卡通支付")
+ .chooseTradetype(Tradetype.CONSUME)
+ .also {
+ when (feetype) {
+ TradeDict.FEETYPE_CONSUME_MEALER -> {
+ it.addDetail(AccountHolder.subject(Subject.SUBJ_PAY_YKT),
+ AccountHolder.shop(shopid),
+ amount / 100.0, "一卡通支付")
+ .addDetail(AccountHolder.subject(Subject.SUBJ_PAY_YKT),
+ AccountHolder.subject(Subject.SUBJ_MACHANT_INCOME),
+ manageFee / 100.0, "收搭伙费")
+ }
+ TradeDict.FEETYPE_CONSUME_DISCOUNT -> {
+ it.addDetail(AccountHolder.subject(Subject.SUBJ_PAY_YKT),
+ AccountHolder.shop(shopid),
+ (amount - manageFee) / 100.0, "一卡通支付")
+ .addDetail(AccountHolder.subject(Subject.SUBJ_DISCOUNT_PRE_DEPOSIT),
+ AccountHolder.shop(shopid),
+ manageFee / 100.0, "优惠折扣")
+ }
}
- TradeDict.FEETYPE_CONSUME_DISCOUNT -> {
- it.addDetail(AccountHolder.subject("112240"),
- AccountHolder.shop(shopid),
- (amount - manageFee) / 100.0, "一卡通支付")
- .addDetail(AccountHolder.subject("2003"),
- AccountHolder.shop(shopid),
- manageFee / 100.0, "优惠折扣")
- }
- }
- }.done(personBalancePayService, false)
- return ResponseEntity.ok(dtl)
+ }.done(personBalancePayService, false)
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .success()
+ .data("refno", dtl.refno)
+ .build())
+ } catch (e: TransactionException) {
+ ResponseEntity.ok(ResponseBodyBuilder.create()
+ .exception(99, e, "查询异常")
+ .build())
+ }
}
@PostMapping("/ykt/payfinish")
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
new file mode 100644
index 0000000..67e22d6
--- /dev/null
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
@@ -0,0 +1,48 @@
+package com.supwisdom.dlpay.framework
+
+import com.supwisdom.dlpay.exception.TransactionCheckException
+import com.supwisdom.dlpay.framework.util.TradeErrorCode
+
+class ResponseBodyBuilder private constructor() {
+ companion object {
+ private const val INVALIDE_RETCODE = -0x7FFFFFFF
+ fun create() = ResponseBodyBuilder()
+ }
+
+ private var retCode = INVALIDE_RETCODE
+ private var retMsg = ""
+
+ private val respData = mutableMapOf<String, Any>()
+
+ fun result(code: Int, msg: String? = null): ResponseBodyBuilder {
+ this.retCode = code
+ retMsg = if (retCode == 0) {
+ msg ?: "成功"
+ } else {
+ msg ?: "失败"
+ }
+ return this
+ }
+
+ fun success(msg: String? = null): ResponseBodyBuilder {
+ result(0, msg)
+ return this
+ }
+
+ fun exception(code: Int, exception: Exception, msg: String? = null): ResponseBodyBuilder {
+ data("exception", exception.message ?: "$exception")
+ return result(code, msg)
+ }
+
+ fun data(name: String, value: Any): ResponseBodyBuilder {
+ this.respData[name] = value
+ return this
+ }
+
+ fun build(): Map<String, Any> {
+ if (retCode == INVALIDE_RETCODE) {
+ throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "未设置返回码!")
+ }
+ return this.respData.plus(mapOf("retcode" to retCode, "retmsg" to retMsg))
+ }
+}
\ No newline at end of file