下单开课时,如果非课程商品中含有课程,报表金额为0
This commit is contained in:
@@ -29,6 +29,7 @@ import com.peanut.modules.book.vo.response.OrderAddressResponseVo;
|
|||||||
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.*;
|
import com.peanut.modules.common.service.*;
|
||||||
|
import com.peanut.modules.master.service.CourseCatalogueService;
|
||||||
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;
|
||||||
@@ -112,6 +113,8 @@ public class BuyOrderController {
|
|||||||
private CouponHistoryService couponHistoryService;
|
private CouponHistoryService couponHistoryService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserCourseBuyLogService userCourseBuyLogService;
|
private UserCourseBuyLogService userCourseBuyLogService;
|
||||||
|
@Autowired
|
||||||
|
private CourseCatalogueService courseCatalogueService;
|
||||||
|
|
||||||
@RequestMapping(value = "/decomposeShipment", method = RequestMethod.POST)
|
@RequestMapping(value = "/decomposeShipment", method = RequestMethod.POST)
|
||||||
public R decomposeShipment(@RequestBody BuyOrderListRequestVo requestVo) {
|
public R decomposeShipment(@RequestBody BuyOrderListRequestVo requestVo) {
|
||||||
@@ -485,7 +488,8 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
//消费用户积分并记录用户积分消费记录
|
//消费用户积分并记录用户积分消费记录
|
||||||
addEbookToUser(buyOrderProductList, buyOrder, 0);
|
addEbookToUser(buyOrderProductList, buyOrder, 0);
|
||||||
addCourseToUser(buyOrder);
|
//开课
|
||||||
|
buyOrderService.addCourseToUser("天医币",buyOrder);
|
||||||
//使用优惠券
|
//使用优惠券
|
||||||
if (buyOrder.getCouponId()!=null&&buyOrder.getCouponId()!=0){
|
if (buyOrder.getCouponId()!=null&&buyOrder.getCouponId()!=0){
|
||||||
CouponHistory couponHistory = couponHistoryService.getById(buyOrder.getCouponId());
|
CouponHistory couponHistory = couponHistoryService.getById(buyOrder.getCouponId());
|
||||||
@@ -1124,67 +1128,6 @@ public class BuyOrderController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addCourseToUser(BuyOrder orderEntity){
|
|
||||||
List<ShopProductCourseEntity> orderCourse = buyOrderService.getOrderCourse(orderEntity.getOrderSn());
|
|
||||||
for (int i=0;i<orderCourse.size();i++){
|
|
||||||
ShopProductCourseEntity s = orderCourse.get(i);
|
|
||||||
LambdaQueryWrapper<UserCourseBuyEntity> wrapper2 = new LambdaQueryWrapper<>();
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getUserId,orderEntity.getUserId());
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId());
|
|
||||||
wrapper2.and(r->r.isNull(UserCourseBuyEntity::getEndTime).or().gt(UserCourseBuyEntity::getEndTime,new Date()));
|
|
||||||
List<UserCourseBuyEntity> userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2);
|
|
||||||
//插入开课记录
|
|
||||||
UserCourseBuyLog userCourseBuyLog = new UserCourseBuyLog();
|
|
||||||
userCourseBuyLog.setUserId(orderEntity.getUserId());
|
|
||||||
userCourseBuyLog.setType("order");
|
|
||||||
userCourseBuyLog.setPayType("天医币");
|
|
||||||
userCourseBuyLog.setPayTime(orderEntity.getCreateTime());
|
|
||||||
userCourseBuyLog.setOrderSn(orderEntity.getOrderSn());
|
|
||||||
if(userCourseBuyEntities.size()>0){//延长有效期
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(userCourseBuyEntity.getDays()+1);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setDays(userCourseBuyEntity.getDays()+s.getDays());
|
|
||||||
if(userCourseBuyEntity.getEndTime()!=null){
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
|
||||||
calendar.setTime(userCourseBuyEntity.getEndTime());
|
|
||||||
calendar.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
userCourseBuyEntity.setEndTime(calendar.getTime());
|
|
||||||
}
|
|
||||||
userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(虚拟币购买:"+orderEntity.getOrderSn()+")");
|
|
||||||
userCourseBuyDao.updateById(userCourseBuyEntity);
|
|
||||||
}else{
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity();
|
|
||||||
userCourseBuyEntity.setUserId(orderEntity.getUserId());
|
|
||||||
userCourseBuyEntity.setCourseId(s.getCourseId());
|
|
||||||
userCourseBuyEntity.setCatalogueId(s.getCatalogueId());
|
|
||||||
userCourseBuyEntity.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setCreateTime(new Date());
|
|
||||||
// userCourseBuyEntity.setStartTime(new Date());
|
|
||||||
// Calendar cal = Calendar.getInstance();
|
|
||||||
// cal.setTime(new Date());
|
|
||||||
// cal.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
// userCourseBuyEntity.setEndTime(cal.getTime());
|
|
||||||
userCourseBuyEntity.setCome("虚拟币购买:"+orderEntity.getOrderSn());
|
|
||||||
userCourseBuyDao.insert(userCourseBuyEntity);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(0);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
}
|
|
||||||
BigDecimal fee = orderEntity.getRealMoney().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
BigDecimal jf = orderEntity.getJfDeduction().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
if (i==(orderCourse.size()-1)){
|
|
||||||
userCourseBuyLog.setFee(orderEntity.getRealMoney().subtract(fee.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
userCourseBuyLog.setJf(orderEntity.getJfDeduction().subtract(jf.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
}else {
|
|
||||||
userCourseBuyLog.setFee(fee);
|
|
||||||
userCourseBuyLog.setJf(jf);
|
|
||||||
}
|
|
||||||
userCourseBuyLogService.save(userCourseBuyLog);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购物车
|
* 购物车
|
||||||
* TODO 新版本上线后删除此方法
|
* TODO 新版本上线后删除此方法
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public interface BuyOrderService extends IService<BuyOrder> {
|
|||||||
|
|
||||||
List<ShopProductCourseEntity> getOrderCourse(String orderSn);
|
List<ShopProductCourseEntity> getOrderCourse(String orderSn);
|
||||||
|
|
||||||
|
void addCourseToUser(String payType,BuyOrder orderEntity);
|
||||||
|
|
||||||
boolean checkWlOrder(String orderSn);
|
boolean checkWlOrder(String orderSn);
|
||||||
}
|
}
|
||||||
@@ -88,6 +88,10 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
|||||||
private UserVipService userVipService;
|
private UserVipService userVipService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VipBuyConfigService vipBuyConfigService;
|
private VipBuyConfigService vipBuyConfigService;
|
||||||
|
@Autowired
|
||||||
|
private UserCourseBuyDao userCourseBuyDao;
|
||||||
|
@Autowired
|
||||||
|
private UserCourseBuyLogDao userCourseBuyLogDao;
|
||||||
|
|
||||||
protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class);
|
protected Logger logger = LoggerFactory.getLogger(BuyOrderServiceImpl.class);
|
||||||
|
|
||||||
@@ -633,16 +637,80 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrder> impl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ShopProductCourseEntity> getOrderCourse(String orderSn) {
|
public List<ShopProductCourseEntity> getOrderCourse(String orderSn) {
|
||||||
// BuyOrder one = this.getBaseMapper().selectOne(new LambdaQueryWrapper<BuyOrder>().eq(BuyOrder::getOrderSn, orderSn));
|
|
||||||
MPJLambdaWrapper<BuyOrder> wrapper = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<BuyOrder> wrapper = new MPJLambdaWrapper<>();
|
||||||
wrapper.selectAll(ShopProductCourseEntity.class);
|
wrapper.selectAll(ShopProductCourseEntity.class);
|
||||||
wrapper.leftJoin(BuyOrderProduct.class,BuyOrderProduct::getOrderId,BuyOrder::getOrderId);
|
wrapper.leftJoin(BuyOrderProduct.class,BuyOrderProduct::getOrderId,BuyOrder::getOrderId);
|
||||||
|
wrapper.leftJoin(ShopProduct.class,ShopProduct::getProductId,BuyOrderProduct::getProductId);
|
||||||
wrapper.leftJoin(ShopProductCourseEntity.class,ShopProductCourseEntity::getProductId,BuyOrderProduct::getProductId);
|
wrapper.leftJoin(ShopProductCourseEntity.class,ShopProductCourseEntity::getProductId,BuyOrderProduct::getProductId);
|
||||||
|
wrapper.select(ShopProduct::getGoodsType);
|
||||||
wrapper.eq(BuyOrder::getOrderSn,orderSn);
|
wrapper.eq(BuyOrder::getOrderSn,orderSn);
|
||||||
List<ShopProductCourseEntity> shopProductCourseEntities = this.getBaseMapper().selectJoinList(ShopProductCourseEntity.class, wrapper);
|
List<ShopProductCourseEntity> shopProductCourseEntities = this.getBaseMapper().selectJoinList(ShopProductCourseEntity.class, wrapper);
|
||||||
return shopProductCourseEntities;
|
return shopProductCourseEntities;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addCourseToUser(String payType,BuyOrder orderEntity){
|
||||||
|
List<ShopProductCourseEntity> orderCourse = getOrderCourse(orderEntity.getOrderSn());
|
||||||
|
for (int i=0;i<orderCourse.size();i++){
|
||||||
|
ShopProductCourseEntity s = orderCourse.get(i);
|
||||||
|
LambdaQueryWrapper<UserCourseBuyEntity> wrapper2 = new LambdaQueryWrapper<>();
|
||||||
|
wrapper2.eq(UserCourseBuyEntity::getUserId,orderEntity.getUserId());
|
||||||
|
wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId());
|
||||||
|
wrapper2.and(r->r.isNull(UserCourseBuyEntity::getEndTime).or().gt(UserCourseBuyEntity::getEndTime,new Date()));
|
||||||
|
List<UserCourseBuyEntity> userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2);
|
||||||
|
//插入开课记录
|
||||||
|
UserCourseBuyLog userCourseBuyLog = new UserCourseBuyLog();
|
||||||
|
userCourseBuyLog.setUserId(orderEntity.getUserId());
|
||||||
|
userCourseBuyLog.setType("order");
|
||||||
|
userCourseBuyLog.setPayType(payType);
|
||||||
|
userCourseBuyLog.setPayTime(orderEntity.getCreateTime());
|
||||||
|
userCourseBuyLog.setOrderSn(orderEntity.getOrderSn());
|
||||||
|
if(userCourseBuyEntities.size()>0){//延长有效期
|
||||||
|
UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0);
|
||||||
|
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
||||||
|
userCourseBuyLog.setBeginDay(userCourseBuyEntity.getDays()+1);
|
||||||
|
userCourseBuyLog.setDays(s.getDays());
|
||||||
|
userCourseBuyEntity.setDays(userCourseBuyEntity.getDays()+s.getDays());
|
||||||
|
if(userCourseBuyEntity.getEndTime()!=null){
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(userCourseBuyEntity.getEndTime());
|
||||||
|
calendar.add(Calendar.DAY_OF_MONTH,s.getDays());
|
||||||
|
userCourseBuyEntity.setEndTime(calendar.getTime());
|
||||||
|
}
|
||||||
|
userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期("+payType+"购买:"+orderEntity.getOrderSn()+")");
|
||||||
|
userCourseBuyDao.updateById(userCourseBuyEntity);
|
||||||
|
}else{
|
||||||
|
UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity();
|
||||||
|
userCourseBuyEntity.setUserId(orderEntity.getUserId());
|
||||||
|
userCourseBuyEntity.setCourseId(s.getCourseId());
|
||||||
|
userCourseBuyEntity.setCatalogueId(s.getCatalogueId());
|
||||||
|
userCourseBuyEntity.setDays(s.getDays());
|
||||||
|
userCourseBuyEntity.setCreateTime(new Date());
|
||||||
|
userCourseBuyEntity.setCome(payType+"购买:"+orderEntity.getOrderSn());
|
||||||
|
userCourseBuyDao.insert(userCourseBuyEntity);
|
||||||
|
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
||||||
|
userCourseBuyLog.setBeginDay(0);
|
||||||
|
userCourseBuyLog.setDays(s.getDays());
|
||||||
|
}
|
||||||
|
//商品类型不是课程,视为赠送课程,报表金额为0
|
||||||
|
if (!"05".equals(s.getGoodsType())){
|
||||||
|
userCourseBuyLog.setFee(BigDecimal.ZERO);
|
||||||
|
userCourseBuyLog.setJf(BigDecimal.ZERO);
|
||||||
|
}else {
|
||||||
|
BigDecimal fee = orderEntity.getRealMoney().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
BigDecimal jf = orderEntity.getJfDeduction().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
||||||
|
if (i==(orderCourse.size()-1)){
|
||||||
|
userCourseBuyLog.setFee(orderEntity.getRealMoney().subtract(fee.multiply(new BigDecimal(orderCourse.size()-1))));
|
||||||
|
userCourseBuyLog.setJf(orderEntity.getJfDeduction().subtract(jf.multiply(new BigDecimal(orderCourse.size()-1))));
|
||||||
|
}else {
|
||||||
|
userCourseBuyLog.setFee(fee);
|
||||||
|
userCourseBuyLog.setJf(jf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
userCourseBuyLogDao.insert(userCourseBuyLog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkWlOrder(String orderSn) {
|
public boolean checkWlOrder(String orderSn) {
|
||||||
BuyOrder one = this.getOne(new LambdaQueryWrapper<BuyOrder>().eq(BuyOrder::getOrderSn, orderSn));
|
BuyOrder one = this.getOne(new LambdaQueryWrapper<BuyOrder>().eq(BuyOrder::getOrderSn, orderSn));
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.peanut.modules.common.entity;
|
package com.peanut.modules.common.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
@@ -26,4 +27,8 @@ public class ShopProductCourseEntity {
|
|||||||
|
|
||||||
@TableLogic
|
@TableLogic
|
||||||
private Integer delFlag;
|
private Integer delFlag;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String goodsType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -277,64 +277,7 @@ public class AliPayServiceImpl implements AliPayService {
|
|||||||
userEbookBuyDao.insert(entity);
|
userEbookBuyDao.insert(entity);
|
||||||
}
|
}
|
||||||
//开通course,start
|
//开通course,start
|
||||||
List<ShopProductCourseEntity> orderCourse = buyOrderService.getOrderCourse(order.getOrderSn());
|
buyOrderService.addCourseToUser("支付宝",order);
|
||||||
for (int i=0;i<orderCourse.size();i++){
|
|
||||||
ShopProductCourseEntity s = orderCourse.get(i);
|
|
||||||
LambdaQueryWrapper<UserCourseBuyEntity> wrapper2 = new LambdaQueryWrapper<>();
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getUserId,order.getUserId());
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId());
|
|
||||||
wrapper2.and(r->r.isNull(UserCourseBuyEntity::getEndTime).or().gt(UserCourseBuyEntity::getEndTime,new Date()));
|
|
||||||
List<UserCourseBuyEntity> userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2);
|
|
||||||
//插入开课记录
|
|
||||||
UserCourseBuyLog userCourseBuyLog = new UserCourseBuyLog();
|
|
||||||
userCourseBuyLog.setUserId(order.getUserId());
|
|
||||||
userCourseBuyLog.setType("order");
|
|
||||||
userCourseBuyLog.setPayType("支付宝");
|
|
||||||
userCourseBuyLog.setPayTime(order.getCreateTime());
|
|
||||||
userCourseBuyLog.setOrderSn(order.getOrderSn());
|
|
||||||
if(userCourseBuyEntities.size()>0){
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(userCourseBuyEntity.getDays()+1);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setDays(userCourseBuyEntity.getDays()+s.getDays());
|
|
||||||
if(userCourseBuyEntity.getEndTime()!=null){
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
|
||||||
calendar.setTime(userCourseBuyEntity.getEndTime());
|
|
||||||
calendar.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
userCourseBuyEntity.setEndTime(calendar.getTime());
|
|
||||||
}
|
|
||||||
userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(支付宝购买:"+order.getOrderSn()+")");
|
|
||||||
userCourseBuyDao.updateById(userCourseBuyEntity);
|
|
||||||
}else{
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity();
|
|
||||||
userCourseBuyEntity.setUserId(order.getUserId());
|
|
||||||
userCourseBuyEntity.setCourseId(s.getCourseId());
|
|
||||||
userCourseBuyEntity.setCatalogueId(s.getCatalogueId());
|
|
||||||
userCourseBuyEntity.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setCreateTime(new Date());
|
|
||||||
// userCourseBuyEntity.setStartTime(new Date());
|
|
||||||
// Calendar cal = Calendar.getInstance();
|
|
||||||
// cal.setTime(new Date());
|
|
||||||
// cal.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
// userCourseBuyEntity.setEndTime(cal.getTime());
|
|
||||||
userCourseBuyEntity.setCome("支付宝购买:"+order.getOrderSn());
|
|
||||||
userCourseBuyDao.insert(userCourseBuyEntity);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(0);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
}
|
|
||||||
BigDecimal fee = order.getRealMoney().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
BigDecimal jf = order.getJfDeduction().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
if (i==(orderCourse.size()-1)){
|
|
||||||
userCourseBuyLog.setFee(order.getRealMoney().subtract(fee.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
userCourseBuyLog.setJf(order.getJfDeduction().subtract(jf.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
}else {
|
|
||||||
userCourseBuyLog.setFee(fee);
|
|
||||||
userCourseBuyLog.setJf(jf);
|
|
||||||
}
|
|
||||||
userCourseBuyLogDao.insert(userCourseBuyLog);
|
|
||||||
}
|
|
||||||
//开通course,end
|
//开通course,end
|
||||||
//发放优惠卷
|
//发放优惠卷
|
||||||
couponService.insertCouponHistoryByProductId(order);
|
couponService.insertCouponHistoryByProductId(order);
|
||||||
|
|||||||
@@ -225,66 +225,8 @@ public class WxpayServiceImpl extends ServiceImpl<PayWechatOrderDao, PayWechatOr
|
|||||||
}
|
}
|
||||||
userEbookBuyService.saveBatch(userEbookBuyEntities);
|
userEbookBuyService.saveBatch(userEbookBuyEntities);
|
||||||
//开通book,end
|
//开通book,end
|
||||||
|
|
||||||
//开通course,start
|
//开通course,start
|
||||||
List<ShopProductCourseEntity> orderCourse = buyOrderService.getOrderCourse(order.getOrderSn());
|
buyOrderService.addCourseToUser("支付宝",order);
|
||||||
for (int i = 0; i < orderCourse.size(); i++) {
|
|
||||||
ShopProductCourseEntity s = orderCourse.get(i);
|
|
||||||
LambdaQueryWrapper<UserCourseBuyEntity> wrapper2 = new LambdaQueryWrapper<>();
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getUserId,order.getUserId());
|
|
||||||
wrapper2.eq(UserCourseBuyEntity::getCatalogueId,s.getCatalogueId());
|
|
||||||
wrapper2.and(r->r.isNull(UserCourseBuyEntity::getEndTime).or().gt(UserCourseBuyEntity::getEndTime,new Date()));
|
|
||||||
List<UserCourseBuyEntity> userCourseBuyEntities = userCourseBuyDao.selectList(wrapper2);
|
|
||||||
//插入开课记录
|
|
||||||
UserCourseBuyLog userCourseBuyLog = new UserCourseBuyLog();
|
|
||||||
userCourseBuyLog.setUserId(order.getUserId());
|
|
||||||
userCourseBuyLog.setType("order");
|
|
||||||
userCourseBuyLog.setPayType("微信");
|
|
||||||
userCourseBuyLog.setPayTime(order.getCreateTime());
|
|
||||||
userCourseBuyLog.setOrderSn(order.getOrderSn());
|
|
||||||
if(userCourseBuyEntities.size()>0){
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = userCourseBuyEntities.get(0);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(userCourseBuyEntity.getDays()+1);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setDays(userCourseBuyEntity.getDays()+s.getDays());
|
|
||||||
if(userCourseBuyEntity.getEndTime()!=null){
|
|
||||||
Calendar calendar = Calendar.getInstance();
|
|
||||||
calendar.setTime(userCourseBuyEntity.getEndTime());
|
|
||||||
calendar.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
userCourseBuyEntity.setEndTime(calendar.getTime());
|
|
||||||
}
|
|
||||||
userCourseBuyEntity.setCome(userCourseBuyEntity.getCome()+";延期(微信购买:"+order.getOrderSn()+")");
|
|
||||||
userCourseBuyDao.updateById(userCourseBuyEntity);
|
|
||||||
}else{
|
|
||||||
UserCourseBuyEntity userCourseBuyEntity = new UserCourseBuyEntity();
|
|
||||||
userCourseBuyEntity.setUserId(order.getUserId());
|
|
||||||
userCourseBuyEntity.setCourseId(s.getCourseId());
|
|
||||||
userCourseBuyEntity.setCatalogueId(s.getCatalogueId());
|
|
||||||
userCourseBuyEntity.setDays(s.getDays());
|
|
||||||
userCourseBuyEntity.setCreateTime(new Date());
|
|
||||||
// userCourseBuyEntity.setStartTime(new Date());
|
|
||||||
// Calendar cal = Calendar.getInstance();
|
|
||||||
// cal.setTime(new Date());
|
|
||||||
// cal.add(Calendar.DAY_OF_MONTH,s.getDays());
|
|
||||||
// userCourseBuyEntity.setEndTime(cal.getTime());
|
|
||||||
userCourseBuyEntity.setCome("微信购买:"+order.getOrderSn());
|
|
||||||
userCourseBuyDao.insert(userCourseBuyEntity);
|
|
||||||
userCourseBuyLog.setUserCourseBuyId(userCourseBuyEntity.getId());
|
|
||||||
userCourseBuyLog.setBeginDay(0);
|
|
||||||
userCourseBuyLog.setDays(s.getDays());
|
|
||||||
}
|
|
||||||
BigDecimal fee = order.getRealMoney().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
BigDecimal jf = order.getJfDeduction().divide(new BigDecimal(orderCourse.size()),2, BigDecimal.ROUND_HALF_UP);
|
|
||||||
if (i==(orderCourse.size()-1)){
|
|
||||||
userCourseBuyLog.setFee(order.getRealMoney().subtract(fee.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
userCourseBuyLog.setJf(order.getJfDeduction().subtract(jf.multiply(new BigDecimal(orderCourse.size()-1))));
|
|
||||||
}else {
|
|
||||||
userCourseBuyLog.setFee(fee);
|
|
||||||
userCourseBuyLog.setJf(jf);
|
|
||||||
}
|
|
||||||
userCourseBuyLogDao.insert(userCourseBuyLog);
|
|
||||||
}
|
|
||||||
//开通course,end
|
//开通course,end
|
||||||
//发放优惠卷
|
//发放优惠卷
|
||||||
couponService.insertCouponHistoryByProductId(order);
|
couponService.insertCouponHistoryByProductId(order);
|
||||||
|
|||||||
Reference in New Issue
Block a user