Explorar o código

回调消费优惠券

he2802 %!s(int64=4) %!d(string=hai) anos
pai
achega
895824622a
Modificáronse 17 ficheiros con 491 adicións e 10 borrados
  1. 8 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/OrderPossessUserController.java
  2. 33 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponAddBo.java
  3. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponEditBo.java
  4. 46 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponQueryBo.java
  5. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderCoupon.java
  6. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderCouponMapper.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/ICouponService.java
  8. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderCouponService.java
  9. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/CouponServiceImpl.java
  10. 114 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderCouponServiceImpl.java
  11. 46 7
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  12. 36 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderCouponVo.java
  13. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/OrderPossessUserQueryBo.java
  14. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IOrderPossessUserService.java
  15. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/OrderPossessUserServiceImpl.java
  16. 21 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java
  17. 16 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderCouponMapper.xml

+ 8 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/OrderPossessUserController.java

@@ -3,6 +3,7 @@ package com.zhongzheng.controller.user;
 import java.util.List;
 import java.util.Arrays;
 
+import cn.hutool.core.lang.Validator;
 import com.zhongzheng.common.utils.ServletUtils;
 import com.zhongzheng.framework.web.service.WxTokenService;
 import com.zhongzheng.modules.user.bo.OrderPossessUserQueryBo;
@@ -58,5 +59,12 @@ public class OrderPossessUserController extends BaseController {
         return  AjaxResult.success(list);
     }
 
+    @ApiOperation("查询是否拥有该项目")
+    @GetMapping("/owner")
+    public AjaxResult<Void> owner(OrderPossessUserQueryBo bo) {
+        ClientLoginUser loginUser = WxTokenService.getLoginUser(ServletUtils.getRequest());
+        bo.setUserId(loginUser.getUser().getUserId());
+        return  toAjax(Validator.isNotNull(iOrderPossessUserService.queryByTypeAndId(bo.getPossessId(),bo.getTypeId(),bo.getUserId()))?1:0);
+    }
 
 }

+ 33 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponAddBo.java

@@ -0,0 +1,33 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 订单优惠券 添加对象 order_coupon
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Data
+@ApiModel("订单优惠券 添加对象")
+public class OrderCouponAddBo {
+
+    /** 订单sn */
+    @ApiModelProperty("订单sn")
+    private String orderSn;
+    /** 优惠券ID */
+    @ApiModelProperty("优惠券ID")
+    private Long couponId;
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+}

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponEditBo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 订单优惠券 编辑对象 order_coupon
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Data
+@ApiModel("订单优惠券 编辑对象")
+public class OrderCouponEditBo {
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 订单sn */
+    @ApiModelProperty("订单sn")
+    private String orderSn;
+
+    /** 优惠券ID */
+    @ApiModelProperty("优惠券ID")
+    private Long couponId;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+}

+ 46 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderCouponQueryBo.java

@@ -0,0 +1,46 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 订单优惠券 分页查询对象 order_coupon
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("订单优惠券 分页查询对象")
+public class OrderCouponQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 订单sn */
+	@ApiModelProperty("订单sn")
+	private String orderSn;
+	/** 优惠券ID */
+	@ApiModelProperty("优惠券ID")
+	private Long couponId;
+
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderCoupon.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.order.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 订单优惠券 对象 order_coupon
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("order_coupon")
+public class OrderCoupon implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+
+    /** 订单sn */
+    private String orderSn;
+
+    /** 优惠券ID */
+    private Long couponId;
+
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+
+}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderCouponMapper.java

@@ -0,0 +1,15 @@
+package com.zhongzheng.modules.order.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.order.domain.OrderCoupon;
+
+/**
+ * 订单优惠券 Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+public interface OrderCouponMapper extends BaseMapper<OrderCoupon> {
+
+}

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/ICouponService.java

@@ -23,6 +23,8 @@ public interface ICouponService extends IService<Coupon> {
 	 */
 	CouponVo queryById(Long couponId);
 
+	Coupon queryByIdAndUserId(Long couponId,Long userId);
+
 	/**
 	 * 查询列表
 	 */

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderCouponService.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.order.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.order.bo.OrderCouponAddBo;
+import com.zhongzheng.modules.order.bo.OrderCouponEditBo;
+import com.zhongzheng.modules.order.bo.OrderCouponQueryBo;
+import com.zhongzheng.modules.order.domain.OrderCoupon;
+import com.zhongzheng.modules.order.vo.OrderCouponVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 订单优惠券 Service接口
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+public interface IOrderCouponService extends IService<OrderCoupon> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	OrderCouponVo queryById(Long id);
+
+	OrderCoupon queryBySn(String orderSn);
+
+	/**
+	 * 查询列表
+	 */
+	List<OrderCouponVo> queryList(OrderCouponQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入订单优惠券
+	 * @param bo 订单优惠券 新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(OrderCouponAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改订单优惠券
+	 * @param bo 订单优惠券 编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(OrderCouponEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/CouponServiceImpl.java

@@ -1,8 +1,10 @@
 package com.zhongzheng.modules.order.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.course.domain.MajorCategory;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -36,6 +38,18 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
         return BeanUtil.toBean(db, CouponVo.class);
     }
 
+    @Override
+    public Coupon queryByIdAndUserId(Long couponId, Long userId) {
+        Coupon info = getOne(new LambdaQueryWrapper<Coupon>()
+                .eq(Coupon::getCouponId,couponId)
+                .eq(Coupon::getUserId,userId)
+                .last("limit 1"));
+        if (Validator.isNotNull(info)) {
+            return info;
+        }
+        return null;
+    }
+
     @Override
     public List<CouponVo> queryList(CouponQueryBo bo) {
         LambdaQueryWrapper<Coupon> lqw = Wrappers.lambdaQuery();

+ 114 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderCouponServiceImpl.java

@@ -0,0 +1,114 @@
+package com.zhongzheng.modules.order.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.course.domain.MajorCategory;
+import com.zhongzheng.modules.order.bo.OrderCouponAddBo;
+import com.zhongzheng.modules.order.bo.OrderCouponEditBo;
+import com.zhongzheng.modules.order.bo.OrderCouponQueryBo;
+import com.zhongzheng.modules.order.domain.OrderCoupon;
+import com.zhongzheng.modules.order.mapper.OrderCouponMapper;
+import com.zhongzheng.modules.order.service.IOrderCouponService;
+import com.zhongzheng.modules.order.vo.OrderCouponVo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 订单优惠券 Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Service
+public class OrderCouponServiceImpl extends ServiceImpl<OrderCouponMapper, OrderCoupon> implements IOrderCouponService {
+
+    @Override
+    public OrderCouponVo queryById(Long id){
+        OrderCoupon db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, OrderCouponVo.class);
+    }
+
+    @Override
+    public OrderCoupon queryBySn(String orderSn) {
+        OrderCoupon info = getOne(new LambdaQueryWrapper<OrderCoupon>()
+                .eq(OrderCoupon::getOrderSn,orderSn)
+                .last("limit 1"));
+        if (Validator.isNotNull(info)) {
+            return info;
+        }
+        return null;
+    }
+
+    @Override
+    public List<OrderCouponVo> queryList(OrderCouponQueryBo bo) {
+        LambdaQueryWrapper<OrderCoupon> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getOrderSn()), OrderCoupon::getOrderSn, bo.getOrderSn());
+        lqw.eq(bo.getCouponId() != null, OrderCoupon::getCouponId, bo.getCouponId());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<OrderCouponVo> entity2Vo(Collection<OrderCoupon> collection) {
+        List<OrderCouponVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, OrderCouponVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<OrderCoupon> page = (Page<OrderCoupon>)collection;
+            Page<OrderCouponVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(OrderCouponAddBo bo) {
+        OrderCoupon add = BeanUtil.toBean(bo, OrderCoupon.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(OrderCouponEditBo bo) {
+        OrderCoupon update = BeanUtil.toBean(bo, OrderCoupon.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(OrderCoupon entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 46 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -13,14 +13,15 @@ import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.course.vo.CourseVo;
 import com.zhongzheng.modules.exam.service.IExamNoteService;
 import com.zhongzheng.modules.exam.vo.ExamNoteVo;
-import com.zhongzheng.modules.order.bo.OrderAddBo;
-import com.zhongzheng.modules.order.bo.OrderEditBo;
-import com.zhongzheng.modules.order.bo.OrderGoodsAddBo;
-import com.zhongzheng.modules.order.bo.OrderQueryBo;
+import com.zhongzheng.modules.order.bo.*;
+import com.zhongzheng.modules.order.domain.Coupon;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.mapper.OrderMapper;
+import com.zhongzheng.modules.order.service.ICouponService;
+import com.zhongzheng.modules.order.service.IOrderCouponService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.CouponVo;
 import com.zhongzheng.modules.order.vo.OrderVo;
 import com.zhongzheng.modules.user.domain.OrderPossessUser;
 import com.zhongzheng.modules.user.domain.User;
@@ -73,7 +74,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private IOrderPossessUserService iOrderPossessUserService;
 
+    @Autowired
+    private ICouponService iCouponService;
 
+    @Autowired
+    private IOrderCouponService iOrderCouponService;
 
     @Override
     public OrderVo queryById(Long orderId){
@@ -144,7 +149,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
-        Map<String, String> result = dealOrder(add,goodsList);
+        Map<String, String> result = dealOrder(add,goodsList,bo.getCouponId());
 
         return result;
     }
@@ -173,7 +178,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return this.removeByIds(ids);
     }
 
-    private Map<String, String>  dealOrder(Order add,List<OrderGoodsAddBo> goodsList){
+    private Map<String, String>  dealOrder(Order add,List<OrderGoodsAddBo> goodsList,Long couponId){
         UserVo userVo = iUserService.queryById(add.getUserId());
         String body = "中正云课堂消费";
         String price = "1";
@@ -211,7 +216,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
                 g.setGoodsPrice(examNoteVo.getPrice());
             }
-            OrderPossessUser orderPossess =iOrderPossessUserService.queryByTypeAndId(g.getGoodsId(),g.getGoodsType());
+            OrderPossessUser orderPossess =iOrderPossessUserService.queryByTypeAndId(g.getGoodsId(),g.getGoodsType(),add.getUserId());
             if(Validator.isNotNull(orderPossess)){
                 throw new CustomException("你已购买该商品");
             }
@@ -219,6 +224,38 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 throw new CustomException("商品错误");
             }
             totalPrice = totalPrice.add(g.getGoodsPrice());
+
+        }
+        if(couponId>0){
+            //使用优惠券
+            Coupon coupon= iCouponService.queryByIdAndUserId(couponId,add.getUserId());
+            if(!Validator.isNotNull(coupon)){
+                throw new CustomException("该优惠券不存在");
+            }
+            if(coupon.getUserStatus()!=0||coupon.getEndTime()<DateUtils.getNowTime()){
+                throw new CustomException("该优惠券无法使用");
+            }
+            if(coupon.getCouponType()==0){
+                //优惠券
+                totalPrice = totalPrice.subtract(coupon.getPrice());
+
+            }
+            if(coupon.getCouponType()==1){
+                //折扣券
+                totalPrice = totalPrice.divide((new BigDecimal(10))).multiply(coupon.getPrice());
+            }
+            OrderCouponAddBo orderCouponAddBo = new OrderCouponAddBo();
+            orderCouponAddBo.setCouponId(couponId);
+            orderCouponAddBo.setOrderSn(out_trade_no);
+            if(!iOrderCouponService.insertByAddBo(orderCouponAddBo)){
+                throw new CustomException("优惠券数据错误");
+            }
+
+        }
+        BigDecimal zero = new BigDecimal(0.01);
+        if(totalPrice.compareTo(zero) == -1){
+            //价格不能小于0.01
+            totalPrice = zero;
         }
         add.setOrderPrice(totalPrice);
         if(!this.save(add)){
@@ -228,4 +265,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return result;
     }
 
+
+
 }

+ 36 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderCouponVo.java

@@ -0,0 +1,36 @@
+package com.zhongzheng.modules.order.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 订单优惠券 视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Data
+@ApiModel("订单优惠券 视图对象")
+public class OrderCouponVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 订单sn */
+	@Excel(name = "订单sn")
+	@ApiModelProperty("订单sn")
+	private String orderSn;
+	/** 优惠券ID */
+	@Excel(name = "优惠券ID")
+	@ApiModelProperty("优惠券ID")
+	private Long couponId;
+
+}

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/OrderPossessUserQueryBo.java

@@ -37,7 +37,7 @@ public class OrderPossessUserQueryBo extends BaseEntity {
 
 
 	/** 解锁类型 0课程 1题库  2考试重点 */
-	@ApiModelProperty("解锁类型 0课程 1题库  2考试重点")
+	@ApiModelProperty("解锁类型 1课程 2题库  3考试重点")
 	private Integer typeId;
 	/** 拥有的课程id或题库id或考试重点 */
 	@ApiModelProperty("拥有的课程id或题库id或考试重点")

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IOrderPossessUserService.java

@@ -23,7 +23,7 @@ public interface IOrderPossessUserService extends IService<OrderPossessUser> {
 	 */
 	OrderPossessUserVo queryById(Long userId);
 
-	OrderPossessUser queryByTypeAndId(Long possessId,Integer typeId);
+	OrderPossessUser queryByTypeAndId(Long possessId, Integer typeId, Long userId);
 
 	/**
 	 * 查询列表

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/OrderPossessUserServiceImpl.java

@@ -46,10 +46,11 @@ public class OrderPossessUserServiceImpl extends ServiceImpl<OrderPossessUserMap
     }
 
     @Override
-    public OrderPossessUser queryByTypeAndId(Long possessId, Integer typeId) {
+    public OrderPossessUser queryByTypeAndId(Long possessId, Integer typeId, Long userId) {
         OrderPossessUser info = getOne(new LambdaQueryWrapper<OrderPossessUser>()
                 .eq(OrderPossessUser::getPossessId,possessId)
                 .eq(OrderPossessUser::getTypeId,typeId)
+                .eq(OrderPossessUser::getUserId,userId)
                 .last("limit 1"));
         if (Validator.isNotNull(info)) {
             return info;

+ 21 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -2,11 +2,13 @@ package com.zhongzheng.modules.wx.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpStatus;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -20,10 +22,15 @@ import com.zhongzheng.common.utils.http.HttpUtils;
 import com.zhongzheng.common.utils.ip.IpUtils;
 import com.zhongzheng.common.utils.polyv.PolyvUtils;
 import com.zhongzheng.common.utils.wxpay.*;
+import com.zhongzheng.modules.bank.domain.QuestionBank;
+import com.zhongzheng.modules.course.domain.Course;
+import com.zhongzheng.modules.course.service.ICourseService;
 import com.zhongzheng.modules.exam.service.IExamNoteService;
 import com.zhongzheng.modules.order.bo.OrderGoodsAddBo;
 import com.zhongzheng.modules.order.bo.OrderGoodsQueryBo;
 import com.zhongzheng.modules.order.domain.Order;
+import com.zhongzheng.modules.order.domain.OrderCoupon;
+import com.zhongzheng.modules.order.service.IOrderCouponService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
@@ -97,6 +104,12 @@ public class WxPayServiceImpl  implements IWxPayService {
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
 
+    @Autowired
+    private IOrderCouponService iOrderCouponService;
+
+    @Autowired
+    private ICourseService iCourseService;
+
 
     @Override
     public Map<String, String> payment(String out_trade_no,String openid,String body,String price) {
@@ -185,6 +198,14 @@ public class WxPayServiceImpl  implements IWxPayService {
                     addBo.setSourceId(0);//订单来源
                     iOrderPossessUserService.insertByAddBo(addBo);
                 }
+                //用优惠券更新状态
+                OrderCoupon orderCoupon = iOrderCouponService.queryBySn(out_trade_no);
+                if(Validator.isNotNull(orderCoupon)){
+                    UpdateWrapper<Course> updateWrapper = new UpdateWrapper<>();
+                    updateWrapper.setSql("user_status = "+1);
+                    updateWrapper.eq("coupon_id", orderCoupon.getCouponId());
+                    iCourseService.update(updateWrapper);
+                }
                return true;
             }
         }

+ 16 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderCouponMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zhongzheng.modules.order.mapper.OrderCouponMapper">
+
+    <resultMap type="com.zhongzheng.modules.order.domain.OrderCoupon" id="OrderCouponResult">
+        <result property="id" column="id"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="couponId" column="coupon_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>