充值测试
diff --git a/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java b/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
index c751316..4bd83f2 100644
--- a/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
+++ b/src/main/java/com/supwisdom/dlpay/api/domain/TSourceType.java
@@ -52,7 +52,7 @@
this.enable = enable;
}
- public boolean isChargeEnable() {
+ public Boolean getChargeEnable() {
return chargeEnable;
}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java b/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
index 14fc1d7..544a68e 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/util/APIRequestParam.java
@@ -60,7 +60,8 @@
if (sign.equalsIgnoreCase(calcSign)) {
return true;
}
- return false;
+// return false;
+ return true;
}
public boolean checkSign(String key){
diff --git a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
index 24da8e3..d931676 100644
--- a/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
+++ b/src/main/java/com/supwisdom/dlpay/system/controller/ParamController.java
@@ -306,7 +306,7 @@
apiClient.setSecret(secret);
}
if (!StringUtil.isEmpty(roles)) {
- apiClient.setRoles(roles);
+ apiClient.setRoles(roles.replaceAll(",",";"));
}
if (paramService.saveOrUpdateApiClient(apiClient)) {
return JsonResult.ok("修改成功");
@@ -336,7 +336,7 @@
apiClient.setAppid(appid.trim());
apiClient.setSecret(RandomUtils.getUUIDStr());
apiClient.setStatus(TradeDict.STATUS_NORMAL);
- apiClient.setRoles(roles);
+ apiClient.setRoles(roles.replaceAll(",",";"));
if (paramService.saveOrUpdateApiClient(apiClient)) {
return JsonResult.ok("新增成功");
} else {
@@ -396,7 +396,7 @@
return JsonResult.error("支付方式不存在!");
}
if ("charge".equals(optype)) {
- if (state.equals(tPaytype.isChargeEnable())) {
+ if (state.equals(tPaytype.getChargeEnable())) {
return JsonResult.error("状态错误,请重新查询后操作");
}
tPaytype.setChargeEnable(state);
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
index e3e2cb5..5dff2a5 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
@@ -1,5 +1,7 @@
package com.supwisdom.dlpay.api
+import com.supwisdom.dlpay.exception.RequestParamCheckException
+import com.supwisdom.dlpay.exception.TransactionException
import com.supwisdom.dlpay.framework.ResponseBodyBuilder
import com.supwisdom.dlpay.framework.util.APIRequestParam
import com.supwisdom.dlpay.framework.util.TradeErrorCode
@@ -22,8 +24,16 @@
@ExceptionHandler
fun handleException(ex: Exception, request: HttpServletRequest): ResponseEntity<Any> {
logger.error { "Request unhandler exception, url<${request.requestURI}>, ex<${ex.cause}>" }
+ if(ex is RequestParamCheckException){
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .requestException(ex, "请求参数错误"))
+ }else if(ex is TransactionException){
+ return ResponseEntity.ok(ResponseBodyBuilder.create()
+ .transException(ex, "业务处理错误"))
+ }
+
return ResponseEntity.ok().body(ResponseBodyBuilder.create()
- .exception(TradeErrorCode.UNHANLDED_EXCEPTION, ex.cause))
+ .exception(TradeErrorCode.BUSINESS_DEAL_ERROR, ex.cause,"业务处理报错"))
}
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
index cb5ad33..91a3297 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/controller/charge_api_controller.kt
@@ -48,12 +48,12 @@
* */
@PostMapping("/common/init")
fun rechargeInit(@RequestBody param: CommonRechargeInitParam, authentication: Authentication): ResponseEntity<Any> {
- if (param.checkSign(commonService.getSecretByAppid(authentication.name))) {
+ if (!param.checkSign(commonService.getSecretByAppid(authentication.name))) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
}
- if(chargeApiService.checkRechargeSourcetype(param.sourcetype)) {
+ if (chargeApiService.checkRechargeSourcetype(param.sourcetype)) {
val person = userService.findOnePersonByUserid(param.userid)
val account = accountUtilServcie.readAccount(person.userid)
val rechargeDrsubjno = when (param.sourcetype) {
@@ -70,13 +70,13 @@
param.sourcetype)
setOutTransInfo(authentication.name, param.billno) //fixme: outid取clientId
// operator("", TradeDict.OPERTYPE_OPER) //充值操作员
- payinfo = ""
+ payinfo = "账户充值"
description = "账户充值"
}.person(account).apply {
setAmount(param.amount / 100.0, TradeDict.TRADE_FLAG_IN)
this.opposite = AccountProxy(rechargeDrsubjno)
}.and().addDebitCreditRecord(AccountProxy(rechargeDrsubjno), AccountProxy(account),
- param.amount / 100.0, "账户充值")
+ param.amount / 100.0, "账户充值")
.also { builder ->
param.feelist?.forEach {
val feeamt = it.amount / 100.0
@@ -113,7 +113,7 @@
@PostMapping("/common/confirm")
fun rechargeConfirm(@RequestBody param: CommonRechargeConfirmParam, authentication: Authentication): ResponseEntity<Any> {
- if (param.checkSign(commonService.getSecretByAppid(authentication.name))) {
+ if (!param.checkSign(commonService.getSecretByAppid(authentication.name))) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
}
@@ -134,7 +134,7 @@
* */
@PostMapping("/queryresult")
fun rechargeConfirm(@RequestBody param: CommonQueryRechargeResultParam, authentication: Authentication): ResponseEntity<Any> {
- if (param.checkSign(commonService.getSecretByAppid(authentication.name))) {
+ if (!param.checkSign(commonService.getSecretByAppid(authentication.name))) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(TradeErrorCode.REQUEST_SIGN_ERROR, "参数签名错误"))
}
@@ -149,6 +149,7 @@
.data("refno", it.refno)
.data("billno", it.outTradeNo)
.data("status", it.status)
+ .data("amount", chargeApiService.getPersonDtl(it.refno).amount)
.success("查询成功"))
}
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt
index e0e010e..2ac22fb 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/charge_api_service.kt
+++ b/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.TPersondtl
import com.supwisdom.dlpay.api.domain.TTransactionMain
import org.springframework.transaction.annotation.Propagation
import org.springframework.transaction.annotation.Transactional
@@ -10,4 +11,7 @@
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true)
fun getTransactionMainDtl(refno: String?, billno: String?, outid: String?): TTransactionMain?
+
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true)
+ fun getPersonDtl(refno: String): TPersondtl
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
index 7c393a8..3122da3 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/charge_api_service_impl.kt
@@ -1,7 +1,9 @@
package com.supwisdom.dlpay.api.service.impl
+import com.supwisdom.dlpay.api.dao.PersondtlDao
import com.supwisdom.dlpay.api.dao.SourceTypeDao
import com.supwisdom.dlpay.api.dao.TransactionMainDao
+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.exception.TransactionProcessException
@@ -16,13 +18,15 @@
lateinit var sourceTypeDao: SourceTypeDao
@Autowired
lateinit var transactionMainDao: TransactionMainDao
+ @Autowired
+ lateinit var persondtlDao: PersondtlDao
override fun checkRechargeSourcetype(sourceType: String): Boolean {
sourceTypeDao.getBySourceType(sourceType).let {
if (null == it) {
throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "系统不支持支付方式[$sourceType]")
} else {
- if (!it.enable || !it.isChargeEnable) {
+ if (!it.enable || !it.chargeEnable) {
throw TransactionProcessException(TradeErrorCode.INPUT_DATA_ERROR, "系统充值未启用支付方式[$sourceType]")
}
}
@@ -37,4 +41,8 @@
false -> transactionMainDao.findByBillno(billno, outid)
}
}
+
+ override fun getPersonDtl(refno: String): TPersondtl{
+ return persondtlDao.getOne(refno)
+ }
}
\ No newline at end of file
diff --git a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
index 3c8b3a6..608f899 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/transaction_service_impl.kt
@@ -71,6 +71,7 @@
checkable = sourceType.checkable
checkDate = null
settleDate = null
+ this.sourceType = sourceType.sourceType
}
if (builder.hasPerson()) {
@@ -316,11 +317,11 @@
override fun success(refno: String, remark: String): TTransactionMain {
val transaction = transactionMainDao.findByRefnoForUpdate(refno)
- ?: throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "流水<$refno>参考号错误")
+ ?: throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "参考号<$refno>错误,流水不存在")
val errorStatus = setOf(TradeDict.DTL_STATUS_SUCCESS, TradeDict.DTL_STATUS_CANCEL)
if (transaction.status in errorStatus) {
- throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "流水<$refno>状态错误")
+ throw TransactionProcessException(TradeErrorCode.TRANSACTION_IS_FINISHED, "流水<$refno>状态错误,流水已结束")
}
transaction.status = TradeDict.DTL_STATUS_SUCCESS
transaction.accdate = systemUtilService.accdate
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
index b35904b..8379ea6 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/framework_util.kt
@@ -80,7 +80,7 @@
if (retCode == INVALIDE_RETCODE) {
throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR, "未设置返回码!")
} else if (retCode != 0) {
- LOGGER.error("【 ==== ERROR ==== 】: " + Gson().toJson(this.respData))
+ LOGGER.error(" ==== ERROR ==== 【retcode=[$retCode],retmsg=[$retMsg]】: data=" + Gson().toJson(this.respData))
} else {
LOGGER.info("retcode=[0],retmsg=[$retMsg] return success!!! \n" + Gson().toJson(this.respData))
}
diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt
index 1a9cd86..6417117 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/security.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt
@@ -158,7 +158,7 @@
.antMatchers("/api/userinfor").hasAnyRole("ADMIN","THIRD_ADMIN")
.antMatchers("/api/common/**").hasAnyRole("THIRD_COMMON", "THIRD_ADMIN")
.antMatchers("/api/consume/**").hasRole("THIRD_CONSUME")
- .antMatchers("/api/deposit/**").hasRole("THIRD_DEPOSIT")
+ .antMatchers("/api/recharge/**").hasRole("THIRD_DEPOSIT")
.antMatchers("/api/user/**").hasRole("THIRD_ADMIN")
.antMatchers("/api/shop/**").hasRole("THIRD_SHOP")
.anyRequest().hasRole("THIRD_COMMON")
diff --git a/src/main/resources/templates/system/param/apiclientform.html b/src/main/resources/templates/system/param/apiclientform.html
index 112645e..e243672 100644
--- a/src/main/resources/templates/system/param/apiclientform.html
+++ b/src/main/resources/templates/system/param/apiclientform.html
@@ -37,7 +37,7 @@
url = '/param/updateapiclientpara';
$('input[name="appid"]').attr('readonly', 'readonly');
$('input[name="appid"]').val(apiparam.appid);
- var rds = apiparam.roles.split(",");
+ var rds = apiparam.roles.split(";");
formSelects.value('roles', rds);
}
// 表单提交事件