From ba2eebb488f3d3b2820441bc5f01bbeaf2cd4a01 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 01 Mar 2023 17:14:16 +0800
Subject: [PATCH] 增加活动公告

---
 src/main/java/cc/mrbird/febs/mall/dto/AdminAgentAmountDto.java               |    3 
 src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java      |   42 ++++++++++
 src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java            |   34 +++++++
 src/main/resources/templates/febs/views/modules/system/agentAmountSet.html   |   50 ++++++++++++
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java    |    6 +
 src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java       |   17 ++++
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java       |   10 ++
 src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java           |    1 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java         |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |   21 +++++
 10 files changed, 178 insertions(+), 8 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
index fe8cb5c..f640c22 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/WebMvcConfigure.java
@@ -25,6 +25,7 @@
         registration.excludePathPatterns("/api/news/**");
         registration.excludePathPatterns("/api/member/cashOutSetting");
         registration.excludePathPatterns("/api/member/agentDetail");
+        registration.excludePathPatterns("/api/member/activityInfo");
         registration.excludePathPatterns("/api/leader/leaderList");
         registration.excludePathPatterns("/api/leader/leaderListInFence");
         registration.excludePathPatterns("/api/leader/noLoginLeaderTitle");
diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index 606d37c..d038e24 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -8,10 +8,16 @@
     //微信订阅模板ID,
     // 微信订单通知
 //    WX_TEMPLATE_ID_ONE("WX_TEMPLATE", "WX_TEMPLATE_ID_ONE"),
-    // 合伙人权益
-    AGENT_DETAILS("AGENT_DETAILS", "AGENT_DETAILS"),
+    // 赠送金额
+    GIVE_AMOUNT("CHARGE_SET", "GIVE_AMOUNT"),
+    // 活动公告内容
+    ACTIVITY_BULLETIN("CHARGE_SET", "ACTIVITY_BULLETIN"),
+    // 充值送金额开关
+    GIVE_STATE("CHARGE_SET", "GIVE_STATE"),
     // 成为合伙人的充值金额
     PRICE_AMOUNT("AGENT_PRICE", "PRICE_AMOUNT"),
+    // 合伙人权益
+    AGENT_DETAILS("AGENT_DETAILS", "AGENT_DETAILS"),
     // 充值到账通知
     WX_TEMPLATE_ID_TWO("WX_TEMPLATE", "WX_TEMPLATE_ID_TWO"),
     // 提货通知
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
index 6b0cc57..9ca3b6f 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
@@ -20,6 +20,7 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.math.BigDecimal;
 import java.util.Map;
 
 @Slf4j
@@ -52,12 +53,51 @@
         DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 DataDictionaryEnum.PRICE_AMOUNT.getType(), DataDictionaryEnum.PRICE_AMOUNT.getCode()
         );
-
         if(ObjectUtil.isEmpty(dic)){
             return new FebsResponse().fail().message("请刷新页面重试");
         }
+
+        DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_STATE.getType(),
+                DataDictionaryEnum.GIVE_STATE.getCode());
+        if(ObjectUtil.isEmpty(giveStateDic)){
+            return new FebsResponse().fail().message("请刷新页面重试");
+        }
+
+        DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ACTIVITY_BULLETIN.getType(),
+                DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
+        if(ObjectUtil.isEmpty(activityBulletinDic)){
+            return new FebsResponse().fail().message("请刷新页面重试");
+        }
+
+        DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_AMOUNT.getType(),
+                DataDictionaryEnum.GIVE_AMOUNT.getCode());
+        if(ObjectUtil.isEmpty(giveAmountDic)){
+            return new FebsResponse().fail().message("请刷新页面重试");
+        }
+
+        String giveState = adminAgentAmountDto.getGiveState();
+        if(1 == Integer.parseInt(giveState)){
+            if(ObjectUtil.isEmpty(adminAgentAmountDto.getActivityBulletin())){
+                return new FebsResponse().fail().message("活动公告不能为空");
+            }
+            if(ObjectUtil.isEmpty(adminAgentAmountDto.getActivityBulletin())
+            || BigDecimal.ZERO.compareTo(new BigDecimal(adminAgentAmountDto.getActivityBulletin())) > 0){
+                return new FebsResponse().fail().message("请输入正确的赠送金额");
+            }
+        }
+
         dic.setValue(adminAgentAmountDto.getAgentAmountValue());
         dataDictionaryCustomMapper.updateById(dic);
+
+        giveStateDic.setValue(adminAgentAmountDto.getGiveState());
+        dataDictionaryCustomMapper.updateById(giveStateDic);
+
+        activityBulletinDic.setValue(adminAgentAmountDto.getActivityBulletin());
+        dataDictionaryCustomMapper.updateById(activityBulletinDic);
+
+        giveAmountDic.setValue(adminAgentAmountDto.getGiveAmount());
+        dataDictionaryCustomMapper.updateById(giveAmountDic);
+
         return new FebsResponse().success();
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
index 7bc1690..b392bf8 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -207,4 +207,10 @@
         return memberService.agentDetail();
     }
 
+    @ApiOperation(value = "活动公告")
+    @GetMapping(value = "/activityInfo")
+    public FebsResponse activityInfo() {
+        return memberService.activityInfo();
+    }
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
index e4ef506..229fa6c 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -46,11 +46,26 @@
     public String agentAmountSet(Model model) {
         DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(),
                 DataDictionaryEnum.PRICE_AMOUNT.getCode());
+        DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_STATE.getType(),
+                DataDictionaryEnum.GIVE_STATE.getCode());
+        DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.ACTIVITY_BULLETIN.getType(),
+                DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
+        DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.GIVE_AMOUNT.getType(),
+                DataDictionaryEnum.GIVE_AMOUNT.getCode());
         AdminAgentAmountDto adminAgentAmountDto = new AdminAgentAmountDto();
         if (dic != null) {
             adminAgentAmountDto.setAgentAmountValue(dic.getValue());
-            model.addAttribute("agentAmountSet", adminAgentAmountDto);
         }
+        if (giveStateDic != null) {
+            adminAgentAmountDto.setGiveState(giveStateDic.getValue());
+        }
+        if (activityBulletinDic != null) {
+            adminAgentAmountDto.setActivityBulletin(activityBulletinDic.getValue());
+        }
+        if (giveAmountDic != null) {
+            adminAgentAmountDto.setGiveAmount(giveAmountDic.getValue());
+        }
+        model.addAttribute("agentAmountSet", adminAgentAmountDto);
         return FebsUtil.view("modules/system/agentAmountSet");
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentAmountDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentAmountDto.java
index d60a668..174d6db 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentAmountDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AdminAgentAmountDto.java
@@ -9,4 +9,7 @@
 public class AdminAgentAmountDto {
 
     private String agentAmountValue;
+    private String giveState;
+    private String activityBulletin;
+    private String giveAmount;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index 3b9c789..1295350 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -79,4 +79,6 @@
     void updateMemberAgent(Long memberId);
 
     FebsResponse agentDetail();
+
+    FebsResponse activityInfo();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 8db91f3..73e0c7a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -802,6 +802,27 @@
         return new FebsResponse().success().data(map);
     }
 
+    @Override
+    public FebsResponse activityInfo() {
+        DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.ACTIVITY_BULLETIN.getType(), DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
+        DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.GIVE_AMOUNT.getType(), DataDictionaryEnum.GIVE_AMOUNT.getCode());
+        DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.GIVE_STATE.getType(), DataDictionaryEnum.GIVE_STATE.getCode());
+        Map<String, Object> map = new HashMap<>();
+        if(ObjectUtil.isNotEmpty(activityBulletinDic)){
+            map.put("activityBulletin",
+                    ObjectUtil.isEmpty(activityBulletinDic.getValue()) ? "暂无活动" : activityBulletinDic.getValue());
+        }
+        if(ObjectUtil.isNotEmpty(giveAmountDic)){
+            map.put("giveAmount",
+                    ObjectUtil.isEmpty(giveAmountDic.getValue()) ? 0 : giveAmountDic.getValue());
+        }
+        map.put("giveState",giveStateDic.getValue());
+        return new FebsResponse().success().data(map);
+    }
+
     private  String getXcxLoginUrl(String code) {
         String wechatLoginUrl =xcxProperties.getWecharLoginUrl();
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
index 61e816c..f3b8cc3 100644
--- a/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
+++ b/src/main/java/cc/mrbird/febs/pay/controller/XcxPayController.java
@@ -1,9 +1,7 @@
 package cc.mrbird.febs.pay.controller;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
-import cc.mrbird.febs.common.enumerates.OrderDeliveryStateEnum;
-import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
+import cc.mrbird.febs.common.enumerates.*;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.SpringContextHolder;
@@ -15,6 +13,7 @@
 import cc.mrbird.febs.mall.mapper.*;
 import cc.mrbird.febs.mall.service.IApiMallMemberService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
 import cc.mrbird.febs.pay.model.NotifyData;
 import cc.mrbird.febs.pay.model.OrderStateDto;
 import cc.mrbird.febs.pay.model.OrderStateMsgVo;
@@ -66,6 +65,8 @@
     MallMemberMapper mallMemberMapper;
     @Autowired
     DataDictionaryCustomMapper dataDictionaryCustomMapper;
+    @Autowired
+    IMallMoneyFlowService mallMoneyFlowService;
     @Autowired
     RedisUtils redisUtils;
     @Autowired
@@ -143,6 +144,33 @@
                             mallMoneyFlow.setStatus(2);
                             mallMoneyFlowMapper.updateById(mallMoneyFlow);
 
+                            /**
+                             * 充值赠送金额
+                             */
+                            DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                                    DataDictionaryEnum.GIVE_STATE.getType(),
+                                    DataDictionaryEnum.GIVE_STATE.getCode());
+
+                            DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                                    DataDictionaryEnum.GIVE_AMOUNT.getType(),
+                                    DataDictionaryEnum.GIVE_AMOUNT.getCode());
+                            if(ObjectUtil.isNotEmpty(giveStateDic)
+                                && "1" == giveStateDic.getValue()
+                                    && ObjectUtil.isNotEmpty(giveAmountDic)){
+                                BigDecimal giveAmount = ObjectUtil.isEmpty(giveAmountDic.getValue()) ?
+                                        BigDecimal.ZERO :
+                                        new BigDecimal(giveAmountDic.getValue()).abs().setScale(2,BigDecimal.ROUND_DOWN);
+
+                                mallMoneyFlowService.addMoneyFlow(
+                                        memberId,
+                                        giveAmount,
+                                        MoneyFlowTypeEnum.RECHARGE.getValue(),
+                                        rechargeNo+"ZS",
+                                        FlowTypeEnum.BALANCE.getValue());
+
+                                memberWalletService.addBalance(giveAmount,memberId);
+                            }
+
                             RechargeWalletMessageSendDto rechargeWalletMessageSendDto = new RechargeWalletMessageSendDto();
                             rechargeWalletMessageSendDto.setRechargeNo(rechargeNo);
                             rechargeWalletMessageSendDto.setRechargeAmount(payMoney.toString());
diff --git a/src/main/resources/templates/febs/views/modules/system/agentAmountSet.html b/src/main/resources/templates/febs/views/modules/system/agentAmountSet.html
index 44a61db..bf9b704 100644
--- a/src/main/resources/templates/febs/views/modules/system/agentAmountSet.html
+++ b/src/main/resources/templates/febs/views/modules/system/agentAmountSet.html
@@ -11,6 +11,30 @@
                         </div>
                         <div class="layui-word-aux" style="margin-left: 150px;">申请成为合伙人需要充值的金额数目</div>
                     </div>
+
+                    <div class="layui-form-item">
+                        <label class="layui-form-label">充值送金额:</label>
+                        <div class="layui-input-block">
+                            <input type="radio" name="giveState" value="1" title="开启" lay-filter="giveStateOpen" />
+                            <input type="radio" name="giveState" value="2" title="关闭" lay-filter="giveStateOpen" checked/>
+                        </div>
+                    </div>
+                    <div class="layui-form-item activityBulletin-input  febs-hide">
+                        <label class="layui-form-label">活动公告:</label>
+                        <div class="layui-input-block">
+                            <input id="activityBulletin" type="text" name="activityBulletin" placeholder="" autocomplete="off" class="layui-input">
+                            <div class="layui-form-mid layui-word-aux">活动公告为一句话,在首页滚动。</div>
+                        </div>
+                    </div>
+
+                    <div class="layui-form-item giveAmount-input febs-hide">
+                        <label class="layui-form-label ">赠送金额:</label>
+                        <div class="layui-input-block">
+                            <input id="giveAmount" type="text" name="giveAmount"
+                                   lay-verify="" autocomplete="off" class="layui-input" >
+                        </div>
+                        <div class="layui-word-aux" style="margin-left: 150px;">赠送的金额数目</div>
+                    </div>
                 </div>
 
                 <div class="layui-card-footer">
@@ -49,10 +73,34 @@
         form.render();
 
         function initagentAmountSetValue() {
+            alert(agentAmountSet.giveState);
             form.val("agent-amount-set-form", {
-                "agentAmountValue": agentAmountSet.agentAmountValue
+                "agentAmountValue": agentAmountSet.agentAmountValue,
+                "giveState": agentAmountSet.giveState,
+                "activityBulletin": agentAmountSet.activityBulletin,
+                "giveAmount": agentAmountSet.giveAmount,
             });
+
+            if (agentAmountSet.giveState == 1) {
+                $('.activityBulletin-input').show();
+                $('.giveAmount-input').show();
+            } else {
+                $('.activityBulletin-input').hide();
+                $('.giveAmount-input').hide();
+            }
         }
+        //页面radio切换显示隐藏
+        form.on('radio(giveStateOpen)', function(data){
+            if (data.value == 1) {
+                $('.activityBulletin-input').show();
+                $('.giveAmount-input').show();
+            } else {
+                $('.activityBulletin-input').hide();
+                $('.giveAmount-input').hide();
+                document.getElementById('activityBulletin').value = "";
+                document.getElementById('giveAmount').value = "";
+            }
+        });
 
         form.on('submit(agent-amount-set-form-submit)', function (data) {
             console.log(data);

--
Gitblit v1.9.1