fix
Hentua
2023-06-04 4e34319c9d3f57bd20e12e45e8ecbae8e0435591
fix
5 files modified
116 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java 14 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/SystemServiceImpl.java 39 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/bonusSetting.html 59 ●●●●● patch | view | raw | blame | history
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)));
    }
}
src/main/java/cc/mrbird/febs/mall/entity/MallBonusRecord.java
@@ -24,4 +24,6 @@
    private Long orderItemId;
    private Date createTime;
    private String comment;
}
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--###");
    }
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();
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;
        });
    });