生日有礼修改
This commit is contained in:
parent
bd61e9d512
commit
7cc7c1a9e3
|
|
@ -16,6 +16,7 @@ import com.czg.market.dto.MkConsumeDiscountDTO;
|
||||||
import com.czg.market.entity.*;
|
import com.czg.market.entity.*;
|
||||||
import com.czg.market.service.MkConsumeCashbackRecordService;
|
import com.czg.market.service.MkConsumeCashbackRecordService;
|
||||||
import com.czg.market.vo.MkConsumeCashbackVO;
|
import com.czg.market.vo.MkConsumeCashbackVO;
|
||||||
|
import com.czg.utils.AssertUtil;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.core.update.UpdateWrapper;
|
import com.mybatisflex.core.update.UpdateWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
|
|
@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -92,6 +94,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void cashback(Long shopId, Long userId, BigDecimal amount, Long orderId, String orderNo) {
|
public void cashback(Long shopId, Long userId, BigDecimal amount, Long orderId, String orderNo) {
|
||||||
|
AssertUtil.isTrue(amount == null || amount.compareTo(BigDecimal.ZERO) == 0, "金额必须大于0");
|
||||||
Long mainShopId = shopInfoService.getMainIdByShopId(shopId);
|
Long mainShopId = shopInfoService.getMainIdByShopId(shopId);
|
||||||
MkConsumeCashbackVO config = detail(mainShopId);
|
MkConsumeCashbackVO config = detail(mainShopId);
|
||||||
if (config.getIsEnable() == 0) {
|
if (config.getIsEnable() == 0) {
|
||||||
|
|
@ -101,21 +104,27 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
|
||||||
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getMainShopId, mainShopId).eq(ShopUser::getUserId, userId));
|
ShopUser shopUser = shopUserService.getOne(new QueryWrapper().eq(ShopUser::getMainShopId, mainShopId).eq(ShopUser::getUserId, userId));
|
||||||
List<MkConsumeCashbackStep> cashbackStepList = config.getCashbackStepList();
|
List<MkConsumeCashbackStep> cashbackStepList = config.getCashbackStepList();
|
||||||
if (cashbackStepList != null && !cashbackStepList.isEmpty()) {
|
if (cashbackStepList != null && !cashbackStepList.isEmpty()) {
|
||||||
// 固定金额
|
|
||||||
if (TableValueConstant.MkConsumeCashback.CashbackType.FIX.getCode().equals(config.getCashbackType())) {
|
|
||||||
|
|
||||||
}
|
|
||||||
config.setCashbackStepList(cashbackStepList.stream().sorted(Comparator.comparing(MkConsumeCashbackStep::getAmount)).collect(Collectors.toList()));
|
config.setCashbackStepList(cashbackStepList.stream().sorted(Comparator.comparing(MkConsumeCashbackStep::getAmount)).collect(Collectors.toList()));
|
||||||
for (MkConsumeCashbackStep cashbackStep : cashbackStepList) {
|
for (MkConsumeCashbackStep cashbackStep : cashbackStepList) {
|
||||||
|
|
||||||
if (cashbackStep.getAmount().compareTo(amount) <= 0 ) {
|
if (cashbackStep.getAmount().compareTo(amount) <= 0 ) {
|
||||||
|
BigDecimal cashbackAmount = BigDecimal.ZERO;
|
||||||
|
// 固定金额
|
||||||
|
if (TableValueConstant.MkConsumeCashback.CashbackType.FIX.getCode().equals(config.getCashbackType())) {
|
||||||
|
cashbackAmount = cashbackStep.getCashbackAmount();
|
||||||
|
}else {
|
||||||
|
cashbackAmount = amount.multiply(cashbackStep.getCashbackAmount().divide(BigDecimal.valueOf(100), RoundingMode.DOWN));
|
||||||
|
}
|
||||||
MkConsumeCashbackRecord mkConsumeCashbackRecord = new MkConsumeCashbackRecord().setOrderNo(orderNo).setOrderId(orderId)
|
MkConsumeCashbackRecord mkConsumeCashbackRecord = new MkConsumeCashbackRecord().setOrderNo(orderNo).setOrderId(orderId)
|
||||||
.setMainShopId(mainShopId).setShopId(shopId).setAmount(amount)
|
.setMainShopId(mainShopId).setShopId(shopId).setAmount(amount)
|
||||||
.setCashbackAmount(cashbackStep.getCashbackAmount()).setUserId(userId)
|
.setCashbackAmount(cashbackAmount).setUserId(userId)
|
||||||
.setShopUserId(shopUser.getId());
|
.setShopUserId(shopUser.getId());
|
||||||
consumeCashbackRecordService.save(mkConsumeCashbackRecord);
|
consumeCashbackRecordService.save(mkConsumeCashbackRecord);
|
||||||
shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(shopUser.getId()).setType(1)
|
shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(shopUser.getId()).setType(1)
|
||||||
.setRelationId(mkConsumeCashbackRecord.getId()).setMoney(cashbackStep.getCashbackAmount()).setBizEnum(ShopUserFlowBizEnum.CASHBACK)
|
.setRelationId(mkConsumeCashbackRecord.getId()).setMoney(cashbackAmount).setBizEnum(ShopUserFlowBizEnum.CASHBACK)
|
||||||
.setRemark(StrUtil.format("订单消费: {}, 返现: {}", amount, cashbackStep.getCashbackAmount())));
|
.setRemark(StrUtil.format("订单消费: {}, 返现: {}", amount, cashbackAmount)));
|
||||||
|
log.info("店铺用户id: {}, 消费返现: {}, 返现: {}", shopUser.getId(), amount, cashbackAmount);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue