修改下单时记录用户虚拟币、积分消费操作
This commit is contained in:
@@ -17,11 +17,11 @@ import com.peanut.modules.book.vo.request.ProductRequestVo;
|
|||||||
import com.peanut.modules.book.vo.request.ProductTransportVo;
|
import com.peanut.modules.book.vo.request.ProductTransportVo;
|
||||||
import com.peanut.modules.book.vo.response.BuyOrderResponseVo;
|
import com.peanut.modules.book.vo.response.BuyOrderResponseVo;
|
||||||
import com.peanut.modules.book.vo.response.OrderAddressResponseVo;
|
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.dao.UserCourseBuyDao;
|
||||||
import com.peanut.modules.common.entity.*;
|
import com.peanut.modules.common.entity.*;
|
||||||
import com.peanut.modules.common.service.CouponHistoryService;
|
import com.peanut.modules.common.service.CouponHistoryService;
|
||||||
import com.peanut.modules.common.service.CouponService;
|
import com.peanut.modules.common.service.CouponService;
|
||||||
|
import com.peanut.modules.common.service.JfTransactionDetailsService;
|
||||||
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
|
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
|
||||||
import com.peanut.modules.pay.weChatPay.service.WxpayService;
|
import com.peanut.modules.pay.weChatPay.service.WxpayService;
|
||||||
import com.peanut.modules.sys.entity.SysConfigEntity;
|
import com.peanut.modules.sys.entity.SysConfigEntity;
|
||||||
@@ -89,7 +89,7 @@ public class BuyOrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserCourseBuyDao userCourseBuyDao;
|
private UserCourseBuyDao userCourseBuyDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JfTransactionDetailsDao jfTransactionDetailsDao;
|
private JfTransactionDetailsService jfTransactionDetailsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CouponService couponService;
|
private CouponService couponService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -320,11 +320,11 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
//记录用户虚拟币消费
|
//记录用户虚拟币消费
|
||||||
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
||||||
recordTransaction(buyOrder, user, totalPrice);
|
transactionDetailsService.recordTransaction(buyOrder, user, totalPrice);
|
||||||
}
|
}
|
||||||
//记录用户积分消费情况
|
//记录用户积分消费情况
|
||||||
if(buyOrder.getJfDeduction()!=null&&buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){
|
if(buyOrder.getJfDeduction()!=null&&buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){
|
||||||
recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
|
jfTransactionDetailsService.recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
|
||||||
}
|
}
|
||||||
//消费用户积分并记录用户积分消费记录
|
//消费用户积分并记录用户积分消费记录
|
||||||
addEbookToUser(buyOrderProductList, buyOrder, 0);
|
addEbookToUser(buyOrderProductList, buyOrder, 0);
|
||||||
@@ -914,36 +914,6 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 交易记录
|
|
||||||
*
|
|
||||||
* @param buyOrder
|
|
||||||
* @param user
|
|
||||||
* @param totalPrice
|
|
||||||
*/
|
|
||||||
private void recordTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal totalPrice) {
|
|
||||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
|
||||||
transactionDetailsEntity.setRemark("订单编号为 - " + buyOrder.getOrderSn());
|
|
||||||
transactionDetailsEntity.setUserId(user.getId());
|
|
||||||
transactionDetailsEntity.setUserName(user.getNickname());
|
|
||||||
transactionDetailsEntity.setChangeAmount(totalPrice.negate());
|
|
||||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
|
||||||
transactionDetailsEntity.setTel(user.getTel());
|
|
||||||
transactionDetailsEntity.setOrderType("购买商品");
|
|
||||||
transactionDetailsService.save(transactionDetailsEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 给用户添加电子书
|
* 给用户添加电子书
|
||||||
* TODO 新版本上线删除此接口
|
* TODO 新版本上线删除此接口
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ package com.peanut.modules.book.service;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.peanut.common.utils.PageUtils;
|
import com.peanut.common.utils.PageUtils;
|
||||||
|
import com.peanut.modules.common.entity.BuyOrder;
|
||||||
|
import com.peanut.modules.common.entity.MyUserEntity;
|
||||||
import com.peanut.modules.common.entity.TransactionDetailsEntity;
|
import com.peanut.modules.common.entity.TransactionDetailsEntity;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,5 +23,7 @@ public interface TransactionDetailsService extends IService<TransactionDetailsEn
|
|||||||
|
|
||||||
Page<TransactionDetailsEntity> getTransactionList(Map<String,Object> map);
|
Page<TransactionDetailsEntity> getTransactionList(Map<String,Object> map);
|
||||||
|
|
||||||
|
void recordTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal totalPrice);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import com.peanut.common.utils.ExcludeEmptyQueryWrapper;
|
|||||||
import com.peanut.common.utils.PageUtils;
|
import com.peanut.common.utils.PageUtils;
|
||||||
import com.peanut.common.utils.Query;
|
import com.peanut.common.utils.Query;
|
||||||
import com.peanut.modules.common.dao.TransactionDetailsDao;
|
import com.peanut.modules.common.dao.TransactionDetailsDao;
|
||||||
|
import com.peanut.modules.common.entity.BuyOrder;
|
||||||
|
import com.peanut.modules.common.entity.MyUserEntity;
|
||||||
import com.peanut.modules.common.entity.TransactionDetailsEntity;
|
import com.peanut.modules.common.entity.TransactionDetailsEntity;
|
||||||
import com.peanut.modules.book.service.BookService;
|
import com.peanut.modules.book.service.BookService;
|
||||||
import com.peanut.modules.book.service.TransactionDetailsService;
|
import com.peanut.modules.book.service.TransactionDetailsService;
|
||||||
@@ -15,7 +17,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -49,4 +51,17 @@ public class TransactionDetailsServiceImpl extends ServiceImpl<TransactionDetail
|
|||||||
Page<TransactionDetailsEntity> transactionDetailsEntityPage = getBaseMapper().selectPage(new Page<>(Integer.valueOf(map.get("page").toString()), Integer.valueOf(map.get("limit").toString())), wrapper);
|
Page<TransactionDetailsEntity> transactionDetailsEntityPage = getBaseMapper().selectPage(new Page<>(Integer.valueOf(map.get("page").toString()), Integer.valueOf(map.get("limit").toString())), wrapper);
|
||||||
return transactionDetailsEntityPage;
|
return transactionDetailsEntityPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void recordTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal totalPrice) {
|
||||||
|
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
||||||
|
transactionDetailsEntity.setRemark("订单编号为 - " + buyOrder.getOrderSn());
|
||||||
|
transactionDetailsEntity.setUserId(user.getId());
|
||||||
|
transactionDetailsEntity.setUserName(user.getNickname());
|
||||||
|
transactionDetailsEntity.setChangeAmount(totalPrice.negate());
|
||||||
|
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
||||||
|
transactionDetailsEntity.setTel(user.getTel());
|
||||||
|
transactionDetailsEntity.setOrderType("购买商品");
|
||||||
|
getBaseMapper().insert(transactionDetailsEntity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -5,20 +5,24 @@ import com.github.promeg.pinyinhelper.Pinyin;
|
|||||||
import com.peanut.common.utils.R;
|
import com.peanut.common.utils.R;
|
||||||
import com.peanut.common.utils.ShiroUtils;
|
import com.peanut.common.utils.ShiroUtils;
|
||||||
import com.peanut.config.Constants;
|
import com.peanut.config.Constants;
|
||||||
import com.peanut.config.DelayQueueConfig;
|
|
||||||
import com.peanut.modules.book.service.BuyOrderService;
|
import com.peanut.modules.book.service.BuyOrderService;
|
||||||
|
import com.peanut.modules.book.service.TransactionDetailsService;
|
||||||
|
import com.peanut.modules.book.service.UserEbookBuyService;
|
||||||
import com.peanut.modules.common.entity.BookEntity;
|
import com.peanut.modules.common.entity.BookEntity;
|
||||||
import com.peanut.modules.common.entity.BuyOrder;
|
import com.peanut.modules.common.entity.BuyOrder;
|
||||||
|
import com.peanut.modules.common.entity.MyUserEntity;
|
||||||
import com.peanut.modules.common.service.BookService;
|
import com.peanut.modules.common.service.BookService;
|
||||||
|
import com.peanut.modules.common.service.MyUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.amqp.core.MessagePostProcessor;
|
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController("bookAbroadOrder")
|
@RestController("bookAbroadOrder")
|
||||||
@@ -28,22 +32,27 @@ public class OrderController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BookService bookService;
|
private BookService bookService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private MyUserService myUserService;
|
||||||
|
@Autowired
|
||||||
private BuyOrderService buyOrderService;
|
private BuyOrderService buyOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private RabbitTemplate rabbitTemplate;
|
private TransactionDetailsService transactionDetailsService;
|
||||||
|
@Autowired
|
||||||
|
private UserEbookBuyService userEbookBuyService;
|
||||||
|
|
||||||
|
//海外读书下单
|
||||||
@RequestMapping("/placeOrder")
|
@RequestMapping("/placeOrder")
|
||||||
|
@Transactional
|
||||||
public R createOrder(@RequestBody BuyOrder buyOrder){
|
public R createOrder(@RequestBody BuyOrder buyOrder){
|
||||||
buyOrder.setUserId(ShiroUtils.getUId());
|
buyOrder.setUserId(ShiroUtils.getUId());
|
||||||
buyOrder.setCome(3);//3 海外读书
|
buyOrder.setCome(3);//3 海外读书
|
||||||
buyOrder.setPaymentMethod("5"); //5 paypal
|
|
||||||
BookEntity bookEntity = bookService.getById(buyOrder.getAbroadBookId());
|
BookEntity bookEntity = bookService.getById(buyOrder.getAbroadBookId());
|
||||||
BigDecimal orderMoney = buyOrder.getOrderMoney();
|
BigDecimal totalPrice = buyOrder.getOrderMoney();
|
||||||
//校验价格
|
//校验价格
|
||||||
if (orderMoney.compareTo(bookEntity.getAbroadPrice())!=0){
|
if (totalPrice.compareTo(bookEntity.getAbroadPrice())!=0){
|
||||||
return R.error("订单价格异常");
|
return R.error("订单价格异常");
|
||||||
}
|
}
|
||||||
buyOrder.setRealMoney(orderMoney);
|
buyOrder.setRealMoney(totalPrice);
|
||||||
buyOrder.setRemark("Purchase the e-book '"+ Pinyin.toPinyin(bookEntity.getName(), " ").toLowerCase()+"'");
|
buyOrder.setRemark("Purchase the e-book '"+ Pinyin.toPinyin(bookEntity.getName(), " ").toLowerCase()+"'");
|
||||||
buyOrder.setOrderStatus("0");
|
buyOrder.setOrderStatus("0");
|
||||||
buyOrder.setOrderType("abroadBook");
|
buyOrder.setOrderType("abroadBook");
|
||||||
@@ -52,22 +61,25 @@ public class OrderController {
|
|||||||
buyOrderService.save(buyOrder);
|
buyOrderService.save(buyOrder);
|
||||||
// 1. 虚拟币支付
|
// 1. 虚拟币支付
|
||||||
if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
|
if (Constants.PAYMENT_METHOD_VIRTUAL.equals(buyOrder.getPaymentMethod())) {
|
||||||
|
MyUserEntity user = ShiroUtils.getUser();
|
||||||
|
if (user.getPeanutCoin().compareTo(totalPrice)>=0){
|
||||||
|
//更新虚拟币
|
||||||
|
user.setPeanutCoin(user.getPeanutCoin().subtract(totalPrice));
|
||||||
|
myUserService.updateById(user);
|
||||||
|
//更新订单状态
|
||||||
|
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
|
||||||
|
//记录用户虚拟币消费
|
||||||
|
transactionDetailsService.recordTransaction(buyOrder, user, totalPrice);
|
||||||
|
//开通电子书权限
|
||||||
|
userEbookBuyService.addBookForUser(user.getId(), Arrays.asList(buyOrder.getAbroadBookId()));
|
||||||
|
}else {
|
||||||
|
return R.error(500, "天医币余额不足!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
rabbitTemplate.convertAndSend(
|
Map<String, Object> result = new HashMap<>();
|
||||||
DelayQueueConfig.ORDER_TO_BE_PAY_EXCHANGE,
|
result.put("orderSn", buyOrder.getOrderSn());
|
||||||
DelayQueueConfig.ORDER_TO_BE_PAY_ROUTING_KEY,
|
result.put("money", totalPrice);
|
||||||
buyOrder.getOrderId(),
|
return R.ok(result);
|
||||||
messagePostProcessor()
|
|
||||||
);
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
private MessagePostProcessor messagePostProcessor() {
|
|
||||||
return message -> {
|
|
||||||
//设置有效期30分钟
|
|
||||||
message.getMessageProperties().setExpiration(String.valueOf(30 * 60 * 1000));
|
|
||||||
return message;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ public class CourseRelearnController {
|
|||||||
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
|
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
|
||||||
//记录用户虚拟币消费
|
//记录用户虚拟币消费
|
||||||
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
||||||
recordTransaction(buyOrder, user, totalPrice);
|
transactionDetailsService.recordTransaction(buyOrder, user, totalPrice);
|
||||||
}
|
}
|
||||||
//插入复读记录
|
//插入复读记录
|
||||||
userCourseBuyService.addUserCourseBuyRelearn(buyOrder,"虚拟币购买:"+buyOrder.getOrderSn());
|
userCourseBuyService.addUserCourseBuyRelearn(buyOrder,"虚拟币购买:"+buyOrder.getOrderSn());
|
||||||
@@ -198,18 +198,6 @@ public class CourseRelearnController {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recordTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal totalPrice) {
|
|
||||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
|
||||||
transactionDetailsEntity.setRemark("订单编号为 - " + buyOrder.getOrderSn());
|
|
||||||
transactionDetailsEntity.setUserId(user.getId());
|
|
||||||
transactionDetailsEntity.setUserName(user.getNickname());
|
|
||||||
transactionDetailsEntity.setChangeAmount(totalPrice.negate());
|
|
||||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
|
||||||
transactionDetailsEntity.setTel(user.getTel());
|
|
||||||
transactionDetailsEntity.setOrderType("购买商品");
|
|
||||||
transactionDetailsService.save(transactionDetailsEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private MessagePostProcessor messagePostProcessor() {
|
private MessagePostProcessor messagePostProcessor() {
|
||||||
return message -> {
|
return message -> {
|
||||||
//设置有效期30分钟
|
//设置有效期30分钟
|
||||||
|
|||||||
@@ -7,14 +7,13 @@ import com.peanut.common.utils.ShiroUtils;
|
|||||||
import com.peanut.config.Constants;
|
import com.peanut.config.Constants;
|
||||||
import com.peanut.config.DelayQueueConfig;
|
import com.peanut.config.DelayQueueConfig;
|
||||||
import com.peanut.modules.book.service.TransactionDetailsService;
|
import com.peanut.modules.book.service.TransactionDetailsService;
|
||||||
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
|
|
||||||
import com.peanut.modules.common.dao.MyUserDao;
|
import com.peanut.modules.common.dao.MyUserDao;
|
||||||
import com.peanut.modules.common.dao.UserVipDao;
|
import com.peanut.modules.common.dao.UserVipDao;
|
||||||
import com.peanut.modules.common.dao.VipBuyConfigDao;
|
import com.peanut.modules.common.dao.VipBuyConfigDao;
|
||||||
import com.peanut.modules.common.entity.*;
|
import com.peanut.modules.common.entity.*;
|
||||||
import com.peanut.modules.common.service.BuyOrderService;
|
import com.peanut.modules.common.service.BuyOrderService;
|
||||||
|
import com.peanut.modules.common.service.JfTransactionDetailsService;
|
||||||
import com.peanut.modules.common.service.UserVipService;
|
import com.peanut.modules.common.service.UserVipService;
|
||||||
import com.peanut.modules.common.to.VipOrderDto;
|
|
||||||
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
|
import com.peanut.modules.pay.weChatPay.dto.WechatPaymentInfo;
|
||||||
import com.peanut.modules.pay.weChatPay.service.WxpayService;
|
import com.peanut.modules.pay.weChatPay.service.WxpayService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -24,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
@@ -58,7 +56,7 @@ public class UserVipController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TransactionDetailsService transactionDetailsService;
|
private TransactionDetailsService transactionDetailsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private JfTransactionDetailsDao jfTransactionDetailsDao;
|
private JfTransactionDetailsService jfTransactionDetailsService;
|
||||||
|
|
||||||
@RequestMapping("/getMyVipHistory")
|
@RequestMapping("/getMyVipHistory")
|
||||||
public R getMyVipHistory(String userId) {
|
public R getMyVipHistory(String userId) {
|
||||||
@@ -90,11 +88,11 @@ public class UserVipController {
|
|||||||
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
|
buyOrderService.updateOrderStatus(user.getId(), buyOrder.getOrderSn(), "2");
|
||||||
//记录用户虚拟币消费
|
//记录用户虚拟币消费
|
||||||
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
if(totalPrice.compareTo(BigDecimal.ZERO)>0){
|
||||||
recordTransaction(buyOrder, user, totalPrice);
|
transactionDetailsService.recordTransaction(buyOrder, user, totalPrice);
|
||||||
}
|
}
|
||||||
//记录用户积分消费情况
|
//记录用户积分消费情况
|
||||||
if(buyOrder.getJfDeduction()!=null&&buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){
|
if(buyOrder.getJfDeduction()!=null&&buyOrder.getJfDeduction().compareTo(BigDecimal.ZERO) > 0){
|
||||||
recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
|
jfTransactionDetailsService.recordJfTransaction(buyOrder, user, buyOrder.getJfDeduction());
|
||||||
}
|
}
|
||||||
//开通用户vip,并且对已开通的课程做延期
|
//开通用户vip,并且对已开通的课程做延期
|
||||||
openVipForUser(buyOrder);
|
openVipForUser(buyOrder);
|
||||||
@@ -226,17 +224,6 @@ public class UserVipController {
|
|||||||
throw new Exception("开通vip异常");
|
throw new Exception("开通vip异常");
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean useJfCoin(MyUserEntity user,BigDecimal jf){
|
private boolean useJfCoin(MyUserEntity user,BigDecimal jf){
|
||||||
if(jf==null){
|
if(jf==null){
|
||||||
return true;
|
return true;
|
||||||
@@ -250,18 +237,6 @@ public class UserVipController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void recordTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal totalPrice) {
|
|
||||||
TransactionDetailsEntity transactionDetailsEntity = new TransactionDetailsEntity();
|
|
||||||
transactionDetailsEntity.setRemark("订单编号为 - " + buyOrder.getOrderSn());
|
|
||||||
transactionDetailsEntity.setUserId(user.getId());
|
|
||||||
transactionDetailsEntity.setUserName(user.getNickname());
|
|
||||||
transactionDetailsEntity.setChangeAmount(totalPrice.negate());
|
|
||||||
transactionDetailsEntity.setUserBalance(user.getPeanutCoin());
|
|
||||||
transactionDetailsEntity.setTel(user.getTel());
|
|
||||||
transactionDetailsEntity.setOrderType("购买商品");
|
|
||||||
transactionDetailsService.save(transactionDetailsEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private MessagePostProcessor messagePostProcessor() {
|
private MessagePostProcessor messagePostProcessor() {
|
||||||
return message -> {
|
return message -> {
|
||||||
//设置有效期30分钟
|
//设置有效期30分钟
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
package com.peanut.modules.common.service;
|
package com.peanut.modules.common.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.peanut.modules.common.entity.BuyOrder;
|
||||||
import com.peanut.modules.common.entity.JfTransactionDetails;
|
import com.peanut.modules.common.entity.JfTransactionDetails;
|
||||||
|
import com.peanut.modules.common.entity.MyUserEntity;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
public interface JfTransactionDetailsService extends IService<JfTransactionDetails> {
|
public interface JfTransactionDetailsService extends IService<JfTransactionDetails> {
|
||||||
|
|
||||||
|
void recordJfTransaction(BuyOrder buyOrder, MyUserEntity user, BigDecimal jf);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,24 @@ package com.peanut.modules.common.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
|
import com.peanut.modules.common.dao.JfTransactionDetailsDao;
|
||||||
|
import com.peanut.modules.common.entity.BuyOrder;
|
||||||
import com.peanut.modules.common.entity.JfTransactionDetails;
|
import com.peanut.modules.common.entity.JfTransactionDetails;
|
||||||
|
import com.peanut.modules.common.entity.MyUserEntity;
|
||||||
import com.peanut.modules.common.service.JfTransactionDetailsService;
|
import com.peanut.modules.common.service.JfTransactionDetailsService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@Service("commonJfTransactionDetailsService")
|
@Service("commonJfTransactionDetailsService")
|
||||||
public class JfTransactionDetailsServiceImpl extends ServiceImpl<JfTransactionDetailsDao, JfTransactionDetails> implements JfTransactionDetailsService {
|
public class JfTransactionDetailsServiceImpl extends ServiceImpl<JfTransactionDetailsDao, JfTransactionDetails> implements JfTransactionDetailsService {
|
||||||
|
@Override
|
||||||
|
public 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());
|
||||||
|
getBaseMapper().insert(jfTransactionDetails);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user