From 1ff3f45074f93f1d9da02c6ddfe31685b92057c3 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sat, 29 Oct 2022 14:26:08 +0800
Subject: [PATCH] 20221021

---
 src/main/resources/templates/febs/views/dapp/member.html                  |   15 +++++
 src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java          |    2 
 src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java          |   17 +++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |    2 
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |   21 +++++++
 src/main/resources/templates/febs/views/dapp/payUsdt.html                 |   84 ++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java        |   10 +++
 src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java            |    3 +
 8 files changed, 153 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
index d2f20a4..d0b488f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -193,4 +193,14 @@
         Map<String, Object> data = getDataTable(dappMemberService.getChargeListInPage(memberCoinChargeEntity, request));
         return new FebsResponse().success().data(data);
     }
+
+    /**
+     *会员列表---拨币
+     * @return
+     */
+    @PostMapping("payUsdt")
+    @ControllerEndpoint(operation = "会员列表-确认", exceptionMessage = "操作失败")
+    public FebsResponse addCoinConfirm(@Valid DappMemberEntity memberEntity) {
+        return dappMemberService.payUsdt(memberEntity);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
index 22e2350..799d11a 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -5,6 +5,8 @@
 import cc.mrbird.febs.common.utils.FebsUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.dapp.entity.AppVersion;
+import cc.mrbird.febs.dapp.entity.DappMemberEntity;
+import cc.mrbird.febs.dapp.mapper.DappMemberDao;
 import cc.mrbird.febs.dapp.service.DappMemberService;
 import lombok.RequiredArgsConstructor;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -28,6 +30,7 @@
     private final RedisUtils redisUtils;
 
     private final DappMemberService dappMemberService;
+    private final DappMemberDao dappMemberDao;
 
     @GetMapping(value = "admin")
     @RequiresPermissions("admin:view")
@@ -186,4 +189,18 @@
         return FebsUtil.view("dapp/member-charge");
     }
 
+    /**
+     * 会员列表-拨付
+     * @param id
+     * @param model
+     * @return
+     */
+    @GetMapping("payUsdt/{id}")
+    @RequiresPermissions("payUsdt:update")
+    public String payUsdt(@PathVariable long id, Model model) {
+        DappMemberEntity data = dappMemberDao.selectById(id);
+        model.addAttribute("dappMember", data);
+        return FebsUtil.view("dapp/payUsdt");
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
index b7657e7..009a7da 100644
--- a/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappMemberEntity.java
@@ -104,4 +104,7 @@
      */
     @TableField(exist = false)
     private String description;
+
+    @TableField(exist = false)
+    private BigDecimal coinNumber;
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
index ff3ff85..801f45d 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -96,4 +96,6 @@
     FebsResponse updateAppVersion(AppVersion appVersion);
 
     IPage<MemberCoinChargeEntity> getChargeListInPage(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request);
+
+    FebsResponse payUsdt(DappMemberEntity memberEntity);
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 553393a..91f6a1c 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -981,6 +981,27 @@
         return memberCoinChargeEntityIPage;
     }
 
+    @Override
+    public FebsResponse payUsdt(DappMemberEntity memberEntity) {
+        DappMemberEntity dappMemberEntity = dappMemberDao.selectById(memberEntity.getId());
+        if(ObjectUtil.isEmpty(dappMemberEntity)){
+            return new FebsResponse().fail().message("会员信息不存在");
+        }
+        BigDecimal coinNumber = memberEntity.getCoinNumber() == null ? BigDecimal.ZERO : memberEntity.getCoinNumber();
+        if(BigDecimal.ZERO.compareTo(coinNumber) >= 0){
+            return new FebsResponse().fail().message("请输入正确的金额");
+        }
+        DappWalletCoinEntity dappWalletCoinEntity = dappWalletCoinDao.selectByMemberId(memberEntity.getId());
+        if(ObjectUtil.isEmpty(dappWalletCoinEntity)){
+            return new FebsResponse().fail().message("会员账户不存在");
+        }
+        dappWalletCoinDao.addTotalAndaddAvailableById(dappWalletCoinEntity.getId(),coinNumber);
+
+        DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(memberEntity.getId(), coinNumber, "系统拨付", 9);
+        dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntity);
+        return new FebsResponse().success().message("操作成功");
+    }
+
     public String generateAsaToken(String token) {
         RSA rsa = new RSA(null, AppContants.PUBLIC_KEY);
         return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 3efad30..c42167f 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -1099,7 +1099,7 @@
     public BigDecimal updatePTFC(Long memberId, BigDecimal totalProfit) {
         BigDecimal multiply = totalProfit.multiply(new BigDecimal(0.05));
         DappAccountMoneyChangeEntity dappAccountMoneyChangeEntity = new DappAccountMoneyChangeEntity(
-                memberId, multiply, "系统", 9);
+                memberId, multiply.negate(), "系统", 9);
         dappAccountMoneyChangeDao.insert(dappAccountMoneyChangeEntity);
         return multiply;
     }
diff --git a/src/main/resources/templates/febs/views/dapp/member.html b/src/main/resources/templates/febs/views/dapp/member.html
index 4557db5..b5db59e 100644
--- a/src/main/resources/templates/febs/views/dapp/member.html
+++ b/src/main/resources/templates/febs/views/dapp/member.html
@@ -187,6 +187,17 @@
                     resetPassword(data.id);
                 });
             }
+            if (layEvent === 'payUsdt') {
+                febs.modal.open('编辑', 'dappView/payUsdt/' + data.id, {
+                    btn: ['提交', '取消'],
+                    yes: function (index, layero) {
+                        $('#payUsdt-update').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
             // if (layEvent === 'accountStatus') {
             //     var text = "是否启用该用户?";
             //     if (data.accountStatus === 1) {
@@ -327,6 +338,10 @@
                                 return ''
                             }
                         },minWidth: 180,align:'center'},
+                    {title: '后台拨付',
+                        templet: function (d) {
+                                return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="payUsdt" shiro:hasPermission="user:update">拨付</button>'
+                        },minWidth: 180,align:'center'},
                 ]]
             });
         }
diff --git a/src/main/resources/templates/febs/views/dapp/payUsdt.html b/src/main/resources/templates/febs/views/dapp/payUsdt.html
new file mode 100644
index 0000000..bf1f45f
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/payUsdt.html
@@ -0,0 +1,84 @@
+<style>
+    #payUsdt-update {
+        padding: 20px 25px 25px 0;
+    }
+
+    #payUsdt-update .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #payUsdt-update #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #payUsdt-update .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #payUsdt-update img{
+        max-width:100px
+    }
+
+</style>
+<div class="layui-fluid" id="payUsdt-update">
+    <form class="layui-form" action="" lay-filter="payUsdt-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="${dappMember.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="text" name="coinNumber" data-th-id="${dappMember.coinNumber}" lay-verify="range|coinNumber"
+                       autocomplete="off" class="layui-input" >
+            </div>
+        </div>
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="payUsdt-update-form-submit" id="submit"></button>
+        </div>
+    </form>
+</div>
+
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate'], function () {
+        var $ = layui.$,
+            febs = layui.febs,
+            layer = layui.layer,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            laydate = layui.laydate,
+            eleTree = layui.eleTree,
+            dappMember = [[${dappMember}]],
+            $view = $('#payUsdt-update'),
+            validate = layui.validate;
+
+        form.render();
+        laydate.render({
+            elem: '#febs-form-group-date'
+        });
+
+        formSelects.render();
+
+
+        initUserValue();
+
+        function initUserValue() {
+            form.val("payUsdt-update-form", {
+                "coinNumber": dappMember.coinNumber,
+                "id": dappMember.id
+            });
+        }
+
+        form.on('submit(payUsdt-update-form-submit)', function (data) {
+            febs.post(ctx + 'member/payUsdt', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-member').find('#reset').click();
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file

--
Gitblit v1.9.1