Aslee 3 лет назад
Родитель
Сommit
c5a69335ff
1 измененных файлов с 9 добавлено и 5 удалено
  1. 9 5
      src/main/resources/mapper/CouponMapper.xml

+ 9 - 5
src/main/resources/mapper/CouponMapper.xml

@@ -8,8 +8,8 @@
         cc.`id` AS "couponId",
         cc.`couponAmount`,
         cc.`touchPrice`,
-        a.`createDate` as `startDate`,
-        date_add(a.createDate,interval cc.usePeriod DAY) as `endDate`,
+        if(cc.vipFlag = 1,cc.startDate,a.createDate) as startDate,
+        if(cc.vipFlag = 1,cc.endDate,date_add(a.createDate,interval cc.usePeriod day)) as endDate,
         cc.`couponType`,
         cc.`userId`,
         cc.`shopId`,
@@ -24,14 +24,18 @@
         AND a.userId = #{userId}
         <if test="status == 1">
             AND a.status = 1
-            AND NOW() <![CDATA[ < ]]> date_add(a.createDate,interval cc.usePeriod DAY)
+            AND if(cc.vipFlag = 1,
+                NOW() BETWEEN cc.startDate AND cc.endDate,
+                NOW() <![CDATA[ < ]]> date_add(a.createDate,interval cc.usePeriod DAY))
         </if>
         <if test="status == 2">
             AND a.status = 2
         </if>
         <if test="status == 3">
             AND a.status = 1
-            AND NOW() <![CDATA[ > ]]> date_add(a.createDate,interval cc.usePeriod DAY)
+            AND if(cc.vipFlag = 1,
+                NOW() > cc.endDate,
+                NOW() <![CDATA[ > ]]> date_add(a.createDate,interval cc.usePeriod DAY))
         </if>
         AND cc.status != 2
         ORDER BY
@@ -166,7 +170,7 @@
         SELECT `id` AS "couponId",
                `couponAmount`,
                `touchPrice`,
-               if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate),
+               if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate) as startDate,
                if(receiveFlag=1,endDate,date_add(if(#{registerTime} <![CDATA[ > ]]> startDate,#{registerTime},startDate),
                    interval receivePeriod day)) as endDate,
                date_add(NOW(),interval usePeriod day ) as usePeriod,