| | |
| | | package cc.mrbird.febs.vip.service.impl; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.ScoreFlowTypeEnum; |
| | | import cc.mrbird.febs.mall.entity.MallGoods; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | |
| | | import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper; |
| | | import cc.mrbird.febs.mall.service.IApiMallGoodsService; |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; |
| | | import cc.mrbird.febs.mall.service.IApiMallOrderInfoService; |
| | | import cc.mrbird.febs.mall.service.IMallMoneyFlowService; |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import cc.mrbird.febs.vip.entity.MallVipBenefits; |
| | |
| | | import cc.mrbird.febs.vip.service.IVipCommonService; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.logging.Handler; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | |
| | | name = mallVipBenefits.getName(); |
| | | } |
| | | |
| | | |
| | | List<String> skuNames = mallOrderInfo.getItems().stream().map(MallOrderItem::getSkuName).collect(Collectors.toList()); |
| | | double sum = mallOrderInfo.getItems().stream().map(MallOrderItem::getAmount).mapToDouble(BigDecimal::doubleValue).sum(); |
| | | |
| | | int score = multiple.multiply(BigDecimal.valueOf(sum)).intValue(); |
| | | |
| | | log.info("会员:{},购买商品:{},购买金额:{},会员等级:{},会员等级名称:{},会员等级积分倍数:{},会员获得积分:{}", |
| | | member.getName(), |
| | | skuNames, |
| | | sum, |
| | | member.getLevel(), |
| | | name, |
| | | multiple, |
| | | score); |
| | | mallMoneyFlowService.addMoneyFlow(memberId, new BigDecimal(score), ScoreFlowTypeEnum.BUY.getValue(), mallOrderInfo.getOrderNo(), FlowTypeEnum.PRIZE_SCORE.getValue(), CollUtil.join(skuNames, ","), 2); |
| | | mallMemberWalletService.add(new BigDecimal(score), memberId, "prizeScore"); |
| | | |
| | | List<Long> itemGoodsIds = mallOrderInfo.getItems().stream().map(MallOrderItem::getGoodsId).distinct().collect(Collectors.toList()); |
| | | List<MallGoods> goodsList = mallGoodsService.listByIds(itemGoodsIds); |
| | | Map<Long, MallGoods> goodsMap = goodsList.stream().collect(Collectors.toMap(MallGoods::getId, MallGoods -> MallGoods)); |
| | | Map<Long, MallGoods> goodsMap = goodsList.stream() |
| | | .filter( |
| | | goods -> ObjectUtil.isNotEmpty(goods.getStaticMulti()) |
| | | ) |
| | | .collect(Collectors.toMap(MallGoods::getId, MallGoods -> MallGoods)); |
| | | |
| | | Map<Long, BigDecimal> recommendScoreMap = new HashMap<>(); |
| | | mallOrderInfo.getItems().forEach(item -> { |
| | | if (StrUtil.isNotBlank(item.getMemberInviteId()) && !member.getInviteId().equals(item.getMemberInviteId())) { |
| | | MallGoods mallGoods = goodsMap.get(item.getGoodsId()); |
| | | if (mallGoods.getStaticMulti() == null) { |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return; |
| | | } |
| | | |