ソースを参照

优惠券领取

jk-GitHub-coder 3 年 前
コミット
72f9d41eac

+ 106 - 95
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -7,6 +7,7 @@ import com.platform.yijia.pojo.*;
 import com.platform.yijia.service.CouponService;
 import com.platform.yijia.service.StationService;
 import com.platform.yijia.utils.CodeMsg;
+import com.platform.yijia.utils.CryptUtil;
 import com.platform.yijia.utils.ResultData;
 import com.sun.corba.se.spi.ior.ObjectKey;
 import com.sun.org.apache.bcel.internal.classfile.Code;
@@ -60,87 +61,91 @@ public class CouponController {
         Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         ResultData resultData = null;
         try {
-            //返回前端结果
-            Map<String, Object> resultMap = new HashMap<>();
-            StationInfo stationInfo = new StationInfo();
-            stationInfo.setStationId(stationId);
-            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-            if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
-                CouponIssue couponIssue = new CouponIssue();
-                couponIssue.setStationId(stationId);
-                couponIssue.setCouponIssueId(couponIssueId);
-                //获取该领取方式的状态是否启用 1启用 0未启用
-                List<CouponIssue> couponIssuesList = couponService.selectCouponIssueList(couponIssue);
-                if(couponIssuesList !=null && couponIssuesList.size() >0 && couponIssuesList.get(0).getStatus().equals("1")){
-                    resultMap.put("giveLimit", couponIssuesList.get(0).getGiveLimit());
-                    CouponUserGiveCount couponUserGiveCount = new CouponUserGiveCount();
-                    couponUserGiveCount.setStationId(stationId);
-                    couponUserGiveCount.setUnionId(unionId);
-                    couponUserGiveCount.setCouponIssueId(couponIssueId);
-                    //用户能进入领取界面的次数
-                    CouponUserGiveCount cgcInfo = couponService.selectCouponUserGiveCount(couponUserGiveCount);
-                    if(cgcInfo !=null && cgcInfo.getIssueGiveCount() >=  cgcInfo.getGiveCount()){
-                        resultData = ResultData.error(CodeMsg.COUPON_GIVE_COUNT_MAX);
-                    }else {
-                        if(cgcInfo !=null){
-                            //更新次数
-                            Integer issueGiveCount = cgcInfo.getIssueGiveCount();
-                            int i = issueGiveCount + 1;
-                            couponUserGiveCount.setIssueGiveCount(i);
-                            couponUserGiveCount.setUpdateTime(new Date());
-                            couponService.updateCouponUserGiveCount(couponUserGiveCount);
+            if(unionId !=null && stationId !=null && couponIssueId !=null){
+                //返回前端结果
+                Map<String, Object> resultMap = new HashMap<>();
+                StationInfo stationInfo = new StationInfo();
+                stationInfo.setStationId(stationId);
+                StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+                    CouponIssue couponIssue = new CouponIssue();
+                    couponIssue.setStationId(stationId);
+                    couponIssue.setCouponIssueId(couponIssueId);
+                    //获取该领取方式的状态是否启用 1启用 0未启用
+                    List<CouponIssue> couponIssuesList = couponService.selectCouponIssueList(couponIssue);
+                    if(couponIssuesList !=null && couponIssuesList.size() >0 && couponIssuesList.get(0).getStatus().equals("1")){
+                        resultMap.put("giveLimit", couponIssuesList.get(0).getGiveLimit());
+                        CouponUserGiveCount couponUserGiveCount = new CouponUserGiveCount();
+                        couponUserGiveCount.setStationId(stationId);
+                        couponUserGiveCount.setUnionId(unionId);
+                        couponUserGiveCount.setCouponIssueId(couponIssueId);
+                        //用户能进入领取界面的次数
+                        CouponUserGiveCount cgcInfo = couponService.selectCouponUserGiveCount(couponUserGiveCount);
+                        if(cgcInfo !=null && cgcInfo.getIssueGiveCount() >=  cgcInfo.getGiveCount()){
+                            resultData = ResultData.error(CodeMsg.COUPON_GIVE_COUNT_MAX);
                         }else {
-                            //新增次数
-                            couponUserGiveCount.setIssueGiveCount(1);
-                            couponUserGiveCount.setCreteTime(new Date());
-                            couponService.addCouponUserGiveCount(couponUserGiveCount);
-                        }
-                        //该领取方式能领取优惠券的时间类型
-                        String availableControl = couponIssuesList.get(0).getAvailableControl();
-                        switch (availableControl){
-                            case "0":
-                                List<Coupon> couponsList = this.selectCouponIssue(stationId, couponIssueId);
-                                resultMap.put("couponsList", couponsList);
-                                resultData = ResultData.success(resultMap);
-                                break;
-                            case "1":
-                                String cycleDays_1 = couponIssuesList.get(0).getCycleDays();
-                                if(!this.isActivityDay(availableControl, cycleDays_1)){
-                                    resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
-                                }else {
-                                    List<Coupon> couponsList_1 = this.selectCouponIssue(stationId, couponIssueId);
-                                    resultMap.put("couponsList", couponsList_1);
-                                    resultData = ResultData.success(resultMap);
-                                }
-                                break;
-                            case "2":
-                                //String cycleDays_2 = couponIssuesList.get(0).getCycleDays();
-                                if(!this.isActivityDay(availableControl, couponIssuesList.get(0).getCycleDays())){
-                                    resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
-                                }else {
-                                    List<Coupon> couponsList_2 = this.selectCouponIssue(stationId, couponIssueId);
-                                    resultMap.put("couponsList", couponsList_2);
-                                    resultData = ResultData.success(resultMap);
-                                }
-                                break;
-                            case "3":
-                                String appointedDays_3 = couponIssuesList.get(0).getAppointedDays();
-                                if(!this.isActivityDay(availableControl, appointedDays_3)){
-                                    resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
-                                }else {
-                                    List<Coupon> couponsList_3 = this.selectCouponIssue(stationId, couponIssueId);
-                                    resultMap.put("couponsList", couponsList_3);
+                            if(cgcInfo !=null){
+                                //更新次数
+                                Integer issueGiveCount = cgcInfo.getIssueGiveCount();
+                                int i = issueGiveCount + 1;
+                                couponUserGiveCount.setIssueGiveCount(i);
+                                couponUserGiveCount.setUpdateTime(new Date());
+                                couponService.updateCouponUserGiveCount(couponUserGiveCount);
+                            }else {
+                                //新增次数
+                                couponUserGiveCount.setIssueGiveCount(1);
+                                couponUserGiveCount.setCreteTime(new Date());
+                                couponService.addCouponUserGiveCount(couponUserGiveCount);
+                            }
+                            //该领取方式能领取优惠券的时间类型
+                            String availableControl = couponIssuesList.get(0).getAvailableControl();
+                            switch (availableControl){
+                                case "0":
+                                    List<Coupon> couponsList = this.selectCouponIssue(stationId, couponIssueId);
+                                    resultMap.put("couponsList", couponsList);
                                     resultData = ResultData.success(resultMap);
-                                }
-                                break;
+                                    break;
+                                case "1":
+                                    String cycleDays_1 = couponIssuesList.get(0).getCycleDays();
+                                    if(!this.isActivityDay(availableControl, cycleDays_1)){
+                                        resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
+                                    }else {
+                                        List<Coupon> couponsList_1 = this.selectCouponIssue(stationId, couponIssueId);
+                                        resultMap.put("couponsList", couponsList_1);
+                                        resultData = ResultData.success(resultMap);
+                                    }
+                                    break;
+                                case "2":
+                                    //String cycleDays_2 = couponIssuesList.get(0).getCycleDays();
+                                    if(!this.isActivityDay(availableControl, couponIssuesList.get(0).getCycleDays())){
+                                        resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
+                                    }else {
+                                        List<Coupon> couponsList_2 = this.selectCouponIssue(stationId, couponIssueId);
+                                        resultMap.put("couponsList", couponsList_2);
+                                        resultData = ResultData.success(resultMap);
+                                    }
+                                    break;
+                                case "3":
+                                    String appointedDays_3 = couponIssuesList.get(0).getAppointedDays();
+                                    if(!this.isActivityDay(availableControl, appointedDays_3)){
+                                        resultData = ResultData.error(CodeMsg.NOT_GIVE_COUPON_TIME);
+                                    }else {
+                                        List<Coupon> couponsList_3 = this.selectCouponIssue(stationId, couponIssueId);
+                                        resultMap.put("couponsList", couponsList_3);
+                                        resultData = ResultData.success(resultMap);
+                                    }
+                                    break;
+                            }
                         }
+                    }else {
+                        // -7
+                        resultData = ResultData.error(CodeMsg.ISSUE_CLOSE);
                     }
                 }else {
-                    // -7
-                    resultData = ResultData.error(CodeMsg.ISSUE_CLOSE);
+                    resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
                 }
             }else {
-                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
+                resultData = ResultData.error(CodeMsg.PARAMS_NUll);
             }
         }catch (Exception e){
             e.printStackTrace();
@@ -188,24 +193,27 @@ public class CouponController {
     @ApiOperation(value = "获取客户所拥有的优惠券", httpMethod = "GET", notes = "获取客户所拥有的优惠券")
     public String selectUserCoupons(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
                                     @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){
-        Gson gson =new Gson();
+        Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         ResultData resultData = null;
         try {
-            StationInfo stationInfo = new StationInfo();
-            stationInfo.setStationId(stationId);
-            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-            if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
-
-                UserCoupon userCoupon = new UserCoupon();
-                userCoupon.setStationId(stationId);
-                if(stationInfos.getCouponFlag().equals("1")){
-                    userCoupon.setStationId(stationInfos.getGroupId());
+            if(stationId !=null && StringUtils.isNotBlank(unionId)){
+                StationInfo stationInfo = new StationInfo();
+                stationInfo.setStationId(stationId);
+                StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+                if(stationInfos !=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);
+                    List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
+                    resultData = ResultData.success(userCoupons);
+                }else {
+                    resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
                 }
-                userCoupon.setUnionId(unionId);
-                List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
-                resultData = ResultData.success(userCoupons);
             }else {
-                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
+                resultData = ResultData.error(CodeMsg.PARAMS_NUll);
             }
         }catch (Exception e){
             e.printStackTrace();
@@ -216,21 +224,23 @@ public class CouponController {
     }
 
     //用户领取优惠券
-    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST)
+    @RequestMapping(value = "/addUserCoupon", consumes = "application/json", method = RequestMethod.POST)
     @ResponseBody
     @Transactional
     //@ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券")
-    public String addUserCoupon(@ApiParam(value = "用户unionId", required = true) @RequestParam String unionId,
-                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam String couponIds,
-                                @ApiParam(value = "领取方式ID", required = true) @RequestParam String couponIssueId,
-                                @ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId){
+    public String addUserCoupon(@RequestBody CouponUserRequest couponUserRequest){
         Gson gson = new Gson();
         ResultData resultData = null;
         try{
+            String unionId =  couponUserRequest.getUnionId();
+            String couponIds = couponUserRequest.getCouponIds();
+            String couponIssueId =  couponUserRequest.getCouponIssueId();
+            Integer stationId = couponUserRequest.getStationId();
             logger.info("用户领取优惠券所需参数: unionId: "+ unionId+ "; 油站ID:" +stationId + "; 优惠券IDS:" + couponIds + "; 领取方式ID: " + couponIssueId);
             StationInfo stationInfo = new StationInfo();
             stationInfo.setStationId(stationId);
             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            //油站是否开启优惠券功能
             if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
                 if(StringUtils.isNotBlank(couponIds)){
                     String str[] = couponIds.split(",");
@@ -281,7 +291,8 @@ public class CouponController {
                                                 userCouponParam.setCouponIsUsed("0");           //是否使用:0、未使用;1、已使用;
                                                 long currentTimeMillis = System.currentTimeMillis();
                                                 String s = stationId + Long.toString(currentTimeMillis) + Math.round((Math.random() + 1) * 1000);
-                                                userCouponParam.setCouponNo(s);                //优惠券编码
+                                                String s1 = CryptUtil.useMD5(s);
+                                                userCouponParam.setCouponNo(s1);                //优惠券编码
                                                 userCouponParam.setUnionId(unionId);            //用户unionId
                                                 userCouponParam.setIssueId(couponIssueId);      //领取方式ID
                                                 userCouponParam.setCouponId(coupon.getId());    //优惠券ID
@@ -366,7 +377,7 @@ public class CouponController {
         }catch (Exception e){
             e.printStackTrace();
             //logger.error("用户领取优惠券错误信息:" + e.getMessage());
-            resultData = ResultData.error(CodeMsg.INSERT_FAIL);
+            //resultData = ResultData.error(CodeMsg.INSERT_FAIL);
         }
         return gson.toJson(resultData);
     }

+ 91 - 54
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -131,6 +131,17 @@ public class PayOrderController {
                     payOrderRequest.setCardOilsType(oilInfo.getOilsType());                         //电子卡类型;注:用于获取客户电子卡参数查询
                     payOrder.setOilName(oilName);                                                   //油品名称
 
+                    //该油站是否开启优惠券功能
+                    resultMap.put("couponEnabledFlag", stationInfos.getCouponEnabledFlag());
+                    //获取用户的优惠券
+                    if(stationInfos.getCouponEnabledFlag() !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+                        Integer stationId = payOrderRequest.getStationId();
+                        //集团下
+                        if(stationInfos.getCouponFlag().equals("1")){
+                            stationId=stationInfos.getGroupId();
+                        }
+                        resultMap.put("userCouponsList", this.getUserCoupon(appUserInfos.getUnionId(), stationId));
+                    }
                     if(oilsType.equals("3")){                                                       //订单类型是油品时计算
                         payOrder.setOrderType("2");
                         payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
@@ -1333,10 +1344,30 @@ 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> getUserCoupon(String unionId, Integer stationId){
+        List<UserCoupon> userCouponsList = 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().equals("1")){
+                userCoupon.setStationId(stationInfos.getGroupId());
+            }
+            userCoupon.setUnionId(unionId);
+            userCouponsList = couponService.selectUserCoupons(userCoupon);
+        }
+        return userCouponsList;
+    }
+
     //查询用户电子会员卡余额
     public Map<String, String>  selectCardBalance(CustomerElectronicCard card, Map params) {
         CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard();
@@ -1445,75 +1476,81 @@ public class PayOrderController {
         PayOrder payOrder = new PayOrder();
         payOrder.setOrderNo(ordNo);
         Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
-        if(infoMap !=null){
-            Coupon coupon = new Coupon();
-            coupon.setId(couponId);
-            Coupon couponInfo = couponService.selectCouponInfo(coupon);
-            if(couponInfo !=null){
-                String status = couponInfo.getStatus();
-                //该优惠券是否有效
-                if(status !=null && status.equals("1")) {
-                    //
-                    String isMarketFlag = coupon.getIsMarketFlag();
-                    String isCardFlag = coupon.getIsCardFlag();
-                    String isGradeFlag = coupon.getIsGradeFlag();
-                    PayOrder p = new PayOrder();
+        StationInfo stationInfo = new StationInfo();
+        stationInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
+        StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+        if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+            if(infoMap !=null){
+                Coupon coupon = new Coupon();
+                coupon.setId(couponId);
+                Coupon couponInfo = couponService.selectCouponInfo(coupon);
+                if(couponInfo !=null){
+                    String status = couponInfo.getStatus();
+                    //该优惠券是否有效
+                    if(status !=null && status.equals("1")) {
+                        //
+                        String isMarketFlag = coupon.getIsMarketFlag();
+                        String isCardFlag = coupon.getIsCardFlag();
+                        String isGradeFlag = coupon.getIsGradeFlag();
+                        PayOrder p = new PayOrder();
 
 //                    BigDecimal receivableAmt = new BigDecimal(payOrder.getReceivableAmt().toString());  //应收金额
 //                    BigDecimal amt = new BigDecimal(payOrder.getAmt().toString());                      //实收金额
 //                    BigDecimal dzkAmt = new BigDecimal(payOrder.getDzkAmt().toString());                //应收金额
 
-                    BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //应收金额
-                    p.setReceivableAmt(receivableAmt.doubleValue());
-                    BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额
-                    p.setAmt(amt.doubleValue());
-                    BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额
-                    p.setDzkAmt(dzkAmt.doubleValue());
-                    BigDecimal oilPrice = new BigDecimal(infoMap.get("oilPirce").toString());            //油品价格
+                        BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //应收金额
+                        p.setReceivableAmt(receivableAmt.doubleValue());
+                        BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额
+                        p.setAmt(amt.doubleValue());
+                        BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额
+                        p.setDzkAmt(dzkAmt.doubleValue());
+                        BigDecimal oilPrice = new BigDecimal(infoMap.get("oilPirce").toString());            //油品价格
 
-                    BigDecimal couponAmt = coupon.getCouponAmt();                                       //优惠券金额:金额 比例值
-                    String couponType = coupon.getCouponType();                                         //优惠劵类型 1现金劵,2折扣券,3兑换券
+                        BigDecimal couponAmt = coupon.getCouponAmt();                                       //优惠券金额:金额 比例值
+                        String couponType = coupon.getCouponType();                                         //优惠劵类型 1现金劵,2折扣券,3兑换券
 
-                    //计算优惠券优惠后金额
-                    PayOrder resultCalCoupon = calCouponAmt(couponType, receivableAmt, couponAmt, dzkAmt, amt, isCardFlag, isMarketFlag);
-                    //查询优惠券使用时间
-                    String availableControl = coupon.getAvailableControl();
-                    switch (availableControl){
-                        case "0":
-                            p.setDzkAmt(resultCalCoupon.getDzkAmt());
-                            p.setAmt(resultCalCoupon.getAmt());
-                            break;
-                        case "1":
-                            boolean activityDay = this.isActivityDay("1", coupon.getCycleDays());
-                            if(activityDay){
-                                p.setDzkAmt(resultCalCoupon.getDzkAmt());
-                                p.setAmt(resultCalCoupon.getAmt());
-                            }
-                            break;
-                        case "2":
-                            boolean activityDay2 = this.isActivityDay("2", coupon.getCycleDays());
-                            if(activityDay2){
+                        //计算优惠券优惠后金额
+                        PayOrder resultCalCoupon = calCouponAmt(couponType, receivableAmt, couponAmt, dzkAmt, amt, isCardFlag, isMarketFlag);
+                        //查询优惠券使用时间
+                        String availableControl = coupon.getAvailableControl();
+                        switch (availableControl){
+                            case "0":
                                 p.setDzkAmt(resultCalCoupon.getDzkAmt());
                                 p.setAmt(resultCalCoupon.getAmt());
-                            }
-                            break;
-                        case "3":
-                            boolean activityDay3 = this.isActivityDay("3", coupon.getCycleDays());
-                            if(activityDay3){
-                                p.setDzkAmt(resultCalCoupon.getDzkAmt());
-                                p.setAmt(resultCalCoupon.getAmt());
-                            }
-
+                                break;
+                            case "1":
+                                boolean activityDay = this.isActivityDay("1", coupon.getCycleDays());
+                                if(activityDay){
+                                    p.setDzkAmt(resultCalCoupon.getDzkAmt());
+                                    p.setAmt(resultCalCoupon.getAmt());
+                                }
+                                break;
+                            case "2":
+                                boolean activityDay2 = this.isActivityDay("2", coupon.getCycleDays());
+                                if(activityDay2){
+                                    p.setDzkAmt(resultCalCoupon.getDzkAmt());
+                                    p.setAmt(resultCalCoupon.getAmt());
+                                }
+                                break;
+                            case "3":
+                                boolean activityDay3 = this.isActivityDay("3", coupon.getCycleDays());
+                                if(activityDay3){
+                                    p.setDzkAmt(resultCalCoupon.getDzkAmt());
+                                    p.setAmt(resultCalCoupon.getAmt());
+                                }
+                        }
+                        resultData = ResultData.success(p);
+                    }else {
+                        resultData = ResultData.error(CodeMsg.COUPON_LOSE_EFFECTIVE);
                     }
-                    resultData = ResultData.success(p);
                 }else {
-                    resultData = ResultData.error(CodeMsg.COUPON_LOSE_EFFECTIVE);
+                    resultData = ResultData.error(CodeMsg.NO_COUPON);
                 }
             }else {
-                resultData = ResultData.error(CodeMsg.NO_COUPON);
+                resultData = ResultData.error(CodeMsg.NO_ORDER);
             }
         }else {
-            resultData = ResultData.error(CodeMsg.NO_ORDER);
+            resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
         }
         return gson.toJson(resultData);
     }

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

@@ -3,6 +3,7 @@ package com.platform.yijia.pojo;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /***
  * 生成订单时返回前端参数信息
@@ -36,4 +37,8 @@ public class PayOrderResultInfo {
     private String sellAmt;                 //司机价后实收金额
     private String sellDiscountAmt;         //销售价后优惠金额
     private String driverDiscountAmt;       //司机价后优惠金额
+
+
+    //客户所拥有的优惠券
+    private List<UserCoupon> userCouponsList;       //客户所拥有的优惠券
 }

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

@@ -4,6 +4,7 @@ import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 用户优惠券实体类
@@ -25,8 +26,9 @@ public class UserCoupon {
 
     //优惠券属性
     private BigDecimal couponThresholdAmt;  //优惠券使用门槛金额;
+    private String couponName;             //优惠券名称
     private String oilType;                 //1 柴油,2 汽油;
-    private String couponAmt;               //优惠券优惠金额;
+    private BigDecimal couponAmt;               //优惠券优惠金额;
     private String effectiveTimeType;       //有效时间类型: 1,固定时间;2,领取后x天内有效;
     private Date effectiveTimeStart;        //固定时间-有效开始时间;
     private Date effectiveTimeEnd;          //固定时间-有效结束时间;
@@ -35,7 +37,28 @@ public class UserCoupon {
     private String grantStatus;             //发放状态:0,未发放;1,已发放;
     private String status;                  //有效状态:0,未生效; 1,生效;2,失效;
 
+    private String createBy;                //创建人;
+    private Date createTime;                //创建时间;
+    private String updateBy;                //更新人
+    private Date updateTime;                //更新时间
+    private String delFlag;                 //是否删除优惠劵 1是 0 否
+    private String couponDetails;           //优惠内容
+    private String verification;            //优惠劵选中的站点
+    private String availableControl;        //有效期内可用时间设置0一直可用 1:每周 2 每月 3 指定日期
+    private String appointedDays;           //指定日期
+    private String cycleDays;               //每周每月的周几和几号
+
+    //优惠活动是否叠加
+    private String isCardFlag;              //是否电子卡
+    private String isGradeFlag;             //是否等级
+    private String isMarketFlag;            //是否叠加营销方案;
+
+    //领取方式属性
+    private Integer showId;                     //展示位
+    private BigDecimal discountThresholdAmt;    //领取方式门槛金额
+
     //油站属性
-    private String stationName;             //油站名称
+
+    private List<CouponVerification> couponVerificationList;        //核销站点
 
 }

+ 35 - 19
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -30,11 +30,9 @@
     <result column="create_time"              jdbcType="TIMESTAMP" property="createTime" />
     <result column="update_by"                jdbcType="VARCHAR"   property="updateBy" />
 
-      <result column="update_by"              jdbcType="TIMESTAMP" property="updateTime" />
+      <result column="update_time"            jdbcType="TIMESTAMP" property="updateTime" />
       <result column="del_flag"               jdbcType="VARCHAR"   property="delFlag" />
       <result column="coupon_details"         jdbcType="VARCHAR"   property="couponDetails" />
-
-      <result column="update_by"              jdbcType="VARCHAR"   property="couponDetails" />
       <result column="verification"           jdbcType="VARCHAR"   property="verification" />
 
       <result column="is_card_flag"           jdbcType="VARCHAR"   property="isCardFlag" />
@@ -55,13 +53,6 @@
                   column="{param_station_id = station_id, param_coupon_id = id}" ofType="com.platform.yijia.pojo.CouponVerification"/>
 
   </resultMap>
-
-    <!-- 核销站点-->
-   <resultMap id="CouponVerificationBaseResultMap"       type="com.platform.yijia.pojo.CouponVerification">
-       <result column="dept_id"            jdbcType="INTEGER"   property="verificationStationId" />
-       <result column="dept_name"          jdbcType="VARCHAR"   property="verificationName" />
-   </resultMap>
-
     <!--发放方式,优惠劵信息-->
    <resultMap id="CouponIssueBaseResultMap"       type="com.platform.yijia.pojo.CouponIssue">
        <result column="coupon_issue_id"           jdbcType="VARCHAR"   property="couponIssueId" />
@@ -98,7 +89,7 @@
     <result column="coupon_type"              jdbcType="VARCHAR"   property="couponType" />
     <result column="coupon_threshold_amt"     jdbcType="DECIMAL"   property="couponThresholdAmt" />
     <result column="oil_type"                 jdbcType="VARCHAR"   property="oilType" />
-    <result column="coupon_amt"               jdbcType="VARCHAR"   property="couponAmt" />
+    <result column="coupon_amt"               jdbcType="DECIMAL"   property="couponAmt" />
     <result column="coupon_num"               jdbcType="INTEGER"   property="couponNum" />
     <result column="effective_time_type"      jdbcType="VARCHAR"   property="effectiveTimeType" />
     <result column="effective_time_start"     jdbcType="TIMESTAMP" property="effectiveTimeStart" />
@@ -109,9 +100,25 @@
     <result column="grant_status"             jdbcType="VARCHAR"   property="grantStatus" />
     <result column="status"                   jdbcType="VARCHAR"   property="status" />
 
-    <result column="dept_name"                jdbcType="VARCHAR"   property="stationName" />
-  </resultMap>
+      <result column="create_by"              jdbcType="VARCHAR"   property="createBy" />
+      <result column="create_time"            jdbcType="TIMESTAMP" property="createTime" />
+      <result column="update_by"              jdbcType="VARCHAR"   property="updateBy" />
+      <result column="update_time"            jdbcType="TIMESTAMP" property="updateTime" />
+      <result column="del_flag"               jdbcType="VARCHAR"   property="delFlag" />
+      <result column="coupon_details"         jdbcType="VARCHAR"   property="couponDetails" />
+      <result column="verification"           jdbcType="VARCHAR"   property="verification" />
 
+      <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="available_control"       jdbcType="VARCHAR"   property="availableControl" />
+      <result column="appointed_days"          jdbcType="VARCHAR"   property="appointedDays" />
+      <result column="cycle_days"              jdbcType="VARCHAR"   property="cycleDays" />
+
+      <collection property="couponVerificationList"  select="selectCouponVerificationInfo"
+                  column="{param_station_id = station_id, param_coupon_id = coupon_id}" ofType="com.platform.yijia.pojo.CouponVerification"/>
+  </resultMap>
 
     <!---->
     <resultMap id="CouponUserGiveCountBaseResultMap"    type="com.platform.yijia.pojo.CouponUserGiveCount">
@@ -124,7 +131,12 @@
         <result column="update_time"            jdbcType="TIMESTAMP"    property="updateTime" />
         <result column="give_count"             jdbcType="INTEGER"      property="giveCount" />
         <result column="issueStatus"            jdbcType="VARCHAR"      property="issueStatus" />
+    </resultMap>
 
+    <!-- 核销站点-->
+    <resultMap id="CouponVerificationBaseResultMap"       type="com.platform.yijia.pojo.CouponVerification">
+        <result column="dept_id"            jdbcType="INTEGER"   property="verificationStationId" />
+        <result column="dept_name"          jdbcType="VARCHAR"   property="verificationName" />
     </resultMap>
 
   <sql id="Base_Column_List">
@@ -380,11 +392,7 @@
         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,
@@ -394,10 +402,18 @@
         T2.effective_time_start,
         T2.effective_time_end,
         T2.effective_day_num,
-        T2.status
+        T2.status,
+        T2.create_time,
+        T2.is_card_flag,
+        T2.is_grade_flag,
+        T2.is_market_flag,
+        T2.available_control,
+        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 sys_dept      AS  T3 ON T2.station_id = T3.dept_id
     <where>
       <if test="stationId !=null and stationId !=''">
         T1.station_id = #{stationId}