package cc.mrbird.febs.mall.service.impl;
|
|
import cc.mrbird.febs.common.enumerates.MemberLevelEnum;
|
import cc.mrbird.febs.common.utils.AppContants;
|
import cc.mrbird.febs.common.utils.RedisUtils;
|
import cc.mrbird.febs.mall.entity.*;
|
import cc.mrbird.febs.mall.mapper.*;
|
import cc.mrbird.febs.mall.service.ICommonService;
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.util.StrUtil;
|
import com.alibaba.fastjson.JSONObject;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* @author wzy
|
* @date 2021-09-16
|
**/
|
@Slf4j
|
@Service
|
@RequiredArgsConstructor
|
public class CommonService implements ICommonService {
|
private final RedisUtils redisUtils;
|
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
private final AppVersionMapper appVersionMapper;
|
private final MallOrderInfoMapper mallOrderInfoMapper;
|
private final MallMemberMapper memberMapper;
|
private final MallGoodsMapper mallGoodsMapper;
|
private final MallGoodsSkuMapper mallGoodsSkuMapper;
|
private final MallAchieveRecordMapper mallAchieveRecordMapper;
|
|
@Override
|
public boolean verifyCode(String account, String code) {
|
if ("SMS_CODE".equals(code)) {
|
return true;
|
}
|
|
String cacheCode = redisUtils.getString(AppContants.VERIFY_CODE_PREFIX + account);
|
if (StrUtil.isBlank(cacheCode)) {
|
return false;
|
}
|
if (code.equals(cacheCode)) {
|
redisUtils.del(AppContants.VERIFY_CODE_PREFIX + account);
|
return true;
|
} else {
|
return false;
|
}
|
}
|
|
@Override
|
public List<DataDictionaryCustom> findDataDicByType(String type) {
|
return dataDictionaryCustomMapper.selectDicByType(type);
|
}
|
|
@Override
|
public List<AppVersion> findAppVersion() {
|
return appVersionMapper.selectList(null);
|
}
|
|
@Override
|
public void addDataDic(String type, String code, Object value, String description) {
|
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code);
|
|
String data = JSONObject.toJSONString(value);
|
if (dic != null) {
|
dic.setValue(data);
|
dataDictionaryCustomMapper.updateById(dic);
|
return;
|
}
|
|
dic = new DataDictionaryCustom();
|
dic.setCode(code);
|
dic.setType(type);
|
dic.setValue(data);
|
dic.setDescription(description);
|
dataDictionaryCustomMapper.insert(dic);
|
}
|
|
@Override
|
public void updateDataDic(String type, String code, String value) {
|
DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code);
|
if (dic != null) {
|
dic.setValue(value);
|
dataDictionaryCustomMapper.updateById(dic);
|
}
|
}
|
|
@Override
|
public void addAchieveAndUpdateLevel(Long orderId,Long memberId){
|
MallOrderInfo orderInfo = mallOrderInfoMapper.selectById(orderId);
|
MallMember member = memberMapper.selectById(memberId);
|
|
boolean hasTc = false;
|
BigDecimal achieveAmount = BigDecimal.ZERO;
|
List<MallOrderItem> orderItems = mallOrderInfoMapper.getMallOrderItemByOrderId(orderId);
|
if (CollUtil.isNotEmpty(orderItems)) {
|
for (MallOrderItem orderItem : orderItems) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(orderItem.getGoodsId());
|
MallGoodsSku sku = mallGoodsSkuMapper.selectById(orderItem.getSkuId());
|
if (mallGoods.getIsNormal() == 2) {
|
hasTc = true;
|
achieveAmount = achieveAmount.add(sku.getPresentPrice().multiply(new BigDecimal(orderItem.getCnt())));
|
}
|
}
|
}
|
|
if (hasTc){
|
if(achieveAmount.compareTo(BigDecimal.ZERO) > 0) {
|
// 添加业绩
|
MallAchieveRecord mallAchieveRecord = new MallAchieveRecord();
|
mallAchieveRecord.setMemberId(memberId);
|
mallAchieveRecord.setAmount(achieveAmount);
|
mallAchieveRecord.setAchieveTime(orderInfo.getPayTime());
|
mallAchieveRecord.setOrderId(orderInfo.getId());
|
mallAchieveRecord.setIsNormal(2);
|
mallAchieveRecord.setPayTime(orderInfo.getPayTime());
|
mallAchieveRecordMapper.insert(mallAchieveRecord);
|
//得到三倍补助
|
// BigDecimal multiply = achieveAmount.multiply(new BigDecimal(3));
|
// memberWalletService.add(multiply, memberId, "commission");
|
|
}
|
if(member.getLevel().equals(MemberLevelEnum.FANS.getType())){
|
member.setLevel(MemberLevelEnum.NORMAL.getType());
|
memberMapper.updateById(member);
|
}
|
}
|
}
|
}
|