xiongzhu 7 yıl önce
ebeveyn
işleme
8ce9b10daf

+ 33 - 33
src/main/java/dbconnection/dbtool.java

@@ -1,33 +1,33 @@
-package dbconnection;
-
-
-import dbconnection.DbConnection;
-
-import java.sql.*;
-
-//将数据集打包为json格式,供前台使用
-
-public class dbtool {
-	public static String LastError="";
-	
-	//获得某个数据表的NewPK
-	public static String getNewPK( DbConnection db, String TableName)
-	{
-		String tmpresult = "";
-		LastError = "";
-		try
-		{
-			javax.sql.rowset.CachedRowSet rs =  db.executeQuery( "Select Max(PK) maxPK From "+TableName );
-			if (rs==null) return tmpresult;
-			if (rs.next()) tmpresult = String.valueOf( rs.getInt("maxPK")+1 );
-			else tmpresult = "1";
-			if (rs!=null) rs.close();
-		} catch (SQLException e) {
-			LastError = e.getMessage();
-			e.printStackTrace();
-		}
-		return tmpresult;
-	}
-	
-}
-
+package dbconnection;
+
+
+import dbconnection.DbConnection;
+
+import java.sql.*;
+
+//将数据集打包为json格式,供前台使用
+
+public class dbtool {
+	public static String LastError="";
+	
+	//获得某个数据表的NewPK
+	public static String getNewPK( DbConnection db, String TableName)
+	{
+		String tmpresult = "";
+		LastError = "";
+		try
+		{
+			javax.sql.rowset.CachedRowSet rs =  db.executeQuery( "Select Max(PK) maxPK From "+TableName );
+			if (rs==null) return tmpresult;
+			if (rs.next()) tmpresult = String.valueOf( rs.getInt("maxPK")+1 );
+			else tmpresult = "1";
+			if (rs!=null) rs.close();
+		} catch (SQLException e) {
+			LastError = e.getMessage();
+			e.printStackTrace();
+		}
+		return tmpresult;
+	}
+	
+}
+

+ 2 - 0
src/main/java/jooq/Keys.java

@@ -127,6 +127,7 @@ public class Keys {
     public static final Identity<ParttysignRecord, Integer> IDENTITY_PARTTYSIGN = Identities0.IDENTITY_PARTTYSIGN;
     public static final Identity<RedpacketRecord, Integer> IDENTITY_REDPACKET = Identities0.IDENTITY_REDPACKET;
     public static final Identity<ReportinfoRecord, Integer> IDENTITY_REPORTINFO = Identities0.IDENTITY_REPORTINFO;
+    public static final Identity<SharerecordRecord, Integer> IDENTITY_SHARERECORD = Identities0.IDENTITY_SHARERECORD;
     public static final Identity<VideorecordRecord, Integer> IDENTITY_VIDEORECORD = Identities0.IDENTITY_VIDEORECORD;
 
     // -------------------------------------------------------------------------
@@ -209,6 +210,7 @@ public class Keys {
         public static Identity<ParttysignRecord, Integer> IDENTITY_PARTTYSIGN = Internal.createIdentity(Parttysign.PARTTYSIGN, Parttysign.PARTTYSIGN.PK);
         public static Identity<RedpacketRecord, Integer> IDENTITY_REDPACKET = Internal.createIdentity(Redpacket.REDPACKET, Redpacket.REDPACKET.PK);
         public static Identity<ReportinfoRecord, Integer> IDENTITY_REPORTINFO = Internal.createIdentity(Reportinfo.REPORTINFO, Reportinfo.REPORTINFO.PK);
+        public static Identity<SharerecordRecord, Integer> IDENTITY_SHARERECORD = Internal.createIdentity(Sharerecord.SHARERECORD, Sharerecord.SHARERECORD.ID);
         public static Identity<VideorecordRecord, Integer> IDENTITY_VIDEORECORD = Internal.createIdentity(Videorecord.VIDEORECORD, Videorecord.VIDEORECORD.PK);
     }
 

+ 2 - 2
src/main/java/jooq/tables/Cashrecord.java

@@ -43,7 +43,7 @@ import org.jooq.impl.TableImpl;
 @SuppressWarnings({ "all", "unchecked", "rawtypes" })
 public class Cashrecord extends TableImpl<CashrecordRecord> {
 
-    private static final long serialVersionUID = 1869432501;
+    private static final long serialVersionUID = 1294945786;
 
     /**
      * The reference instance of <code>thmodeltest.cashrecord</code>
@@ -116,7 +116,7 @@ public class Cashrecord extends TableImpl<CashrecordRecord> {
     /**
      * The column <code>thmodeltest.cashrecord.AccountingDate</code>.
      */
-    public final TableField<CashrecordRecord, Timestamp> ACCOUNTINGDATE = createField("AccountingDate", org.jooq.impl.SQLDataType.TIMESTAMP, this, "");
+    public final TableField<CashrecordRecord, Timestamp> ACCOUNTINGDATE = createField("AccountingDate", org.jooq.impl.SQLDataType.TIMESTAMP.defaultValue(DSL.field("CURRENT_TIMESTAMP", org.jooq.impl.SQLDataType.TIMESTAMP)), this, "");
 
     /**
      * The column <code>thmodeltest.cashrecord.AccFlag</code>.

+ 11 - 2
src/main/java/jooq/tables/Sharerecord.java

@@ -16,6 +16,7 @@ import jooq.tables.records.SharerecordRecord;
 
 import org.jooq.Field;
 import org.jooq.ForeignKey;
+import org.jooq.Identity;
 import org.jooq.Index;
 import org.jooq.Name;
 import org.jooq.Record;
@@ -40,7 +41,7 @@ import org.jooq.impl.TableImpl;
 @SuppressWarnings({ "all", "unchecked", "rawtypes" })
 public class Sharerecord extends TableImpl<SharerecordRecord> {
 
-    private static final long serialVersionUID = 1469092179;
+    private static final long serialVersionUID = 1378730615;
 
     /**
      * The reference instance of <code>thmodeltest.sharerecord</code>
@@ -58,7 +59,7 @@ public class Sharerecord extends TableImpl<SharerecordRecord> {
     /**
      * The column <code>thmodeltest.sharerecord.id</code>.
      */
-    public final TableField<SharerecordRecord, Integer> ID = createField("id", org.jooq.impl.SQLDataType.INTEGER.nullable(false), this, "");
+    public final TableField<SharerecordRecord, Integer> ID = createField("id", org.jooq.impl.SQLDataType.INTEGER.nullable(false).identity(true), this, "");
 
     /**
      * The column <code>thmodeltest.sharerecord.phone</code>.
@@ -119,6 +120,14 @@ public class Sharerecord extends TableImpl<SharerecordRecord> {
         return Arrays.<Index>asList(Indexes.SHARERECORD_PRIMARY);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Identity<SharerecordRecord, Integer> getIdentity() {
+        return Keys.IDENTITY_SHARERECORD;
+    }
+
     /**
      * {@inheritDoc}
      */

+ 111 - 0
src/main/webapp/member/orderlist.jsp

@@ -0,0 +1,111 @@
+<%@ page import="org.jooq.DSLContext" %>
+<%@ page import="org.jooq.impl.DSL" %>
+<%@ page import="org.jooq.SQLDialect" %>
+<%@ page import="org.jooq.Record" %>
+<%@ page import="org.jooq.Result" %>
+<%@ page import="jooq.Tables" %>
+<%@ page import="static jooq.tables.Orderrecord.ORDERRECORD" %>
+<%@ page import="net.sf.json.JSONObject" %>
+<%@ page import="system.DBRecordsPack" %>
+<%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %>
+<%request.setCharacterEncoding("utf-8");%>
+<jsp:useBean id="db" class="dbconnection.DbConnection" scope="page"/>
+<%
+    String path = request.getContextPath();
+    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
+
+    int modelinfopk = Integer.parseInt(request.getParameter("modelinfopk"));
+
+    String operator = request.getParameter("operator");
+
+
+    if ("query".equals(operator)) {
+        int pageIndex = Integer.parseInt(request.getParameter("page"));
+        int pageSize  = 10;
+
+        DSLContext ctx = DSL.using(db.getConn(), SQLDialect.MYSQL);
+        Result<Record> records = ctx.select()
+                                    .from(ORDERRECORD)
+                                    .where(ORDERRECORD.MODELPK.equal(modelinfopk))
+                                    .limit(pageSize * (pageIndex - 1), pageSize)
+                                    .fetch();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("data", DBRecordsPack.Pack(records));
+
+        if (pageIndex == 1) {
+            int total = ctx.selectCount()
+                           .from(ORDERRECORD)
+                           .where(ORDERRECORD.MODELPK.equal(modelinfopk))
+                           .fetchOne(0, int.class);
+            jsonObject.put("total", total);
+        }
+        response.setContentType("application/json");
+        out.clear();
+        out.print(jsonObject);
+        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="${pageContext.request.contextPath}"/>
+    <title>模特查询</title>
+    <%@include file="/_common.jsp" %>
+</head>
+<body>
+<div id="app">
+    <el-table :data="tableData" v-loading="loading">
+        <el-table-column prop="coin" label="金额" width="120"></el-table-column>
+        <el-table-column prop="SName" label="名称"></el-table-column>
+        <el-table-column prop="ODate" label="日期" :formatter="dateFormatter" width="200"></el-table-column>
+    </el-table>
+    <el-pagination
+            background
+            layout="prev, pager, next"
+            :total="total"
+            :page-size="10"
+            :current-page="currentPage"
+            @current-change="currentChange">
+    </el-pagination>
+
+</div>
+</body>
+<script type="text/javascript">
+    new Vue({
+        el: '#app',
+        created: function () {
+            this.getData();
+        },
+        data: {
+            loading: false,
+            tableData: [],
+            currentPage: 1,
+            total: 0
+        },
+        methods: {
+            getData: function () {
+                this.loading = true;
+                $.post("${pageContext.request.contextPath}/member/orderlist.jsp", {
+                    operator: "query",
+                    page: this.currentPage,
+                    modelinfopk: '<%=modelinfopk%>'
+                }, function (res, status) {
+                    this.loading = false;
+                    this.tableData = res.data;
+                    if (this.currentPage === 1) {
+                        this.total = res.total;
+                    }
+                }.bind(this));
+            },
+            currentChange: function (page) {
+                this.currentPage = page;
+                this.getData();
+            },
+            dateFormatter: function (row, column, cellValue, index) {
+                return new Date(cellValue.time).toLocaleString()
+            }
+        }
+    });
+</script>
+</html>

+ 8 - 1
src/main/webapp/member/query_model.jsp

@@ -136,10 +136,11 @@
         <el-table-column prop="qrcode" label="邀请码"></el-table-column>
         <el-table-column prop="mdate" label="注册日期" width="200"></el-table-column>
         <el-table-column prop="sort" label="排序"></el-table-column>
-        <el-table-column label="操作" width="150" fixed="right" align="center">
+        <el-table-column label="操作" width="200" fixed="right" align="center">
             <template slot-scope="{row}">
                 <el-button type="text" size="small" @click="modelDetail(row)">详情</el-button>
                 <el-button type="text" size="small" @click="inviteList(row.modelinfopk)">邀请列表</el-button>
+                <el-button type="text" size="small" @click="orderList(row.modelinfopk)">订单</el-button>
                 <el-button type="text" size="small" @click="sort(row.modelinfopk)">排序</el-button>
             </template>
         </el-table-column>
@@ -225,6 +226,12 @@
                     height: '70%',
                     top: 50
                 });
+            },
+            orderList(modelinfopk){
+                this.showIframe({
+                    url: '<%=basePath%>member/orderlist.jsp?modelinfopk=' + modelinfopk,
+                    title: '订单列表'
+                });
             }
         }
     });

+ 137 - 4
src/main/webapp/member/query_withdraw.jsp

@@ -13,6 +13,12 @@
 <%@ page import="net.sf.json.JSONObject" %>
 <%@ page import="system.DBRecordsPack" %>
 <%@ page import="java.util.List" %>
+<%@ page import="jooq.Tables" %>
+<%@ page import="static jooq.Tables.MEMBERINFO" %>
+<%@ page import="java.math.BigDecimal" %>
+<%@ page import="constants.PayConstants" %>
+<%@ page import="java.sql.Timestamp" %>
+<%@ page import="java.time.LocalDateTime" %>
 <%@ page contentType="text/html;charset=UTF-8" %>
 <jsp:useBean id="db" class="dbconnection.DbConnection"/>
 <%
@@ -22,10 +28,49 @@
     String BMemberPK = (String) session.getAttribute("memberpk");
     System.out.println("BrokerPK:" + BrokerPK);
     System.out.println("BMemberPK:" + BMemberPK);
+
     DSLContext ctx = DSL.using(db.getConn(), SQLDialect.MYSQL);
+
+    String operator = request.getParameter("operator");
+    if ("submit".equals(operator)) {
+        out.clear();
+        double amount  = Double.parseDouble(request.getParameter("amount"));
+        String account = request.getParameter("account");
+        String name    = request.getParameter("name");
+        String phone   = request.getParameter("phone");
+
+        Record record = ctx.select()
+                           .from(MEMBERINFO)
+                           .where(MEMBERINFO.PK.equal(Integer.valueOf(BMemberPK)))
+                           .fetchOne();
+        double     coinA      = MEMBERINFO.COIN_A.getValue(record).doubleValue();
+        JSONObject jsonObject = new JSONObject();
+        if (amount <= 0) {
+            jsonObject.put("success", false);
+            jsonObject.put("error", "金额必须大于0");
+        } else if (amount > coinA) {
+            jsonObject.put("error", "账户余额不足");
+        } else {
+            int result = ctx.insertInto(CASHRECORD, CASHRECORD.FEEDATE, CASHRECORD.MEMBERPK, CASHRECORD.FEE, CASHRECORD.ABSTRACT, CASHRECORD.INTRO, CASHRECORD.WID, CASHRECORD.PTYPE, CASHRECORD.PSTATE, CASHRECORD.USERNAME, CASHRECORD.PHONE, CASHRECORD.ACCFLAG)
+                            .values(Timestamp.valueOf(LocalDateTime.now()), Integer.valueOf(BMemberPK), BigDecimal.valueOf(amount), "取钱", "提现", account, PayConstants.TYPE_ALIPAY, PayConstants.STATE_4, name, phone, 0)
+                            .returning(CASHRECORD.PK)
+                            .execute();
+            if (result > 0) {
+                jsonObject.put("success", true);
+            } else {
+                jsonObject.put("success", false);
+                jsonObject.put("error", "内部错误");
+            }
+        }
+
+        response.setContentType("application/json");
+        out.print(jsonObject);
+        return;
+    }
+
     Result<Record> records = ctx.select().from(CASHRECORD)
-            // .where(CASHRECORD.MEMBERPK.equal(Integer.valueOf(BMemberPK)))
-            .fetch();
+                                .where(CASHRECORD.MEMBERPK.equal(Integer.valueOf(BMemberPK)))
+                                .fetch();
     List<JSONObject> jsonObjects = DBRecordsPack.Pack(records);
 %>
 <!DOCTYPE html>
@@ -37,6 +82,7 @@
 </head>
 <body>
 <div id="app">
+    <el-button @click="openDialog" size="small">申请提现</el-button>
     <el-table :data="tableData">
         <el-table-column prop="Fee" label="金额"></el-table-column>
         <el-table-column prop="FeeDate" :formatter="dateFormatter" label="时间"></el-table-column>
@@ -50,15 +96,43 @@
             :current-page="page"
             @current-change="page=$event">
     </el-pagination>
+
+    <el-dialog
+            title="申请提现"
+            :visible.sync="dialogVisible"
+            width="30%">
+        <el-form label-width="80" size="small">
+            <el-form-item label="提现账户">
+                <el-input v-model="account"></el-input>
+            </el-form-item>
+            <el-form-item label="收款人姓名">
+                <el-input v-model="name"></el-input>
+            </el-form-item>
+            <el-form-item label="联系电话">
+                <el-input v-model="phone"></el-input>
+            </el-form-item>
+            <el-form-item label="提现金额">
+                <el-input-number v-model="amount"></el-input-number>
+            </el-form-item>
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+            <el-button @click="dialogVisible = false">取 消</el-button>
+            <el-button type="primary" @click="submit">确 定</el-button>
+        </span>
+    </el-dialog>
 </div>
 
 <script>
     new Vue({
         el: '#app',
         data: {
-            visible: false,
+            dialogVisible: false,
             allData: JSON.parse('<%=jsonObjects%>'),
-            page: 1
+            page: 1,
+            amount: '',
+            name: '',
+            phone: '',
+            account: ''
         },
         computed: {
             tableData: function () {
@@ -68,6 +142,65 @@
         methods: {
             dateFormatter: function (row, column, cellValue, index) {
                 return new Date(cellValue.time).toLocaleString()
+            },
+            openDialog() {
+                this.amount = '';
+                this.account = '';
+                this.name = '';
+                this.dialogVisible = true;
+            },
+            submit() {
+                if (!this.account) {
+                    this.$message.error('请输入提现账户');
+                    return;
+                }
+                if (!this.name) {
+                    this.$message.error('请输入收款人姓名');
+                    return;
+                }
+                if (!/^1[3-9]\d{9}$/.test(this.phone)) {
+                    this.$message.error('请输入正确的联系电话');
+                    return;
+                }
+                var amount = Number(this.amount);
+                if (isNaN(Number(this.amount))) {
+                    this.$message.error('请输入正确的金额');
+                    return;
+                }
+                if (amount <= 0) {
+                    this.$message.error('请输入正确的金额');
+                    return;
+                }
+                this.dialogVisible = false;
+                this.$confirm('确认提现?', '提示', {
+                    confirmButtonText: '确定',
+                    cancelButtonText: '取消',
+                    type: 'warning'
+                }).then(function () {
+                    $.post({
+                        url: '${pageContext.request.contextPath}/member/query_withdraw.jsp',
+                        data: {
+                            operator: 'submit',
+                            account: this.account,
+                            name: this.name,
+                            amount: this.amount,
+                            phone: this.phone
+                        },
+                        success: function (res) {
+                            if (res.success) {
+                                alert('提现申请已提交');
+                                window.location.reload();
+                            } else {
+                                alert(res.error);
+                            }
+                        }.bind(this)
+                    });
+                }.bind(this)).catch(function () {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });
+                }.bind(this));
             }
         }
     })