From 7b01546a21e82e6cd2660cdecb47522a24cba925 Mon Sep 17 00:00:00 2001 From: Tang Cheng Date: Tue, 17 Dec 2019 14:08:26 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=BA=BF=E4=B8=8B?= =?utf8?q?=E5=85=85=E5=80=BC=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- build.gradle | 3 +- .../api/bean/CommonRechargeInitParam.java | 5 + .../dlpay/api/bean/MerchantDepositParam.java | 132 ++++++++++++++++++ .../api/bean/MerchantDepositResponse.java | 43 ++++++ .../dlpay/paysdk/proxy/TransactionProxy.java | 6 + .../dlpay/api/dao/DepositCapitalTypeDao.java | 13 ++ .../dlpay/api/domain/TDepositCapitalType.java | 94 +++++++++++++ .../dlpay/framework/util/TradeCode.java | 2 + .../dlpay/framework/util/TradeDict.java | 2 + .../api/controller/charge_api_controller.kt | 82 ++++++++++- .../dlpay/api/service/charge_api_service.kt | 4 + .../service/impl/charge_api_service_impl.kt | 12 +- payapi/src/main/resources/data.sql | 40 ++++++ .../dlpay/transaction_service_test.kt | 6 +- 14 files changed, 436 insertions(+), 8 deletions(-) create mode 100644 payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositParam.java create mode 100644 payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositResponse.java create mode 100644 payapi/src/main/java/com/supwisdom/dlpay/api/dao/DepositCapitalTypeDao.java create mode 100644 payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java diff --git a/build.gradle b/build.gradle index 3bf4e381..ee3f5030 100644 --- a/build.gradle +++ b/build.gradle @@ -41,9 +41,10 @@ allprojects { } } - version = gitVersion() + version = '1' ext { details = versionDetails() + buildVersion = gitVersion() } } diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonRechargeInitParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonRechargeInitParam.java index 39099d2d..5fb3b543 100644 --- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonRechargeInitParam.java +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/CommonRechargeInitParam.java @@ -2,6 +2,8 @@ package com.supwisdom.dlpay.api.bean; import com.supwisdom.dlpay.api.APIRequestParam; import com.supwisdom.dlpay.api.annotation.Sign; +import com.supwisdom.dlpay.api.annotation.TransDate; +import com.supwisdom.dlpay.api.annotation.TransTime; import com.supwisdom.dlpay.api.exception.RequestParamCheckException; import com.supwisdom.dlpay.api.util.DateUtil; import lombok.Getter; @@ -36,9 +38,12 @@ public class CommonRechargeInitParam extends APIRequestParam { @Sign @NotNull(message = "交易日期不能为空") + @TransDate(message = "交易日期格式不合法") private String transdate; + @Sign @NotNull(message = "交易时间不能为空") + @TransTime(message = "交易时间格式不合法") private String transtime; @Override diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositParam.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositParam.java new file mode 100644 index 00000000..b19a63a4 --- /dev/null +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositParam.java @@ -0,0 +1,132 @@ +package com.supwisdom.dlpay.api.bean; + +import com.supwisdom.dlpay.api.APIRequestParam; +import com.supwisdom.dlpay.api.annotation.TransDate; +import com.supwisdom.dlpay.api.annotation.TransTime; +import com.supwisdom.dlpay.api.exception.RequestParamCheckException; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +public class MerchantDepositParam extends APIRequestParam { + private String userid; + private String custcode; + + @NotNull(message = "客户端流水号不能为空") + private String billno; + + @NotNull(message = "资金类型不能为空") + private String capitalType; + + @NotNull(message = "充值金额不能为空") + @Min(value = 1L, message = "充值金额不能小于等于0") + private Integer depositAmount; + + @NotNull(message = "操作员") + private String opercode; + + private String refno; + + @TransDate + private String localDate; + @TransTime + private String localTime; + + @NotNull(message = "商户号不能为空") + private String merchant; + + private String desc; + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } + + public String getCustcode() { + return custcode; + } + + public void setCustcode(String custcode) { + this.custcode = custcode; + } + + public String getBillno() { + return billno; + } + + public void setBillno(String billno) { + this.billno = billno; + } + + public String getCapitalType() { + return capitalType; + } + + public void setCapitalType(String capitalType) { + this.capitalType = capitalType; + } + + public Integer getDepositAmount() { + return depositAmount; + } + + public void setDepositAmount(Integer depositAmount) { + this.depositAmount = depositAmount; + } + + public String getLocalDate() { + return localDate; + } + + public void setLocalDate(String localDate) { + this.localDate = localDate; + } + + public String getLocalTime() { + return localTime; + } + + public void setLocalTime(String localTime) { + this.localTime = localTime; + } + + public String getMerchant() { + return merchant; + } + + public void setMerchant(String merchant) { + this.merchant = merchant; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getOpercode() { + return opercode; + } + + public void setOpercode(String opercode) { + this.opercode = opercode; + } + + public String getRefno() { + return refno; + } + + public void setRefno(String refno) { + this.refno = refno; + } + + @Override + public boolean checkParam() throws RequestParamCheckException { + return true; + } +} diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositResponse.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositResponse.java new file mode 100644 index 00000000..c54ffe4a --- /dev/null +++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/bean/MerchantDepositResponse.java @@ -0,0 +1,43 @@ +package com.supwisdom.dlpay.api.bean; + +public class MerchantDepositResponse extends ApiResponse { + private String refno; + + private Integer depositAmount; + + private Integer extraAmount; + + private String summary; + + public String getRefno() { + return refno; + } + + public void setRefno(String refno) { + this.refno = refno; + } + + public Integer getDepositAmount() { + return depositAmount; + } + + public void setDepositAmount(Integer depositAmount) { + this.depositAmount = depositAmount; + } + + public Integer getExtraAmount() { + return extraAmount; + } + + public void setExtraAmount(Integer extraAmount) { + this.extraAmount = extraAmount; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } +} diff --git a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/TransactionProxy.java b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/TransactionProxy.java index 570587af..712fcd39 100644 --- a/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/TransactionProxy.java +++ b/payapi-sdk/src/main/java/com/supwisdom/dlpay/paysdk/proxy/TransactionProxy.java @@ -15,4 +15,10 @@ public interface TransactionProxy { @PostMapping("/api/consume/queryresult") QueryTransDtlResponse queryDtlResult(@RequestBody QueryDtlResultParam param); + + @PostMapping("/api/deposit/merchant/init") + MerchantDepositResponse depositInit(@RequestBody MerchantDepositParam param); + + @PostMapping("/api/deposit/merchant/confirm") + MerchantDepositResponse depositConfirm(@RequestBody MerchantDepositParam param); } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/dao/DepositCapitalTypeDao.java b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/DepositCapitalTypeDao.java new file mode 100644 index 00000000..e6a0b586 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/dao/DepositCapitalTypeDao.java @@ -0,0 +1,13 @@ +package com.supwisdom.dlpay.api.dao; + +import com.supwisdom.dlpay.api.domain.TDepositCapitalType; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface DepositCapitalTypeDao extends JpaRepository { + + TDepositCapitalType findTDepositCapitalTypeByCodeAndTenantid(String code, String tenantid); + + List findTDepositCapitalTypesByTenantid(String tenantid); +} diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java new file mode 100644 index 00000000..90a33341 --- /dev/null +++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TDepositCapitalType.java @@ -0,0 +1,94 @@ +package com.supwisdom.dlpay.api.domain; + +import javax.persistence.*; + +import static javax.persistence.FetchType.LAZY; + +@Table(name = "TB_DEPOSIT_CAPITAL_TYPE", + indexes = {@Index(name = "deposit_capital_type_idx", columnList = "code, tenantid", unique = true)}) +@Entity +@SequenceGenerator(name = "deposit_capital_type_seq", initialValue = 50) +public class TDepositCapitalType { + + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "deposit_capital_type_seq") + private Integer id; + + @Column(name = "code", length = 20) + private String code; + + @Column(name = "capital", length = 100) + private String capital; + + @Column(name = "subjno", length = 20) + private String subjno; + + @Column(name = "sourcetypecode", length = 32) + private String sourceTypeCode; + + @OneToOne(targetEntity = TSourceType.class, fetch = LAZY, cascade = CascadeType.ALL) + @JoinColumns({ + @JoinColumn(name = "sourcetypecode", referencedColumnName = "SOURCETYPE"), + @JoinColumn(name = "tenantid", referencedColumnName = "tenantid") + }) + private TSourceType sourceType; + + @Column(name = "tenantid", length = 20) + private String tenantid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getCapital() { + return capital; + } + + public void setCapital(String capital) { + this.capital = capital; + } + + public String getSubjno() { + return subjno; + } + + public void setSubjno(String subjno) { + this.subjno = subjno; + } + + public String getTenantid() { + return tenantid; + } + + + public void setTenantid(String tenantid) { + this.tenantid = tenantid; + } + + public String getSourceTypeCode() { + return sourceTypeCode; + } + + public void setSourceTypeCode(String sourceTypeCode) { + this.sourceTypeCode = sourceTypeCode; + } + + public TSourceType getSourceType() { + return sourceType; + } + + public void setSourceType(TSourceType sourceType) { + this.sourceType = sourceType; + } +} diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java index d1a85b84..82989779 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeCode.java @@ -32,4 +32,6 @@ public class TradeCode { public static final int TRANSCODE_CARD_BIZ = 1007; // 卡务业务 + public static final int TRANSCODE_MERCHANT_DEPOSIT = 3600; + } diff --git a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java index 9c2162ff..d82ded44 100644 --- a/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java +++ b/payapi/src/main/java/com/supwisdom/dlpay/framework/util/TradeDict.java @@ -88,6 +88,8 @@ public class TradeDict { public static final String PAYTYPE_SM = "SM"; //SM内支付 public static final String SOURCETYPE_DEFAULT = "thirduid"; //第三方id默认 + public static final String SOURCETYPE_INTERNAL = "internal"; //内部资金类型 + public static final String SOURCETYPE_EXTERNAL = "external"; //外部资金 /** * feetype * - 消费:折扣、搭伙费(管理费) diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt index da8c9861..968dab2e 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt @@ -3,11 +3,13 @@ package com.supwisdom.dlpay.api.controller import com.supwisdom.dlpay.api.AccountProxy import com.supwisdom.dlpay.api.TransactionBuilder import com.supwisdom.dlpay.api.bean.* -import com.supwisdom.dlpay.api.service.* +import com.supwisdom.dlpay.api.service.AccountUtilServcie +import com.supwisdom.dlpay.api.service.ChargeApiService +import com.supwisdom.dlpay.api.service.TransactionServiceProxy +import com.supwisdom.dlpay.api.service.UserService import com.supwisdom.dlpay.exception.TransactionCheckException import com.supwisdom.dlpay.exception.TransactionProcessException import com.supwisdom.dlpay.framework.ResponseBodyBuilder -import com.supwisdom.dlpay.framework.service.CommonService import com.supwisdom.dlpay.framework.service.SystemUtilService import com.supwisdom.dlpay.framework.util.Subject import com.supwisdom.dlpay.framework.util.TradeCode @@ -20,9 +22,10 @@ import org.springframework.web.bind.annotation.PostMapping import org.springframework.web.bind.annotation.RequestBody import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController +import javax.validation.Valid @RestController -@RequestMapping("/api/recharge") +@RequestMapping("/api/deposit") class ChargeAPIController { @Autowired lateinit var accountUtilServcie: AccountUtilServcie @@ -31,8 +34,6 @@ class ChargeAPIController { @Autowired lateinit var transactionService: TransactionServiceProxy @Autowired - lateinit var commonService: CommonService - @Autowired lateinit var userService: UserService @Autowired lateinit var chargeApiService: ChargeApiService @@ -141,4 +142,75 @@ class ChargeAPIController { } + @PostMapping("/merchant/init") + fun merchantDepositInit(@RequestBody @Valid param: MerchantDepositParam, auth: Authentication): + ResponseEntity { + val response = MerchantDepositResponse() + val account = when { + param.userid.isNotBlank() -> { + accountUtilServcie.readAccount(param.userid) + } + param.custcode.isNotBlank() -> { + TODO("not implementation") + } + else -> { + return ResponseBodyBuilder.failEntity(response, TradeErrorCode.INPUT_DATA_ERROR, + "用户ID不能为空") + } + } + + val shopacc = accountUtilServcie.readShopbyShopaccno(param.merchant) + + val capitalType = chargeApiService.getDepositCapital(param.capitalType) + + val subject = accountUtilServcie.readSubject(capitalType.subjno) + + val builder = TransactionBuilder().apply { + setTransInfo(param.localDate, param.localTime, + TradeCode.TRANSCODE_MERCHANT_DEPOSIT, + capitalType.sourceTypeCode) + setOutTransInfo(auth.principal.toString(), param.billno) + dtltype = "deposit" + if (param.opercode.isNotBlank()) { + operator(param.opercode, TradeDict.OPERTYPE_SHOP) + } else { + operator(param.merchant, TradeDict.OPERTYPE_SHOP) + } + }.person(account).apply { + setAmount(param.depositAmount / 100.0, TradeDict.TRADE_FLAG_IN) + setOpposite(shopacc.shopaccno, shopacc.shopname) + }.and().shop(shopacc).apply { + setAmount(param.depositAmount / 100.0, TradeDict.TRADE_FLAG_OUT) + setOpposite(account.accno, account.accname) + }.and() + .addDebitCreditRecord(subject.subjno, subject.subjname, + shopacc.shopaccno, shopacc.shopname, param.depositAmount / 100.0, + capitalType.capital + "充值") + .addDebitCreditRecord(shopacc.shopaccno, shopacc.shopname, + account.accno, account.accname, param.depositAmount / 100.0, + capitalType.capital + "充值") + + val transaction = builder.init(transactionService) + response.apply { + refno = transaction.refno + summary = transaction.shopDtl.transdesc + depositAmount = Math.round(transaction.personDtl.amount * 100) as Int + extraAmount = 0 + } + return ResponseBodyBuilder.successEntity(response, "充值初始化成功") + } + + @PostMapping("/merchant/confirm") + fun merchantDepositConfirm(@RequestBody @Valid param: MerchantDepositParam, auth: Authentication): + ResponseEntity { + val response = MerchantDepositResponse() + val transaction = transactionService.success(param.refno) + response.apply { + refno = transaction.refno + summary = transaction.shopDtl.transdesc + depositAmount = Math.round(transaction.personDtl.amount * 100) as Int + extraAmount = 0 + } + return ResponseBodyBuilder.successEntity(response, "充值成功") + } } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt index 2ac22fb1..9d737dea 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt @@ -1,5 +1,6 @@ package com.supwisdom.dlpay.api.service +import com.supwisdom.dlpay.api.domain.TDepositCapitalType import com.supwisdom.dlpay.api.domain.TPersondtl import com.supwisdom.dlpay.api.domain.TTransactionMain import org.springframework.transaction.annotation.Propagation @@ -14,4 +15,7 @@ interface ChargeApiService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true) fun getPersonDtl(refno: String): TPersondtl + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true) + fun getDepositCapital(capital: String): TDepositCapitalType } \ No newline at end of file diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt index d76880f8..f08607d3 100644 --- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt +++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt @@ -1,11 +1,14 @@ package com.supwisdom.dlpay.api.service.impl +import com.supwisdom.dlpay.api.dao.DepositCapitalTypeDao import com.supwisdom.dlpay.api.dao.PersondtlDao import com.supwisdom.dlpay.api.dao.TransactionMainDao +import com.supwisdom.dlpay.api.domain.TDepositCapitalType import com.supwisdom.dlpay.api.domain.TPersondtl import com.supwisdom.dlpay.api.domain.TTransactionMain import com.supwisdom.dlpay.api.service.ChargeApiService import com.supwisdom.dlpay.api.service.SourceTypeService +import com.supwisdom.dlpay.framework.tenant.TenantContext import com.supwisdom.dlpay.framework.util.StringUtil import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service @@ -19,6 +22,9 @@ class ChargeApiServiceImpl : ChargeApiService { @Autowired lateinit var persondtlDao: PersondtlDao + @Autowired + lateinit var depositCapitalTypeDao: DepositCapitalTypeDao + override fun checkRechargeSourcetype(sourceType: String): Boolean { return sourceTypeService.checkRechargeSourcetype(sourceType) } @@ -30,7 +36,11 @@ class ChargeApiServiceImpl : ChargeApiService { } } - override fun getPersonDtl(refno: String): TPersondtl{ + override fun getPersonDtl(refno: String): TPersondtl { return persondtlDao.getOne(refno) } + + override fun getDepositCapital(capital: String): TDepositCapitalType { + return depositCapitalTypeDao.findTDepositCapitalTypeByCodeAndTenantid(capital, TenantContext.getTenantSchema()); + } } \ No newline at end of file diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql index 7244bf30..2e5119af 100644 --- a/payapi/src/main/resources/data.sql +++ b/payapi/src/main/resources/data.sql @@ -560,6 +560,46 @@ INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydes VALUES ('28EE54CD3B044CC197D6C5B0E309F8B8', 'alipay', 't', '支付宝', 't', 't', 't', 't', 'f', '112230','112210', 1, '103000', '{tenantid}'); INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "pay_subjno", "deposite_subjno", "tplusn", "start_chktime", "tenantid") VALUES ('DAEF88B54B684347B2B83940C38C7671', 'wechat', 't', '微信支付', 't', 't', 't', 't', 'f', '112231','112211', 1, '103000', '{tenantid}'); +INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "pay_subjno", "deposite_subjno", "tplusn", "start_chktime", "tenantid") +VALUES ('8f86d7c37dd813b8141057c2dbd93250', 'internal', 't', '内部资金', 't', 't', 't', 't', 'f', '','', 1, '', '{tenantid}'); +INSERT INTO "tb_sourcetype" ("sourcetype_id", "sourcetype", "checkable", "paydesc", "enable", "charge_enable", "consume_enable", "anonymous_enable", "reversable", "pay_subjno", "deposite_subjno", "tplusn", "start_chktime", "tenantid") +VALUES ('52d23e8b38221b15f989af1b910cc104', 'external', 't', '外部资金', 't', 't', 't', 't', 'f', '','', 1, '', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(1, 'cash', '现金', '1001', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(2, 'cheque', '支票', '112101', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(3, 'voucher', '经费本', '112102', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(4, 'wanxiao.weichat', '完美校园微信', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(5, 'wanxiao.alipay', '完美校园支付宝', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(6, 'wanxiao.ccb', '完美校园建设银行', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(7, 'wanxiao.icbc', '完美校园工商银行', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(8, 'wanxiao.boc', '完美校园中国银行', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(9, 'wanxiao.abc', '完美校园农业银行', '112209', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(10, 'weichat', '微信', '112211', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(11, 'alipay', '支付宝', '112210', 'external', '{tenantid}'); + +INSERT INTO TB_DEPOSIT_CAPITAL_TYPE(ID, CODE, CAPITAL, SUBJNO, SOURCETYPECODE, TENANTID) +VALUES(12, 'unionpay', '银联', '112212', 'external', '{tenantid}'); -- 支付方式 INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid") diff --git a/payapi/src/test/kotlin/com/supwisdom/dlpay/transaction_service_test.kt b/payapi/src/test/kotlin/com/supwisdom/dlpay/transaction_service_test.kt index cfacc165..4329c703 100644 --- a/payapi/src/test/kotlin/com/supwisdom/dlpay/transaction_service_test.kt +++ b/payapi/src/test/kotlin/com/supwisdom/dlpay/transaction_service_test.kt @@ -83,7 +83,7 @@ class TransactionServcieTest { } @Test - fun testTransaction() { + fun `transation init success`() { val builder = TransactionBuilder() val person = testAccount() val shop = testShop() @@ -127,5 +127,9 @@ class TransactionServcieTest { verify(exactly = 1) { systemUtilService.refno } verify(atLeast = 1) { systemUtilService.accdate } verify(exactly = 1) { sourceTypeService.getBySourceType(builder.sourceType) } + + every { transactionMainDao.findByRefnoForUpdate(transaction.refno) } returns transaction + val trans2 = transactionService.success(transaction.refno) + assertThat(trans2.status, equalTo(TradeDict.DTL_STATUS_SUCCESS)) } } \ No newline at end of file -- 2.17.1