From 9b0211dcf5bf657307b72f7fb1e9c2e607ecc35c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 26 Feb 2024 10:27:26 +0800
Subject: [PATCH] Merge branch 'blnka' of http://120.27.238.55:7000/r/xc-mall into blnka

---
 src/test/java/cc/mrbird/febs/ProfitTest.java                                         |    2 
 src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html            |   27 +-
 src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html             |    1 
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java       |   25 ++
 src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html        |  152 ++++++++--------
 src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html               |    7 
 src/main/resources/mapper/modules/MallVipConfigMapper.xml                            |    6 
 src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html            |    9 
 src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java                         |    5 
 src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java             |    8 
 src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java               |    2 
 src/main/resources/templates/febs/views/modules/mallMember/member-coupon-select.html |   98 ++++++++++
 src/main/resources/templates/febs/views/modules/vip/vipBenefits-edit.html            |    1 
 src/test/java/cc/mrbird/febs/AgentTest.java                                          |   14 
 src/main/java/cc/mrbird/febs/vip/service/impl/VipCommonServiceImpl.java              |   41 ++++
 src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java                |    2 
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java          |    5 
 src/main/java/cc/mrbird/febs/common/enumerates/ScoreFlowTypeEnum.java                |    4 
 src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html       |   20 +
 src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java          |   13 +
 src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java           |    7 
 src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java      |    6 
 src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java        |   28 ++
 src/main/resources/templates/febs/views/modules/vip/vip-setting.html                 |    4 
 src/test/java/cc/mrbird/febs/PayTest.java                                            |    9 +
 25 files changed, 374 insertions(+), 122 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/controller/AdminMallVipBenefitsController.java b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java
index 42e8107..c4fa3ad 100644
--- a/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java
+++ b/src/main/java/cc/mrbird/febs/vip/controller/AdminMallVipBenefitsController.java
@@ -56,4 +56,10 @@
     public FebsResponse findAllBenefits() {
         return new FebsResponse().success().data(mallVipBenefitsService.list());
     }
+
+    @PostMapping(value = "/switchBenefitsShow/{id}")
+    public FebsResponse switchBenefitsShow(@PathVariable("id") Long id) {
+        mallVipBenefitsService.switchBenefitsShow(id);
+        return new FebsResponse().success().data("设置成功");
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java
index 8cc41bc..fdcf2d5 100644
--- a/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java
+++ b/src/main/java/cc/mrbird/febs/vip/controller/ViewVipConfigController.java
@@ -76,6 +76,10 @@
         List<Long> goodsIds = new ArrayList<>();
         List<Long> couponIds = new ArrayList<>();
         vipBenefits.getDetails().forEach(item -> {
+            if (StrUtil.isBlank(item.getContent())) {
+                return;
+            }
+
             if (item.getIsClick() == 2) {
                 return;
             }
@@ -103,6 +107,10 @@
         Map<Long, MallGoodsCoupon> couponMap = coupons.stream().collect(Collectors.toMap(MallGoodsCoupon::getId, MallGoodsCoupon -> MallGoodsCoupon));
 
         vipBenefits.getDetails().forEach(item -> {
+            if (StrUtil.isBlank(item.getContent())) {
+                return;
+            }
+
             if (item.getIsClick() == 2) {
                 return;
             }
diff --git a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
index a6f65fd..e9ca1aa 100644
--- a/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
+++ b/src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefits.java
@@ -47,6 +47,11 @@
      */
     private String remark;
 
+    /**
+     * 是否在小程序上显示
+     */
+    private Integer isShow;
+
     @TableField(exist = false)
     private Integer isJump;
 
diff --git a/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java b/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java
index df60c35..f627dd8 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/IMallVipBenefitsService.java
@@ -18,4 +18,6 @@
     void editVipBenefits(MallVipBenefits mallVipBenefits);
 
     void getBenefits(Long id);
+
+    void switchBenefitsShow(Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java
index 5f91d71..487441b 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java
@@ -76,15 +76,17 @@
             return;
         }
 
-        if (CollUtil.isEmpty(mallVipBenefits.getDetails())) {
-            throw new FebsException("权益明细不能为空");
-        }
+//        if (CollUtil.isEmpty(mallVipBenefits.getDetails())) {
+//            throw new FebsException("权益明细不能为空");
+//        }
 
         this.baseMapper.insert(mallVipBenefits);
 
-        mallVipBenefits.getDetails().forEach(item -> {
-            item.setBenefitsId(mallVipBenefits.getId());
-        });
+        if (CollUtil.isNotEmpty(mallVipBenefits.getDetails())) {
+            mallVipBenefits.getDetails().forEach(item -> {
+                item.setBenefitsId(mallVipBenefits.getId());
+            });
+        }
         this.mallVipBenefitsDetailsService.saveBatch(mallVipBenefits.getDetails());
     }
 
@@ -280,4 +282,18 @@
         mallVipBenefitsRecordMapper.insert(record);
     }
 
+    @Override
+    public void switchBenefitsShow(Long id) {
+        MallVipBenefits vipBenefits = this.baseMapper.selectById(id);
+
+        MallVipBenefits update = new MallVipBenefits();
+        if (vipBenefits.getIsShow() == 1) {
+            update.setIsShow(2);
+        } else {
+            update.setIsShow(1);
+        }
+
+        update.setId(vipBenefits.getId());
+        this.baseMapper.updateById(update);
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
index 1972463..03b7aa1 100644
--- a/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/vip/service/impl/MallVipConfigServiceImpl.java
@@ -28,6 +28,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -48,9 +49,13 @@
     public List<MallVipConfig> findConfigList() {
         List<MallVipConfig> configs = this.baseMapper.selectVipConfigList();
         configs.forEach(item -> {
-            item.getBenefits().forEach(benefits -> {
+            List<MallVipBenefits> data = item.getBenefits().stream().filter(benefit -> {
+                return benefit.getIsShow() == 1;
+            }).peek(benefits -> {
                 benefits.setIsJump(CollUtil.isEmpty(benefits.getDetails()) ? 2 : 1);
-            });
+            }).collect(Collectors.toList());
+
+            item.setBenefits(data);
         });
         return configs;
     }
@@ -151,6 +156,10 @@
                 return false;
             }
 
+            if (item.getGainType() == 3 && item.getScoreMultiple() != null) {
+                return true;
+            }
+
             // 生日权益
             if (item.getGainType() == 2 && isBirthday) {
                 return true;
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..d514a17 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
@@ -3,11 +3,13 @@
 import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
 import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum;
+import cc.mrbird.febs.mall.entity.MallGoods;
 import cc.mrbird.febs.mall.entity.MallMember;
 import cc.mrbird.febs.mall.entity.MallOrderInfo;
 import cc.mrbird.febs.mall.entity.MallOrderItem;
 import cc.mrbird.febs.mall.mapper.MallMemberMapper;
 import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.service.IApiMallGoodsService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
 import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
 import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
@@ -27,8 +29,12 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.logging.Handler;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -43,6 +49,7 @@
     private final MallMemberMapper mallMemberMapper;
     private final MallVipConfigMapper mallVipConfigMapper;
     private final AgentProducer agentProducer;
+    private final IApiMallGoodsService mallGoodsService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -55,6 +62,7 @@
         Long memberId = mallOrderInfo.getMemberId();
         MallVipBenefits mallVipBenefits = mallVipConfigService.hasVipBenefits(memberId);
 
+        MallMember member = mallMemberMapper.selectById(memberId);
         BigDecimal multiple = BigDecimal.ONE;
         String name = "";
         if (mallVipBenefits != null) {
@@ -70,6 +78,39 @@
         mallMoneyFlowService.addMoneyFlow(memberId, new BigDecimal(score), ScoreFlowTypeEnum.BUY.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2);
         mallMemberWalletService.add(new BigDecimal(score), memberId, "prizeScore");
 
+        List<Long> itemGoodsIds = mallOrderInfo.getItems().stream().map(MallOrderItem::getGoodsId).distinct().collect(Collectors.toList());
+        List<MallGoods> goodsList = mallGoodsService.listByIds(itemGoodsIds);
+        Map<Long, MallGoods> goodsMap = goodsList.stream().collect(Collectors.toMap(MallGoods::getId, MallGoods -> MallGoods));
+
+        Map<Long, BigDecimal> recommendScoreMap = new HashMap<>();
+        mallOrderInfo.getItems().forEach(item -> {
+            if (StrUtil.isNotBlank(item.getMemberInviteId()) && !member.getInviteId().equals(item.getMemberInviteId())) {
+                MallGoods mallGoods = goodsMap.get(item.getGoodsId());
+                if (mallGoods.getStaticMulti() == null) {
+                    return;
+                }
+
+                BigDecimal multi = mallGoods.getStaticMulti().divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP);
+                MallMember mallMember = mallMemberMapper.selectInfoByInviteId(item.getMemberInviteId());
+                if (mallMember == null) {
+                    return;
+                }
+
+                BigDecimal recommendScore = recommendScoreMap.get(mallMember.getId());
+                recommendScore = recommendScore == null ? BigDecimal.ZERO : recommendScore;
+                recommendScore = recommendScore.add(item.getAmount().multiply(multi));
+
+                recommendScoreMap.put(mallMember.getId(), recommendScore);
+            }
+        });
+
+        recommendScoreMap.forEach((key, value) -> {
+            if (value != null) {
+                mallMoneyFlowService.addMoneyFlow(key, value, ScoreFlowTypeEnum.RECOMMEND.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2);
+                mallMemberWalletService.add(value, key, "prizeScore");
+            }
+        });
+
         agentProducer.sendVipLevelUp(orderId);
     }
 
diff --git a/src/main/resources/mapper/modules/MallVipConfigMapper.xml b/src/main/resources/mapper/modules/MallVipConfigMapper.xml
index 57a7c24..111b17c 100644
--- a/src/main/resources/mapper/modules/MallVipConfigMapper.xml
+++ b/src/main/resources/mapper/modules/MallVipConfigMapper.xml
@@ -19,6 +19,9 @@
             <id property="id" column="c_id" />
             <result property="name" column="c_name" />
             <result property="icon" column="c_icon" />
+            <result property="scoreMultiple" column="score_multiple" />
+            <result property="gainType" column="gain_type" />
+            <result property="isShow" column="is_show" />
 
             <collection property="details" ofType="cc.mrbird.febs.vip.entity.MallVipBenefitsDetails">
                 <id property="id" column="d_id" />
@@ -36,6 +39,7 @@
             ,benefits.id c_id
             ,benefits.name c_name
             ,benefits.icon c_icon
+            ,benefits.is_show
             ,details.id d_id
         from mall_vip_config config
             inner join mall_vip_config_benefits configBenefits on config.id=configBenefits.config_id
@@ -50,6 +54,8 @@
              ,benefits.id c_id
              ,benefits.name c_name
              ,benefits.icon c_icon
+             ,benefits.score_multiple
+             ,benefits.gain_type
         from mall_vip_config config
                  inner join mall_vip_config_benefits configBenefits on config.id=configBenefits.config_id
                  inner join mall_vip_benefits benefits on configBenefits.benefits_id=benefits.id
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
index 02ed611..55605b8 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsAddNew.html
@@ -103,11 +103,10 @@
                                             </div>
                                         </div>
 
-                                        <div class="layui-form-item febs-hide tc-set">
-                                            <label class="layui-form-label">静态倍数</label>
+                                        <div class="layui-form-item">
+                                            <label class="layui-form-label">推销员返积分比例(%)</label>
                                             <div class="layui-input-block">
-                                                <input type="text" name="staticMulti" placeholder="请输入静态倍数" autocomplete="off" class="layui-input">
-                                                <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分</div>
+                                                <input type="text" name="staticMulti" placeholder="请输入推销员返积分比例" autocomplete="off" class="layui-input">
                                             </div>
                                         </div>
 
diff --git a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
index 5cfd40f..ddd65fa 100644
--- a/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
+++ b/src/main/resources/templates/febs/views/modules/goods/goodsUpdateNew.html
@@ -112,13 +112,10 @@
                                             </div>
                                         </div>
 
-                                        <div class="layui-form-item febs-hide tc-set">
-                                            <label class="layui-form-label">静态倍数</label>
+                                        <div class="layui-form-item">
+                                            <label class="layui-form-label">推销员返积分比例</label>
                                             <div class="layui-input-block">
-                                                <input type="text" name="staticMulti" placeholder="请输入静态倍数"
-                                                       autoComplete="off" class="layui-input">
-                                                <div class="layui-form-mid layui-word-aux">支付后,赠送(购买金额*静态倍数)的赠送积分
-                                                </div>
+                                                <input type="text" name="staticMulti" placeholder="请输入推销员返积分比例" autocomplete="off" class="layui-input">
                                             </div>
                                         </div>
 
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
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
index 8eb1a87..53d5972 100644
--- a/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
+++ b/src/main/resources/templates/febs/views/modules/mallMember/moneyFlowList.html
@@ -49,6 +49,16 @@
                                             </select>
                                         </div>
                                     </div>
+                                    <div class="layui-inline">
+                                        <label class="layui-form-label layui-form-label-sm">资金类型</label>
+                                        <div class="layui-input-inline">
+                                            <select name="flowType">
+                                                <option value="">请选择</option>
+                                                <option value="1">余额</option>
+                                                <option value="3">积分</option>
+                                            </select>
+                                        </div>
+                                    </div>
 
                                     <div class="layui-inline">
                                         <label class="layui-form-label layui-form-label-sm">开始时间</label>
@@ -65,18 +75,6 @@
                                                    placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
                                         </div>
                                     </div>
-<!--                                    <div class="layui-inline">-->
-<!--                                        <label class="layui-form-label layui-form-label-sm">资金类型</label>-->
-<!--                                        <div class="layui-input-inline">-->
-<!--                                            <select name="flowType">-->
-<!--                                                <option value="">请选择</option>-->
-<!--                                                <option value="1">余额</option>-->
-<!--                                                <option value="2">赠送积分</option>-->
-<!--                                                <option value="3">竞猜积分</option>-->
-<!--                                                <option value="4">佣金</option>-->
-<!--                                            </select>-->
-<!--                                        </div>-->
-<!--                                    </div>-->
                                 </div>
                             </div>
                             <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
@@ -156,68 +154,76 @@
                     {field: 'amount', title: '金额', minWidth: 150,align:'left', totalRow:true},
                     {field: 'type', title: '流水类型',
                         templet: function (d) {
-                            if (d.type === 1) {
-                                return '<span>静态收益</span>'
-                            } else if (d.type === 2) {
-                                return '<span>直推奖</span>'
-                            } else if (d.type === 3) {
-                                return '<span>代理收益</span>'
-                            } else if (d.type === 4) {
-                                return '<span>排名收益</span>'
-                            }else if (d.type === 5) {
-                                return '<span>总监收益</span>'
-                            }else if (d.type === 6) {
-                                return '<span>社区店补</span>'
-                            }else if (d.type === 7) {
-                                return '<span>一代收益</span>'
-                            }else if (d.type === 8) {
-                                return '<span>提现</span>'
-                            }else if (d.type === 9) {
-                                return '<span>转账</span>'
-                            }else if (d.type === 10) {
-                                return '<span>余额支付</span>'
-                            }else if (d.type === 11) {
-                                return '<span>退款</span>'
-                            }else if (d.type === 12) {
-                                return '<span>佣金转竞猜积分</span>'
-                            }else if (d.type === 13) {
-                                return '<span>佣金转余额</span>'
-                            }else if (d.type === 14) {
-                                return '<span>竞猜积分签到</span>'
-                            }else if (d.type === 15) {
-                                return '<span>感恩奖</span>'
-                            }else if (d.type === 16) {
-                                return '<span>系统拨付</span>'
-                            }else if (d.type === 17) {
-                                return '<span>抽奖</span>'
-                            }else if (d.type === 18) {
-                                return '<span>充值</span>'
-                            }else if (d.type === 19) {
-                                return '<span>收益</span>'
-                            }else if (d.type === 20) {
-                                return '<span>赠送金额</span>'
-                            }else if (d.type === 21) {
-                                return '<span>微信支付</span>'
-                            }else if (d.type === 22) {
-                                return '<span>微信退款</span>'
-                            }else{
-                                return ''
+                            if (d.flowType === 3) {
+                                if (d.type === 1) {
+                                    return '<span>积分支付</span>'
+                                } else if (d.type === 2) {
+                                    return '<span>购买商品获得积分</span>'
+                                } else if (d.type === 3) {
+                                    return '<span>推荐下单获得积分</span>'
+                                }
+                            }
+
+                            if (d.flowType === 1) {
+                                if (d.type === 1) {
+                                    return '<span>静态收益</span>'
+                                } else if (d.type === 2) {
+                                    return '<span>直推奖</span>'
+                                } else if (d.type === 3) {
+                                    return '<span>代理收益</span>'
+                                } else if (d.type === 4) {
+                                    return '<span>排名收益</span>'
+                                }else if (d.type === 5) {
+                                    return '<span>总监收益</span>'
+                                }else if (d.type === 6) {
+                                    return '<span>社区店补</span>'
+                                }else if (d.type === 7) {
+                                    return '<span>一代收益</span>'
+                                }else if (d.type === 8) {
+                                    return '<span>提现</span>'
+                                }else if (d.type === 9) {
+                                    return '<span>转账</span>'
+                                }else if (d.type === 10) {
+                                    return '<span>余额支付</span>'
+                                }else if (d.type === 11) {
+                                    return '<span>退款</span>'
+                                }else if (d.type === 12) {
+                                    return '<span>佣金转竞猜积分</span>'
+                                }else if (d.type === 13) {
+                                    return '<span>佣金转余额</span>'
+                                }else if (d.type === 14) {
+                                    return '<span>竞猜积分签到</span>'
+                                }else if (d.type === 15) {
+                                    return '<span>感恩奖</span>'
+                                }else if (d.type === 16) {
+                                    return '<span>系统拨付</span>'
+                                }else if (d.type === 17) {
+                                    return '<span>抽奖</span>'
+                                }else if (d.type === 18) {
+                                    return '<span>充值</span>'
+                                }else if (d.type === 19) {
+                                    return '<span>收益</span>'
+                                }else if (d.type === 20) {
+                                    return '<span>赠送金额</span>'
+                                }else if (d.type === 21) {
+                                    return '<span>微信支付</span>'
+                                }else if (d.type === 22) {
+                                    return '<span>微信退款</span>'
+                                }else{
+                                    return ''
+                                }
                             }
                         }, minWidth: 80,align:'center'},
-                    // {field: 'flowType', title: '资金类型',
-                    //     templet: function (d) {
-                    //         if (d.flowType === 1) {
-                    //             return '余额';
-                    //         } else if(d.flowType === 2) {
-                    //             return '赠送积分'
-                    //         } else if(d.flowType === 3) {
-                    //             return '竞猜积分'
-                    //         } else if(d.flowType === 4) {
-                    //             return '佣金'
-                    //         } else {
-                    //             return '-';
-                    //         }
-                    //     }, minWidth: 80,align:'center'},
+                    {field: 'flowType', title: '资金类型',
+                        templet: function (d) {
+                            if (d.flowType === 1) {
+                                return '余额';
+                            } else if(d.flowType === 3) {
+                                return '积分'
+                            } else {
+                                return '-';
+                            }
+                        }, minWidth: 80,align:'center'},
                     {field: 'orderNo', title: '订单编号', minWidth: 150,align:'left'},
                     {field: 'createdTime', title: '创建时间', minWidth: 180,align:'center'}
                 ]]
@@ -238,7 +244,7 @@
                 name: $searchForm.find('input[name="name"]').val().trim(),
                 phone: $searchForm.find('input[name="phone"]').val().trim(),
                 type: $searchForm.find("select[name='type']").val(),
-                // flowType: $searchForm.find("select[name='flowType']").val(),
+                flowType: $searchForm.find("select[name='flowType']").val(),
             };
         }
 
diff --git a/src/main/resources/templates/febs/views/modules/vip/vip-setting.html b/src/main/resources/templates/febs/views/modules/vip/vip-setting.html
index ec8e5ef..47e2f20 100644
--- a/src/main/resources/templates/febs/views/modules/vip/vip-setting.html
+++ b/src/main/resources/templates/febs/views/modules/vip/vip-setting.html
@@ -55,7 +55,7 @@
     }
 </style>
 
-<script type="text/html" id="toolbar">
+<script type="text/html" id="toolbar1">
     <div class="layui-btn-container">
         <button class="layui-btn layui-btn-sm" type="button" lay-event="addCoupon">新增</button>
         <button class="layui-btn layui-btn-danger layui-btn-sm" type="button" lay-event="delCoupon">删除</button>
@@ -90,7 +90,7 @@
 
         table.render({
             elem: '#unAliveCouponItem'
-            ,toolbar:"#toolbar"
+            ,toolbar:"#toolbar1"
             ,cols: [[ //表头
                 {type: 'checkbox'}
                 , {field: 'day', title: '失活天数', edit:'text', width:250}
diff --git a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html
index b1cb41b..08a7f5e 100644
--- a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html
+++ b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-add.html
@@ -22,6 +22,7 @@
                                     <select name="gainType" class="gain-type" lay-filter="gain-type-select">
                                         <option value="1">会员日</option>
                                         <option value="2">会员生日</option>
+                                        <option value="3">其他</option>
                                     </select>
                                 </div>
                             </div>
diff --git a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-edit.html b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-edit.html
index 2330e99..03fbc04 100644
--- a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-edit.html
+++ b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-edit.html
@@ -28,6 +28,7 @@
                                     <select name="gainType" class="gain-type" lay-filter="gain-type-select">
                                         <option value="1">会员日</option>
                                         <option value="2">会员生日</option>
+                                        <option value="3">其他</option>
                                     </select>
                                 </div>
                             </div>
diff --git a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html
index aeec71e..4748cb6 100644
--- a/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html
+++ b/src/main/resources/templates/febs/views/modules/vip/vipBenefits-list.html
@@ -40,6 +40,14 @@
     <a lay-event="edit" shiro:hasPermission="vipBenefits:update"><i
             class="layui-icon febs-edit-area febs-blue">&#xe7a5;</i></a>
 </script>
+
+<script type="text/html" id="isShowSwitch">
+    {{# if(d.isShow === 1) { }}
+    <input type="checkbox" value={{d.id}} lay-text="显示|隐藏" checked lay-skin="switch" lay-filter="isShowSwitch">
+    {{# } else { }}
+    <input type="checkbox" value={{d.id}} lay-text="显示|隐藏" lay-skin="switch" lay-filter="isShowSwitch">
+    {{# } }}
+</script>
 <!-- 表格操作栏 end -->
 <script data-th-inline="none" type="text/javascript">
     // 引入组件并初始化
@@ -128,6 +136,7 @@
                             return '<a lay-event="seeImgThumb"><img id="seeImgThumb'+d.id+'" src="'+d.icon+'" alt=""></a>';
                         }, minWidth: 150, align: 'center'
                     },
+                    {templet: '#isShowSwitch', title: '是否在小程序显示', minWidth: 120, align: 'center'},
                     {field: 'remark', title: '备注', minWidth: 120, align: 'center'},
                     {field: 'createdTime', title: '创建时间', minWidth: 120, align: 'center'},
                     {
@@ -147,19 +156,11 @@
             };
         }
 
-        form.on('switch(isTopSwitch)', function (data) {
-            console.log(data.value);
-            if (data.elem.checked) {
-                febs.post(ctx + 'admin/news/topNews/' + data.value, null, function () {
-                    febs.alert.success('设置成功');
-                    $query.click();
-                });
-            } else {
-                febs.post(ctx + 'admin/news/unTopNews/' + data.value, null, function () {
-                    febs.alert.success('设置成功');
-                    $query.click();
-                });
-            }
+        form.on('switch(isShowSwitch)', function (data) {
+            febs.post(ctx + 'admin/vip/benefits/switchBenefitsShow/' + data.value, null, function () {
+                febs.alert.success('设置成功');
+                $query.click();
+            });
         })
     })
 </script>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/AgentTest.java b/src/test/java/cc/mrbird/febs/AgentTest.java
index 3a28cd9..a201510 100644
--- a/src/test/java/cc/mrbird/febs/AgentTest.java
+++ b/src/test/java/cc/mrbird/febs/AgentTest.java
@@ -805,11 +805,11 @@
 //    }
 //
 //
-//    @Autowired
-//    private AgentConsumer agentConsumer;
-//
-//    @Test
-//    public void orderReturnTest() {
-//        agentConsumer.orderReturnMoney("7");
-//    }
+    @Autowired
+    private AgentConsumer agentConsumer;
+
+    @Test
+    public void orderReturnTest() {
+        agentConsumer.getScoreMsg(215L);
+    }
 }
diff --git a/src/test/java/cc/mrbird/febs/PayTest.java b/src/test/java/cc/mrbird/febs/PayTest.java
index 7dd1ad9..0ed41da 100644
--- a/src/test/java/cc/mrbird/febs/PayTest.java
+++ b/src/test/java/cc/mrbird/febs/PayTest.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.SpringContextHolder;
 import cc.mrbird.febs.pay.util.WechatConfigure;
+import cc.mrbird.febs.vip.service.IMallVipConfigService;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.api.AlipayApiException;
@@ -59,4 +60,12 @@
             redisUtils.set(accessTokenKey,accessToken);
         }
     }
+
+    @Autowired
+    private IMallVipConfigService mallVipConfigService;
+
+    @Test
+    public void test() {
+        mallVipConfigService.findConfigList();
+    }
 }
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index bc26aac..b7b477c 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -971,6 +971,6 @@
     @Test
     public void aaaTest() {
 //        agentConsumer.vipLevelUp(133L);
-        agentConsumer.getScoreMsg(152L);
+        agentConsumer.getScoreMsg(217L);
     }
 }

--
Gitblit v1.9.1