jk-GitHub-coder 3 年之前
父节点
当前提交
ae35814e7b

+ 19 - 6
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -1,5 +1,7 @@
 package com.platform.yijia.controller;
 
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.platform.yijia.config.YiJiaRequest;
@@ -192,23 +194,35 @@ public class CouponController {
     @ResponseBody
     @ApiOperation(value = "获取客户所拥有的优惠券", httpMethod = "GET", notes = "获取客户所拥有的优惠券")
     public String selectUserCoupons(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
-                                    @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){
+                                    @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId,
+                                    @ApiParam(value = "优惠券状态couponIsUsed", required = true) @RequestParam String couponIsUsed,
+                                    @RequestParam int pageNum, @RequestParam int pageSize){
         Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         ResultData resultData = null;
         try {
-            if(stationId !=null && StringUtils.isNotBlank(unionId)){
+            if(stationId !=null && StringUtils.isNotBlank(unionId) && StringUtils.isNotBlank(couponIsUsed)){
                 StationInfo stationInfo = new StationInfo();
                 stationInfo.setStationId(stationId);
                 StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-                if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+                if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1") && Integer.valueOf(pageNum) !=null && Integer.valueOf(pageSize) !=null){
+                    PageHelper.startPage(pageNum, pageSize);
                     UserCoupon userCoupon = new UserCoupon();
                     userCoupon.setStationId(stationId);
+                    userCoupon.setCouponIsUsed(couponIsUsed);
+                    userCoupon.setExpireFlag("0");
+                    userCoupon.setCurrentTime(new Date());
+                    //已过期
+                    if(couponIsUsed.equals("2")){
+                        userCoupon.setCouponIsUsed("0");
+                        userCoupon.setExpireFlag("1");
+                    }
                     if(stationInfos.getCouponFlag() !=null && stationInfos.getCouponFlag().equals("1")){
                         userCoupon.setStationId(stationInfos.getGroupId());
                     }
                     userCoupon.setUnionId(unionId);
                     List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
-                    resultData = ResultData.success(userCoupons);
+                    PageInfo pageInfo = new PageInfo(userCoupons);
+                    resultData = ResultData.success(pageInfo);
                 }else {
                     resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
                 }
@@ -217,8 +231,7 @@ public class CouponController {
             }
         }catch (Exception e){
             e.printStackTrace();
-            logger.error("获取客户所拥有的优惠券错误信息:" + e.getMessage());
-            resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
+            //logger.error("获取客户所拥有的优惠券错误信息:" + e.getMessage());
         }
         return  gson.toJson(resultData);
     }

+ 6 - 2
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -137,7 +137,7 @@ public class PayOrderController {
                     if(stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
                         Integer stationId = payOrderRequest.getStationId();
                         //集团下
-                        if(stationInfos.getCouponFlag().equals("1")){
+                        if(stationInfos.getCouponFlag() !=null && stationInfos.getCouponFlag().equals("1")){
                             stationId=stationInfos.getGroupId();
                         }
                         resultMap.put("userCouponsList", this.getUserCoupon(appUserInfos.getUnionId(), stationId));
@@ -1359,10 +1359,14 @@ public class PayOrderController {
         if(stationInfos !=null && stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
             UserCoupon userCoupon = new UserCoupon();
             userCoupon.setStationId(stationId);
-            if(stationInfos.getCouponFlag().equals("1")){
+            if(stationInfos.getCouponFlag() !=null && stationInfos.getCouponFlag().equals("1")){
                 userCoupon.setStationId(stationInfos.getGroupId());
             }
             userCoupon.setUnionId(unionId);
+            userCoupon.setCouponIsUsed("0");
+            userCoupon.setExpireFlag("0");                  // SQL 条件判断 过期标志: 1 代表使用的优惠券已过期查询参数; 0 代表未过期有效的优惠券
+            userCoupon.setNoVerificationVerFlag("0");       //SQL 条件判断 查询没有异业券的参数标识: 0代表只有加油券 1代表只有异业券
+            userCoupon.setCurrentTime(new Date());
             userCouponsList = couponService.selectUserCoupons(userCoupon);
         }
         return userCouponsList;

+ 10 - 2
YijiaRestful/src/main/java/com/platform/yijia/pojo/UserCoupon.java

@@ -21,9 +21,15 @@ public class UserCoupon {
     private Date getCouponTime;             //优惠券获取时间
     private String couponIsEffective;       //用户获得的优惠券是否还有效
     private Date couponEffectiveTime;       //优惠券有效期截止时间
-
     private Integer stationId;              //油站ID
 
+    //SQL 条件判断 额外判断参数
+    private Date currentTime;                //当前时间
+    private String expireFlag;               //过期标志: 1 代表使用的优惠券已过期查询参数; 0 代表未过期有效的优惠券     //已过期参数
+    private String canUse;                   //当前优惠券是否可用
+    private String noVerificationVerFlag;    //查询没有异业券的参数标识: 0代表只有加油券 1代表只有异业券
+
+
     //优惠券属性
     private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额;
     private String couponName;              //优惠券名称
@@ -37,7 +43,6 @@ public class UserCoupon {
     private String openPlatform;            //'发放平台,1.微信 2支付宝';
     private String grantStatus;             //发放状态:0,未发放;1,已发放;
     private String status;                  //有效状态:0,未生效; 1,生效;2,失效;
-
     private String createBy;                //创建人;
     private Date createTime;                //创建时间;
     private String updateBy;                //更新人
@@ -57,9 +62,12 @@ public class UserCoupon {
     //领取方式属性
     private Integer showId;                     //展示位
     private BigDecimal discountThresholdAmt;    //领取方式门槛金额
+    private String issueName;               //领取方式名称
 
     //油站属性
 
     private List<CouponVerification> couponVerificationList;        //核销站点
 
+    //当前时间优惠券是否可用
+
 }

+ 33 - 2
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -87,6 +87,7 @@
     <result column="station_id"               jdbcType="INTEGER"   property="stationId" />
     <result column="coupon_name"              jdbcType="VARCHAR"   property="couponName" />
     <result column="coupon_type"              jdbcType="VARCHAR"   property="couponType" />
+    <result column="coupon_details"         jdbcType="VARCHAR"   property="couponDetails" />
     <result column="coupon_threshold_amt"     jdbcType="DECIMAL"   property="couponThresholdAmt" />
     <result column="oil_type"                 jdbcType="VARCHAR"   property="oilType" />
     <result column="coupon_amt"               jdbcType="DECIMAL"   property="couponAmt" />
@@ -115,9 +116,12 @@
       <result column="available_control"       jdbcType="VARCHAR"   property="availableControl" />
       <result column="appointed_days"          jdbcType="VARCHAR"   property="appointedDays" />
       <result column="cycle_days"              jdbcType="VARCHAR"   property="cycleDays" />
-
+      <result column="issue_name"              jdbcType="VARCHAR"   property="issueName" />
+      <result column="canUse"                  jdbcType="VARCHAR"   property="canUse" />
       <collection property="couponVerificationList"  select="selectCouponVerificationInfo"
                   column="{param_station_id = station_id, param_coupon_id = coupon_id}" ofType="com.platform.yijia.pojo.CouponVerification"/>
+
+
   </resultMap>
 
     <!---->
@@ -390,15 +394,19 @@
     SELECT
         T1.union_id,
         T1.coupon_id,
+        T1.coupon_no,
         T1.coupon_is_effective,
         T1.coupon_is_used,
         T1.get_coupon_time,
+        T1.coupon_effective_time,
+        T3.issue_name,
         T2.station_id,
         T2.oil_type,
         T2.coupon_name,
         T2.coupon_threshold_amt,
         T2.coupon_amt,
         T2.coupon_type,
+        T2.coupon_details,
         T2.effective_time_type,
         T2.effective_time_start,
         T2.effective_time_end,
@@ -409,19 +417,42 @@
         T2.is_grade_flag,
         T2.is_market_flag,
         T2.available_control,
+        CASE
+             WHEN  T2.available_control ='0'   THEN  CASE WHEN ( NOW() - T1.coupon_effective_time &lt;= 0) 				     THEN  'true' ELSE 'false'   END
+             WHEN  T2.available_control ='1'   THEN  CASE WHEN LOCATE(DATE_FORMAT(NOW(), '%w'), T2.cycle_days) 			     THEN  'true' ELSE 'false'   END
+             WHEN  T2.available_control ='2'   THEN  CASE WHEN LOCATE(DATE_FORMAT(NOW(), '%e')-1, T2.cycle_days) 		     THEN  'true' ELSE 'false'   END
+             WHEN  T2.available_control ='3'   THEN  CASE WHEN LOCATE(DATE_FORMAT(NOW(), '%Y-%d-%m'), T2.appointed_days)     THEN  'true' ELSE 'false'   END
+        END				        AS canUse,
         T2.appointed_days,
         T2.edit_flag,
         T2.verification,
         T2.cycle_days
     FROM          coupon_user   AS  T1
         LEFT JOIN coupon_info   AS  T2 ON T1.coupon_id = T2.id
+        LEFT JOIN coupon_issue  AS  T3 ON T1.issue_id = T3.id
     <where>
+        T2.status = "1"
+        AND T2.del_flag = "0"
       <if test="stationId !=null and stationId !=''">
-        T1.station_id = #{stationId}
+        AND T1.station_id = #{stationId}
+      </if>
+        <if test="noVerificationVerFlag !=null and noVerificationVerFlag =='0'.toString()">
+            AND T2.coupon_type &lt;&gt; "3"
+        </if>
+      <if test="couponIsUsed !=null and couponIsUsed !=''">
+        AND T1.coupon_is_used = #{couponIsUsed}
       </if>
       <if test="unionId !=null and unionId !=''">
        AND T1.union_id = #{unionId}
       </if>
+      <choose>
+          <when test="expireFlag !=null and expireFlag == '0'.toString()">
+              AND T1.coupon_effective_time &gt;= #{currentTime}
+          </when>
+          <when test="expireFlag !=null and expireFlag == '1'.toString()">
+              AND T1.coupon_effective_time &lt; #{currentTime}
+          </when>
+      </choose>
     </where>
   </select>