|
|
@@ -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));
|
|
|
}
|
|
|
}
|
|
|
})
|