消费
This commit is contained in:
wangjinlei
2024-05-13 14:22:29 +08:00
parent 37b8b68525
commit 6bdc4ebd5a
4 changed files with 57 additions and 5 deletions

View File

@@ -17,6 +17,7 @@ import com.peanut.modules.book.vo.request.ProductRequestVo;
import com.peanut.modules.book.vo.request.ProductTransportVo;
import com.peanut.modules.book.vo.response.BuyOrderResponseVo;
import com.peanut.modules.book.vo.response.OrderAddressResponseVo;
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
import com.peanut.modules.common.dao.UserCourseBuyDao;
import com.peanut.modules.common.entity.*;
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
@@ -90,6 +91,8 @@ public class BuyOrderController {
private CountyService countyService;
@Autowired
private UserCourseBuyDao userCourseBuyDao;
@Autowired
private JfTransactionDetailsDao jfTransactionDetailsDao;
@RequestMapping(value = "/decomposeShipment", method = RequestMethod.POST)
public R decomposeShipment(@RequestBody BuyOrderListRequestVo requestVo) {
@@ -895,6 +898,14 @@ public class BuyOrderController {
}
private void recordJfTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal jf){
JfTransactionDetails jfTransactionDetails = new JfTransactionDetails();
jfTransactionDetails.setUserId(user.getId());
jfTransactionDetails.setChangeAmount(jf);
jfTransactionDetails.setActType(0);
jfTransactionDetails.setUserBalance(user.getJf());
jfTransactionDetails.setRelationId(buyOrder.getOrderId());
jfTransactionDetails.setRemark("消费积分抵扣:"+jf.toString()+",订单号:"+buyOrder.getOrderSn());
jfTransactionDetailsDao.insert(jfTransactionDetails);
}
/**

View File

@@ -21,7 +21,7 @@ public class JfTransactionDetails implements Serializable {
/**
* 0增加1减少
*/
private String actType;
private Integer actType;
/**
* 变动金额
*/

View File

@@ -9,10 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.CopyUtils;
import com.peanut.common.utils.OrderUtils;
import com.peanut.modules.common.dao.BuyOrderProductDao;
import com.peanut.modules.common.dao.ShopProductBookDao;
import com.peanut.modules.common.dao.UserCourseBuyDao;
import com.peanut.modules.common.dao.UserEbookBuyDao;
import com.peanut.modules.common.dao.*;
import com.peanut.modules.book.service.*;
import com.peanut.modules.common.entity.*;
import com.peanut.modules.pay.alipay.config.AliPayConfig;
@@ -62,6 +59,8 @@ public class AliPayServiceImpl implements AliPayService {
private PayRefundOrderService refundOrderService;
@Autowired
private UserCourseBuyDao userCourseBuyDao;
@Autowired
private JfTransactionDetailsDao jfTransactionDetailsDao;
@Override
public String pay(AlipayDTO payDto) {
@@ -201,6 +200,11 @@ public class AliPayServiceImpl implements AliPayService {
String ActString = buyOrderService.checkWlOrder(orderEntity.getOrderSn())?"0":"2";
buyOrderService.updateOrderStatus(Integer.valueOf(customerid),oldPayZfbOrderEntity.getRelevanceoid(),ActString);
//处理抵扣积分
if(orderEntity.getJfDeduction().compareTo(BigDecimal.ZERO)>0){
userCoinJf(orderEntity);
}
/* 记录用户购买的书籍 */
// 查询订单的所有 book_id
List<Integer> orderBookIdList = shopProductBookDao.getOrderBookId(orderEntity.getOrderSn());
@@ -337,6 +341,20 @@ public class AliPayServiceImpl implements AliPayService {
return resJson;
}
private void userCoinJf(BuyOrder order){
MyUserEntity userEntity = userService.getById(order.getUserId());
userEntity.setJf(userEntity.getJf().subtract(order.getJfDeduction()));
userService.updateById(userEntity);
JfTransactionDetails jfTransactionDetails = new JfTransactionDetails();
jfTransactionDetails.setUserId(userEntity.getId());
jfTransactionDetails.setChangeAmount(order.getJfDeduction());
jfTransactionDetails.setActType(0);
jfTransactionDetails.setUserBalance(userEntity.getJf());
jfTransactionDetails.setRelationId(order.getOrderId());
jfTransactionDetails.setRemark("消费积分抵扣:"+order.getJfDeduction().toString()+",订单号:"+order.getOrderSn());
jfTransactionDetailsDao.insert(jfTransactionDetails);
}
//TODO 更新订单状态
//TODO 更新用户优惠券状态
//TODO 推送一路健康优惠券

View File

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.modules.common.dao.BuyOrderProductDao;
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
import com.peanut.modules.common.dao.PayWechatOrderDao;
import com.peanut.modules.book.service.*;
import com.peanut.modules.common.dao.UserCourseBuyDao;
@@ -69,6 +70,8 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
private PayRefundOrderService refundOrderService;
@Autowired
private UserCourseBuyDao userCourseBuyDao;
@Autowired
private JfTransactionDetailsDao jfTransactionDetailsDao;
@Override
public void prepay(WechatPaymentInfo paymentInfo){
@@ -133,6 +136,12 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
BigDecimal realMoney = orderEntity.getRealMoney();
if(orderEntity.getJfDeduction().compareTo(BigDecimal.ZERO)>0){
userCoinJf(orderEntity);
}
//开通bookstart
// 查询订单的所有 book_id
List<Integer> orderBookIdList = shopProductBookService.getOrderBookId(order.getOrderSn());
@@ -288,6 +297,20 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
return responseJson.toJSONString();
}
private void userCoinJf(BuyOrder order){
MyUserEntity userEntity = userService.getById(order.getUserId());
userEntity.setJf(userEntity.getJf().subtract(order.getJfDeduction()));
userService.updateById(userEntity);
JfTransactionDetails jfTransactionDetails = new JfTransactionDetails();
jfTransactionDetails.setUserId(userEntity.getId());
jfTransactionDetails.setChangeAmount(order.getJfDeduction());
jfTransactionDetails.setActType(0);
jfTransactionDetails.setUserBalance(userEntity.getJf());
jfTransactionDetails.setRelationId(order.getOrderId());
jfTransactionDetails.setRemark("消费积分抵扣:"+order.getJfDeduction().toString()+",订单号:"+order.getOrderSn());
jfTransactionDetailsDao.insert(jfTransactionDetails);
}
@Override
@Transactional
public void refundNotify(HttpServletRequest request){