jk-GitHub-coder 3 yıl önce
ebeveyn
işleme
e31f322632

+ 45 - 2
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Date;
 import java.util.List;
 
 /*
@@ -40,7 +41,6 @@ public class CouponController {
     @ApiOperation(value = "获取优惠券信息", httpMethod = "GET", notes = "获取优惠券信息")
     public String selectCouponInfo(@ApiParam(value = "优惠券ID", required = true) @RequestParam Integer id){
         Gson gson =new Gson();
-        //返回结果集
         ResultData resultData = null;
         try {
             Coupon coupon = new Coupon();
@@ -61,7 +61,6 @@ public class CouponController {
     public String selectUserCoupons(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
                                     @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){
         Gson gson =new Gson();
-        //返回结果集
         ResultData resultData = null;
         try {
             UserCoupon userCoupon = new UserCoupon();
@@ -76,5 +75,49 @@ public class CouponController {
         return  gson.toJson(resultData);
     }
 
+    //用户领取优惠券
+    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST)
+    @ResponseBody
+    @ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券")
+    public String addUserCoupon(@ApiParam(value = "用户优惠券实体类", required = true) @RequestBody UserCoupon userCoupon){
+        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");
+
+                            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);
+            }
+        }catch (Exception e){
+            logger.error("用户领取优惠券错误信息:" + e.getMessage());
+            resultData = ResultData.error(CodeMsg.INSERT_FAIL);
+        }
+        return gson.toJson(resultData);
+    }
 
 }

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

@@ -13,4 +13,7 @@ public interface CouponMapper {
 
     //获取用户优惠券
     List<UserCoupon> selectUserCoupons(UserCoupon userCoupon);
+
+    //用户领取优惠券
+    void addUserCoupon(UserCoupon userCoupon);
 }

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

@@ -11,6 +11,7 @@ import java.util.Date;
 @Data
 public class Coupon {
     private Integer id;                     //优惠券ID;
+    private Integer stationId;              //油站ID
     private String couponName;              //优惠券名称;
     private String couponType;              //优惠券类型: 1现金劵,2折扣券,3兑换券;
     private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额;

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

@@ -10,11 +10,19 @@ import java.util.Date;
  */
 @Data
 public class UserCoupon {
+
+    //用户优惠券属性
     private Integer couponId;               //优惠券ID;
     private String unionId;                 //用户union_id;
+    private String couponNo;                //优惠券码
+    private String getCouponOrigin;         //优惠券来源
+    private String couponIsUsed;            //优惠券是否被使用
+    private Integer grantCouponShop;        //优惠券发放商店
+    private Date getCouponTime;             //优惠券获取时间
+    private Integer grantCouponPerson;      //优惠券发放人
+    private String couponIsEffective;       //用户获得的优惠券是否还有效
+
     private Integer stationId;              //油站ID
-    private String couponOrigin;            //优惠券来源
-    private String isUsed;                  //优惠券是否被使用
 
     //优惠券属性
     private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额;
@@ -28,4 +36,7 @@ public class UserCoupon {
     private String grantStatus;             //发放状态:0,未发放;1,已发放;
     private String status;                  //有效状态:0,未生效; 1,生效;2,失效;
 
+    //油站属性
+    private String stationName;             //油站名称
+
 }

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

@@ -14,4 +14,7 @@ public interface CouponService {
     //获取用户优惠券
     List<UserCoupon> selectUserCoupons(UserCoupon userCoupon);
 
+    //用户领取优惠券
+    void addUserCoupon(UserCoupon userCoupon);
+
 }

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

@@ -25,4 +25,10 @@ public class CouponServiceImpl implements CouponService {
     public List<UserCoupon> selectUserCoupons(UserCoupon userCoupon) {
         return couponMapper.selectUserCoupons(userCoupon);
     }
+
+    //用户领取优惠券
+    @Override
+    public void addUserCoupon(UserCoupon userCoupon) {
+        couponMapper.addUserCoupon(userCoupon);
+    }
 }

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/utils/CodeMsg.java

@@ -32,6 +32,11 @@ public class CodeMsg {
     public static CodeMsg PARAMS_NUll = new CodeMsg(-2,"请求失败,必传参数不能为空!");
     public static CodeMsg WARSECOUNT_FAIL = new CodeMsg(-1,"库存不足");
     public static CodeMsg INTEGRAL_INSUFFICIENT = new CodeMsg(-2,"您的积分不足");
+    public static CodeMsg COUPON_LOSE_EFFECTIVE = new CodeMsg(-2,"优惠券已无效");
+    public static CodeMsg NO_COUPON = new CodeMsg(-3,"此优惠券不存在");
+    public static CodeMsg COUPON_NO_GRANT = new CodeMsg(-4,"此优惠券暂未发放");
+
+
     private CodeMsg(int retCode, String message) {
         this.retCode = retCode;
         this.message = message;

+ 100 - 11
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.yijia.dao.CouponMapper">
-  <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.Coupon">
-    <id column="id"                           jdbcType="INTEGER"   property="couponId" />
+    <!--优惠券-->
+  <resultMap id="BaseResultMap"                type="com.platform.yijia.pojo.Coupon">
+    <id     column="id"                       jdbcType="INTEGER"   property="couponId" />
+    <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_threshold_amt"     jdbcType="DECIMAL"   property="couponThresholdAmt" />
@@ -19,13 +21,19 @@
     <result column="status"                   jdbcType="VARCHAR"   property="status" />
   </resultMap>
 
-  <resultMap id="UserCouponsBaseResultMap" type="com.platform.yijia.pojo.UserCoupon">
-    <result column="coupon_id"               jdbcType="INTEGER"   property="couponId" />
-    <result column="union_id"                jdbcType="VARCHAR"   property="unionId" />
-    <result column="station_id"              jdbcType="INTEGER"   property="stationId" />
-    <result column="coupon_origin"           jdbcType="VARCHAR"   property="couponOrigin" />
-    <result column="is_used"                 jdbcType="VARCHAR"   property="isUsed" />
+    <!--用户优惠券-->
+  <resultMap id="UserCouponsBaseResultMap"    type="com.platform.yijia.pojo.UserCoupon">
+    <result column="coupon_id"                jdbcType="INTEGER"   property="couponId" />
+    <result column="union_id"                 jdbcType="VARCHAR"   property="unionId" />
+    <result column="get_coupon_origin"        jdbcType="VARCHAR"   property="getCouponOrigin" />
+    <result column="coupon_is_used"           jdbcType="VARCHAR"   property="couponIsUsed" />
+    <result column="coupon_no"                jdbcType="VARCHAR"   property="couponNo" />
+    <result column="coupon_is_effective"      jdbcType="VARCHAR"   property="couponIsEffective" />
+    <result column="grant_coupon_shop"        jdbcType="INTEGER"   property="grantCouponShop" />
+    <result column="get_coupon_time"          jdbcType="TIMESTAMP" property="getCouponTime" />
+    <result column="grant_coupon_person"      jdbcType="INTEGER"   property="grantCouponPerson" />
 
+    <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_threshold_amt"     jdbcType="DECIMAL"   property="couponThresholdAmt" />
@@ -40,11 +48,13 @@
     <result column="open_platform"            jdbcType="VARCHAR"   property="openPlatform" />
     <result column="grant_status"             jdbcType="VARCHAR"   property="grantStatus" />
     <result column="status"                   jdbcType="VARCHAR"   property="status" />
+
+    <result column="dept_name"                jdbcType="VARCHAR"   property="stationName" />
   </resultMap>
 
 
   <sql id="Base_Column_List">
-    id, coupon_name, coupon_type, coupon_threshold_amt, oil_type, coupon_amt, coupon_num, effective_time_type,
+    id, station_id, coupon_name, coupon_type, coupon_threshold_amt, oil_type, coupon_amt, coupon_num, effective_time_type,
     effective_time_start, effective_time_end, effective_day_num, coupon_receive_num, open_platform, grant_status, status
   </sql>
   <!--获取加油券信息-->
@@ -65,6 +75,14 @@
     SELECT
         T1.union_id,
         T1.coupon_id,
+        T1.coupon_is_effective,
+        T1.coupon_is_used,
+        T1.grant_coupon_shop,
+        T1.grant_coupon_person,
+        T1.get_coupon_origin,
+        T1.get_coupon_time,
+        T3.dept_name,
+        T2.station_id,
         T2.oil_type,
         T2.coupon_name,
         T2.coupon_threshold_amt,
@@ -74,8 +92,9 @@
         T2.effective_time_end,
         T2.effective_day_num,
         T2.status
-    FROM
-        coupon_user     AS  T1 LEFT JOIN coupon_info T2 ON T1.coupon_id = T2.id
+    FROM          coupon_user   AS  T1
+        LEFT JOIN coupon_info   AS  T2 ON T1.coupon_id = T2.id
+        LEFT JOIN sys_dept      AS  T3 ON T2.station_id = T3.dept_id
     <where>
       <if test="stationId !=null and stationId !=''">
         T1.station_id = #{stationId}
@@ -85,4 +104,74 @@
       </if>
     </where>
   </select>
+
+    <!--用户获取优惠券-->
+    <insert id="addUserCoupon" parameterType="com.platform.yijia.pojo.UserCoupon">
+        INSERT INTO coupon_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                union_id,
+            </if>
+            <if test="couponId !=null">
+                coupon_id,
+            </if>
+            <if test="couponNo !=null">
+                coupon_no,
+            </if>
+            <if test="getCouponOrigin !=null">
+                get_coupon_origin,
+            </if>
+            <if test="couponIsUsed !=null">
+                coupon_is_used,
+            </if>
+            <if test="couponIsEffective !=null">
+                coupon_is_effective,
+            </if>
+            <if test="grantCouponShop !=null">
+                grant_coupon_shop,
+            </if>
+            <if test="getCouponTime !=null">
+                get_coupon_time,
+            </if>
+            <if test="grantCouponPerson !=null">
+                grant_coupon_person,
+            </if>
+            <if test="stationId !=null">
+                station_id,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                #{unionId},
+            </if>
+            <if test="couponId !=null">
+                #{couponId},
+            </if>
+            <if test="couponNo !=null">
+                #{couponNo},
+            </if>
+            <if test="getCouponOrigin !=null">
+                #{getCouponOrigin},
+            </if>
+            <if test="couponIsUsed !=null">
+                #{couponIsUsed},
+            </if>
+            <if test="couponIsEffective !=null">
+                #{couponIsEffective},
+            </if>
+            <if test="grantCouponShop !=null">
+                #{grantCouponShop},
+            </if>
+            <if test="getCouponTime !=null">
+                #{getCouponTime},
+            </if>
+            <if test="grantCouponPerson !=null">
+                #{grantCouponPerson},
+            </if>
+            <if test="stationId !=null">
+                #{stationId},
+            </if>
+        </trim>
+    </insert>
+
 </mapper>