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

+ 34 - 39
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -4,6 +4,7 @@ import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.platform.yijia.config.YiJiaRequest;
 import com.platform.yijia.pojo.Coupon;
+import com.platform.yijia.pojo.CouponIssue;
 import com.platform.yijia.pojo.UserCoupon;
 import com.platform.yijia.service.CouponService;
 import com.platform.yijia.utils.CodeMsg;
@@ -14,9 +15,12 @@ import io.swagger.annotations.ApiParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -26,7 +30,7 @@ import java.util.List;
  * @Author JK
  * @Date 2021年7月6日
  */
-@Controller
+@RestController
 @YiJiaRequest()
 @CrossOrigin
 @Api(tags = "优惠券")
@@ -37,21 +41,28 @@ public class CouponController {
     private CouponService couponService;
 
 
-    //获取优惠券信息
+    /**
+     * 获取油站分发优惠券
+     * @param stationId  油站ID
+     * @param couponIssueId    发放方式ID
+     * @param unionId    用户unionId
+     * @return
+     */
     @RequestMapping(value = "/selectStaGrantCouponList", method = RequestMethod.GET)
-    @ResponseBody
+    @Transactional
     @ApiOperation(value = "获取油站已发放的优惠券信息", httpMethod = "GET", notes = "获取油站已发放的优惠券信息")
-    public String selectStaGrantCouponList(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId){
+    public String selectStaGrantCouponList(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
+                                           @ApiParam(value = "发放方式ID", required = true) @RequestParam Integer couponIssueId,
+                                           @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){
         Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         ResultData resultData = null;
         try {
-
             Coupon coupon = new Coupon();
             coupon.setStationId(stationId);
-            coupon.setIssueType("1");
+            coupon.setCouponIssueId(couponIssueId);
+            coupon.setUnionId(unionId);
             //领取油站所分发的优惠券
             List<Coupon> coupons = couponService.selectStaGrantCouponList(coupon);
-
             resultData = ResultData.success(coupons);
         }catch (Exception e){
             logger.error("获取油站已发放的优惠券错误信息:" + e.getMessage());
@@ -63,7 +74,6 @@ public class CouponController {
 
     //获取优惠券信息
     @RequestMapping(value = "/selectCouponInfo", method = RequestMethod.GET)
-    @ResponseBody
     @ApiOperation(value = "获取优惠券信息", httpMethod = "GET", notes = "获取优惠券信息")
     public String selectCouponInfo(@ApiParam(value = "优惠券ID", required = true) @RequestParam Integer id){
         Gson gson =new Gson();
@@ -82,7 +92,6 @@ public class CouponController {
 
     //获取客户所拥有的优惠券
     @RequestMapping(value = "/selectUserCoupons", method = RequestMethod.GET)
-    @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){
@@ -102,42 +111,28 @@ public class CouponController {
     }
 
     //用户领取优惠券
-    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST)
-    @ResponseBody
-    @ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券")
-    public String addUserCoupon(@ApiParam(value = "用户优惠券实体类", required = true) @RequestBody UserCoupon userCoupon){
+    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.GET)
+    @Transactional
+    @ApiOperation(value = "用户领取优惠券", httpMethod = "GET", notes = "用户领取优惠券")
+    public String addUserCoupon(@ApiParam(value = "用户unionId", required = true) @RequestParam String unionId,
+                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam ArrayList<String> ids,
+                                @ApiParam(value = "领取方式ID", required = true) @RequestParam Integer couponIssueId,
+                                @ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId){
         Gson gson = new Gson();
         ResultData resultData = null;
         try{
-            if(userCoupon.getCouponId() !=null){
-                Coupon coupon = new Coupon();
-                coupon.setId(userCoupon.getCouponId());
-                //获取该优惠券信息
-                Coupon couponInfo = couponService.selectCouponInfo(coupon);
-                //该优惠券是否存在
-                if(couponInfo !=null){
-                    //优惠券是否已发放
-                    if(couponInfo.getGrantStatus() !=null && couponInfo.getGrantStatus().equals("1")){
-                        //该优惠券是否有效
-                        if(couponInfo.getStatus() !=null && couponInfo.getStatus().equals("1")){
-                            userCoupon.setCouponIsEffective("1");
-                            userCoupon.setCouponIsUsed("0");
-                            userCoupon.setCouponNo("123456789");
+            //获取领取方式信息
+            CouponIssue couponIssue = new CouponIssue();
+            couponIssue.setStationId(stationId);
+            couponIssue.setCouponIssueId(couponIssueId);
+            List<CouponIssue> couponIssueList = couponService.selectCouponIssueList(couponIssue);
+            if(couponIssueList !=null && couponIssueList.size() ==1){
+                //int size = ids.size();
+                for(int i=0; i<ids.size(); i++){
 
-                            userCoupon.setGetCouponTime(new Date());
-                            couponService.addUserCoupon(userCoupon);
-                            resultData = ResultData.success("领取成功!");
-                        }else {
-                            resultData = ResultData.error(CodeMsg.COUPON_LOSE_EFFECTIVE);
-                        }
-                    }else {
-                        resultData = ResultData.error(CodeMsg.COUPON_NO_GRANT);
-                    }
-                }else {
-                    resultData = ResultData.error(CodeMsg.NO_COUPON);
                 }
             }else {
-                resultData = ResultData.error(CodeMsg.REQUEST_FAIL);
+                resultData = ResultData.error(CodeMsg.YEWU_FAIL,"该领取方式不存在");
             }
         }catch (Exception e){
             logger.error("用户领取优惠券错误信息:" + e.getMessage());

+ 4 - 0
YijiaRestful/src/main/java/com/platform/yijia/dao/CouponMapper.java

@@ -2,6 +2,7 @@ package com.platform.yijia.dao;
 
 
 import com.platform.yijia.pojo.Coupon;
+import com.platform.yijia.pojo.CouponIssue;
 import com.platform.yijia.pojo.UserCoupon;
 
 import java.util.List;
@@ -19,4 +20,7 @@ public interface CouponMapper {
 
     //用户领取优惠券
     void addUserCoupon(UserCoupon userCoupon);
+
+    //查询领取方式
+    List<CouponIssue> selectCouponIssueList(CouponIssue couponIssue);
 }

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/Coupon.java

@@ -46,7 +46,12 @@ public class Coupon {
     private String isGradeFlag;             //是否等级
     private String isMarketFlag;            //是否叠加营销方案;
 
+    private Integer showId;                     //展示位
+    private BigDecimal discountThresholdAmt;    //领取方式门槛金额
+
     //查询参数
     private String issueType;               //领取方式
+    private Integer couponIssueId;          //领取方式ID
+    private String unionId;                 //用户unionId
 
 }

+ 6 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponIssue.java

@@ -22,5 +22,11 @@ public class CouponIssue {
     private String updateBy;                  //更新人
     private Date updateTime;                  //更新时间
     private String showId;                    //展示位置id(1支付成功之后的展示位,2待定,3待定)
+    private String cycleDays;                 //每周每月的周几和几号
+    private String appointedDays;             //指定日期
+    private String availableControl;          //领用期内可用时间设置0一直可用 1:每周 2 每月 3 指定日期
+    private String giveLimit;                 //限额
+    private Integer giveCount;                //发送的次数
+
     private List<Coupon> couponInfoList;      //优惠券
 }

+ 4 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/CouponService.java

@@ -2,6 +2,7 @@ package com.platform.yijia.service;
 
 
 import com.platform.yijia.pojo.Coupon;
+import com.platform.yijia.pojo.CouponIssue;
 import com.platform.yijia.pojo.UserCoupon;
 
 import java.util.List;
@@ -20,4 +21,7 @@ public interface CouponService {
     //用户领取优惠券
     void addUserCoupon(UserCoupon userCoupon);
 
+    //查询领取方式
+    List<CouponIssue> selectCouponIssueList(CouponIssue couponIssue);
+
 }

+ 8 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/CouponServiceImpl.java

@@ -2,6 +2,7 @@ package com.platform.yijia.service.impl;
 
 import com.platform.yijia.dao.CouponMapper;
 import com.platform.yijia.pojo.Coupon;
+import com.platform.yijia.pojo.CouponIssue;
 import com.platform.yijia.pojo.UserCoupon;
 import com.platform.yijia.service.CouponService;
 import org.springframework.stereotype.Service;
@@ -14,6 +15,13 @@ public class CouponServiceImpl implements CouponService {
     @Resource
     private CouponMapper couponMapper;
 
+    //查询领取方式
+    @Override
+    public List<CouponIssue> selectCouponIssueList(CouponIssue couponIssue){
+        return couponMapper.selectCouponIssueList(couponIssue);
+    }
+
+
     //获取油站已发放的加油券
     @Override
     public List<Coupon> selectStaGrantCouponList(Coupon coupon) {

+ 1 - 1
YijiaRestful/src/main/resources/application.yml

@@ -44,7 +44,7 @@ swagger2:
 spring:
     datasource:
 #        url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_prod?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
-        url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_demo?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
+        url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_test?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
         username: develop
         password: 1234.Abcd
         driver-class-name: com.mysql.cj.jdbc.Driver

+ 59 - 3
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -38,6 +38,12 @@
       <result column="is_card_flag"           jdbcType="VARCHAR"   property="isCardFlag" />
       <result column="is_grade_flag"          jdbcType="VARCHAR"   property="isGradeFlag" />
       <result column="is_market_flag"         jdbcType="VARCHAR"   property="isMarketFlag" />
+
+      <result column="coupon_issue_id"           jdbcType="INTEGER"   property="couponIssueId" />
+      <result column="show_id"                   jdbcType="INTEGER"   property="showId" />
+      <result column="issue_type"                jdbcType="VARCHAR"   property="issueType" />
+      <result column="discount_threshold_amt"    jdbcType="DECIMAL"   property="discountThresholdAmt" />
+
   </resultMap>
 
     <!--发放方式,优惠劵信息-->
@@ -53,6 +59,13 @@
        <result column="update_by"                 jdbcType="VARCHAR"   property="updateBy" />
        <result column="update_time"               jdbcType="TIMESTAMP" property="updateTime" />
        <result column="show_id"                   jdbcType="VARCHAR"   property="showId" />
+
+       <result column="available_control"            jdbcType="VARCHAR"   property="availableControl" />
+       <result column="appointed_days"               jdbcType="TIMESTAMP" property="appointedDays" />
+       <result column="cycle_days"                   jdbcType="VARCHAR"   property="cycleDays" />
+       <result column="give_limit"                   jdbcType="VARCHAR"   property="giveLimit" />
+       <result column="give_count"                   jdbcType="VARCHAR"   property="giveCount" />
+
 <!--       <collection property="couponInfoList" resultMap="BaseResultMap"/>-->
    </resultMap>
 
@@ -95,6 +108,38 @@
     is_card_flag, is_grade_flag, is_market_flag, edit_flag
   </sql>
 
+    <!--查询领取方式信息-->
+    <select id="selectCouponIssueList" parameterType="com.platform.yijia.pojo.CouponIssue" resultMap="CouponIssueBaseResultMap">
+        SELECT
+            id                          AS     coupon_issue_id,
+            issue_name,
+            issue_type,
+            discount_threshold_amt,
+            status,
+            station_id,
+            create_by,
+            create_time,
+            update_by,
+            update_time,
+            show_id,
+            available_control,
+            appointed_days,
+            cycle_days,
+            give_count,
+            give_limit
+        FROM    coupon_issue
+        <where>
+            <if test="stationId !=null ">
+                station_id = #{stationId}
+            </if>
+            <if test="couponIssueId !=null ">
+                AND id = #{couponIssueId}
+            </if>
+        </where>
+
+    </select>
+
+
     <!--获取油站所分发的加油券-->
     <select id="selectStaGrantCouponList" parameterType="com.platform.yijia.pojo.Coupon" resultMap="BaseResultMap">
         SELECT
@@ -102,6 +147,8 @@
             T2.issue_name,
             T2.issue_type,
             T2.discount_threshold_amt,
+            T2.station_id,
+            T2.show_id,
             T3.coupon_amt,
             T3.coupon_type,
             T3.oil_name,
@@ -116,21 +163,30 @@
             T3.coupon_use_num,
             T3.open_platform,
             T3.coupon_details,
+            T3.grant_status,
+            T3.status,
+            T3.create_time,
+            T3.is_card_flag,
+            T3.is_grade_flag,
+            T3.is_market_flag,
             T3.available_control,
             T3.appointed_days,
+            T3.edit_flag,
+            T3.verification,
             T3.cycle_days
         FROM            coupon_issue_relation     AS T1
             LEFT JOIN   coupon_issue              AS T2 ON T1.issue_id = T2.id
-            LEFT JOIN   coupon_info               AS T3 ON T1.coupon_id = T2.id
+            LEFT JOIN   coupon_info               AS T3 ON T1.coupon_id = T3.id
         <where>
             T2.status = "1"
             AND T3.del_flag = "0"
             AND T3.status = "1"
             <if test="stationId !=null">
                 AND T2.station_id = #{stationId}
+                AND T3.station_id = #{stationId}
             </if>
-            <if test="issueType !=null and issueType !=''">
-                AND T2.issue_type = #{issueType}
+            <if test="couponIssueId !=null">
+                AND T1.issue_id = #{couponIssueId}
             </if>
         </where>
     </select>