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