jk-GitHub-coder il y a 3 ans
Parent
commit
1c5c5986f8

+ 3 - 5
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -177,14 +177,12 @@ public class CouponController {
         Gson gson =new Gson();
         ResultData resultData = null;
         try {
-            Coupon coupon = new Coupon();
+            UserCoupon coupon = new UserCoupon();
             coupon.setId(id);
-            Coupon couponInfo = couponService.selectCouponInfo(coupon);
+            UserCoupon couponInfo = couponService.selectUserCouponInfo(coupon);
             resultData = ResultData.success(couponInfo);
         }catch (Exception e){
             e.printStackTrace();
-            logger.error("获取优惠券错误信息:" + e.getMessage());
-            resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
         }
         return  gson.toJson(resultData);
     }
@@ -283,7 +281,7 @@ public class CouponController {
                             couponParam.setId(couponId);
                             //领取成功的张数与该领取方式在当前页最多领取的张数
                             if(couponSuccessNum <= couponIssueList.get(0).getGiveLimit()) {
-                                Coupon coupon = couponService.selectCouponInfo(couponParam);
+                                Coupon coupon = couponService.selectCouponTemplateInfo(couponParam);
                                 //该优惠券是否存在
                                 if(coupon != null) {
                                     //该优惠券是否已被领完

+ 252 - 12
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -139,12 +139,25 @@ public class PayOrderController {
                     }
                     //获取用户的优惠券
                     if(stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+
                         Integer stationId = payOrderRequest.getStationId();
                         //集团下
                         if(stationInfos.getCouponFlag() !=null && stationInfos.getCouponFlag().equals("1")){
                             stationId=stationInfos.getGroupId();
                         }
-                        resultMap.put("userCouponsList", this.getUserCoupon(appUserInfos.getUnionId(), stationId));
+                        //设置了扫码后支付成功后的领取
+                        String couponIssueId = "";                              //领取方式ID
+                        resultMap.put("couponIssueId", couponIssueId);
+                        couponIssueId = this.getCouponIssue(stationId).get(0).getCouponIssueId();
+                        if(StringUtils.isNotBlank(couponIssueId)){
+                            resultMap.put("couponIssueId", couponIssueId);
+                        }
+                        List<UserCoupon> userCouponsList = new ArrayList<>();       //用户的优惠券
+                        resultMap.put("userCouponsList", userCouponsList);
+                        userCouponsList = this.getUserCoupon(appUserInfos.getUnionId(), stationId);
+                        if(userCouponsList !=null && userCouponsList.size()>0){
+                            resultMap.put("userCouponsList", userCouponsList);
+                        }
                     }
                     if(oilsType.equals("3")){                                                       //订单类型是油品时计算
                         payOrder.setOrderType("2");
@@ -484,7 +497,12 @@ public class PayOrderController {
         payOrderResultInfo.setDzkAmt(amt.toString());                           //电子卡支付金额
         payOrderResultInfo.setDzkDiscountAmt(dzkDiscountAmt.toString());        //电子卡优惠金额
         payOrderResultInfo.setBalance("0");
-        payOrderResultInfo.setCardOilsType("4");
+        String oilName = params.get("oilName").toString();
+
+        Oil oil = new Oil();
+        oil.setOilName(oilName);
+        Oil oilInfo = sysDictDataService.selectOilType(oil);
+        payOrderResultInfo.setCardOilsType(oilInfo.getOilsType());
 
         payOrderResultInfo.setOilsCardFlag("0");
         payOrderResultInfo.setCardEnabledFlag("0");
@@ -1348,12 +1366,200 @@ public class PayOrderController {
             payOrderResultInfo.setBalance(map.get("balance"));
             payOrderResultInfo.setOilsCardFlag(map.get("oilsCardFlag"));
             payOrderResultInfo.setCardOilsType(map.get("cardOilsType"));
-            //获取用户的优惠券
-            //payOrderResultInfo.setUserCouponsList(this.getUserCoupon(params.get("unionId").toString(), Integer.valueOf(params.get("stationId").toString())));
         }
         return  payOrderResultInfo;
     }
 
+    //获取客户所拥有的优惠券并计算支付金额
+    public List<UserCoupon> getUserCouponAscList(PayOrderResultInfo p){
+        Integer stationId = p.getStationId();
+        String unionId = p.getUnionId();
+        List<UserCoupon> userCouponsCalAndAscList = new ArrayList<>();
+        StationInfo stationInfo = new StationInfo();
+        stationInfo.setStationId(stationId);
+        StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+        if(stationInfos !=null && stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+            UserCoupon userCoupon = new UserCoupon();
+            userCoupon.setStationId(stationId);
+            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());
+            List<UserCoupon> userCouponsList = couponService.selectUserCoupons(userCoupon);
+            //循环计算优惠券金额 并排序
+            if(userCouponsList !=null && userCouponsList.size()>0){
+                for (UserCoupon uc: userCouponsList){
+                    //
+                    uc.getCouponThresholdAmt();
+                    String status = uc.getStatus();
+                    if(status !=null && status.equals("1")){
+                        //返回前端使用优惠券后的计算金额计算后
+                        CouponReckonAmt couponReckonAmt = new CouponReckonAmt();
+                        //couponReckonAmt.setAmt();
+                        String amt = p.getAmt();
+                        String discountAmt = p.getDiscountAmt();
+                        String oilPrice = p.getOilPrice();
+                        String discountPrice = p.getDiscountPrice();
+                        String dzkAmt = p.getDzkAmt();
+                        String dzkDiscountAmt = p.getDzkDiscountAmt();
+                        String oilLiters = p.getOilLiters();
+                        couponReckonAmt.setAmt(amt);
+                        couponReckonAmt.setDiscountAmt(discountAmt);
+                        couponReckonAmt.setOilPrice(oilPrice);
+                        couponReckonAmt.setDiscountPrice(discountPrice);
+                        couponReckonAmt.setDzkAmt(dzkAmt);
+                        couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmt);
+                        couponReckonAmt.setOilLiters(oilLiters);
+                        //优惠券时间类型
+                        String availableControl = uc.getAvailableControl();
+                        switch (availableControl){
+                            case "0":
+                                couponReckonAmt = this.calCouponDiscount(couponReckonAmt, uc, p);
+                                break;
+                            case "1":
+                                boolean activityDay_1 = this.isActivityDay("1", uc.getCycleDays());
+                                if(activityDay_1)
+                                    //指定每周几
+                                    couponReckonAmt = this.calCouponDiscount(couponReckonAmt, uc, p);
+                                break;
+                            case "2":
+                                boolean activityDay_2 = this.isActivityDay("2", uc.getCycleDays());
+                                if(activityDay_2)
+                                    //指定每月的几号
+                                    couponReckonAmt = this.calCouponDiscount(couponReckonAmt, uc, p);
+                                break;
+                            case "3":
+                                boolean activityDay_3 = this.isActivityDay("3", uc.getAppointedDays());
+                                if (activityDay_3)
+                                    //指定日
+                                    couponReckonAmt = this.calCouponDiscount(couponReckonAmt, uc, p);
+                                break;
+                        }
+                        uc.setCouponReckonAmt(couponReckonAmt);
+                    }
+                }
+                //根据支付金额大小进行优惠券排序
+
+            }
+        }
+        return userCouponsCalAndAscList;
+    }
+
+    /***
+     * //计算使用优惠券后金额
+     * @param c         //返回前端使用优惠券后的计算
+     * @param uc        //用户所持有该张优惠券的信息
+     * @return
+     */
+    public CouponReckonAmt calCouponDiscount(CouponReckonAmt c, UserCoupon uc, PayOrderResultInfo p){
+        CouponReckonAmt couponReckonAmt = c;
+        String amt = c.getAmt();
+        String discountAmt = c.getDiscountAmt();
+        String dzkAmt = c.getDzkAmt();
+        String dzkDiscountAmt = c.getDzkDiscountAmt();
+        String oilLiters = c.getOilLiters();
+        String discountPrice = c.getDiscountPrice();
+        BigDecimal couponAmt = uc.getCouponAmt();
+        String receivableAmt = p.getReceivableAmt();
+
+        BigDecimal dzkAmtNew = new BigDecimal(dzkAmt);
+        BigDecimal amtNew = new BigDecimal(amt);
+        BigDecimal discountPriceNew = new BigDecimal(discountPrice);
+        BigDecimal discountAmtNew = new BigDecimal(discountAmt);
+        BigDecimal dzkDiscountAmtNew = new BigDecimal(dzkDiscountAmt);
+
+                //根据优惠券类型计算金额
+        switch (uc.getCouponType()){
+            case "1":       //现金券
+                if(p.getAllDiscountType().equals("1")){
+                    //表示等级
+                    if(uc.getIsGradeFlag().equals("1")){
+                        amtNew = new BigDecimal(amt).subtract(couponAmt);
+                        amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew;
+                        discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                        couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                        discountAmtNew = discountAmtNew.add(couponAmt);
+                        couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
+                        couponReckonAmt.setAmt(amtNew.toString());
+
+                    }
+                }
+                if(p.getAllDiscountType().equals("2")){
+                    //表示营销
+                    if(uc.getIsMarketFlag().equals("1")){
+                        //优惠券后的优惠金额
+                        amtNew = new BigDecimal(amt).subtract(couponAmt);
+                        amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew;
+                        //优惠券后的优惠价格
+                        discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                        discountAmtNew = discountAmtNew.add(couponAmt);
+                        couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
+                        couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                        couponReckonAmt.setAmt(amtNew.toString());
+                    }
+                }
+                if(uc.getIsCardFlag().equals("1")){
+                    //与电子卡共享
+                    dzkAmtNew = new BigDecimal(dzkAmt).subtract(couponAmt);
+                    dzkAmtNew = dzkAmtNew.signum() == -1 ? new BigDecimal("0.01") : dzkAmtNew;
+                    discountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                    dzkDiscountAmtNew = dzkDiscountAmtNew.add(couponAmt);
+                    couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
+                    couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                    couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
+                }
+                break;
+            case "2":       //折扣券
+                if(p.getAllDiscountType().equals("1")){
+                    //表示等级
+                    if(uc.getIsGradeFlag().equals("1")){
+                        //表示与等级共享
+                        amtNew = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
+                        amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew;
+                        discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                        discountAmtNew = new BigDecimal(receivableAmt).subtract(amtNew);
+                        couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
+                        couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                        couponReckonAmt.setAmt(amtNew.toString());
+
+                    }
+                }
+                if(p.getAllDiscountType().equals("2")){
+                    //表示营销
+                    if(uc.getIsMarketFlag().equals("1")){
+                        //优惠券后的优惠金额
+                        amtNew = new BigDecimal(amt).multiply(couponAmt).divide(new BigDecimal("100"));
+                        amtNew = amtNew.signum() == -1 ? new BigDecimal("0.01") : amtNew;
+                        //优惠券后的优惠价格
+                        discountPriceNew = amtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                        discountAmtNew = new BigDecimal(receivableAmt).subtract(amtNew);
+                        couponReckonAmt.setDiscountAmt(discountAmtNew.toString());
+                        couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                        couponReckonAmt.setAmt(amtNew.toString());
+                    }
+                }
+                if(uc.getIsCardFlag().equals("1")){
+                    //与电子卡共享
+                    dzkAmtNew = new BigDecimal(dzkAmt).multiply(couponAmt).divide(new BigDecimal("100"));
+                    dzkAmtNew = dzkAmtNew.signum() == -1 ? new BigDecimal("0.01") : dzkAmtNew;
+                    discountPriceNew = dzkAmtNew.divide(new BigDecimal(oilLiters), 2, BigDecimal.ROUND_HALF_UP);
+                    dzkDiscountAmtNew = new BigDecimal(receivableAmt).subtract(dzkAmtNew);
+                    couponReckonAmt.setDzkDiscountAmt(dzkDiscountAmtNew.toString());
+                    couponReckonAmt.setDiscountPrice(discountPriceNew.toString());
+                    couponReckonAmt.setDzkAmt(dzkAmtNew.toString());
+                }
+
+                break;
+        }
+        return couponReckonAmt;
+    }
+
+
+
     //获取客户所拥有的优惠券
     public List<UserCoupon> getUserCoupon(String unionId, Integer stationId){
         List<UserCoupon> userCouponsList = new ArrayList<>();
@@ -1376,6 +1582,17 @@ public class PayOrderController {
         return userCouponsList;
     }
 
+
+    //获取支付后
+    public List<CouponIssue> getCouponIssue(Integer stationId){
+        CouponIssue c = new CouponIssue();
+        c.setStationId(stationId);
+        c.setIssueType("3");
+        c.setStatus("1");
+        List<CouponIssue> couponIssuesList = couponService.selectCouponIssueList(c);
+        return couponIssuesList;
+    }
+
     //查询用户电子会员卡余额
     public Map<String, String>  selectCardBalance(CustomerElectronicCard card, Map params) {
         CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
@@ -1473,12 +1690,12 @@ public class PayOrderController {
     /***
      * 计算使用优惠券金额
      * @param ordNo
-     * @param couponId
+     * @param id
      * @return
      */
     @RequestMapping(value = "/calculateCouponDiscount", method = RequestMethod.GET)
     @ResponseBody
-    public String calculateCouponDiscount(@RequestParam String ordNo, @RequestParam Integer couponId){
+    public String calculateCouponDiscount(@RequestParam String ordNo, @RequestParam Integer id){
         Gson gson =new Gson();
         ResultData resultData =null;
         PayOrder payOrder = new PayOrder();
@@ -1490,10 +1707,10 @@ public class PayOrderController {
         if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
             Map<String ,Object> resultMap = new HashMap<>();                //返回结果集
             if(infoMap !=null){
-                Coupon coupon = new Coupon();
-                if(couponId !=null){
-                    coupon.setId(couponId);
-                    Coupon couponInfo = couponService.selectCouponInfo(coupon);
+                UserCoupon u = new UserCoupon();
+                if(id !=null){
+                    u.setId(id);
+                    UserCoupon couponInfo = couponService.selectUserCouponInfo(u);
                     if(couponInfo !=null){
                         String oilName = infoMap.get("oilName").toString();
                         String oilNames = couponInfo.getOilName();
@@ -1677,14 +1894,37 @@ public class PayOrderController {
     /***
      * 计算使用优惠券金额
      * @param ordNo
-     * @param couponId
+     * @param id
      * @return
      */
     @RequestMapping(value = "/updateOrderCoupon", method = RequestMethod.GET)
     @ResponseBody
-    public String updateOrderCoupon(@RequestParam String ordNo, @RequestParam Integer couponId){
+    public String updateOrderCoupon(@RequestParam String ordNo, @RequestParam Integer id){
         Gson gson =new Gson();
         ResultData resultData =null;
+
+        PayOrder payOrder = payOrderService.selectOrderInfoByOrdNo(ordNo);
+        UserCoupon userCoupon = new UserCoupon();
+        userCoupon.setCouponId(id);
+        UserCoupon ucr = couponService.selectUserCouponInfo(userCoupon);
+        PayOrder p = new PayOrder();
+        p.setDiscountCoupon(id.toString());
+        p.setDiscountCouponAmt(Double.valueOf(ucr.getCouponAmt().toString()));
+        Double amt = payOrder.getAmt();
+        String couponType = ucr.getCouponType();
+        BigDecimal couponAmt = ucr.getCouponAmt();
+
+        CalCouponAmtInfo calCouponAmtInfo = new CalCouponAmtInfo();
+//        calCouponAmtInfo.setReceivableAmt(payOrder.getReceivableAmt());
+//        calCouponAmtInfo.setIsMarketFlag(userCoupon.getIsMarketFlag());
+//        calCouponAmtInfo.setIsGradeFlag(ucr.get);
+        this.calCouponAmt(calCouponAmtInfo);
+
+
+ //       p.setAmt();
+        p.setOrderNo(ordNo);
+        payOrderService.getUpdatePayOrder(p);
+        resultData = ResultData.success("");
         return  gson.toJson(resultData);
     }
 

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

@@ -10,8 +10,11 @@ import java.util.List;
 
 public interface CouponMapper {
 
+    //获取优惠券模板信息
+    Coupon selectCouponTemplateInfo(Coupon coupon);
+
     //获取加油券信息
-    Coupon selectCouponInfo(Coupon coupon);
+    UserCoupon selectUserCouponInfo(UserCoupon coupon);
 
     //获取油站已发放的加油券
     List<Coupon> selectStaGrantCouponList(Coupon coupon);

+ 15 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponReckonAmt.java

@@ -0,0 +1,15 @@
+package com.platform.yijia.pojo;
+
+import lombok.Data;
+
+@Data
+public class CouponReckonAmt {
+
+    private String oilLiters;       //加油金额
+    private String oilPrice;        //原单价
+    private String discountPrice;   //优惠单价
+    private String amt;             //实收金额
+    private String discountAmt;     //优惠金额
+    private String dzkAmt;          //电子卡金额
+    private String dzkDiscountAmt;     //优惠金额//当前时间优惠券是否可用
+}

+ 15 - 5
YijiaRestful/src/main/java/com/platform/yijia/pojo/PayOrderResultInfo.java

@@ -12,20 +12,30 @@ import java.util.List;
 public class PayOrderResultInfo {
 
     private String ordNo;           //优惠金额
-    private String discountAmt;     //优惠金额
     private String gradeDiscountPriceAmt;    //价格优惠金额
-    private String dzkDiscountAmt;     //优惠金额
     private String receivableAmt;   //应收金额
-    private String amt;             //实收金额
     private String oilLiters;       //加油金额
-    private String discountPrice;   //优惠单价
+
     private String oilPrice;        //原单价
+    private String discountPrice;   //优惠单价
+    private String amt;             //实收金额
+    private String discountAmt;     //优惠金额
+    private String dzkAmt;          //电子卡金额
+    private String dzkDiscountAmt;     //优惠金额
+
     private String cardEnabledFlag;    //是否开电子卡功能
-    private String dzkAmt;         //电子卡金额
+
     private String balance;         //电子卡余额
     private String cardOilsType;    //电子卡类型
     private String oilsCardFlag;      //该用户是否有改电子卡
 
+    //优惠券参数
+    private String unionId;             //客户unionId
+    private Integer stationId;          //油站ID
+
+    //计算优惠券时所需要判断的优惠方案参数值
+    private String allDiscountType;     // 1、等级优惠; 2、营销优惠;
+
     //标签功能参数
     private String isAddLabel;          //是否强制将该扫码用户拉入此标签:0、否;1、是;
     private String labelCreateBy;       //标签创建人

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

@@ -14,7 +14,8 @@ import java.util.List;
 public class UserCoupon {
 
     //用户优惠券属性
-    private Integer couponId;               //优惠券ID;
+    private Integer id;                     //优惠券ID
+    private Integer couponId;               //优惠券模板ID;
     private String issueId;                 //领取方式ID
     private String unionId;                 //用户union_id;
     private String couponNo;                //优惠券码
@@ -72,6 +73,7 @@ public class UserCoupon {
 
     private List<CouponVerification> couponVerificationList;        //核销站点
 
-    //当前时间优惠券是否可用
+    //计算使用优惠券后返回前端参数
+    private CouponReckonAmt couponReckonAmt;
 
 }

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

@@ -10,8 +10,11 @@ import java.util.List;
 
 public interface CouponService {
 
+    //获取优惠券模板信息
+    Coupon selectCouponTemplateInfo(Coupon coupon);
+
     //获取加油券信息
-    Coupon selectCouponInfo(Coupon coupon);
+    UserCoupon selectUserCouponInfo(UserCoupon coupon);
 
     //获取油站已发放的加油券
     List<Coupon> selectStaGrantCouponList(Coupon coupon);

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

@@ -16,6 +16,12 @@ public class CouponServiceImpl implements CouponService {
     @Resource
     private CouponMapper couponMapper;
 
+    //获取优惠券模板信息
+    @Override
+    public Coupon selectCouponTemplateInfo(Coupon coupon) {
+        return couponMapper.selectCouponTemplateInfo(coupon);
+    }
+
     //更新用户进入领取页面次数
     @Override
     public void updateCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount) {
@@ -49,8 +55,8 @@ public class CouponServiceImpl implements CouponService {
 
     //获取加油券信息
     @Override
-    public Coupon selectCouponInfo(Coupon coupon) {
-        return couponMapper.selectCouponInfo(coupon);
+    public UserCoupon selectUserCouponInfo(UserCoupon coupon) {
+        return couponMapper.selectUserCouponInfo(coupon);
     }
 
     //获取用户优惠券

+ 42 - 14
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -76,6 +76,7 @@
 
     <!--用户优惠券-->
   <resultMap id="UserCouponsBaseResultMap"    type="com.platform.yijia.pojo.UserCoupon">
+    <result column="id"                       jdbcType="VARCHAR"   property="id" />
     <result column="coupon_id"                jdbcType="VARCHAR"   property="couponId" />
     <result column="union_id"                 jdbcType="VARCHAR"   property="unionId" />
     <result column="coupon_is_used"           jdbcType="VARCHAR"   property="couponIsUsed" />
@@ -145,13 +146,32 @@
         <result column="dept_name"          jdbcType="VARCHAR"   property="verificationName" />
     </resultMap>
 
-  <sql id="Base_Column_List">
-    id, station_id, coupon_name, coupon_type, coupon_threshold_amt, oil_name, oil_type, coupon_amt, coupon_num, effective_time_type,
-    effective_time_start, effective_time_end, effective_day_num, coupon_receive_num, coupon_hold_num, coupon_cumulative_num, coupon_use_num,
-    open_platform, status, create_by, create_time, update_by, update_time, del_flag, coupon_details, verification,
-    is_card_flag, is_grade_flag, is_market_flag, edit_flag, available_control, appointed_days, cycle_days
+  <sql id="UserCoupon_Base_Column_List">
+    T1.coupon_id, T2.id, T2.station_id, T2.coupon_name, T2.coupon_type, T2.coupon_threshold_amt, T2.oil_name, T2.oil_type, T2.coupon_amt, T2.effective_time_type,
+    T2.effective_time_start, T2.effective_time_end, T2.effective_day_num, T2.coupon_cumulative_num, T2.coupon_use_num,
+    T2.open_platform, T2.status, T2.create_by, T2.create_time, T2.update_by, T2.update_time, T2.del_flag, T2.coupon_details, T2.verification,
+    T2.is_card_flag, T2.is_grade_flag, T2.is_market_flag, T2.edit_flag, T2.available_control, T2.appointed_days, T2.cycle_days
   </sql>
 
+    <sql id="Coupon_Base_Column_List">
+        T2.id, T2.station_id, T2.coupon_name, T2.coupon_type, T2.coupon_threshold_amt, T2.oil_name, T2.oil_type, T2.coupon_amt, T2.coupon_num, T2.effective_time_type,
+        T2.effective_time_start, T2.effective_time_end, T2.effective_day_num, T2.coupon_receive_num, T2.coupon_hold_num, T2.coupon_cumulative_num, T2.coupon_use_num,
+        T2.open_platform, T2.status, T2.create_by, T2.create_time, T2.update_by, T2.update_time, T2.del_flag, T2.coupon_details, T2.verification,
+        T2.is_card_flag, T2.is_grade_flag, T2.is_market_flag, T2.edit_flag, T2.available_control, T2.appointed_days, T2.cycle_days
+      </sql>
+
+    <!--查询优惠券模板信息-->
+    <select id="selectCouponTemplateInfo" parameterType="com.platform.yijia.pojo.Coupon" resultMap="CouponIssueBaseResultMap">
+        SELECT
+            <include refid="Coupon_Base_Column_List"/>
+        FROM     coupon_info     AS  T2
+        <where>
+            <if test="id !=null">
+                T2.id = #{id}
+            </if>
+        </where>
+    </select>
+
     <!--查询领取方式信息-->
     <select id="selectCouponIssueList" parameterType="com.platform.yijia.pojo.CouponIssue" resultMap="CouponIssueBaseResultMap">
         SELECT
@@ -179,6 +199,12 @@
             <if test="couponIssueId !=null ">
                 AND id = #{couponIssueId}
             </if>
+            <if test="issueType !=null ">
+                AND issue_type = #{issueType}
+            </if>
+            <if test="status !=null ">
+                AND status = #{status}
+            </if>
         </where>
 
     </select>
@@ -186,6 +212,7 @@
     <!--获取油站所分发的加油券-->
     <select id="selectStaGrantCouponList" parameterType="com.platform.yijia.pojo.Coupon" resultMap="BaseResultMap">
         SELECT
+            T1.id,
             T2.id                                AS coupon_issue_id,
             T2.issue_name,
             T2.issue_type,
@@ -357,15 +384,15 @@
 
 
 
-  <!--获取加油券信息-->
-  <select id="selectCouponInfo" parameterType="com.platform.yijia.pojo.Coupon" resultMap="BaseResultMap">
+  <!--获取用户某个加油券信息-->
+  <select id="selectUserCouponInfo" parameterType="com.platform.yijia.pojo.UserCoupon" resultMap="UserCouponsBaseResultMap">
         SELECT
-            <include refid="Base_Column_List"/>
-        FROM
-            coupon_info
+            <include refid="UserCoupon_Base_Column_List"/>
+        FROM          coupon_user     AS  T1
+        LEFT JOIN     coupon_info     AS  T2 ON T1.coupon_id = T2.id
         <where>
           <if test="id !=null">
-            id = #{id}
+            T1.id = #{id}
           </if>
         </where>
   </select>
@@ -394,6 +421,7 @@
   <!--获取用户所拥有的加油券-->
   <select id="selectUserCoupons" parameterType="com.platform.yijia.pojo.UserCoupon" resultMap="UserCouponsBaseResultMap">
     SELECT
+        T1.id,
         T1.union_id,
         T1.coupon_id,
         T1.coupon_no,
@@ -430,9 +458,9 @@
         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
+    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"