diff --git a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
index 399d728..4203948 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/system/controller/ShopController.java
@@ -1,10 +1,9 @@
 package com.supwisdom.dlpay.system.controller;
 
-import com.supwisdom.dlpay.api.annotation.ShopType;
 import com.supwisdom.dlpay.api.bean.JsonResult;
-import com.supwisdom.dlpay.api.domain.TSourceType;
 import com.supwisdom.dlpay.api.domain.TShopSourceType;
 import com.supwisdom.dlpay.api.domain.TShopSourceTypeConfig;
+import com.supwisdom.dlpay.api.domain.TSourceType;
 import com.supwisdom.dlpay.api.types.IDTypes;
 import com.supwisdom.dlpay.api.types.ShopTypes;
 import com.supwisdom.dlpay.framework.domain.*;
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 4a6009a..939f27a 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
@@ -24,6 +24,7 @@
 import org.springframework.web.bind.annotation.RequestMapping
 import org.springframework.web.bind.annotation.RestController
 import javax.validation.Valid
+import kotlin.math.roundToInt
 
 @RestController
 @RequestMapping("/api/deposit")
@@ -213,7 +214,7 @@
         response.apply {
             refno = transaction.refno
             summary = transaction.shopDtl.transdesc
-            depositAmount = Math.round(transaction.personDtl.amount * 100).toInt()
+            depositAmount = (transaction.personDtl.amount * 100).roundToInt()
             extraAmount = 0
         }
         return ResponseBodyBuilder.successEntity(response, "充值成功")
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
index baa1e34..59c4278 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/user_api_controller.kt
@@ -217,9 +217,9 @@
         }
         if (request.totalAmount != 0) {
             if (request.inOrOut == TradeDict.TRADE_FLAG_IN) {
+                builder.addDebitCreditRecord(capitalSubj.subjno, capitalSubj.subjno,
+                        user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT, request.totalAmount / 100.0, request.summary)
                 if (depositAmount != 0) {
-                    builder.addDebitCreditRecord(capitalSubj.subjno, capitalSubj.subjno,
-                            user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT, request.totalAmount / 100.0, request.summary)
                     transDesc.add("充值 %.2f 元".format(depositAmount / 100.0))
                 }
                 if (request.cost != 0) {
@@ -244,9 +244,9 @@
                     transDesc.add("收%s %.2f 元".format(subject.subjname, request.charge / 100.0))
                 }
             } else {
+                builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
+                        capitalSubj.subjno, capitalSubj.subjno, request.totalAmount / 100.0, request.summary)
                 if (depositAmount != 0) {
-                    builder.addDebitCreditRecord(user.accno, Subject.SUBJNO_PERSONAL_DEPOSIT,
-                            capitalSubj.subjno, capitalSubj.subjno, request.totalAmount / 100.0, request.summary)
                     transDesc.add("退余额 %.2f 元".format(depositAmount / 100.0))
                 }
                 if (request.cost != 0) {
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 9d737de..94f4cad 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
@@ -18,4 +18,8 @@
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true)
     fun getDepositCapital(capital: String): TDepositCapitalType
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = [Exception::class], readOnly = true)
+    fun findDepositCapitals(): List<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 f08607d..52feed2 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
@@ -43,4 +43,8 @@
     override fun getDepositCapital(capital: String): TDepositCapitalType {
         return depositCapitalTypeDao.findTDepositCapitalTypeByCodeAndTenantid(capital, TenantContext.getTenantSchema());
     }
+
+    override fun findDepositCapitals(): List<TDepositCapitalType> {
+        return depositCapitalTypeDao.findTDepositCapitalTypesByTenantid(TenantContext.getTenantSchema())
+    }
 }
\ No newline at end of file
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/system/controller/deposit_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/system/controller/deposit_controller.kt
new file mode 100644
index 0000000..a3f03fd
--- /dev/null
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/system/controller/deposit_controller.kt
@@ -0,0 +1,31 @@
+package com.supwisdom.dlpay.system.controller
+
+import com.supwisdom.dlpay.api.service.ChargeApiService
+import com.supwisdom.dlpay.system.service.DictionaryProxy
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Controller
+import org.springframework.ui.Model
+import org.springframework.web.bind.annotation.GetMapping
+
+@Controller("/shop/deposit")
+class MerchantDepositController() {
+
+    @Autowired
+    private lateinit var dictionaryProxy: DictionaryProxy
+
+    @Autowired
+    private lateinit var chargeApiService: ChargeApiService
+
+    @GetMapping("/index")
+    fun home(model: Model): String {
+        return "system/shop/deposit_capital"
+    }
+
+    @GetMapping("/capital")
+    fun getCapitalList(model: Model): String {
+        val capitals = chargeApiService.findDepositCapitals()
+        model.addAttribute("capitalList", capitals)
+        return "system/shop/deposit_capital"
+    }
+
+}
\ No newline at end of file
diff --git a/payapi/src/main/resources/templates/system/shop/deposit_capital.html b/payapi/src/main/resources/templates/system/shop/deposit_capital.html
new file mode 100644
index 0000000..78fdd0d
--- /dev/null
+++ b/payapi/src/main/resources/templates/system/shop/deposit_capital.html
@@ -0,0 +1,74 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">充值资金类型管理</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">商户中心</a>
+          <a><cite>充值资金类型管理</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-row">
+            <table class="layui-table" id="depositCapitalTable"
+                   lay-filter="depositCapitalTable-filter"></table>
+        </div>
+    </div>
+</div>
+
+
+<script>
+    layui.use(['form', 'table', 'layer', 'admin', 'element', 'tree'], function () {
+        // 渲染表格
+        table.render({
+            elem: '#depositCapitalTable',
+            url: '[[@{/shop/shopsourcetypelist}]]',
+            page: true,
+            width: 1010,
+            cols: [
+                [
+                    {
+                        field: 'shopaccno',
+                        title: '商户编码',
+                        width: 150,
+                        align: 'center',
+                        fixed: 'left',
+                        sort: true
+                    },
+                    {field: 'shopname', title: '商户名称', align: 'center', fixed: 'left', sort: true},
+                    {field: 'paydesc', title: '支付方式', align: 'center', sort: true},
+                    {
+                        field: 'consumeEnable',
+                        title: '允许消费',
+                        align: 'center',
+                        width: 110,
+                        templet: '#shop-consumeenable-tpl-state',
+                        sort: true
+                    },
+                    {
+                        field: 'anonymousEnable',
+                        title: '匿名消费',
+                        align: 'center',
+                        width: 110,
+                        templet: '#shop-anonymousenable-tpl-state',
+                        sort: true
+                    },
+                    {
+                        field: 'reverseEnable',
+                        title: '允许撤销',
+                        align: 'center',
+                        width: 110,
+                        templet: '#shop-reverseenable-tpl-state',
+                        sort: true
+                    },
+                    {
+                        align: 'center', title: '操作', width: 90, fixed: 'right', templet: function (item) {
+                            if (item.sourceType !== 'balance') {
+                                return '<a class="layui-btn layui-btn-xs" lay-event="config">配置</a>';
+                            }
+                            return '<span style="font-size: 12px;color: #D3D4D3;">无配置</span>';
+                        }
+                    }
+                ]
+            ]
+        });
+    });
+</script>
\ No newline at end of file
