Browse Source

优惠券标签bugfix

Aslee 3 năm trước cách đây
mục cha
commit
999571b782

+ 3 - 1
src/main/java/com/caimei365/commodity/mapper/PageMapper.java

@@ -8,6 +8,7 @@ import com.caimei365.commodity.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -182,9 +183,10 @@ public interface PageMapper {
      * 查询所有有效的优惠券
      *
      * @param userId
+     * @param registerTime
      * @return
      */
-    List<CouponVo> findAllCoupon(Integer userId);
+    List<CouponVo> findAllCoupon(@Param("userId") Integer userId, @Param("registerTime") Date registerTime);
 
     /**
      * 查询所有优惠券指定商品id

+ 5 - 4
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -954,7 +954,8 @@ public class PageServiceImpl implements PageService {
     public Boolean setCouponsLogo(Integer userId, Integer productId, Integer source) {
         boolean couponsLogo = false;
         ProductDetailVo product = pageMapper.getProductDetails(productId);
-        List<CouponVo> couponList = pageMapper.findAllCoupon(userId);
+        Date registerTime = couponMapper.findUserRegisterTime(userId);
+        List<CouponVo> couponList = pageMapper.findAllCoupon(userId, registerTime);
         if (couponList != null && couponList.size() > 0) {
             for (CouponVo coupon : couponList) {
                 if (coupon.getCouponType() == 4 || coupon.getCouponType() == 2) {
@@ -1127,7 +1128,7 @@ public class PageServiceImpl implements PageService {
         String ossName = archiveFile.getOssName();
         // 设置URL过期时间为1个小时
         Date expiration = new Date(System.currentTimeMillis() + 3600L * 1000);
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        /*SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         try {
             Date dateOne = format.parse("2021-06-01 00:00:00");
             Date dateTwo = format.parse("2021-09-17 18:00:00");
@@ -1138,8 +1139,8 @@ public class PageServiceImpl implements PageService {
             }
         } catch (ParseException e) {
             log.info("格式化时间错误", e);
-        }
-        String url = ossClient.generatePresignedUrl(bucketName, ossName, expiration).toString();
+        }*/
+        String url = ossClient.generatePresignedUrl(bucketName, active + "/archiveFile/" + ossName, expiration).toString();
         ossClient.shutdown();
         return url;
     }

+ 1 - 2
src/main/resources/mapper/CouponMapper.xml

@@ -135,8 +135,7 @@
             AND id NOT IN(SELECT couponId FROM cm_coupon_club WHERE userId = #{userId})
             AND (couponType IN (0,1,3)
             OR couponType = 2 AND userId = #{userId}
-            OR ((SELECT registerTime FROM USER WHERE userID = #{userId}) <![CDATA[ >= ]]> startDate
-            AND couponType = 4))
+            OR (#{registerTime} <![CDATA[ >= ]]> startDate AND couponType = 4))
             and NOW() <![CDATA[ > ]]> startDate
             and NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,
                     date_add(if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate),interval receivePeriod day)

+ 10 - 3
src/main/resources/mapper/PageMapper.xml

@@ -387,15 +387,22 @@
         FROM
            cm_coupon
         WHERE
-           delFlag = 0
-            AND NOW() BETWEEN startDate
-            AND endDate
+           delFlag = 0 AND vipFlag != 1
             AND status != 2
             AND couponsMode = 0
+        <if test="userId == null or userId == 0">
+            AND couponType != 2
+            AND NOW() <![CDATA[ > ]]> startDate
+            AND NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,date_add(startDate,interval receivePeriod day))
+        </if>
         <if test="userId > 0">
             AND (couponType IN (0,1,3)
             OR couponType = 2 AND userId = #{userId}
             OR (SELECT registerTime FROM USER WHERE userID = #{userId}) <![CDATA[ >= ]]> startDate)
+            and NOW() <![CDATA[ > ]]> startDate
+            and NOW() <![CDATA[ < ]]> if(receiveFlag = 1,endDate,
+                date_add(if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate),interval receivePeriod day)
+            )
         </if>
         ORDER BY
           createDate DESC