From 0830a387f0c28c2d448714ad184fd0c17bf27ea9 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 25 May 2021 10:30:50 +0800
Subject: [PATCH] 20210525 回款
---
src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussinessEntity.java | 11 ++
src/main/resources/templates/febs/views/modules/otc/otcOrderList.html | 4
src/main/resources/templates/febs/views/modules/otc/otcShopList.html | 58 +++++++----
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 4
src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java | 10 ++
src/main/resources/templates/febs/views/modules/otc/otcHuiKuan.html | 93 ++++++++++++++++++
src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java | 12 ++
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java | 37 +++++++
src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java | 4
src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html | 38 +++---
10 files changed, 226 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index e70ba1f..8032a52 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -2235,14 +2235,14 @@
@Override
public IPage<MemberDataInfoVo> findAllDataInfoListInPage(MemberEntity memberEntity, QueryRequest request) {
String account = memberEntity.getAccount();
- String isTest = memberEntity.getIsTest();
+// String isTest = memberEntity.getIsTest();
//如果account为空,查询全部,account不为空查询对应的memberEntity
if(StrUtil.isNotEmpty(account)) {
memberEntity = memberMapper.selectMemberByAccount(account);
}else {
memberEntity = memberMapper.selectMemberByAccount(MemberEntity.SYSTEM_REFERER);
}
- memberEntity.setIsTest(isTest);
+// memberEntity.setIsTest("");
Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
IPage<MemberDataInfoVo> selectMemberListInPage = memberMapper.findMemberDataInfoOneAllRealInPage(page, memberEntity);
//USDT充币总额+USDT提币总额
diff --git a/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java
index 243ed27..7892228 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/controller/OtcController.java
@@ -113,4 +113,14 @@
return otcService.updateOrderInfo(otcOrderEntity);
}
+ /**
+ *回款
+ * @return
+ */
+ @PostMapping("otcHuiKuan")
+ @ControllerEndpoint(operation = "订单列表---付款人", exceptionMessage = "失败")
+ public FebsResponse otcHuiKuan(@Valid OtcMarketBussinessEntity otcMarketBussinessEntity) {
+ return otcService.otcHuiKuan(otcMarketBussinessEntity);
+ }
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java
index 7074b12..2f63c3d 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/controller/ViewController.java
@@ -3,6 +3,7 @@
import com.xcong.excoin.common.entity.FebsConstant;
import com.xcong.excoin.common.utils.FebsUtil;
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
+import com.xcong.excoin.modules.otc.entity.OtcMarketBussinessEntity;
import com.xcong.excoin.modules.otc.entity.OtcOrderEntity;
import com.xcong.excoin.modules.otc.service.OtcService;
import com.xcong.excoin.modules.otc.vo.OtcAppealInfoVo;
@@ -79,4 +80,15 @@
return FebsUtil.view("modules/otc/otcAppealInfo");
}
+ /**
+ * 商户回款
+ */
+ @GetMapping("otcHuiKuan/{id}")
+ @RequiresPermissions("otcHuiKuan:update")
+ public String otcHuiKuan(@PathVariable long id, Model model) {
+ OtcMarketBussinessEntity data = otcService.otcHuiKuan(id);
+ model.addAttribute("member", data);
+ return FebsUtil.view("modules/otc/otcHuiKuan");
+ }
+
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussinessEntity.java b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussinessEntity.java
index 0937dac..ef2d9ff 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussinessEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/entity/OtcMarketBussinessEntity.java
@@ -36,6 +36,12 @@
//完成率
private BigDecimal finishRatio;
+ //待回款
+ private BigDecimal waitBackMoney;
+
+ //已回款
+ private BigDecimal hasBackMoney;
+
//平均付款时间
private Integer avgPayTime;
@@ -53,6 +59,11 @@
@TableField(exist = false)
private String realName;
+ /**
+ * 本次回款
+ */
+ @TableField(exist = false)
+ private BigDecimal coinAmount;
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java b/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java
index 599e0d9..24077e8 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/OtcService.java
@@ -33,4 +33,8 @@
OtcOrderEntity otcOrderInfo(long id);
FebsResponse updateOrderInfo(OtcOrderEntity otcOrderEntity);
+
+ OtcMarketBussinessEntity otcHuiKuan(long id);
+
+ FebsResponse otcHuiKuan(OtcMarketBussinessEntity otcMarketBussinessEntity);
}
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
index c240dcc..1d76709 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
@@ -227,4 +227,41 @@
return new FebsResponse().success();
}
+ @Override
+ public OtcMarketBussinessEntity otcHuiKuan(long id) {
+ return otcMarketBussinessMapper.selectById(id);
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse otcHuiKuan(OtcMarketBussinessEntity otcMarketBussinessEntity) {
+ Long id = otcMarketBussinessEntity.getId();
+ OtcMarketBussinessEntity otcMarketBussiness = otcMarketBussinessMapper.selectById(id);
+ if(ObjectUtil.isNotEmpty(otcMarketBussiness)){
+ return new FebsResponse().fail().message("连接超时,请刷新页面重试");
+ }
+ BigDecimal coinAmount = otcMarketBussinessEntity.getCoinAmount();
+ if(coinAmount.compareTo(BigDecimal.ZERO) <= 0){
+ return new FebsResponse().fail().message("请输入正确的回款金额");
+ }
+ BigDecimal waitBackMoney = otcMarketBussiness.getWaitBackMoney();
+ if(coinAmount.compareTo(waitBackMoney) > 0){
+ return new FebsResponse().fail().message("请输入正确的回款金额");
+ }
+ /**
+ * 增加已回款金额
+ * 减少待回款金额
+ * 增加汇款记录
+ */
+ BigDecimal hasBackMoney = otcMarketBussiness.getHasBackMoney();
+ BigDecimal add = hasBackMoney.add(coinAmount);
+ otcMarketBussiness.setHasBackMoney(add);
+
+ BigDecimal subtract = waitBackMoney.subtract(coinAmount);
+ otcMarketBussiness.setWaitBackMoney(subtract);
+ otcMarketBussinessMapper.updateById(otcMarketBussiness);
+
+ return new FebsResponse().success();
+ }
+
}
diff --git a/src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html b/src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html
index 7b72882..0e346de 100644
--- a/src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html
+++ b/src/main/resources/templates/febs/views/modules/member/allData/allDataInfo.html
@@ -12,7 +12,7 @@
<input type="text" placeholder="手机号/邮箱/邀请码" name="account" autocomplete="off" class="layui-input">
</div>
</div>
- <div class="layui-inline">
+ <!--<div class="layui-inline">
<label class="layui-form-label layui-form-label-sm">账号类型</label>
<div class="layui-input-inline">
<select name="isTest">
@@ -21,7 +21,7 @@
<option value="2">测试账号</option>
</select>
</div>
- </div>
+ </div>-->
</div>
</div>
<div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -83,12 +83,12 @@
totalRow: true,
cols: [[
{field: 'memberCount', title: '注册用户数', minWidth: 120,align:'center'},
- {field: 'notNullNumber', title: '持仓用户数', minWidth: 120,align:'center'},
+ // {field: 'notNullNumber', title: '持仓用户数', minWidth: 120,align:'center'},
{field: 'walletNumber', title: '币币账户有余额个数', minWidth: 200,align:'center'},
{field: 'walletNum', title: '币币账户余额', minWidth: 200,align:'center'},
- {field: 'walletCoinNumber', title: '合约账户有余额个数', minWidth: 200,align:'center'},
- {field: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'},
- {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'},
+ // {field: 'walletCoinNumber', title: '合约账户有余额个数', minWidth: 200,align:'center'},
+ // {field: 'walletCoinNum', title: '合约账户余额', minWidth: 200,align:'center'},
+ // {field: 'agentNum', title: '代理账户余额', minWidth: 200,align:'center'},
{field: 'allCoin', title: '平台总资产', minWidth: 200,align:'center'},
{field: 'platformProfitAndLoss', title: '平台剩余USDT',
templet: function (d) {
@@ -100,18 +100,18 @@
}, minWidth: 200,align:'center'},
{field: 'chargeCoin', title: '充币', minWidth: 200,align:'center'},
{field: 'appealCoin', title: '提币', minWidth: 200,align:'center'},
- {field: 'fee', title: '佣金', minWidth: 200,align:'center'},
- {field: 'closingPrice', title: '开仓手续费', minWidth: 200,align:'center'},
- {field: 'sellClosingPrice', title: '平仓手续费', minWidth: 200,align:'center'},
- {field: 'doingPrice', title: '持仓手续费', minWidth: 200,align:'center'},
- {field: 'yingkui', title: '订单盈亏',
- templet: function (d) {
- if (d.yingkui > '0') {
- return '<span style="color:green;">'+d.yingkui+'</span>'
- } else {
- return '<span style="color:red;">'+d.yingkui+'</span>'
- }
- }, minWidth: 200,align:'center'},
+ // {field: 'fee', title: '佣金', minWidth: 200,align:'center'},
+ // {field: 'closingPrice', title: '开仓手续费', minWidth: 200,align:'center'},
+ // {field: 'sellClosingPrice', title: '平仓手续费', minWidth: 200,align:'center'},
+ // {field: 'doingPrice', title: '持仓手续费', minWidth: 200,align:'center'},
+ // {field: 'yingkui', title: '订单盈亏',
+ // templet: function (d) {
+ // if (d.yingkui > '0') {
+ // return '<span style="color:green;">'+d.yingkui+'</span>'
+ // } else {
+ // return '<span style="color:red;">'+d.yingkui+'</span>'
+ // }
+ // }, minWidth: 200,align:'center'},
{field: 'chargeUsdt', title: 'usdt充值', minWidth: 200,align:'center'},
{field: 'appealUsdt', title: 'usdt提现', minWidth: 200,align:'center'},
]]
@@ -122,7 +122,7 @@
function getQueryParams() {
return {
account: $searchForm.find('input[name="account"]').val().trim(),
- isTest: $searchForm.find("select[name='isTest']").val(),
+ // isTest: $searchForm.find("select[name='isTest']").val(),
};
}
diff --git a/src/main/resources/templates/febs/views/modules/otc/otcHuiKuan.html b/src/main/resources/templates/febs/views/modules/otc/otcHuiKuan.html
new file mode 100644
index 0000000..6268fc5
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/otc/otcHuiKuan.html
@@ -0,0 +1,93 @@
+<style>
+ #user-update {
+ padding: 20px 25px 25px 0;
+ }
+
+ #user-update .layui-treeSelect .ztree li a, .ztree li span {
+ margin: 0 0 2px 3px !important;
+ }
+ #user-update #data-permission-tree-block {
+ border: 1px solid #eee;
+ border-radius: 2px;
+ padding: 3px 0;
+ }
+ #user-add .layui-treeSelect .ztree li span.button.switch {
+ top: 1px;
+ left: 3px;
+ }
+
+</style>
+<div class="layui-fluid" id="user-update">
+ <form class="layui-form" action="" lay-filter="user-update-form">
+ <div class="layui-form-item febs-hide">
+ <label class="layui-form-label febs-form-item-require">id:</label>
+ <div class="layui-input-block">
+ <input type="text" name="id" data-th-value="${member.id}">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">待回款:</label>
+ <div class="layui-input-block">
+ <input type="number" name="waitBackMoney"data-th-id="${member.waitBackMoney}"
+ autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">已回款:</label>
+ <div class="layui-input-block">
+ <input type="number" name="hasBackMoney"data-th-id="${member.hasBackMoney}"
+ autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label febs-form-item-require">交易数量:</label>
+ <div class="layui-input-block">
+ <input type="number" name="coinAmount"data-th-id="${member.coinAmount}"
+ autocomplete="off" class="layui-input" readonly>
+ </div>
+ </div>
+ <div class="layui-form-item febs-hide">
+ <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button>
+ </div>
+ </form>
+</div>
+
+<script data-th-inline="javascript">
+ layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
+ var $ = layui.$,
+ febs = layui.febs,
+ layer = layui.layer,
+ formSelects = layui.formSelects,
+ treeSelect = layui.treeSelect,
+ form = layui.form,
+ eleTree = layui.eleTree,
+ member = [[${member}]],
+ $view = $('#user-update'),
+ validate = layui.validate,
+ _deptTree;
+
+ form.render();
+
+ initUserValue();
+
+ formSelects.render();
+
+ function initUserValue() {
+ form.val("user-update-form", {
+ "id": member.id,
+ "waitBackMoney": member.waitBackMoney,
+ "hasBackMoney": member.hasBackMoney,
+ "coinAmount": member.coinAmount
+ });
+ }
+
+ form.on('submit(user-update-form-submit)', function (data) {
+ febs.post(ctx + 'otc/otcHuiKuan', data.field, function () {
+ layer.closeAll();
+ febs.alert.success('成功');
+ $('#febs-user-shop').find('#reset').click();
+ });
+ return false;
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html b/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html
index 127fa27..bd0fda3 100644
--- a/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html
+++ b/src/main/resources/templates/febs/views/modules/otc/otcOrderList.html
@@ -13,7 +13,7 @@
</div>
</div>
<div class="layui-inline">
- <label class="layui-form-label layui-form-label-sm">类型</label>
+ <label class="layui-form-label layui-form-label-sm">订单状态</label>
<div class="layui-input-inline">
<select name="status">
<option value="">请选择</option>
@@ -141,7 +141,7 @@
{field: 'payTime', title: '付款时间',minWidth: 150,align:'center'},
{field: 'finishTime', title: '完成时间',minWidth: 150,align:'center'},
{title: '操作',templet: function (d) {
- //return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">付款</button>'
+ // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">付款</button>'
if(d.status === 1){
return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="dealIng" shiro:hasPermission="user:update">付款</button>'
}else{
diff --git a/src/main/resources/templates/febs/views/modules/otc/otcShopList.html b/src/main/resources/templates/febs/views/modules/otc/otcShopList.html
index 9a67fdb..502aeb9 100644
--- a/src/main/resources/templates/febs/views/modules/otc/otcShopList.html
+++ b/src/main/resources/templates/febs/views/modules/otc/otcShopList.html
@@ -1,4 +1,4 @@
-<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="OTC商户">
+<div class="layui-fluid layui-anim febs-anim" id="febs-user-shop" lay-title="OTC商户">
<div class="layui-row febs-container">
<div class="layui-col-md12">
<div class="layui-card">
@@ -57,7 +57,7 @@
febs = layui.febs,
form = layui.form,
table = layui.table,
- $view = $('#febs-user'),
+ $view = $('#febs-user-shop'),
$query = $view.find('#query'),
$reset = $view.find('#reset'),
$searchForm = $view.find('form'),
@@ -81,6 +81,17 @@
if (layEvent === 'disagreeShop') {
febs.modal.confirm('拒绝', '确认拒绝该商户的审核?', function () {
disagreeShop(data.id);
+ });
+ }
+ if (layEvent === 'huikuan') {
+ febs.modal.open('回款', 'modules/otc/huikuan/' + data.id, {
+ btn: ['提交', '取消'],
+ yes: function (index, layero) {
+ $('#user-update').find('#submit').trigger('click');
+ },
+ btn2: function () {
+ layer.closeAll();
+ }
});
}
});
@@ -121,32 +132,35 @@
{field: 'realName', title: '姓名', minWidth: 100,align:'left'},
{field: 'inviteId', title: '邀请码', minWidth: 80,align:'center'},
{field: 'nikename', title: '昵称', minWidth: 80,align:'center'},
- {field: 'status', title: '审核状态',
- templet: function (d) {
- if (d.status === 1) {
- return '<span style="color:blue;">待审核</span>'
- } else if (d.status === 2) {
- return '<span style="color:green;">审核通过</span>'
- } else if (d.status === 3) {
- return '<span>拒绝</span>'
- }else{
- return ''
- }
- }, minWidth: 80,align:'center'},
+ // {field: 'status', title: '审核状态',
+ // templet: function (d) {
+ // if (d.status === 1) {
+ // return '<span style="color:blue;">待审核</span>'
+ // } else if (d.status === 2) {
+ // return '<span style="color:green;">审核通过</span>'
+ // } else if (d.status === 3) {
+ // return '<span>拒绝</span>'
+ // }else{
+ // return ''
+ // }
+ // }, minWidth: 80,align:'center'},
+ // {field: 'waitBackMoney', title: '待回款',minWidth: 100,align:'center'},
+ // {field: 'hasBackMoney', title: '已回款',minWidth: 100,align:'center'},
{field: 'buyCnt', title: '服务人数',minWidth: 100,align:'center'},
{field: 'totalOrderCnt', title: '总单数',minWidth: 100,align:'center'},
{field: 'finishRatio', title: '完成率',minWidth: 100,align:'center'},
{field: 'avgPayTime', title: '平均付款时间',minWidth: 100,align:'center'},
{field: 'avgCoinTime', title: '平均放币时间',minWidth: 100,align:'center'},
{field: 'createTime', title: '注册时间', minWidth: 180,align:'center'},
- {title: '操作',templet: function (d) {
- if(d.status === 1){
- return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agreeShop" shiro:hasPermission="user:update">同意</button>'
- +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagreeShop" shiro:hasPermission="user:update">拒绝</button>'
- }else{
- return ''
- }
- },minWidth: 200,align:'center'}
+ // {title: '操作',templet: function (d) {
+ // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="huikuan" shiro:hasPermission="user:update">回款</button>'
+ // // if(d.status === 1){
+ // // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agreeShop" shiro:hasPermission="user:update">同意</button>'
+ // // +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagreeShop" shiro:hasPermission="user:update">拒绝</button>'
+ // // }else{
+ // // return ''
+ // // }
+ // },minWidth: 200,align:'center'}
]]
});
}
--
Gitblit v1.9.1