与农商行前置对接
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
index ba5e113..2ed95c0 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/bean/DlpayResp.java
@@ -9,9 +9,9 @@
   private String message;
   private String transdate;
   private String transtime;
-  private String bankjourno;
-  private String captcha;
-  private String status;
+  private String bankjourno; //银行流水号
+  private String captcha; //验证码
+  private String status; //0-成功;1-失败;2-已退款;3-部分退款
   private String filename;
 
   @XmlElement(name = "CODE")
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java b/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
index d6d7b9f..e2ef84f 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/util/YnrccUtil.java
@@ -5,18 +5,26 @@
 
 
 public class YnrccUtil {
-  private static final String BANKCARD_BIND_TRANSCODE = "BC5510";
-  private static final String BANKCARD_SIGN_TRANSCODE = "BC5511";
-  private static final String BANKCARD_PAY_TRANSCODE = "BC5512";
-  private static final String BANKCARD_PAYREFUND_TRANSCODE = "BC5513";
-  private static final String BANKCARD_QUERYRESULT_TRANSCODE = "BC5514";
-  private static final String BANKCARD_CHKFILE_TRANSCODE = "BC5515";
+  public static final String BANKCARD_BIND_TRANSCODE = "BC5510";
+  public static final String BANKCARD_SIGN_TRANSCODE = "BC5511";
+  public static final String BANKCARD_PAY_TRANSCODE = "BC5512";
+  public static final String BANKCARD_PAYREFUND_TRANSCODE = "BC5513";
+  public static final String BANKCARD_QUERYRESULT_TRANSCODE = "BC5514";
+  public static final String BANKCARD_CHKFILE_TRANSCODE = "BC5515";
 
   public static final String DLPAY_CATEGORIE = "C001"; //消费类别
 
   public static final String YNRCC_ANGENT_URL = "ynrcc.agent.url"; //农商行前置url
-  public static final String YNRCC_SIGNTYPE = "ynrcc.agent.signtype"; //农商行前置signtype
   public static final String YNRCC_SIGNKEY = "ynrcc.agent.signkey"; //农商行前置md5key
+  public static final String YNRCC_MERCHANT_BANKCARDNO = "merchant.bankcardno";
+  public static final String YNRCC_MERCHANT_BANKACCNAME = "merchant.bankaccname";
+
+  public static final String PARAM_CONFIG_ERROR = "90000"; // 参数未配置
+  public static final String PARAM_VALUE_ERROR = "90001"; // 参数值错误
+
+  public static final int AGENT_CONNECT_TIMEOUT = 20;
+  public static final String TRANSTYPE_SIGNCARD = "1"; //签约
+  public static final String TRANSTYPE_UNSIGNCARD = "2"; //解约
 
   public static final Map<String, String> errcode = new HashMap<>(0);
   static {
@@ -28,17 +36,26 @@
     errcode.put("0105", "户名不符");
     errcode.put("0106", "卡状态异常");
     errcode.put("0107", "无此卡号");
+    errcode.put("0108", "已存在签约信息,与签约证件号码不符");
+    errcode.put("0109", "已存在签约信息,与签约证件类型不符");
+    errcode.put("0110", "已存在签约信息,与签约户名不符");
+    errcode.put("0111", "已存在签约信息,与签约手机号不符");
+
     errcode.put("0201", "未进行银行卡绑定");
     errcode.put("0202", "无效的交易类型");
     errcode.put("0301", "未签约");
     errcode.put("0302", "余额不足");
     errcode.put("0303", "MD5校验失败");
+    errcode.put("0304", "该卡号已经解约,不允许重复解约");
     errcode.put("0401", "原始流水不存在");
     errcode.put("0402", "原始流水未成功");
     errcode.put("0403", "原始流水已退款");
     errcode.put("4004", "商户账户余额不足");
     errcode.put("0405", "不在退款时间范围内");
     errcode.put("0406", "当日无交易明细");
+    errcode.put("0407", "非大理市民卡,不允许交易");
+    errcode.put("0408", "同一请求流水号不允许重复提交");
+    errcode.put("4444", "其他错误");
   }
 
 
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt
index b85342f..8b378e8 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/dali_datasync_service.kt
@@ -1,6 +1,7 @@
 package com.supwisdom.dlpay.api.service
 
 import com.supwisdom.dlpay.api.bean.DaliDatasyncDetail
+import com.supwisdom.dlpay.api.domain.TCard
 import org.springframework.transaction.annotation.Propagation
 import org.springframework.transaction.annotation.Transactional
 
@@ -9,4 +10,7 @@
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = arrayOf(Exception::class))
     fun doUpdateUserInfos(bean: DaliDatasyncDetail): Boolean
 
+    @Transactional(rollbackFor = arrayOf(Exception::class), readOnly = true)
+    fun getBankcardByUserid(userid: String): TCard?
+
 }
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt
index be69c42..d345330 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/service/impl/dali_datasync_service_impl.kt
@@ -130,5 +130,7 @@
     }
 
 
-
+    override fun getBankcardByUserid(userid: String): TCard? {
+        return cardDao.findCardByUseridAndCardtype(userid, ConstantUtil.CARDTYPE_BANKCARD)
+    }
 }
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/citizencard_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/citizencard_service.kt
index 7faf4d7..5da1116 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/citizencard_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/citizencard_service.kt
@@ -1,8 +1,18 @@
 package com.supwisdom.dlpay.citizencard.service
 
 import com.supwisdom.dlpay.api.bean.DlpayResp
+import com.supwisdom.dlpay.api.domain.TPerson
 
 interface CitizencardPayService {
-    fun bindCard(bankcardno: String, idtype: String, idno: String, phone: String): DlpayResp
+    fun bindCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String): DlpayResp
+
+    fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String): DlpayResp
+
+    fun cardPay(shopaccno: String, person: TPerson, amount: Int, refno: String): DlpayResp
+
+    fun cardPayRefund(refno: String, orignRefno: String, amount: Int): DlpayResp
+
+    fun queryResult(refno: String, orignRefno: String): DlpayResp
+
 
 }
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
index b29a084..5785262 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/citizencard/service/impl/citizencard_service_impl.kt
@@ -1,12 +1,303 @@
 package com.supwisdom.dlpay.citizencard.service.impl
 
+import com.google.gson.Gson
+import com.sun.jersey.api.client.Client
+import com.sun.jersey.api.client.ClientResponse
 import com.supwisdom.dlpay.api.bean.DlpayResp
+import com.supwisdom.dlpay.api.domain.TPerson
+import com.supwisdom.dlpay.api.service.DaliDatasyncService
+import com.supwisdom.dlpay.api.service.SourceTypeService
+import com.supwisdom.dlpay.api.types.IDTypes
 import com.supwisdom.dlpay.citizencard.service.CitizencardPayService
+import com.supwisdom.dlpay.framework.service.SystemUtilService
+import com.supwisdom.dlpay.framework.util.*
+import com.supwisdom.dlpay.util.YnrccUtil
+import mu.KotlinLogging
+import org.springframework.beans.factory.annotation.Autowired
+import javax.ws.rs.core.MediaType
 
 class CitizencardPayServiceImpl : CitizencardPayService {
+    @Autowired
+    lateinit var sourceTypeService: SourceTypeService
+    @Autowired
+    lateinit var systemUtilService: SystemUtilService
+    @Autowired
+    lateinit var daliDatasyncService: DaliDatasyncService
 
-    override fun bindCard(bankcardno: String, idtype: String, idno: String, phone: String): DlpayResp {
-        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+    private val logger = KotlinLogging.logger { }
+
+    private fun checkCitizencardConfig(config: Map<String, String?>, resp: DlpayResp): Boolean {
+        val agentUrl = config[YnrccUtil.YNRCC_ANGENT_URL]
+        val signKey = config[YnrccUtil.YNRCC_SIGNKEY]
+        if (agentUrl.isNullOrEmpty()) {
+            resp.code = YnrccUtil.PARAM_CONFIG_ERROR
+            resp.message = "系统参数未配置[农商行前置地址前缀]"
+            logger.error(resp.message)
+            return false
+        }
+        if (signKey.isNullOrEmpty()) {
+            resp.code = YnrccUtil.PARAM_CONFIG_ERROR
+            resp.message = "系统参数未配置[农商行前置签名秘钥]"
+            logger.error(resp.message)
+            return false
+        }
+        return true
     }
 
+    override fun bindCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String): DlpayResp {
+        var resp = DlpayResp()
+        val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+        if (!checkCitizencardConfig(config, resp)) {
+            return resp
+        }
+        val idType = IDTypes.findByValue(idtype)
+        if (idType < 0) {
+            resp.code = YnrccUtil.PARAM_VALUE_ERROR
+            resp.message = "证件类型未识别[$idtype]"
+            logger.error(resp.message)
+            return resp
+        }
+        val systime = systemUtilService.sysdatetime
+        val refno = systemUtilService.refno
+        val params = hashMapOf<String, String>()
+        params.plus(mapOf(
+                "transcode" to YnrccUtil.BANKCARD_BIND_TRANSCODE,
+                "transdate" to systime.hostdate,
+                "transtime" to systime.hosttime,
+                "refno" to refno,
+                "bankcardno" to bankcardno,
+                "username" to username,
+                "idtype" to idType,
+                "idno" to idno,
+                "phone" to phone,
+                "sign_type" to "MD5"
+        ))
+        val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+        params["sign"] = sign
+        val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/bindcard"
+        logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+        val client = Client.create()
+        client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+        val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse::class.java)
+        return if (200 == respClient.status) {
+            resp = respClient.getEntity(DlpayResp::class.java)
+            logger.error("refno=[$refno], url=[$url], return=[" + Gson().toJson(resp) + "]")
+            resp
+        } else {
+            resp.code = "99"
+            resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+            logger.error(resp.message)
+            resp
+        }
+    }
+
+    override fun signCard(bankcardno: String, username: String, idtype: String, idno: String, phone: String, transtype: String): DlpayResp {
+        var resp = DlpayResp()
+        val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+        if (!checkCitizencardConfig(config, resp)) {
+            return resp
+        }
+        val idType = IDTypes.findByValue(idtype)
+        if (idType < 0) {
+            resp.code = YnrccUtil.PARAM_VALUE_ERROR
+            resp.message = "证件类型未识别[$idtype]"
+            logger.error(resp.message)
+            return resp
+        }
+        if (YnrccUtil.TRANSTYPE_SIGNCARD != transtype && YnrccUtil.TRANSTYPE_UNSIGNCARD != transtype) {
+            resp.code = YnrccUtil.PARAM_VALUE_ERROR
+            resp.message = "签约类型错误[$transtype]"
+            logger.error(resp.message)
+            return resp
+        }
+
+        val systime = systemUtilService.sysdatetime
+        val refno = systemUtilService.refno
+        val params = hashMapOf<String, String>()
+        params.plus(mapOf(
+                "transcode" to YnrccUtil.BANKCARD_SIGN_TRANSCODE,
+                "transdate" to systime.hostdate,
+                "transtime" to systime.hosttime,
+                "refno" to refno,
+                "categorie" to YnrccUtil.DLPAY_CATEGORIE,
+                "transtype" to transtype,
+                "bankcardno" to bankcardno,
+                "username" to username,
+                "idtype" to idType,
+                "idno" to idno,
+                "phone" to phone,
+                "sign_type" to "MD5"
+        ))
+        val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+        params["sign"] = sign
+        val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/signcard"
+        logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+        val client = Client.create()
+        client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+        val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse::class.java)
+        return if (200 == respClient.status) {
+            resp = respClient.getEntity(DlpayResp::class.java)
+            logger.error("refno=[$refno], url=[$url], return=[" + Gson().toJson(resp) + "]")
+            resp
+        } else {
+            resp.code = "99"
+            resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+            logger.error(resp.message)
+            resp
+        }
+    }
+
+    override fun cardPay(shopaccno: String, person: TPerson, amount: Int, refno: String): DlpayResp {
+        var resp = DlpayResp()
+        val config = sourceTypeService.getConsumePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, shopaccno, false, false)
+        if (!checkCitizencardConfig(config, resp)) {
+            return resp
+        }
+        val merchantBankcardno = config[YnrccUtil.YNRCC_MERCHANT_BANKCARDNO]
+        val merchantBankaccname = config[YnrccUtil.YNRCC_MERCHANT_BANKACCNAME]
+        if (StringUtil.isEmpty(merchantBankcardno) || StringUtil.isEmpty(merchantBankaccname)) {
+            resp.code = YnrccUtil.PARAM_CONFIG_ERROR
+            resp.message = "系统参数未配置[商户收款银行账号]"
+            logger.error(resp.message)
+            return resp
+        }
+        val idType = IDTypes.findByValue(person.idtype)
+        if (idType < 0) {
+            resp.code = YnrccUtil.PARAM_VALUE_ERROR
+            resp.message = "证件类型未识别[${person.idtype}]"
+            logger.error(resp.message)
+            return resp
+        }
+        val userBankcard = daliDatasyncService.getBankcardByUserid(person.userid)
+        if (null == userBankcard) {
+            resp.code = "99"
+            resp.message = "用户[${person.userid}]未绑定银行卡"
+            logger.error(resp.message)
+            return resp
+        } else if (TradeDict.STATUS_NORMAL != userBankcard.status) {
+            resp.code = "99"
+            resp.message = "用户[${person.userid}]绑定银行卡状态异常"
+            logger.error(resp.message)
+            return resp
+        } else if (!userBankcard.signed) {
+            resp.code = "99"
+            resp.message = "用户[${person.userid}]绑定银行卡未签约"
+            logger.error(resp.message)
+            return resp
+        }
+        val bankcardno = userBankcard.cardno
+
+        val systime = systemUtilService.sysdatetime
+        val params = hashMapOf<String, String>()
+        params.plus(mapOf(
+                "transcode" to YnrccUtil.BANKCARD_PAY_TRANSCODE,
+                "transdate" to systime.hostdate,
+                "transtime" to systime.hosttime,
+                "refno" to refno,
+                "categorie" to YnrccUtil.DLPAY_CATEGORIE,
+                "bankcardno" to bankcardno,
+                "username" to person.name,
+                "idtype" to idType,
+                "idno" to person.idno,
+                "merchant_bankcardno" to merchantBankcardno,
+                "merchant_bankaccname" to merchantBankaccname,
+                "amount" to amount,
+                "description" to "市民卡代扣消费",
+                "sign_type" to "MD5"
+        ))
+        val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+        params["sign"] = sign
+        val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/cardpay"
+        logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+        val client = Client.create()
+        client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+        val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse::class.java)
+        return if (200 == respClient.status) {
+            resp = respClient.getEntity(DlpayResp::class.java)
+            logger.error("refno=[$refno], url=[$url], return=[" + Gson().toJson(resp) + "]")
+            resp
+        } else {
+            resp.code = "99"
+            resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+            logger.error(resp.message)
+            resp
+        }
+    }
+
+    override fun cardPayRefund(refno: String, orignRefno: String, amount: Int): DlpayResp {
+        var resp = DlpayResp()
+        val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+        if (!checkCitizencardConfig(config, resp)) {
+            return resp
+        }
+
+        val systime = systemUtilService.sysdatetime
+        val params = hashMapOf<String, String>()
+        params.plus(mapOf(
+                "transcode" to YnrccUtil.BANKCARD_PAYREFUND_TRANSCODE,
+                "transdate" to systime.hostdate,
+                "transtime" to systime.hosttime,
+                "refno" to refno,
+                "refund_refno" to orignRefno,
+                "amount" to amount,
+                "description" to "市民卡代扣消费退款",
+                "sign_type" to "MD5"
+        ))
+        val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+        params["sign"] = sign
+        val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/cardpayrefund"
+        logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+        val client = Client.create()
+        client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+        val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse::class.java)
+        return if (200 == respClient.status) {
+            resp = respClient.getEntity(DlpayResp::class.java)
+            logger.error("refno=[$refno], url=[$url], return=[" + Gson().toJson(resp) + "]")
+            resp
+        } else {
+            resp.code = "99"
+            resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+            logger.error(resp.message)
+            resp
+        }
+    }
+
+    override fun queryResult(refno: String, orignRefno: String): DlpayResp {
+        var resp = DlpayResp()
+        val config = sourceTypeService.getChargePaytypeConfig(TradeDict.PAYTYPE_CITIZEN_CARD, true)
+        if (!checkCitizencardConfig(config, resp)) {
+            return resp
+        }
+
+        val systime = systemUtilService.sysdatetime
+        val params = hashMapOf<String, String>()
+        params.plus(mapOf(
+                "transcode" to YnrccUtil.BANKCARD_PAYREFUND_TRANSCODE,
+                "transdate" to systime.hostdate,
+                "transtime" to systime.hosttime,
+                "refno" to refno,
+                "orign_refno" to orignRefno,
+                "sign_type" to "MD5"
+        ))
+        val sign = MD5.encodeByMD5(StringUtil.createLinkString(StringUtil.paraFilter(params)) + config[YnrccUtil.YNRCC_SIGNKEY]!!.trim())
+        params["sign"] = sign
+        val url = config[YnrccUtil.YNRCC_ANGENT_URL]!!.trim() + "/queryresult"
+        logger.error("url=[$url], params=[" + Gson().toJson(params) + "]")
+        val client = Client.create()
+        client.setConnectTimeout(YnrccUtil.AGENT_CONNECT_TIMEOUT * 1000)
+        val respClient = client.resource(url).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse::class.java)
+        return if (200 == respClient.status) {
+            resp = respClient.getEntity(DlpayResp::class.java)
+            logger.error("refno=[$refno], url=[$url], return=[" + Gson().toJson(resp) + "]")
+            resp
+        } else {
+            resp.code = "99"
+            resp.message = "请求前置返回失败[httpStatus=$respClient.status]"
+            logger.error(resp.message)
+            resp
+        }
+
+    }
+
+
 }
\ No newline at end of file
diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
index b201022..610e4fd 100644
--- a/payapi/src/main/resources/data.sql
+++ b/payapi/src/main/resources/data.sql
@@ -485,13 +485,11 @@
 INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid")
 VALUES ('13', 'citizenCard', 'ynrcc.agent.url', '农商行前置地址前缀', NULL, 't', '{tenantid}');
 INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid")
-VALUES ('14', 'citizenCard', 'ynrcc.agent.signtype', '农商行前置签名方式', 'MD5', 't', '{tenantid}');
-INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid")
 VALUES ('15', 'citizenCard', 'ynrcc.agent.signkey', '农商行前置签名秘钥', NULL, 't', '{tenantid}');
 INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid")
-VALUES ('16', 'citizenCard', 'bankcardno', '商户银行卡号', NULL, 'f', '{tenantid}');
+VALUES ('16', 'citizenCard', 'merchant.bankcardno', '商户银行卡号', NULL, 'f', '{tenantid}');
 INSERT INTO TB_SOURCETYPE_CONFIG (ID, SOURCETYPE,CONFIGID,CONFIG_NAME,CONFIG_VALUE,GLOBALFLAG, "tenantid")
-VALUES ('17', 'citizenCard', 'bankaccname', '银行开户名', NULL, 'f', '{tenantid}');
+VALUES ('17', 'citizenCard', 'merchant.bankaccname', '银行开户名', NULL, 'f', '{tenantid}');
 
 INSERT INTO "tb_syspara" ("paraid", "displayflag", "editflag", "lastsaved", "paraname", "paraunit", "paraval", "remark", "valuetype", "tenantid")
 VALUES (1, 'yes', 1, '20190514165658', '账户最大余额默认值', '元', '10001', '账户开户时的默认账户最大余额', 'amount', '{tenantid}');
diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
index d414447..5afd7d0 100644
--- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
+++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/controller/YnrccApiController.java
@@ -327,7 +327,7 @@
   }
 
   /**
-   * 查询消费结果
+   * 获取对账文件名
    */
   @PostMapping("/checkdtl")
   public DlpayResp checkDtl(@FormParam("transcode") String transcode, @FormParam("transdate") String transdate,