充值测试
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);
         }
         // 表单提交事件