zhijiezhao před 3 roky
rodič
revize
2ecbaa8d2a

+ 14 - 8
src/main/java/com/caimei365/commodity/controller/CouponApi.java

@@ -76,7 +76,8 @@ public class CouponApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/collar/list")
-    public ResponseJson<PageInfo<CouponVo>> collarCouponsList(Integer userId, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+    public ResponseJson<PageInfo<CouponVo>> collarCouponsList(Integer userId,
+                                                              @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                               @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return couponService.collarCouponsList(userId, pageNum, pageSize);
     }
@@ -88,8 +89,9 @@ public class CouponApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/center/list")
-    public ResponseJson<PageInfo<CouponVo>> couponCenter(Integer userId, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
-                                                              @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    public ResponseJson<PageInfo<CouponVo>> couponCenter(Integer userId,
+                                                         @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                         @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         return couponService.collarCenterList(userId, pageNum, pageSize);
     }
 
@@ -143,13 +145,17 @@ public class CouponApi {
     @ApiOperation("协销价值优惠券列表")
     @GetMapping("/money/coupon/list")
     @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "userId", value = "机构用户id"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
-    public ResponseJson<PageInfo<CouponVo>> moneyCouponList(
-                                                        @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
-                                                        @RequestParam(value = "pageSize", defaultValue = "10") int pageSize){
-        return couponService.findMoneyCoupons(pageNum,pageSize);
+    public ResponseJson<PageInfo<CouponVo>> moneyCouponList(Integer userId,
+                                                            @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
+                                                            @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+        if (null == userId) {
+            return ResponseJson.error("用户Id不为空!", null);
+        }
+        return couponService.findMoneyCoupons(userId, pageNum, pageSize);
     }
 
     @ApiOperation("根据优惠券ID查优惠券信息")
@@ -157,7 +163,7 @@ public class CouponApi {
     @ApiImplicitParams({
             @ApiImplicitParam(required = true, name = "couponId", value = "优惠券Id")
     })
-    public ResponseJson<CouponVo> findCouponDetail(Integer couponId){
+    public ResponseJson<CouponVo> findCouponDetail(Integer couponId) {
         return couponService.findCouponDetail(couponId);
     }
 }

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

@@ -110,7 +110,7 @@ public interface CouponMapper {
      */
     List<Integer> findVipCoupon();
 
-    List<CouponVo> findMoneyCoupons();
+    List<CouponVo> findMoneyCoupons(@Param("userId") Integer userId, @Param("registerTime") Date registerTime);
 
     CouponVo findCouponDetail(Integer couponId);
 

+ 1 - 1
src/main/java/com/caimei365/commodity/service/CouponService.java

@@ -83,7 +83,7 @@ public interface CouponService {
      */
     ResponseJson<Map<String, Object>> detailsCoupons(Integer userId, Integer productId, Integer source, Integer status);
 
-    ResponseJson<PageInfo<CouponVo>> findMoneyCoupons(int pageNum, int pageSize);
+    ResponseJson<PageInfo<CouponVo>> findMoneyCoupons(Integer userId,int pageNum, int pageSize);
 
     ResponseJson<CouponVo> findCouponDetail(Integer couponId);
 

+ 10 - 2
src/main/java/com/caimei365/commodity/service/impl/CouponServiceImpl.java

@@ -256,10 +256,18 @@ public class CouponServiceImpl implements CouponService {
         return ResponseJson.success(map);
     }
 
+    /**
+     * 用户可查看的价值优惠券
+     * @param userId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
     @Override
-    public ResponseJson<PageInfo<CouponVo>> findMoneyCoupons(int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<CouponVo>> findMoneyCoupons(Integer userId,int pageNum, int pageSize) {
+        Date registerTime = couponMapper.findUserRegisterTime(userId);
         PageHelper.startPage(pageNum, pageSize);
-        List<CouponVo> cop = couponMapper.findMoneyCoupons();
+        List<CouponVo> cop = couponMapper.findMoneyCoupons(userId,registerTime);
         PageInfo<CouponVo> pageInfo = new PageInfo<>(cop);
         return ResponseJson.success(pageInfo);
     }

+ 27 - 24
src/main/resources/mapper/CouponMapper.xml

@@ -257,34 +257,37 @@
     </select>
     <select id="findMoneyCoupons" resultType="com.caimei365.commodity.model.vo.CouponVo">
         SELECT
-            cc.`id` as couponId,
-            cc.`couponAmount`,
-            cc.`touchPrice`,
-            cc.`startDate`,
-            cc.`endDate`,
-            cc.`couponType`,
-            cc.`userId`,
-            cc.`shopId`,
-            cc.`productType`,
-            cc.moneyCouponPrice,
-            cc.moneyCouponFlag,
-            cc.moneyCouponType,
-            cc.`categoryType`,
-            s.name as shopName
+        cc.`id` AS "couponId",
+        cc.`couponAmount`,
+        cc.`touchPrice`,
+        if(#{registerTime} <![CDATA[ > ]]> cc.startDate and #{registerTime} <![CDATA[ < ]]> cc.endDate,#{registerTime},cc.startDate) as startDate,
+        if(receiveFlag=1,cc.endDate,date_add(if(#{registerTime} <![CDATA[ > ]]> cc.startDate and #{registerTime} <![CDATA[ < ]]> cc.endDate,#{registerTime},cc.startDate),interval receivePeriod day)) as endDate,
+        cc.moneyCouponPrice,
+        cc.moneyCouponFlag,
+        cc.moneyCouponType,
+        cc.`couponType`,
+        cc.`userId`,
+        cc.`shopId`,
+        cc.`productType`,
+        cc.`categoryType`,
+        s.name as shopName
         FROM
-            cm_coupon cc
+        cm_coupon cc
         LEFT JOIN shop s ON cc.shopId = s.shopId
         WHERE
-              cc.id>0
-          AND cc.delFlag = 0
-          AND cc.moneyCouponFlag = 1
-          AND cc.status != 2
-          AND cc.couponsMode = 0
-          AND NOW() BETWEEN cc.startDate
-          AND cc.endDate
-          AND NOW() <![CDATA[ < ]]> IF(receiveFlag = 1,endDate,DATE_ADD(startDate,INTERVAL receivePeriod DAY))
+            cc.delFlag = 0 AND cc.vipFlag != 1
+        AND cc.status != 2
+        AND cc.couponsMode = 0
+        AND cc.moneyCouponFlag = 1
+        AND (cc.couponType IN (0,1,3)
+        OR (cc.couponType = 2 AND cc.userId = #{userId})
+        OR (#{registerTime} <![CDATA[ >= ]]> cc.startDate and #{registerTime} <![CDATA[ < ]]> cc.endDate AND cc.couponType = 4))
+        and NOW() <![CDATA[ > ]]> cc.startDate
+        and NOW() <![CDATA[ < ]]> if(receiveFlag = 1,cc.endDate,
+        date_add(if(#{registerTime} <![CDATA[ > ]]> cc.startDate and #{registerTime} <![CDATA[ < ]]> cc.endDate,#{registerTime},cc.startDate),interval receivePeriod day)
+        )
         ORDER BY
-            cc.couponAmount DESC
+            cc.createDate DESC
     </select>
     <select id="findCouponDetail" resultType="com.caimei365.commodity.model.vo.CouponVo">
         SELECT