子系统对账接口和市民卡页面查询功能
diff --git a/payapi/src/main/resources/templates/system/user/card.html b/payapi/src/main/resources/templates/system/user/card.html
new file mode 100644
index 0000000..138d2b9
--- /dev/null
+++ b/payapi/src/main/resources/templates/system/user/card.html
@@ -0,0 +1,163 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">市民卡查询</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#!_user_index">用户中心</a>
+          <a><cite>市民卡查询</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form" lay-filter="citizencard-search-form">
+            <div class="layui-form-item" style="margin-bottom: 0;">
+                <div class="layui-inline" style="margin-right: 20px;">
+                    <label class="layui-form-label">市民卡号</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="cardno" id="citizencard-search-cardno" placeholder="市民卡号" maxlength="10"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+                <div class="layui-inline" style="margin-right: 20px;">
+                    <label class="layui-form-label">物理卡号</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="cardphyid" id="citizencard-search-cardphyid" placeholder="物理卡号" maxlength="8"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+                <div class="layui-inline" style="margin-right: 20px;">
+                    <label class="layui-form-label">银行卡号</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="bankcardno" id="citizencard-search-bankcardno" placeholder="银行卡号" maxlength="19"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+                <div class="layui-inline" style="margin-right: 20px;margin-top: 10px;">
+                    <label class="layui-form-label">姓名</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="username" id="citizencard-search-username" placeholder="姓名" maxlength="20"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+                <div class="layui-inline" style="margin-right: 20px;margin-top: 10px;">
+                    <label class="layui-form-label">证件号</label>
+                    <div class="layui-input-block" style="width: 265px;">
+                        <input type="text" name="idno" id="citizencard-search-idno" placeholder="证件号" maxlength="18"
+                               autocomplete="off" class="layui-input"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+    <div class="layui-card-body">
+        <table class="layui-table" id="citizencardSearchTable" lay-filter="citizencardSearchTable-filter"></table>
+    </div>
+</div>
+
+<script type="text/html" id="citizencard-table-toolbar">
+    <div class="layui-btn-container">
+        <button class="layui-btn layui-btn-sm" id="btn-citizencard-search-ok" lay-event="search"><i
+                class="layui-icon">&#xe615;</i>搜 索</button>
+        <button class="layui-btn layui-btn-sm" id="btn-citizencard-search-clear" lay-event="clear"><i
+                class="layui-icon"></i>清 空</button>
+    </div>
+</script>
+
+<script>
+    layui.use(['form', 'table', 'layer', 'admin'], function () {
+        var form = layui.form;
+        var table = layui.table;
+        var admin = layui.admin;
+
+        table.render({
+            id: 'citizencardSearchTable',
+            title: '市民卡信息查询',
+            elem: '#citizencardSearchTable',
+            url: '[[@{/user/cardlist}]]',
+            page: true,
+            toolbar: '#citizencard-table-toolbar',
+            cols: [
+                [
+                    {field:'cardno',title:'市民卡号', align: 'center', width: 120, fixed: 'left', sort: true},
+                    {field:'cardphyid',title:'物理卡号', align: 'center', width: 120, fixed: 'left'},
+                    {
+                        field: 'expiredate', title: '有效期', align: 'center', width: 120, templet: function (d) {
+                            return dateFormat('' + d.expiredate);
+                        }
+                    },
+                    {
+                        field: 'status', title: '状态', align: 'center', width: 80, sort: true, templet: function (d) {
+                            if (d.status == 'closed') {
+                                return '<span class="layui-badge layui-bg-gray">注销</span>';
+                            } else if (d.status == 'normal') {
+                                return '<span class="layui-badge layui-bg-green">正常</span>';
+                            } else if (d.status == 'unuse') {
+                                return '<span class="layui-badge layui-bg-blue">未启用</span>';
+                            } else if (d.status == 'abnormal') {
+                                return '<span class="layui-badge">异常</span>';
+                            } else if (d.status == 'lost') {
+                                return '<span class="layui-badge">挂失</span>';
+                            } else if (d.status == 'locked') {
+                                return '<span class="layui-badge">锁定</span>';
+                            } else if (d.status == 'frozen') {
+                                return '<span class="layui-badge">冻结</span>';
+                            } else {
+                                return d.status;
+                            }
+                        }
+                    },
+                    {field: 'bankcardno', title: '银行卡号', align: 'center', width: 200, sort: true},
+                    {
+                        field: 'signed', title: '是否签约', align: 'center', width: 110, sort: true, templet: function (d) {
+                            if (d.signed) {
+                                return '<span class="layui-badge layui-bg-green">已签约</span>';
+                            } else {
+                                return '<span class="layui-badge layui-bg-gray">未签约</span>';
+                            }
+                        }
+                    },
+                    {field: 'username', title: '用户名', align: 'center', width: 120},
+                    {
+                        field: 'idtype', title: '证件类型', align: 'center', width: 100, templet: function (d) {
+                            return getTempDictValue('idtypeList', d.idtype);
+                        }
+                    },
+                    {field: 'idno', title: '证件号', align: 'center', width: 180},
+                    {field: 'mobile', title: '手机号', align: 'center', width: 120},
+                    {field: 'email', title: '电子邮箱', align: 'center', width: 200},
+                    {
+                        field: 'lastsaved',
+                        title: '更新时间',
+                        align: 'center',
+                        width: 200,
+                        sort: true,
+                        templet: function (d) {
+                            return admin.formatDate(d.lastsaved);
+                        }
+                    }
+                ]
+            ]
+        });
+
+        table.on('toolbar(citizencardSearchTable-filter)', function (obj) {
+            switch (obj.event) {
+                case 'search':
+                    table.reload('citizencardSearchTable', {
+                        where: {
+                            cardno: $("#citizencard-search-cardno").val(),
+                            cardphyid: $("#citizencard-search-cardphyid").val(),
+                            bankcardno: $("#citizencard-search-bankcardno").val(),
+                            username: $("#citizencard-search-username").val(),
+                            idno: $("#citizencard-search-idno").val()
+                        }, page: {curr: 1}
+                    });
+                    break;
+                case 'clear':
+                    $("#citizencard-search-cardno").val("");
+                    $("#citizencard-search-cardphyid").val("");
+                    $("#citizencard-search-bankcardno").val("");
+                    $("#citizencard-search-username").val("");
+                    $("#citizencard-search-idno").val("");
+                    break;
+            }
+        });
+    });
+</script>
diff --git a/payapi/src/main/resources/templates/system/user/index.html b/payapi/src/main/resources/templates/system/user/index.html
index 5507955..a1d07a8 100644
--- a/payapi/src/main/resources/templates/system/user/index.html
+++ b/payapi/src/main/resources/templates/system/user/index.html
@@ -56,7 +56,7 @@
                             return getTempDictValue('idtypeList', item.idtype);
                         }
                     },
-                    {field: 'idno', title: '证件号', width: 120, align: 'center', sort: true},
+                    {field: 'idno', title: '证件号', width: 180, align: 'center', sort: true},
                     {field: 'email', title: '邮箱', width: 100, align: 'center',  sort: true},
                     {field: 'mobile', title: '手机', width: 120, align: 'center', sort: true},
                     {field: 'tel', title: '电话', align: 'center'},