瀏覽代碼

Merge remote-tracking branch 'origin/saas' into saas

yanite 3 年之前
父節點
當前提交
40688117b2

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysCouponIssueRecordDao.java

@@ -37,6 +37,6 @@ public interface SysCouponIssueRecordDao extends BaseMapper<SysCouponIssueRecord
      */
     void opsConsume(@Param("id") Integer id, @Param("consumeNum") Integer consumeNum);
 
-    List<SysCoupon> queryUserCanGetCoupon(@Param("userId") Integer userId);
+    List<SysCoupon> queryUserCanGetCoupon(@Param("userId") Integer userId,@Param("tenantId") Integer tenantId);
 }
 

+ 2 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/CouponDetailTypeEnum.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.enums;
 
-import com.ym.mec.common.page.WrapperUtil;
 import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
@@ -101,10 +100,10 @@ public enum CouponDetailTypeEnum {
         }
     }
 
-    public static String[] getAllowType(CouponDetailTypeEnum... type){
+    public static String[] getAllowType(CouponDetailTypeEnum... type) {
         List<String> resultList = new ArrayList<>();
         resultList.add(FULLCOUPON.getCode());
-        if(Objects.nonNull(type)){
+        if (Objects.nonNull(type)) {
             List<String> collect = Arrays.stream(type)
                     .map(CouponDetailTypeEnum::getCode)
                     .distinct()

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponIssueRecordServiceImpl.java

@@ -153,7 +153,7 @@ public class SysCouponIssueRecordServiceImpl extends ServiceImpl<SysCouponIssueR
      */
     @Override
     public List<SysCoupon> queryCanBeGetCoupon(Integer userId) {
-        return baseMapper.queryUserCanGetCoupon(userId);
+        return baseMapper.queryUserCanGetCoupon(userId,TenantContextHolder.getTenantId());
     }
 
     /**

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysCouponServiceImpl.java

@@ -153,6 +153,9 @@ public class SysCouponServiceImpl extends BaseServiceImpl<Integer, SysCoupon> im
                 if (Objects.isNull(sysCoupon.getFullAmount())) {
                     throw new BizException("请指定达标金额");
                 }
+                if (sysCoupon.getFaceValue().compareTo(sysCoupon.getFullAmount()) < 0) {
+                    throw new BizException("优惠的金额不能超过优惠券满减额度");
+                }
                 break;
             default:
                 throw new BizException("请指定优惠券类型");

+ 13 - 12
mec-biz/src/main/resources/config/mybatis/SysCouponIssueRecordMapper.xml

@@ -96,8 +96,7 @@
     <update id="opsConsume" parameterType="object">
         UPDATE sys_coupon
         SET
-            consume_num_ = consume_num_ - #{consumeNum},
-            stock_count_ = stock_count_ + #{consumeNum}
+            consume_num_ = consume_num_ - #{consumeNum}
         WHERE id_ = #{id}
     </update>
 
@@ -128,7 +127,7 @@
     </resultMap>
 
     <select id="queryUserCanGetCoupon" resultMap="SysCoupon">
-        SELECT
+        SELECT DISTINCT
             id_,
             name_,
             description_,
@@ -151,26 +150,28 @@
             warning_status_,
             create_time_,
             update_time_,
-            a.tenant_id_
+            tenant_id_
         FROM
             sys_coupon AS a
-                JOIN
-            (SELECT DISTINCT
-                 coupon_id_,
-                 tenant_id_
+                LEFT JOIN
+            (SELECT
+                 COUNT(coupon_id_) AS couponNum,
+                 coupon_id_
              FROM
                  sys_coupon_code
-             WHERE user_id_ = #{userId}) AS b
-            ON a.`id_` NOT IN (b.coupon_id_)
-                AND a.tenant_id_ = b.tenant_id_
+             WHERE user_id_ = #{userId}
+             GROUP BY coupon_id_) AS b
+            ON a.id_ = b.coupon_id_
         WHERE issuance_type_ = 0
           AND status_ = 1
+          AND tenant_id_ = #{tenantId}
+          AND a.`limit_exchange_num_` > IFNULL(b.couponNum,0)
           AND (
                     effective_expire_time_ > NOW()
                 OR deadline_ > 0
             )
           AND (
-                    stock_count_ >= consume_num_
+                    stock_count_ > consume_num_
                 OR stock_count_ = - 1
             )
     </select>

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

@@ -111,10 +111,7 @@
     <update id="updateExchange" parameterType="map">
         UPDATE sys_coupon
         <set>
-            consume_num_ =consume_num_ + #{param.exchangeNum},
-            <if test="param.checkStock != null">
-                stock_count_ = stock_count_ - #{param.exchangeNum},
-            </if>
+            consume_num_ = consume_num_ + #{param.exchangeNum},
             <if test="param.warningStatus != null">
                 warning_status_ = #{param.warningStatus},
             </if>
@@ -123,7 +120,7 @@
         WHERE id_ = #{param.id}
         and tenant_id_ = #{param.tenantId}
         <if test="param.checkStock != null">
-           and stock_count_ >= #{param.exchangeNum}
+           and stock_count_ > (consume_num_ + #{param.exchangeNum})
         </if>
     </update>