Prechádzať zdrojové kódy

用户查询页面重构

xiongzhu 7 rokov pred
rodič
commit
a3fe0c000f

+ 8 - 0
src/main/webapp/_common.jsp

@@ -47,6 +47,14 @@
     .iframe-dialog .el-message-box__content .el-message-box__message > p {
         height: 100%;
     }
+
+    .query-filters {
+        vertical-align: middle;
+    }
+
+    .query-filters .el-input {
+        width: auto;
+    }
 </style>
 <link rel="stylesheet" href="${pageContext.request.contextPath}/css/element.css">
 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

+ 105 - 313
src/main/webapp/system/memberInfo.jsp

@@ -1,88 +1,68 @@
 <%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
 <%request.setCharacterEncoding("utf-8");%>
-<%@ page language="java" import="java.sql.*,java.util.Arrays" %>
-<%@ page language="java" import="java.util.*, util.*" %>
-<%@ page language="java" import="system.*" %>
-<%@ page language="java" import="util.*" %>
-<%@ page language="java" import="biz.*" %>
-<%@ page language="java" import="net.sf.json.JSONObject" %>
+<%@ page language="java" import="util.ExtendString" %>
+<%@ page import="org.jooq.impl.DSL" %>
+<%@ page import="dbconnection.DbConnection" %>
+<%@ page import="static jooq.Tables.MEMBERINFO" %>
+<%@ page import="java.util.List" %>
+<%@ page import="java.util.Arrays" %>
+<%@ page import="java.util.ArrayList" %>
+<%@ page import="jooq.tables.Memberinfo" %>
+<%@ page import="biz.thmodel" %>
 <%@ page import="org.apache.commons.lang.StringUtils" %>
+<%@ page import="system.DBRecordsPack" %>
+<%@ page import="net.sf.json.JSONObject" %>
+<%@ page import="org.jooq.*" %>
 <jsp:useBean id="db" class="dbconnection.DbConnection" scope="page"/>
 <%
-    String path = request.getContextPath();
-    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
-    String Sess_BrokerPK = ExtendString.getDBStr((String) session.getAttribute("BrokerPK"));
-    String userpk = ExtendString.getDBStr((String) session.getAttribute("userpk"));
-    String username = ExtendString.getDBStr((String) session.getAttribute("username"));
-    String MembType = ExtendString.getDBStr((String) session.getAttribute("MembType"));
-    String IsAdmin = ExtendString.getDBStr((String) session.getAttribute("IsAdmin"));
-    String sess_MemberPK = ExtendString.getDBStr((String) session.getAttribute("MemberPK"));
-
-    int items_per_page = 10;
-    javax.sql.rowset.CachedRowSet rs = null;
     String operator = ExtendString.getDBStr(request.getParameter("operator"));
-    String brokepk = ExtendString.getDBStr(request.getParameter("brokepk"));   //经纪人PK(BrokerInfor.pk)
-    String BMemberPK = ExtendString.getDBStr(request.getParameter("bmemberpk")); //经纪人memberpk
-    String sql;
-    int rownum = 0;
-    if (brokepk.equals("")) brokepk = "0";
-    if (BMemberPK.equals("")) BMemberPK = "0";
-    String invitor = request.getParameter("invitor");
-    if (invitor == null) {
-        invitor = "";
-    }
     out.clear();
+    DSLContext ctx = DSL.using(DbConnection.getPara("MySQLURL"));
     if (operator.equals("query")) {
+        response.setContentType("application/json");
         int PageIndex = Integer.parseInt(request.getParameter("PageIndex"));
         String keyword = ExtendString.getDBStr(request.getParameter("keyword"));
-        String BaseSQL = "select a.PK as memberpk, a.Tel, a.Pet, a.Phone, b.Name as DengJiName, c.Name as AreaName, a.ID as SFZID, " +
-                "       a.acc, a.SignDays,   " +
-                "       CAST(FORMAT(a.coin_A,2) as char) as coin_A, " +
-                "       CAST(FORMAT(a.coin_I,2) as char) as coin_I, " +
-                "       CAST(FORMAT(a.coin_OR,2) as char) as coin_OR, " +
-                "       CAST(FORMAT(a.coin_OV,2) as char) as coin_OV, " +
-                "       CAST(FORMAT(a.coin_OS,2) as char) as coin_OS, " +
-                "       CAST(FORMAT(a.coin_O,2) as char) as coin_O, " +
-                "       CAST(FORMAT(a.coin_OI,2) as char) as coin_OI, " +
-                "       DATE_FORMAT(a.LastSign,'%Y-%m-%d %H:%i:%s') as LastSign, " +
-                "       DATE_FORMAT(a.MDate,'%Y-%m-%d %H:%i:%s') as MDate, " +
-                "      (Select count(*) C From MemberInfo x where x.PK = a.IntroducerPK and X.MembType=" + thmodel.MEMTYPE_HuiYuan + " ) as C_HuiYuan, " +
-                "      (Select count(*) C From MemberInfo y where y.PK = a.IntroducerPK and y.MembType=" + thmodel.MEMTYPE_Model + " ) as C_Model " +
-                "from MemberInfo a Left Join (select PK, Name from datatypeinfo where typename='会员等级') b on a.MembClass = b.PK  " +
-                " 	   Left Join (select PK, Name from datatypeinfo where typename='地区') c on a.Area = c.PK  " +
-                "where a.MembType = " + thmodel.MEMTYPE_HuiYuan + "  ";
+        String invitor = ExtendString.getDBStr(request.getParameter("invitor"));
+
+        Memberinfo a = MEMBERINFO.as("a");
+        Memberinfo b = MEMBERINFO.as("b");
+        Memberinfo c = MEMBERINFO.as("c");
+        List<Field> fields = new ArrayList<>(Arrays.asList(a.fields()));
+        fields.add(ctx.selectCount().from(b).where(b.INTRODUCERPK.equal(a.PK)).and(b.MEMBTYPE.equal(Integer.valueOf(thmodel.MEMTYPE_HuiYuan))).asField("introMemberNum"));
+        fields.add(ctx.selectCount().from(c).where(c.INTRODUCERPK.equal(a.PK)).and(c.MEMBTYPE.equal(Integer.valueOf(thmodel.MEMTYPE_Model))).asField("introModelNum"));
+        SelectConditionStep<Record> select = ctx.select(fields.stream().toArray(Field[]::new)).from(a).where(a.MEMBTYPE.equal(Integer.valueOf(thmodel.MEMTYPE_HuiYuan)));
         if (StringUtils.isNotEmpty(invitor)) {
-            BaseSQL += " and a.introducerPK = " + invitor;
+            select.and(a.INTRODUCERPK.equal(Integer.valueOf(invitor)));
         }
-        if (keyword.length() > 0)
-            BaseSQL += String.format(" and (a.Tel like '%%%s%%' or a.Pet like '%%%s%%' or a.Phone like '%%%s%%') ",
-                    keyword, keyword, keyword);
-        BaseSQL = BaseSQL + " Order by a.MDate Desc ";
-        if (PageIndex == -1)
-            sql = BaseSQL + "  LIMIT 0, " + String.valueOf(items_per_page);
-        else
-            sql = BaseSQL + " LIMIT " + String.valueOf(items_per_page * PageIndex)
-                    + "," + String.valueOf(items_per_page);
-
-        List<JSONObject> jsonList = DBRecordsPack.Pack(db, sql);
-        if (PageIndex == -1) {
-            rs = db.executeQuery("Select Count(*) C from (" + BaseSQL + ") as t_cc ");
-            if ((rs != null) && rs.next()) {
-                JSONObject jsonObj = new JSONObject();
-                jsonObj.put("result", "CachedRowSet");
-                jsonObj.put("recordcount", rs.getInt(1));
-                jsonObj.put("pageindex", 0);
-                jsonList.add(jsonObj);
+        if (StringUtils.isNotEmpty(keyword)) {
+            select.and(a.TEL.containsIgnoreCase(keyword)).or(a.PET.containsIgnoreCase(keyword).or(a.PHONE.containsIgnoreCase(keyword)));
+        }
+        select.orderBy(a.ID.desc()).limit((PageIndex - 1) * 10, 10);
+        System.out.println(select.getSQL(true));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("data", DBRecordsPack.Pack(select.fetch()));
+        if (PageIndex == 1) {
+            SelectConditionStep<Record1<Integer>> selectTotal = ctx.selectCount().from(a).where(a.MEMBTYPE.equal(Integer.valueOf(thmodel.MEMTYPE_HuiYuan)));
+            if (StringUtils.isNotEmpty(invitor)) {
+                selectTotal.and(a.INTRODUCERPK.equal(Integer.valueOf(invitor)));
+            }
+            if (StringUtils.isNotEmpty(keyword)) {
+                selectTotal.and(a.TEL.containsIgnoreCase(keyword)).or(a.PET.containsIgnoreCase(keyword).or(a.PHONE.containsIgnoreCase(keyword)));
             }
+            jsonObject.put("total", selectTotal.fetchOne().value1());
         }
-        out.clear();
-        out.print(jsonList);
+        out.print(jsonObject);
+        ctx.close();
         return;
     } else if (operator.equals("delete")) {
+        response.setContentType("application/json");
         String memberpk = ExtendString.getDBStr(request.getParameter("memberpk"));
         String delSql = "delete from memberinfo where PK = " + memberpk;
-        db.executeUpdate(delSql);
-        out.print("success");
+        ctx.execute(delSql);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("success", true);
+        out.print(jsonObject);
+        ctx.close();
         return;
     }
 
@@ -91,258 +71,70 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-    <base href="<%=basePath %>"/>
-    <meta http-equiv="X-UA-Compatible" content="IE=emulateIE7"/>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
-    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/style.css"/>
-    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/WdatePicker.css"/>
-    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/skin_/table.css"/>
-    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/jquery.grid.css"/>
+    <base href="${pageContext.request.contextPath}"/>
     <title>会员查询</title>
+    <%@include file="/_common.jsp" %>
 </head>
 <body>
-<div id="container">
-    <div id="hd"></div>
-    <div id="bd">
-        <div id="main">
-            <div class="search-box ue-clear">
-                <div class="search-area">
-                    <div class="kv-item ue-clear">
-                        <label>关键字:</label>
-                        <span></span>
-                        <input type="text" name="keyword" style="width:200px" placeholder="关键字"/>
-                    </div>
-                </div>
-                <div class="search-button">
-                    <span></span>
-                    <input class="button" id="button" type="button" value="搜索一下" onClick="ButtonClick();"/>
-                </div>
-            </div>
-            <div class="table">
-                <div class="grid"></div>
-
-                <div class="pagination"></div>
-            </div>
-        </div>
+<div id="app">
+    <div class="query-filters">
+        <el-input v-model="keyword" placeholder="输入关键字" size="small" clearable></el-input>
+        <el-button @click="getData" type="primary" size="small">查询</el-button>
     </div>
+    <el-table :data="tableData">
+        <el-table-column prop="Pet" label="姓名"></el-table-column>
+        <el-table-column prop="Tel" label="账号"></el-table-column>
+        <el-table-column prop="count" label="邀请数量"></el-table-column>
+    </el-table>
+    <el-pagination
+            background
+            layout="prev, pager, next"
+            :total="total"
+            :page-size="10"
+            :current-page="page"
+            @current-change="currentChange">
+    </el-pagination>
 </div>
-
-</body>
-<script type="text/javascript" src="<%=basePath%>js/jquery.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/global.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/jquery.select.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/core.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/jquery.pagination.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/jquery.grid.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/WdatePicker.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/zDrag.js"></script>
-<script type="text/javascript" src="<%=basePath%>js/zDialog.js"></script>
-<script type="text/javascript">
-    $('select').select();
-    var head = [
-        {
-            label: '帐号',
-            width: 80,
-            name: 'Tel'
-        },
-        {
-            label: '昵称',
-            width: 90
-        },
-        {
-            label: '电话',
-            width: 90
-        },
-        {
-            label: '会员等级',
-            width: 110
-        },
-        {
-            label: '地区',
-            width: 110
-        },
-        {
-            label: '身份证号',
-            width: 110
-        },
-        {
-            label: '积分',
-            width: 50
-        },
-        {
-            label: '最后一次签到',
-            width: 50
-        },
-        {
-            label: '连续签到天数',
-            width: 80
-        },
-        {
-            label: '账户总币额(虚拟贝)',
-            width: 80
-        },
-        {
-            label: '冲值币额',
-            width: 80
-        },
-        {
-            label: '红包支付币额',
-            width: 80
-        },
-        {
-            label: '聊天支付币额',
-            width: 80
-        },
-        {
-            label: '订单支付币额',
-            width: 80
-        },
-        {
-            label: '提现支出币额',
-            width: 80
-        },
-        {
-            label: '预支币额',
-            width: 80
-        },
-        {
-            label: '推荐用户数',
-            width: 80
-        },
-        {
-            label: '推荐模特数',
-            width: 80
+<script>
+    new Vue({
+        el: '#app',
+        data: function () {
+            return {
+                page: 1,
+                invitor: '${param["invitor"]}',
+                keyword: '',
+                tableData: [],
+                total: 0
+            }
         },
-        {
-            label: '注册日期',
-            width: 150,
-            name: 'MDate'
-        }
-    ];
-
-    function SetRowsetInfo(rowCount, CurPage) {
-        $('.pagination').pagination(rowCount, {
-            items_per_page: <%=items_per_page %>,
-            current_page: CurPage,
-            callback: function (page) {
-                DoQuery(page);
-            },
-            display_msg: false
-        });
-    }
-
-    var tbody = new Array();
-
-    //superPK 
-    function DoQuery(PageIndex) {
-        $('.grid').Grid('addLoading');
-        keyword = document.all.keyword.value;
-        $.post("<%=basePath%>system/memberInfo.jsp",
-            {
-                operator: "query",
-                keyword: keyword,
-                PageIndex: PageIndex,
-                invitor: '<%=invitor%>'
-            },
-            function (data, status) {
-                var obj = eval('(' + data + ')');
-                if ((obj.length == 0) || (obj[0].result != "success")) {
-                    $('.grid').Grid('setData', null, head);
-                    SetRowsetInfo(1, 0);
-                }
-                else {
-                    tbody.length = 0;
-                    for (var row = 0; row < obj.length; row++) {
-                        if (obj[row].result == "success") {
-                            var fields = [];
-                            fields[0] = obj[row].tel;
-                            fields[1] = obj[row].pet;
-                            fields[2] = obj[row].phone;
-                            fields[3] = obj[row].dengjiname;
-                            fields[4] = obj[row].areaname;
-                            fields[5] = obj[row].sfzid;
-                            fields[6] = obj[row].acc;
-                            fields[7] = obj[row].lastsign;
-                            fields[8] = obj[row].signdays;
-                            fields[9] = obj[row].coin_a;
-                            fields[10] = obj[row].coin_i;
-                            fields[11] = obj[row].coin_or;
-                            fields[12] = obj[row].coin_ov;
-                            fields[13] = obj[row].coin_os;
-                            fields[14] = obj[row].coin_o;
-                            fields[15] = obj[row].coin_oi;
-                            fields[16] = obj[row].c_huiyuan;
-                            fields[17] = obj[row].c_model;
-                            fields[18] = obj[row].mdate;
-                            fields[19] = [
-                                {
-                                    label: '邀请列表',
-                                    memberpk: obj[row].memberpk,
-                                    onclick: function () {
-                                        var dialog = new zDialog();
-                                        dialog.Top = 20;
-                                        dialog.Width = '90%';
-                                        dialog.Height = '90%';
-                                        dialog.Title = "邀请列表";
-                                        dialog.URL = "<%=basePath%>system/memberInfo.jsp?invitor=" + this.memberpk;
-                                        dialog.OnClose = function (zWindow) {
-                                            if (zWindow.result == 1)
-                                                DoQuery("", -1);
-                                        };
-                                        dialog.show();
-                                    }
-                                },
-                                {
-                                    label: '删除',
-                                    memberpk: obj[row].memberpk,
-                                    onclick: function () {
-                                        if (confirm("确认删除?")) {
-                                            $.post("<%=basePath%>system/memberInfo.jsp", {
-                                                operator: "delete",
-                                                memberpk: this.memberpk
-                                            }, function (data) {
-                                                console.log(data)
-                                                DoQuery(-1);
-                                            });
-                                        }
-                                    }
-                                }
-                            ];
-                            tbody[row] = fields;
+        created: function () {
+            this.getData()
+        },
+        methods: {
+            getData: function () {
+                $.post({
+                    url: '${pageContext.request.contextPath}${pageContext.request.servletPath}',
+                    data: {
+                        operator: 'query',
+                        PageIndex: this.page,
+                        invitor: this.invitor,
+                        keyword: this.keyword
+                    },
+                    success: function (res) {
+                        if (this.page === 1) {
+                            this.total = res.total || 0;
                         }
-                        else if (obj[row].result == "CachedRowSet") {
-                            SetRowsetInfo(obj[row].recordcount, obj[row].pageindex);
-                        }
-                    }
-                    $('.grid').Grid('setData', tbody, head);
-                }
-            });
-    }
-
-    function ButtonClick() {
-        DoQuery(-1);
-    }
-
-    H = Math.max(290, window.screen.availHeight - 500);
-    $('.grid').Grid({
-        thead: head,
-        tbody: null,
-        height: H,
-        operator: {
-            type: "normal",
-            width: 140
-        }
-    });
-
-    $('.grid').Grid('addLoading');
-    $('.grid').Grid('setData', null, head);
-
-    $(function () {
-        $("#button").css("height", 28);
-        DoQuery(-1);
-    });
-
-
+                        this.tableData = res.data;
+                    }.bind(this)
+                })
+            },
+            currentChange: function (page) {
+                this.page = page;
+                this.getData();
+            }
+        },
+        watch: {}
+    })
 </script>
-
+</body>
 </html>

+ 348 - 0
src/main/webapp/system/memberInfo_.jsp

@@ -0,0 +1,348 @@
+<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
+<%request.setCharacterEncoding("utf-8");%>
+<%@ page language="java" import="java.sql.*,java.util.Arrays" %>
+<%@ page language="java" import="java.util.*, util.*" %>
+<%@ page language="java" import="system.*" %>
+<%@ page language="java" import="util.*" %>
+<%@ page language="java" import="biz.*" %>
+<%@ page language="java" import="net.sf.json.JSONObject" %>
+<%@ page import="org.apache.commons.lang.StringUtils" %>
+<jsp:useBean id="db" class="dbconnection.DbConnection" scope="page"/>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
+    String Sess_BrokerPK = ExtendString.getDBStr((String) session.getAttribute("BrokerPK"));
+    String userpk = ExtendString.getDBStr((String) session.getAttribute("userpk"));
+    String username = ExtendString.getDBStr((String) session.getAttribute("username"));
+    String MembType = ExtendString.getDBStr((String) session.getAttribute("MembType"));
+    String IsAdmin = ExtendString.getDBStr((String) session.getAttribute("IsAdmin"));
+    String sess_MemberPK = ExtendString.getDBStr((String) session.getAttribute("MemberPK"));
+
+    int items_per_page = 10;
+    javax.sql.rowset.CachedRowSet rs = null;
+    String operator = ExtendString.getDBStr(request.getParameter("operator"));
+    String brokepk = ExtendString.getDBStr(request.getParameter("brokepk"));   //经纪人PK(BrokerInfor.pk)
+    String BMemberPK = ExtendString.getDBStr(request.getParameter("bmemberpk")); //经纪人memberpk
+    String sql;
+    int rownum = 0;
+    if (brokepk.equals("")) brokepk = "0";
+    if (BMemberPK.equals("")) BMemberPK = "0";
+    String invitor = request.getParameter("invitor");
+    if (invitor == null) {
+        invitor = "";
+    }
+    out.clear();
+    if (operator.equals("query")) {
+        int PageIndex = Integer.parseInt(request.getParameter("PageIndex"));
+        String keyword = ExtendString.getDBStr(request.getParameter("keyword"));
+        String BaseSQL = "select a.PK as memberpk, a.Tel, a.Pet, a.Phone, b.Name as DengJiName, c.Name as AreaName, a.ID as SFZID, " +
+                "       a.acc, a.SignDays,   " +
+                "       CAST(FORMAT(a.coin_A,2) as char) as coin_A, " +
+                "       CAST(FORMAT(a.coin_I,2) as char) as coin_I, " +
+                "       CAST(FORMAT(a.coin_OR,2) as char) as coin_OR, " +
+                "       CAST(FORMAT(a.coin_OV,2) as char) as coin_OV, " +
+                "       CAST(FORMAT(a.coin_OS,2) as char) as coin_OS, " +
+                "       CAST(FORMAT(a.coin_O,2) as char) as coin_O, " +
+                "       CAST(FORMAT(a.coin_OI,2) as char) as coin_OI, " +
+                "       DATE_FORMAT(a.LastSign,'%Y-%m-%d %H:%i:%s') as LastSign, " +
+                "       DATE_FORMAT(a.MDate,'%Y-%m-%d %H:%i:%s') as MDate, " +
+                "      (Select count(*) C From MemberInfo x where x.PK = a.IntroducerPK and X.MembType=" + thmodel.MEMTYPE_HuiYuan + " ) as C_HuiYuan, " +
+                "      (Select count(*) C From MemberInfo y where y.PK = a.IntroducerPK and y.MembType=" + thmodel.MEMTYPE_Model + " ) as C_Model " +
+                "from MemberInfo a Left Join (select PK, Name from datatypeinfo where typename='会员等级') b on a.MembClass = b.PK  " +
+                " 	   Left Join (select PK, Name from datatypeinfo where typename='地区') c on a.Area = c.PK  " +
+                "where a.MembType = " + thmodel.MEMTYPE_HuiYuan + "  ";
+        if (StringUtils.isNotEmpty(invitor)) {
+            BaseSQL += " and a.introducerPK = " + invitor;
+        }
+        if (keyword.length() > 0)
+            BaseSQL += String.format(" and (a.Tel like '%%%s%%' or a.Pet like '%%%s%%' or a.Phone like '%%%s%%') ",
+                    keyword, keyword, keyword);
+        BaseSQL = BaseSQL + " Order by a.MDate Desc ";
+        if (PageIndex == -1)
+            sql = BaseSQL + "  LIMIT 0, " + String.valueOf(items_per_page);
+        else
+            sql = BaseSQL + " LIMIT " + String.valueOf(items_per_page * PageIndex)
+                    + "," + String.valueOf(items_per_page);
+
+        List<JSONObject> jsonList = DBRecordsPack.Pack(db, sql);
+        if (PageIndex == -1) {
+            rs = db.executeQuery("Select Count(*) C from (" + BaseSQL + ") as t_cc ");
+            if ((rs != null) && rs.next()) {
+                JSONObject jsonObj = new JSONObject();
+                jsonObj.put("result", "CachedRowSet");
+                jsonObj.put("recordcount", rs.getInt(1));
+                jsonObj.put("pageindex", 0);
+                jsonList.add(jsonObj);
+            }
+        }
+        out.clear();
+        out.print(jsonList);
+        return;
+    } else if (operator.equals("delete")) {
+        String memberpk = ExtendString.getDBStr(request.getParameter("memberpk"));
+        String delSql = "delete from memberinfo where PK = " + memberpk;
+        db.executeUpdate(delSql);
+        out.print("success");
+        return;
+    }
+
+%>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <base href="<%=basePath %>"/>
+    <meta http-equiv="X-UA-Compatible" content="IE=emulateIE7"/>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/style.css"/>
+    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/WdatePicker.css"/>
+    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/skin_/table.css"/>
+    <link rel="stylesheet" type="text/css" href="<%=basePath%>css/jquery.grid.css"/>
+    <title>会员查询</title>
+</head>
+<body>
+<div id="container">
+    <div id="hd"></div>
+    <div id="bd">
+        <div id="main">
+            <div class="search-box ue-clear">
+                <div class="search-area">
+                    <div class="kv-item ue-clear">
+                        <label>关键字:</label>
+                        <span></span>
+                        <input type="text" name="keyword" style="width:200px" placeholder="关键字"/>
+                    </div>
+                </div>
+                <div class="search-button">
+                    <span></span>
+                    <input class="button" id="button" type="button" value="搜索一下" onClick="ButtonClick();"/>
+                </div>
+            </div>
+            <div class="table">
+                <div class="grid"></div>
+
+                <div class="pagination"></div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</body>
+<script type="text/javascript" src="<%=basePath%>js/jquery.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/global.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/jquery.select.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/core.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/jquery.pagination.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/jquery.grid.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/WdatePicker.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/zDrag.js"></script>
+<script type="text/javascript" src="<%=basePath%>js/zDialog.js"></script>
+<script type="text/javascript">
+    $('select').select();
+    var head = [
+        {
+            label: '帐号',
+            width: 80,
+            name: 'Tel'
+        },
+        {
+            label: '昵称',
+            width: 90
+        },
+        {
+            label: '电话',
+            width: 90
+        },
+        {
+            label: '会员等级',
+            width: 110
+        },
+        {
+            label: '地区',
+            width: 110
+        },
+        {
+            label: '身份证号',
+            width: 110
+        },
+        {
+            label: '积分',
+            width: 50
+        },
+        {
+            label: '最后一次签到',
+            width: 50
+        },
+        {
+            label: '连续签到天数',
+            width: 80
+        },
+        {
+            label: '账户总币额(虚拟贝)',
+            width: 80
+        },
+        {
+            label: '冲值币额',
+            width: 80
+        },
+        {
+            label: '红包支付币额',
+            width: 80
+        },
+        {
+            label: '聊天支付币额',
+            width: 80
+        },
+        {
+            label: '订单支付币额',
+            width: 80
+        },
+        {
+            label: '提现支出币额',
+            width: 80
+        },
+        {
+            label: '预支币额',
+            width: 80
+        },
+        {
+            label: '推荐用户数',
+            width: 80
+        },
+        {
+            label: '推荐模特数',
+            width: 80
+        },
+        {
+            label: '注册日期',
+            width: 150,
+            name: 'MDate'
+        }
+    ];
+
+    function SetRowsetInfo(rowCount, CurPage) {
+        $('.pagination').pagination(rowCount, {
+            items_per_page: <%=items_per_page %>,
+            current_page: CurPage,
+            callback: function (page) {
+                DoQuery(page);
+            },
+            display_msg: false
+        });
+    }
+
+    var tbody = new Array();
+
+    //superPK 
+    function DoQuery(PageIndex) {
+        $('.grid').Grid('addLoading');
+        keyword = document.all.keyword.value;
+        $.post("<%=basePath%>system/memberInfo.jsp",
+            {
+                operator: "query",
+                keyword: keyword,
+                PageIndex: PageIndex,
+                invitor: '<%=invitor%>'
+            },
+            function (data, status) {
+                var obj = eval('(' + data + ')');
+                if ((obj.length == 0) || (obj[0].result != "success")) {
+                    $('.grid').Grid('setData', null, head);
+                    SetRowsetInfo(1, 0);
+                }
+                else {
+                    tbody.length = 0;
+                    for (var row = 0; row < obj.length; row++) {
+                        if (obj[row].result == "success") {
+                            var fields = [];
+                            fields[0] = obj[row].tel;
+                            fields[1] = obj[row].pet;
+                            fields[2] = obj[row].phone;
+                            fields[3] = obj[row].dengjiname;
+                            fields[4] = obj[row].areaname;
+                            fields[5] = obj[row].sfzid;
+                            fields[6] = obj[row].acc;
+                            fields[7] = obj[row].lastsign;
+                            fields[8] = obj[row].signdays;
+                            fields[9] = obj[row].coin_a;
+                            fields[10] = obj[row].coin_i;
+                            fields[11] = obj[row].coin_or;
+                            fields[12] = obj[row].coin_ov;
+                            fields[13] = obj[row].coin_os;
+                            fields[14] = obj[row].coin_o;
+                            fields[15] = obj[row].coin_oi;
+                            fields[16] = obj[row].c_huiyuan;
+                            fields[17] = obj[row].c_model;
+                            fields[18] = obj[row].mdate;
+                            fields[19] = [
+                                {
+                                    label: '邀请列表',
+                                    memberpk: obj[row].memberpk,
+                                    onclick: function () {
+                                        var dialog = new zDialog();
+                                        dialog.Top = 20;
+                                        dialog.Width = '90%';
+                                        dialog.Height = '90%';
+                                        dialog.Title = "邀请列表";
+                                        dialog.URL = "<%=basePath%>system/memberInfo.jsp?invitor=" + this.memberpk;
+                                        dialog.OnClose = function (zWindow) {
+                                            if (zWindow.result == 1)
+                                                DoQuery("", -1);
+                                        };
+                                        dialog.show();
+                                    }
+                                },
+                                {
+                                    label: '删除',
+                                    memberpk: obj[row].memberpk,
+                                    onclick: function () {
+                                        if (confirm("确认删除?")) {
+                                            $.post("<%=basePath%>system/memberInfo.jsp", {
+                                                operator: "delete",
+                                                memberpk: this.memberpk
+                                            }, function (data) {
+                                                console.log(data)
+                                                DoQuery(-1);
+                                            });
+                                        }
+                                    }
+                                }
+                            ];
+                            tbody[row] = fields;
+                        }
+                        else if (obj[row].result == "CachedRowSet") {
+                            SetRowsetInfo(obj[row].recordcount, obj[row].pageindex);
+                        }
+                    }
+                    $('.grid').Grid('setData', tbody, head);
+                }
+            });
+    }
+
+    function ButtonClick() {
+        DoQuery(-1);
+    }
+
+    H = Math.max(290, window.screen.availHeight - 500);
+    $('.grid').Grid({
+        thead: head,
+        tbody: null,
+        height: H,
+        operator: {
+            type: "normal",
+            width: 140
+        }
+    });
+
+    $('.grid').Grid('addLoading');
+    $('.grid').Grid('setData', null, head);
+
+    $(function () {
+        $("#button").css("height", 28);
+        DoQuery(-1);
+    });
+
+
+</script>
+
+</html>