From 2afce3afa1b9a111b20d2d372fb9867751a50ad2 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Fri, 01 Mar 2024 14:18:35 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 82 insertions(+), 27 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index e3656fe..3d28d84 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -83,8 +83,11 @@
private final MallAchieveRecordMapper mallAchieveRecordMapper;
private final MallMemberWalletMapper mallMemberWalletMapper;
private final MallMqRecordMapper mallMqRecordMapper;
+ private final MallProductSellMapper mallProductSellMapper;
+ private final MallProductSellRecordMapper mallProductSellRecordMapper;
private final ICommonService commonService;
+ private final MallMemberAmountMapper mallMemberAmountMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -341,30 +344,31 @@
// orderInfo.setPayMethod("支付宝支付");
break;
case "3":
- payResultStr = balancePay(orderInfo, payOrderDto.getTradePwd(), "balance");
+ payResultStr = balancePayNew(orderInfo, payOrderDto.getTradePwd());
orderInfo.setPayOrderNo(orderInfo.getOrderNo());
- orderInfo.setPayMethod("余额支付");
+ orderInfo.setPayMethod("积分支付");
orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
orderInfo.setPayTime(new Date());
orderInfo.setPayResult("1");
this.baseMapper.updateById(orderInfo);
- commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
+
+// commonService.changeWallet(orderInfo.getId(), FlowTypeEnum.BALANCE.getValue());
/**
* 插入一条待处理记录
* mq处理之后,更新状态
*/
- MallMqRecord mallMqRecord = new MallMqRecord();
- mallMqRecord.setOrderId(orderInfo.getId());
- mallMqRecord.setState(2);
- mallMqRecord.setRetryTimes(2);
- mallMqRecord.setCreateTime(orderInfo.getPayTime());
- mallMqRecordMapper.insert(mallMqRecord);
- //发送补贴消息
- agentProducer.sendPerkMoneyMsg(orderInfo.getId());
- //发送代理自动升级消息
- agentProducer.sendAutoLevelUpMsg(member.getId());
+// MallMqRecord mallMqRecord = new MallMqRecord();
+// mallMqRecord.setOrderId(orderInfo.getId());
+// mallMqRecord.setState(2);
+// mallMqRecord.setRetryTimes(2);
+// mallMqRecord.setCreateTime(orderInfo.getPayTime());
+// mallMqRecordMapper.insert(mallMqRecord);
+// //发送补贴消息
+// agentProducer.sendPerkMoneyMsg(orderInfo.getId());
+// //发送代理自动升级消息
+// agentProducer.sendAutoLevelUpMsg(member.getId());
break;
case "4":
if (orderInfo.getOrderType() != 2) {
@@ -467,6 +471,29 @@
if (reduce == 2) {
throw new FebsException("余额不足");
}
+ return orderInfo.getOrderNo();
+ }
+ private String balancePayNew(MallOrderInfo orderInfo, String tradePwd) {
+ if (StrUtil.isBlank(tradePwd)) {
+ throw new FebsException("支付密码错误");
+ }
+
+ MallMember mallMember = memberMapper.selectById(orderInfo.getMemberId());
+ if (StrUtil.isBlank(mallMember.getTradePassword())) {
+ throw new FebsException("未设置支付密码");
+ }
+
+ if (!SecureUtil.md5(tradePwd).equals(mallMember.getTradePassword())) {
+ throw new FebsException("支付密码错误");
+ }
+ MallMemberAmount mallMemberAmount = mallMemberAmountMapper.selectByMemberId(mallMember.getId());
+
+ BigDecimal subtract = mallMemberAmount.getGsd().subtract(orderInfo.getAmount());
+ if(BigDecimal.ZERO.compareTo(subtract) > 0){
+ throw new FebsException("积分不足");
+ }
+ mallMemberAmount.setGsd(subtract);
+ mallMemberAmountMapper.updateGsdById(mallMemberAmount);
return orderInfo.getOrderNo();
}
@@ -749,20 +776,6 @@
if(prizeScore.compareTo(score) < 0){
throw new FebsException("积分不足");
}
- if(hasTc){
- //系统设置的个人贡献点最大值
- DataDictionaryCustom starGetDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
- DataDictionaryEnum.STAR_GET.getType(),
- DataDictionaryEnum.STAR_GET.getCode());
- if(ObjectUtil.isNotEmpty(starGetDic)){
- String starGetStr = StrUtil.isEmpty(starGetDic.getValue()) ? "0" : starGetDic.getValue();
- BigDecimal starGet = new BigDecimal(starGetStr);
- BigDecimal star = new BigDecimal(mallMemberWallet.getStar());
- if(starGet.compareTo(BigDecimal.ZERO) != 0 && starGet.compareTo(star) <= 0){
- throw new FebsException("无法购买套餐");
- }
- }
- }
/**
* 使用积分折扣现金
*/
@@ -781,6 +794,23 @@
if(scorePercentMaxAmount.compareTo(score) < 0){
throw new FebsException("最多可使用"+scorePercentMaxAmount+"积分");
}
+
+ if(hasTc){
+ //系统设置的个人贡献点最大值
+ DataDictionaryCustom starGetDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+ DataDictionaryEnum.STAR_GET.getType(),
+ DataDictionaryEnum.STAR_GET.getCode());
+ if(ObjectUtil.isNotEmpty(starGetDic)){
+ String starGetStr = StrUtil.isEmpty(starGetDic.getValue()) ? "0" : starGetDic.getValue();
+ BigDecimal starGet = new BigDecimal(starGetStr);
+ BigDecimal star = new BigDecimal(mallMemberWallet.getStar());
+ if(starGet.compareTo(BigDecimal.ZERO) != 0 && starGet.compareTo(star) <= 0){
+
+ return new FebsResponse().success().message("购买套餐不会获得贡献点");
+// throw new FebsException("无法购买套餐");
+ }
+ }
+ }
return new FebsResponse().success();
}
@@ -800,4 +830,29 @@
return apiScoreSetVo;
}
+ @Override
+ public void fcmPayBuyTimeTTLMsg(Long id) {
+ /**
+ * 卖方
+ * 1:冻结账户
+ */
+ MallProductSellRecord mallProductSellRecord = mallProductSellRecordMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallProductSellRecord)){
+ return;
+ }
+ if(ProductEnum.PRODUCT_MATE_STATE_PAY.getValue() != mallProductSellRecord.getState()){
+ return;
+ }
+ MallProductSell mallProductSell = mallProductSellMapper.selectById(mallProductSellRecord.getSellId());
+ if(ObjectUtil.isEmpty(mallProductSell)){
+ return;
+ }
+ MallMember mallMember = memberMapper.selectById(mallProductSell.getMemberId());
+ if(ObjectUtil.isEmpty(mallMember)){
+ return;
+ }
+ mallMember.setIsFrozen(ProductEnum.MEMBER_FROZEN.getValue());
+ memberMapper.updateById(mallMember);
+ }
+
}
--
Gitblit v1.9.1