瀏覽代碼

修改 针对无限库存的优惠券领取逻辑

hgw 3 年之前
父節點
當前提交
9a716edb3d

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponCodeServiceImpl.java

@@ -169,6 +169,11 @@ public class SysCouponCodeServiceImpl extends BaseServiceImpl<Long, SysCouponCod
             sysCouponService.stockWarning(sysCoupon.getId(), sysCoupon.getName());
             updateParam.put("warningStatus", 1);
         }
+
+        //有的优惠券是无限库存模式,所以不需要校验库存 checkStock有值则需要校验
+        if (sysCoupon.getStockCount() > 0) {
+            updateParam.put("checkStock", 1);
+        }
         //扣减库存操作
         if (sysCouponDao.updateExchange(updateParam) != 1) {
             throw new BizException("优惠券库存不足!");

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/SysCouponMapper.xml

@@ -111,8 +111,10 @@
     <update id="updateExchange" parameterType="map">
         UPDATE sys_coupon
         <set>
-            stock_count_ = stock_count_ - #{param.exchangeNum},
             consume_num_ =consume_num_ + #{param.exchangeNum},
+            <if test="param.checkStock != null">
+                stock_count_ = stock_count_ - #{param.exchangeNum},
+            </if>
             <if test="param.warningStatus != null">
                 warning_status_ = #{param.warningStatus},
             </if>
@@ -120,7 +122,9 @@
         </set>
         WHERE id_ = #{param.id}
         and tenant_id_ = #{param.tenantId}
-        and stock_count_ >= #{param.exchangeNum}
+        <if test="param.checkStock != null">
+           and stock_count_ >= #{param.exchangeNum}
+        </if>
     </update>
 
 	<!-- 根据主键删除一条记录 -->