From 4e34319c9d3f57bd20e12e45e8ecbae8e0435591 Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Sun, 04 Jun 2023 00:28:04 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java     |   14 +++++--
 src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java               |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java       |   39 +++++++++++++++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java |    2 +
 src/main/resources/templates/febs/views/modules/system/bonusSetting.html    |   59 ++++++++++++++++++++++++++++-
 5 files changed, 109 insertions(+), 7 deletions(-)

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 053e4d1..d824cdd 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
@@ -6,6 +6,7 @@
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cc.mrbird.febs.mall.mapper.MallSystemSettingMapper;
 import cc.mrbird.febs.mall.service.ICommonService;
 import cc.mrbird.febs.mall.service.IMemberProfitService;
 import cc.mrbird.febs.mall.service.ISystemService;
@@ -14,12 +15,11 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Map;
 
 @Slf4j
@@ -40,6 +40,7 @@
     private final AgentProducer agentProducer;
 
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
+    private final MallSystemSettingMapper mallSystemSettingMapper;
 
     @PostMapping(value = "/bonusSystemSetting")
     public FebsResponse bonusSystemSetting(@RequestBody Map<String, Object> map) {
@@ -200,4 +201,9 @@
         agentProducer.sendForceVoucherSaleMsg(scorePriceDic.getValue());
         return new FebsResponse().success();
     }
+
+    @GetMapping(value = "/bonusSetting")
+    public FebsResponse bonusSetting() {
+        return new FebsResponse().success().data(Collections.singletonList(mallSystemSettingMapper.selectById(1L)));
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java b/src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java
index e651261..7a341cf 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java
@@ -24,4 +24,6 @@
     private Long orderItemId;
 
     private Date createTime;
+
+    private String comment;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
index 49f1683..8ef511c 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -465,6 +465,8 @@
         }
 
         changeSystemBonus(totalBonus, null, null);
+
+        bonusRecord(totalBonus, 1, null, null);
         log.info("###全网分红执行--end--###");
     }
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java
index c702346..dbef327 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java
@@ -1,15 +1,25 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.mall.dto.CashOutSettingDto;
 import cc.mrbird.febs.mall.entity.DataDictionaryCustom;
+import cc.mrbird.febs.mall.entity.MallBonusRecord;
+import cc.mrbird.febs.mall.entity.MallSystemSetting;
 import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper;
+import cc.mrbird.febs.mall.mapper.MallBonusRecordMapper;
+import cc.mrbird.febs.mall.mapper.MallSystemSettingMapper;
 import cc.mrbird.febs.mall.service.ICommonService;
 import cc.mrbird.febs.mall.service.ISystemService;
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -25,12 +35,41 @@
 
     private final DataDictionaryCustomMapper dictionaryCustomMapper;
     private final ICommonService commonService;
+    private final MallSystemSettingMapper mallSystemSettingMapper;
+    private final MallBonusRecordMapper mallBonusRecordMapper;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void bonusSystemSetting(Map<String, Object> map) {
         for (Map.Entry<String, Object> entry : map.entrySet()) {
             if (entry.getValue() instanceof String) {
                 dictionaryCustomMapper.updateDicValueByTypeAndCode(null, entry.getKey(), (String) entry.getValue());
+            } else if (entry.getValue() instanceof LinkedHashMap) {
+                LinkedHashMap<String, Object> bonusSettingMap = (LinkedHashMap<String, Object>) entry.getValue();
+                LambdaQueryWrapper<MallSystemSetting> update = new LambdaQueryWrapper<>();
+                update.eq(MallSystemSetting::getId, bonusSettingMap.get("id"))
+                        .eq(MallSystemSetting::getRevision, bonusSettingMap.get("revision"));
+
+                MallSystemSetting old = mallSystemSettingMapper.selectById(1L);
+                MallSystemSetting setting = new MallSystemSetting();
+                setting.setRevision((Integer) bonusSettingMap.get("revision") + 1);
+                setting.setId(Long.parseLong(bonusSettingMap.get("id").toString()));
+                setting.setAllBonus(new BigDecimal(bonusSettingMap.get("allBonus").toString()));
+                setting.setAgentBonus(new BigDecimal(bonusSettingMap.get("agentBonus").toString()));
+                setting.setPartnerBonus(new BigDecimal(bonusSettingMap.get("partnerBonus").toString()));
+                int i = mallSystemSettingMapper.update(setting, update);
+                if (i == 0) {
+                    throw new FebsException("请刷新页面");
+                }
+
+                if (old.getAllBonus().compareTo(setting.getAllBonus()) != 0 || old.getAgentBonus().compareTo(setting.getAgentBonus()) != 0 || old.getPartnerBonus().compareTo(setting.getPartnerBonus()) != 0) {
+                    MallBonusRecord record = new MallBonusRecord();
+                    record.setAmount(BigDecimal.ZERO);
+                    record.setType(999);
+                    record.setComment(JSONObject.toJSONString(old) + "-" + JSONObject.toJSONString(setting));
+                    record.setCreateTime(new Date());
+                    mallBonusRecordMapper.insert(record);
+                }
             } else {
                 List<LinkedHashMap<String, Object>> value = (List<LinkedHashMap<String, Object>>) entry.getValue();
 
diff --git a/src/main/resources/templates/febs/views/modules/system/bonusSetting.html b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html
index e8d67b3..5f2a88b 100644
--- a/src/main/resources/templates/febs/views/modules/system/bonusSetting.html
+++ b/src/main/resources/templates/febs/views/modules/system/bonusSetting.html
@@ -74,6 +74,9 @@
                         </div>
                         <div class="layui-word-aux" style="margin-left: 150px;"></div>
                     </div>
+                    <div class="layui-tab-item layui-show">
+                        <table id="bonusPool" lay-filter="bonusPool"></table>
+                    </div>
                 </div>
                 <div class="layui-card-footer">
                     <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="bonus-setting-form-submit" id="submit">保存</button>
@@ -102,9 +105,11 @@
             form = layui.form,
             table = layui.table,
             validate = layui.validate,
-            $view = $('#bonus-setting')
+            bonusPool
+            , $view = $('#bonus-setting')
             , laytpl = layui.laytpl
-            , agentBonusArr;
+            , agentBonusArr
+            , bonusPoolArr;
 
         form.verify(validate);
         form.render();
@@ -117,6 +122,18 @@
             ]]
             ,data: []
         });
+
+
+        table.render({
+            elem: '#bonusPool'
+            ,cols: [[ //表头
+                {field: 'allBonus', title: '全网分红', edit:'text'}
+                ,{field: 'agentBonus', title: '代理分红', edit:'text'}
+                ,{field: 'partnerBonus', title: '股东分红', edit:'text'}
+            ]]
+            ,data: []
+        });
+
         table.on('edit(agentBonus)', function(obj){
             var value = obj.value //得到修改后的值
                 ,data = obj.data //得到所在行所有键值
@@ -131,6 +148,38 @@
                 }
             }
         });
+
+        table.on('edit(bonusPool)', function(obj){
+            var value = obj.value //得到修改后的值
+                ,data = obj.data //得到所在行所有键值
+                ,field = obj.field; //得到字段
+
+            for (let i = 0; i < bonusPoolArr.length; i++) {
+                if (bonusPoolArr[i].id === data.id) {
+                    var valueData = {};
+                    valueData.allBonus = data.allBonus;
+                    valueData.agentBonus = data.agentBonus;
+                    valueData.partnerBonus = data.partnerBonus;
+                    valueData.revision = data.revision;
+                    valueData.id = data.id;
+                    bonusPoolArr[i] = valueData;
+                }
+            }
+        });
+
+        getBonusSetting();
+        function getBonusSetting() {
+            $.get(ctx + 'admin/system/bonusSetting', function (r) {
+                if (r.code === 200) {
+                    var data = r.data;
+                    bonusPoolArr = data;
+                    bonusPool =data;
+                    table.reload('bonusPool', {
+                        data : data
+                    });
+                }
+            });
+        }
 
         dicDataReq("DIRECT_BONUS_SETTING");
         dicDataReq("MEIYE_BONUS_TYPE");
@@ -151,7 +200,6 @@
 
                     if ("MEIYE_BONUS_TYPE" == type) {
                         var bonusType = {};
-                        console.log(1111);
                         for (let i = 0; i < data.length; i++) {
                             bonusType[data[i].code] = data[i].value;
                         }
@@ -164,6 +212,7 @@
 
         form.on('submit(bonus-setting-form-submit)', function (data) {
             data.field.agentBonus = agentBonusArr;
+            data.field.bonusPool = bonusPoolArr[0];
             $.ajax({
                 'url':ctx + 'admin/system/bonusSystemSetting',
                 'type':'post',
@@ -173,13 +222,17 @@
                 'data':JSON.stringify(data.field),
                 'success':function (data) {
                     if (data.code == 200) {
+                        getBonusSetting();
                         febs.alert.success(data.message);
+                    } else {
+                        febs.alert.warn(data.message);
                     }
                 },
                 'error':function () {
                     febs.alert.warn('服务器繁忙');
                 }
             })
+
             return false;
         });
     });

--
Gitblit v1.9.1