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; }); });