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;
|
|
/**
|
* @author wzy
|
* @date 2022-05-19
|
**/
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class SystemServiceImpl implements ISystemService {
|
|
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();
|
|
for (LinkedHashMap<String, Object> dic : value) {
|
String type = (String) dic.get("type");
|
String code = (String) dic.get("code");
|
String dataValue = (String) dic.get("value");
|
dictionaryCustomMapper.updateDicValueByTypeAndCode(type, code, dataValue);
|
}
|
}
|
}
|
}
|
|
@Override
|
public void cashOutSetting(String type, String code, CashOutSettingDto cashOutSettingDto, String 提现设置) {
|
|
}
|
}
|