From 99e02dd50ca2a6a4191913c62b6e39ec1b4391a6 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Sat, 17 Feb 2024 21:44:29 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java           |    7 ++
 src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java              |    9 +++
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java          |    5 +
 src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java                |    4 +
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java               |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java       |   25 ++++++++
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html       |   20 ++++--
 src/main/resources/templates/febs/views/modules/mallMember/member-coupon-select.html |   98 ++++++++++++++++++++++++++++++++
 8 files changed, 162 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
index a65ce85..1c8028d 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java
@@ -10,7 +10,9 @@
      */
     PAY(1, "积分支付"),
 
-    BUY(2, "购买商品获得积分");
+    BUY(2, "购买商品获得积分"),
+
+    RECOMMEND(3, "推荐下单获得积分");
 
     private final int value;
 
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
index 08eda2d..3bf4415 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -614,4 +614,9 @@
         return new FebsResponse().success().message("操作成功");
     }
 
+    @PostMapping("addMemberCoupon")
+    @ControllerEndpoint(operation = "会员添加优惠券呢", exceptionMessage = "操作失败")
+    public FebsResponse addMemberCoupon(@Valid MallMember mallmember) {
+        return mallMemberService.addMemberCoupon(mallmember);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
index 8c4dee9..da1829f 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -413,4 +413,11 @@
         return FebsUtil.view("modules/mallMember/vip-level-setting");
     }
 
+    @GetMapping("addCoupon/{id}")
+    public String addCoupon(@PathVariable long id, Model model) {
+//        AdminAgentLevelSetInfoVo data = mallMemberService.getAgentLevelSetInfoByMemberId(id);
+        model.addAttribute("memberId", id);
+        return FebsUtil.view("modules/mallMember/member-coupon-select");
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
index 106cb62..810b4d7 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -136,4 +136,6 @@
     IPage<MallMember> getsalemanRuleList(MallMember mallMember, QueryRequest request);
 
     FebsResponse salemanCoupon(MallMember mallmember);
+
+    FebsResponse addMemberCoupon(MallMember member);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 483fb2c..0bce76e 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -21,6 +21,8 @@
 import cc.mrbird.febs.pay.model.MemberWithdrawalDto;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
@@ -75,6 +77,8 @@
     private final MallAgentRecordMapper mallAgentRecordMapper;
     private final MallSalesmanMapper mallSalesmanMapper;
     private final SalemanCouponMapper salemanCouponMapper;
+    private final MallMemberCouponMapper mallMemberCouponMapper;
+    private final MallGoodsCouponMapper mallGoodsCouponMapper;
 
     @Override
     public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
@@ -924,4 +928,25 @@
 
         return ids;
     }
+
+    @Override
+    public FebsResponse addMemberCoupon(MallMember member) {
+        MallGoodsCoupon existCoupon = mallGoodsCouponMapper.selectById(member.getCouponId());
+        if(existCoupon == null) {
+            return new FebsResponse().fail().message("优惠券不存在");
+        }
+
+        MallMemberCoupon memberCoupon = new MallMemberCoupon();
+        memberCoupon.setCouponId(existCoupon.getId());
+        memberCoupon.setCouponName(existCoupon.getName());
+        memberCoupon.setInviteId(member.getInviteId());
+        memberCoupon.setCouponUuid(IdUtil.simpleUUID());
+        memberCoupon.setState(1);
+        memberCoupon.setFromType(4);
+        memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), existCoupon.getExpireDay()));
+        memberCoupon.setMemberId(member.getId());
+        mallMemberCouponMapper.insert(memberCoupon);
+
+        return new FebsResponse().success().message("操作成功");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
index fa1618c..b2ba6e9 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java
@@ -71,6 +71,15 @@
         mallMemberWalletService.add(new BigDecimal(score), memberId, "prizeScore");
 
         agentProducer.sendVipLevelUp(orderId);
+        if (StrUtil.isNotBlank(mallOrderInfo.getTakeCode())) {
+            MallMember mallMember = mallMemberMapper.selectInfoByInviteId(mallOrderInfo.getTakeCode());
+            if (mallMember == null) {
+                return;
+            }
+
+            mallMoneyFlowService.addMoneyFlow(mallMember.getId(), new BigDecimal(score), ScoreFlowTypeEnum.RECOMMEND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2);
+            mallMemberWalletService.add(new BigDecimal(score), mallMember.getId(), "prizeScore");
+        }
     }
 
     @Override
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
index a025887..f2b2154 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -112,13 +112,7 @@
     <div class="layui-btn-container">
         <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateReferer">修改推荐人</button>
         <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="updateVipLevel">修改会员等级</button>
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="registMember">添加会员</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="balance">拨付余额</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="score">拨付赠送积分</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="prizeScore">拨付竞猜积分</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="resetPwd">重置登录密码</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="resetPayPwd">重置支付密码</button>-->
-<!--        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="agentLevel">设置代理等级</button>-->
+        <button class="layui-btn layui-btn-normal layui-btn-sm" type="button" lay-event="addCoupon">优惠券派送</button>
     </div>
 </script>
 <!-- 表格操作栏 end -->
@@ -451,6 +445,18 @@
                     }
                 });
             }
+
+            if (layEvent === 'addCoupon') {
+                febs.modal.open('添加优惠券', 'modules/mallMember/addCoupon/' + checkData[0].id, {
+                    btn: ['确认', '取消'],
+                    yes: function (index, layero) {
+                        $('#member-coupon-select').find('#submit').trigger('click');
+                    },
+                    btn2: function () {
+                        layer.closeAll();
+                    }
+                });
+            }
         });
 
         function systemPay(text, id, type) {
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/member-coupon-select.html b/src/main/resources/templates/febs/views/modules/mallMember/member-coupon-select.html
new file mode 100644
index 0000000..45050ee
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/mallMember/member-coupon-select.html
@@ -0,0 +1,98 @@
+<style>
+    #member-coupon-select {
+        padding: 20px 25px 25px 0;
+    }
+
+    #member-coupon-select .layui-treeSelect .ztree li a, .ztree li span {
+        margin: 0 0 2px 3px !important;
+    }
+    #member-coupon-select #data-permission-tree-block {
+        border: 1px solid #eee;
+        border-radius: 2px;
+        padding: 3px 0;
+    }
+    #member-coupon-select .layui-treeSelect .ztree li span.button.switch {
+        top: 1px;
+        left: 3px;
+    }
+    #member-coupon-select img{
+        max-width:100px
+    }
+
+</style>
+<div class="layui-fluid" id="member-coupon-select">
+    <form class="layui-form" action="" lay-filter="member-coupon-select-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="${memberId}">
+            </div>
+        </div>
+
+        <div class="layui-form-item">
+            <label class="layui-form-label">优惠卷:</label>
+            <div class="layui-input-inline">
+                <select name="couponId" class="member-coupon-select-category" id="couponCategarySelect">
+                    <option value="">请选择</option>
+                </select>
+            </div>
+        </div>
+
+        <div class="layui-form-item febs-hide">
+            <button class="layui-btn" lay-submit="" lay-filter="member-coupon-select-form-submit" id="submit"></button>
+        </div>
+    </form>
+</div>
+
+<script data-th-inline="javascript">
+    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'laydate','upload'], function () {
+        var $ = layui.$,
+            febs = layui.febs,
+            layer = layui.layer,
+            formSelects = layui.formSelects,
+            treeSelect = layui.treeSelect,
+            form = layui.form,
+            laydate = layui.laydate,
+            eleTree = layui.eleTree,
+            adminCouponSelectVo = [[${adminCouponSelectVo}]],
+            $view = $('#member-coupon-select'),
+            upload = layui.upload,
+            validate = layui.validate;
+
+        form.render();
+        laydate.render({
+            elem: '#febs-form-group-date'
+        });
+
+        formSelects.render();
+
+        //(下拉框)
+        $.get(ctx + 'admin/goods/coupon/tree', function (data) {
+            for (var k in data)
+            {
+                $(".member-coupon-select-category").append("<option value='" + data[k].couponId + "'>" + data[k].couponName + "</option>");
+            }
+            layui.use('form', function () {
+                var form = layui.form;
+                $("#couponCategarySelect").val('')
+                form.render();
+            });
+        });
+        // initUserValue();
+        //
+        // function initUserValue() {
+        //     form.val("member-coupon-select-form", {
+        //         "id": adminCouponSelectVo.id,
+        //     });
+        // }
+
+        form.on('submit(member-coupon-select-form-submit)', function (data) {
+            febs.post(ctx + 'admin/mallMember/addMemberCoupon', data.field, function () {
+                layer.closeAll();
+                febs.alert.success('操作成功');
+                $('#febs-member-list').find('#reset').click();
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file

--
Gitblit v1.9.1