Ver Fonte

fix 删除优惠码兑换的优惠劵

zoujiajian há 3 anos atrás
pai
commit
2aef05f028

+ 4 - 4
netflix-dao/src/main/resources/mapper/CouponMapper.xml

@@ -4,8 +4,8 @@
 <mapper namespace="com.cyksj.mapper.manage.coupon.CouponMapper">
 
     <select id="checkExCode" resultType="com.cyksj.model.dto.CouponPopularizeDto">
-        select cp.id as couponId,
-               cdp.id as popularizeId,
+        select cp.id         as couponId,
+               cdp.id        as popularizeId,
                cp.goods_sku_ids,
                cp.type,
                cp.is_renew,
@@ -18,9 +18,9 @@
                cp.valid_end_time,
                cp.is_valid_time
         from `coupon` cp
-                 left join `coupon_distribute_popularize` cdp on cdp.coupon_id = cp.id
+                 left join (select id, coupon_id, ex_code from `coupon_distribute_popularize` where deleted is true) cdp
+                           on cdp.coupon_id = cp.id
         where cp.deleted is true
-          and cdp.deleted is true
           and (cp.ex_code = #{couponExCode} or cdp.ex_code = #{couponExCode}) limit 1
     </select>
 </mapper>

+ 13 - 8
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -1095,14 +1095,19 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	private void updateOrderDonCouponStatus(OrderDon orderDon) {
 		log.info("订单:{}退款,优惠券返还start...", orderDon.getId());
 		CouponUser couponUser = couponUserMapper.selectById(orderDon.getCouponUserId());
-		CouponUserView couponUserView = beanSearcher.searchFirst(CouponUserView.class, MapUtils.builder()
-				.field(CouponUserView::getCouponId, couponUser.getCouponId()).op(Operator.Equal)
-				.field(CouponUserView::getUserId, orderDon.getUserId()).op(Operator.Equal)
-				.build());
-		couponUserView.setCouponUserStatus(CouponUser.Status.unused);
-		couponFontService.setCouponUserStatus(couponUserView, DateTime.now());
-		couponUser.setStatus(couponUserView.getCouponUserStatus());
-		couponUserMapper.updateById(couponUser);
+		if (CouponUser.Channel.exCode == couponUser.getChannel()) {
+			//兑换码兑换的优惠券退款时,直接删除
+			couponUserMapper.deleteById(couponUser.getId());
+		}else {
+			CouponUserView couponUserView = beanSearcher.searchFirst(CouponUserView.class, MapUtils.builder()
+					.field(CouponUserView::getCouponId, couponUser.getCouponId()).op(Operator.Equal)
+					.field(CouponUserView::getUserId, orderDon.getUserId()).op(Operator.Equal)
+					.build());
+			couponUserView.setCouponUserStatus(CouponUser.Status.unused);
+			couponFontService.setCouponUserStatus(couponUserView, DateTime.now());
+			couponUser.setStatus(couponUserView.getCouponUserStatus());
+			couponUserMapper.updateById(couponUser);
+		}
 		log.info("订单:{}退款,优惠券返还end...", orderDon.getId());
 	}