Ver Fonte

价值优惠券

zhijiezhao há 3 anos atrás
pai
commit
6e1467927f

+ 32 - 0
src/main/java/com/caimei365/commodity/controller/CouponApi.java

@@ -81,6 +81,18 @@ public class CouponApi {
         return couponService.collarCouponsList(userId, pageNum, pageSize);
     }
 
+    @ApiOperation("领券中心列表备用接口")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = false, name = "userId", value = "机构用户id,0不传"),
+            @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
+            @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) {
+        return couponService.collarCouponsList(userId, pageNum, pageSize);
+    }
+
     @ApiOperation("领取优惠券")
     @PostMapping("/collar")
     @Idempotent(prefix = "idempotent_collarCoupons", keys = {"#couponsDto"}, expire = 5)
@@ -127,4 +139,24 @@ public class CouponApi {
         }
         return couponService.detailsCoupons(userId, productId, source, status);
     }
+
+    @ApiOperation("协销价值优惠券列表")
+    @GetMapping("/money/coupon/list")
+    @ApiImplicitParams({
+            @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);
+    }
+
+    @ApiOperation("根据优惠券ID查优惠券信息")
+    @GetMapping("/coupon/detail")
+    @ApiImplicitParams({
+            @ApiImplicitParam(required = true, name = "couponId", value = "优惠券Id")
+    })
+    public ResponseJson<CouponVo> findCouponDetail(Integer couponId){
+        return couponService.findCouponDetail(couponId);
+    }
 }

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

@@ -109,4 +109,8 @@ public interface CouponMapper {
      * @return
      */
     List<Integer> findVipCoupon();
+
+    List<CouponVo> findMoneyCoupons();
+
+    CouponVo findCouponDetail(Integer couponId);
 }

+ 12 - 1
src/main/java/com/caimei365/commodity/model/vo/CouponVo.java

@@ -57,6 +57,10 @@ public class CouponVo implements Serializable {
      */
     private Integer shopId;
 
+    /**
+     * 价值优惠券属性,1,意向券,2,定向券
+     */
+    private Integer moneyCouponType;
     /**
      * 优惠商品:1全商城商品 2指定商品(活动券有效)
      */
@@ -66,7 +70,14 @@ public class CouponVo implements Serializable {
      * 优惠品类:1产品 2仪器(品类券有效)
      */
     private Integer categoryType;
-
+    /**
+     * 价值优惠券购买金额
+     */
+    private Double moneyCouponPrice;
+    /**
+     * 是否是价值优惠券,1是,2不是
+     */
+    private Integer moneyCouponFlag;
     /**
      * 供应商名称
      */

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

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

+ 17 - 1
src/main/java/com/caimei365/commodity/service/impl/CouponServiceImpl.java

@@ -104,7 +104,7 @@ public class CouponServiceImpl implements CouponService {
         // 会员机构类型:1医美,2生美
         if (null != identity && identity == 2) {
             Integer clubType = priceMapper.getClubTypeById(userId);
-            if (null != clubType && clubType == 1){
+            if (null != clubType && clubType == 1) {
                 identity = 5;
             }
         }
@@ -227,6 +227,7 @@ public class CouponServiceImpl implements CouponService {
         //未领取
         List<CouponVo> notCouponList = couponMapper.findCouponList(userId, registerTime);
         filterCoupon(source, product, notCouponList);
+        notCouponList.forEach(n->n.setCouponBtnType(0));
         //超级会员优惠券移除
         if (notCouponList != null && notCouponList.size() > 0) {
             notCouponList.removeIf(couponVo -> vipCoupon.contains(couponVo.getCouponId()));
@@ -234,6 +235,7 @@ public class CouponServiceImpl implements CouponService {
         map.put("notCouponNum", notCouponList == null ? 0 : notCouponList.size());
         //已领取
         List<CouponVo> couponList = couponMapper.findCouponClub(userId, 1);
+        couponList.forEach(c->c.setCouponBtnType(1));
         //超级会员优惠券移除
         if (couponList != null && couponList.size() > 0) {
             couponList.removeIf(couponVo -> vipCoupon.contains(couponVo.getCouponId()));
@@ -259,6 +261,20 @@ public class CouponServiceImpl implements CouponService {
         return ResponseJson.success(map);
     }
 
+    @Override
+    public ResponseJson<PageInfo<CouponVo>> findMoneyCoupons(int pageNum, int pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<CouponVo> cop = couponMapper.findMoneyCoupons();
+        PageInfo<CouponVo> pageInfo = new PageInfo<>(cop);
+        return ResponseJson.success(pageInfo);
+    }
+
+    @Override
+    public ResponseJson<CouponVo> findCouponDetail(Integer couponId) {
+        CouponVo couponVo=couponMapper.findCouponDetail(couponId);
+        return ResponseJson.success(couponVo);
+    }
+
     /**
      * 过滤与商品无关的优惠券
      *

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

@@ -14,6 +14,9 @@
         cc.`userId`,
         cc.`shopId`,
         cc.`productType`,
+        cc.moneyCouponPrice,
+        cc.moneyCouponFlag,
+        cc.moneyCouponType,
         cc.`categoryType`
         FROM
         cm_coupon_club a
@@ -134,6 +137,9 @@
             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,
         </if>
+        moneyCouponPrice,
+        moneyCouponFlag,
+        moneyCouponType,
         `startDate`,
         `endDate`,
         `couponType`,
@@ -251,5 +257,54 @@
         select couponId
         from cm_svip_coupon
     </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.`categoryType`,
+            s.name as shopName
+        FROM
+            cm_coupon cc
+        LEFT JOIN shop s ON cc.shopId = s.shopId
+        WHERE
+              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))
+        ORDER BY
+            cc.couponAmount DESC
+    </select>
+    <select id="findCouponDetail" 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.`categoryType`,
+            cc.moneyCouponPrice,
+            cc.moneyCouponFlag,
+            s.name as shopName
+        FROM
+            cm_coupon cc
+        LEFT JOIN shop s ON cc.shopId = s.shopId
+        where id = #{couponId}
+    </select>
 </mapper>