| | |
| | | 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.AppVersion; |
| | | import cc.mrbird.febs.mall.entity.DataDictionaryCustom; |
| | | import cc.mrbird.febs.mall.mapper.AppVersionMapper; |
| | | import cc.mrbird.febs.mall.mapper.DataDictionaryCustomMapper; |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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) { |
| | |
| | | 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.setCostAmount(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); |
| | | } |
| | | } |
| | | } |
| | | } |