Quellcode durchsuchen

xiugai优惠券

jk-GitHub-coder vor 3 Jahren
Ursprung
Commit
138f2f22e9

+ 142 - 86
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -5,14 +5,17 @@ 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.StationInfo;
 import com.platform.yijia.pojo.UserCoupon;
 import com.platform.yijia.service.CouponService;
+import com.platform.yijia.service.StationService;
 import com.platform.yijia.utils.CodeMsg;
 import com.platform.yijia.utils.ResultData;
 import com.sun.corba.se.spi.ior.ObjectKey;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Controller;
@@ -29,7 +32,7 @@ import java.util.*;
  * @Author JK
  * @Date 2021年7月6日
  */
-@RestController
+@Controller
 @YiJiaRequest()
 @CrossOrigin
 @Api(tags = "优惠券")
@@ -38,32 +41,40 @@ public class CouponController {
 
     @Resource
     private CouponService couponService;
-
+    @Resource
+    private StationService stationService;
 
     /**
      * 获取油站分发优惠券
      * @param stationId  油站ID
      * @param couponIssueId    发放方式ID
-     * @param unionId    用户unionId
      * @return
      */
     @RequestMapping(value = "/selectStaGrantCouponList", method = RequestMethod.GET)
     @Transactional
+    @ResponseBody
     @ApiOperation(value = "获取油站已发放的优惠券信息", httpMethod = "GET", notes = "获取油站已发放的优惠券信息")
     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){
+                                           @ApiParam(value = "发放方式ID", required = true) @RequestParam String couponIssueId){
         Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
         ResultData resultData = null;
         try {
-            Coupon coupon = new Coupon();
-            coupon.setStationId(stationId);
-            coupon.setCouponIssueId(couponIssueId);
-            coupon.setUnionId(unionId);
-            //领取油站所分发的优惠券
-            List<Coupon> coupons = couponService.selectStaGrantCouponList(coupon);
-            resultData = ResultData.success(coupons);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){
+                Coupon coupon = new Coupon();
+                coupon.setStationId(stationId);
+                coupon.setCouponIssueId(couponIssueId);
+                //coupon.setUnionId(unionId);
+                //领取油站所分发的优惠券
+                List<Coupon> coupons = couponService.selectStaGrantCouponList(coupon);
+                resultData = ResultData.success(coupons);
+            }else {
+                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
+            }
         }catch (Exception e){
+            e.printStackTrace();
             logger.error("获取油站已发放的优惠券错误信息:" + e.getMessage());
             resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
         }
@@ -73,6 +84,7 @@ 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();
@@ -83,6 +95,7 @@ public class CouponController {
             Coupon couponInfo = couponService.selectCouponInfo(coupon);
             resultData = ResultData.success(couponInfo);
         }catch (Exception e){
+            e.printStackTrace();
             logger.error("获取优惠券错误信息:" + e.getMessage());
             resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
         }
@@ -91,18 +104,27 @@ 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){
         Gson gson =new Gson();
         ResultData resultData = null;
         try {
-            UserCoupon userCoupon = new UserCoupon();
-            userCoupon.setStationId(stationId);
-            userCoupon.setUnionId(unionId);
-            List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
-            resultData = ResultData.success(userCoupons);
+            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);
+                userCoupon.setUnionId(unionId);
+                List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
+                resultData = ResultData.success(userCoupons);
+            }else {
+                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
+            }
         }catch (Exception e){
+            e.printStackTrace();
             logger.error("获取客户所拥有的优惠券错误信息:" + e.getMessage());
             resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
         }
@@ -110,92 +132,126 @@ public class CouponController {
     }
 
     //用户领取优惠券
-    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.GET)
+    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST)
+    @ResponseBody
     @Transactional
-    @ApiOperation(value = "用户领取优惠券", httpMethod = "GET", notes = "用户领取优惠券")
+    @ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券")
     public String addUserCoupon(@ApiParam(value = "用户unionId", required = true) @RequestParam String unionId,
-                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam List<Integer> ids,
-                                @ApiParam(value = "领取方式ID", required = true) @RequestParam Integer couponIssueId,
+                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam String couponIds,
+                                @ApiParam(value = "领取方式ID", required = true) @RequestParam String couponIssueId,
                                 @ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId){
         Gson gson = new Gson();
         ResultData resultData = null;
         try{
-            Coupon couponParam = new Coupon();                   //查询优惠券参数
-            UserCoupon userCouponParam = new UserCoupon();       //用户优惠券新增参数
-            List<Map<String, Object>> successCouponList= new ArrayList<>();        //领取成功的优惠券
-            List<Map<String, Object>> failCouponList= new ArrayList<>();          //领取失败的优惠券
-            Map<String, Object> failMap = new HashMap<>();                        //领取失败的优惠券失败原因
-            Map<String, Object> successMap = new HashMap<>();                     //领取成功的优惠券信息
-            //获取领取方式信息
-            CouponIssue couponIssue = new CouponIssue();
-            couponIssue.setStationId(stationId);
-            couponIssue.setCouponIssueId(couponIssueId);
-            List<CouponIssue> couponIssueList = couponService.selectCouponIssueList(couponIssue);
-            if(couponIssueList !=null && couponIssueList.size() ==1){
-                int cs =0;                                           //用户优惠券领取成功张数 couponSuccess
-                //领取成功的张数与该领取方式在当前页最多领取的张数
-                if(cs <= couponIssueList.get(0).getGiveLimit()){
+            logger.info("用户领取优惠券所需参数: unionId: "+ unionId+ "; 油站ID:" +stationId + "; 优惠券IDS:" + couponIds + "; 领取方式ID: " + couponIssueId);
+            if(StringUtils.isNotBlank(couponIds)){
+                String str[] = couponIds.split(",");
+                List<String> ids = Arrays.asList(str);
+                Coupon couponParam = new Coupon();                   //查询优惠券参数
+                UserCoupon userCouponParam = new UserCoupon();       //用户优惠券新增参数
+
+                //返回前端参数
+                List<String> successCouponList= new ArrayList<>();          //领取成功的优惠券
+                List<String> couponNumNEList= new ArrayList<>();            //优惠券数量不足
+                List<String> couponHoldNumMaxList= new ArrayList<>();       //用户持有优惠券数量达到最大值
+                List<String> notClaimedCouponList= new ArrayList<>();       //用户未领取的优惠券
+                List<String> couponReceiveNumList= new ArrayList<>();       //用户累计的优惠券
+
+                //获取领取方式信息
+                CouponIssue couponIssue = new CouponIssue();
+                couponIssue.setStationId(stationId);
+                couponIssue.setCouponIssueId(couponIssueId);
+                List<CouponIssue> couponIssueList = couponService.selectCouponIssueList(couponIssue);
+                if(couponIssueList !=null && couponIssueList.size() ==1){
+                    int couponSuccessNum =0;                                           //用户优惠券领取成功张数 couponSuccess
                     for(int i=0; i<ids.size(); i++){
-                        Integer couponId = ids.get(i);
+                        Integer couponId = Integer.valueOf(ids.get(i));
                         couponParam.setId(couponId);
-                        Coupon coupon = couponService.selectCouponInfo(couponParam);
-                        //该优惠券是否存在
-                        if(coupon !=null){
-                            //该优惠券是否已被领完
-                            if(coupon.getCouponNum() !=null && coupon.getCouponNum() >0){
-                                userCouponParam.setCouponIsUsed("0");           //是否使用:0、未使用;1、已使用;
-                                userCouponParam.setCouponNo("");                //优惠券编码
-                                userCouponParam.setUnionId(unionId);            //用户unionId
-                                userCouponParam.setCouponId(coupon.getId());    //优惠券ID
-                                userCouponParam.setStationId(stationId);        //油站ID
-                                userCouponParam.setCouponIsEffective("1");      //优惠券是否有效
-                                userCouponParam.setGetCouponTime(new Date());   //优惠券领取时间
-                                userCouponParam.setGetCouponOrigin("1");        //优惠券来源
-                                String effectiveTimeType = coupon.getEffectiveTimeType();
-                                //'有效时间类型: 1,固定时间;2,领取后x天内有效'
-                                switch (effectiveTimeType){
-                                    case "1":
-                                        userCouponParam.setCouponEffectiveTime(coupon.getEffectiveTimeEnd());  //优惠券有效期截止时间
-                                        break;
-                                    case "2":
-                                        Calendar calendar = Calendar.getInstance();
-                                        calendar.setTime(userCouponParam.getGetCouponTime());
-                                        calendar.add(Calendar.DATE, coupon.getEffectiveDayNum());     //领取后多少天有效
-                                        userCouponParam.setCouponEffectiveTime(calendar.getTime());   //优惠券有效期截止时间
-                                        break;
-                                }
-                                //获取该用户所持有此优惠券的张数
-                                int userCouponCount = couponService.selectUserCouponCount(userCouponParam);
-                                if(userCouponCount > coupon.getCouponHoldNum()){
-                                    failMap.put("领取失败,该用户所持有此优惠券已达到最大数量", coupon.getId());
-                                    failCouponList.add(failMap);
-                                }else {
-                                    int auc = couponService.addUserCoupon(userCouponParam);
-                                    if(auc ==1){
-                                        successMap.put("领取成功", coupon.getId());
-                                        successCouponList.add(successMap);
-                                        //领取成功后次数加1
-                                        cs++;
+                        //领取成功的张数与该领取方式在当前页最多领取的张数
+                        if(couponSuccessNum <= couponIssueList.get(0).getGiveLimit()) {
+                            Coupon coupon = couponService.selectCouponInfo(couponParam);
+                            //该优惠券是否存在
+                            if(coupon != null) {
+                                //该优惠券是否已被领完
+                                if(coupon.getCouponNum() != null && coupon.getCouponNum() > 0) {
+                                    UserCoupon uc = new UserCoupon();
+                                    uc.setIssueId(couponIssueId);
+                                    uc.setStationId(stationId);
+                                    uc.setUnionId(unionId);
+                                    uc.setCouponId(coupon.getId());
+                                    //获取该用户优惠券累计的张数
+                                    int userCouponCountSum = couponService.selectUserCouponCount(uc);
+                                    uc.setCouponIsUsed("0");
+                                    //获取该用户所持有此优惠券的张数,即未使用的优惠券
+                                    int userCouponCountNoUsed = couponService.selectUserCouponCount(uc);
+                                    //获取该用户
+                                    if(userCouponCountNoUsed <= coupon.getCouponHoldNum()){
+                                        if(userCouponCountSum <= coupon.getCouponReceiveNum()){
+                                            userCouponParam.setCouponIsUsed("0");           //是否使用:0、未使用;1、已使用;
+                                            long currentTimeMillis = System.currentTimeMillis();
+                                            String s = stationId + Long.toString(currentTimeMillis) + Math.round((Math.random() + 1) * 1000);
+                                            userCouponParam.setCouponNo(s);                //优惠券编码
+                                            userCouponParam.setUnionId(unionId);            //用户unionId
+                                            userCouponParam.setIssueId(couponIssueId);      //领取方式ID
+                                            userCouponParam.setCouponId(coupon.getId());    //优惠券ID
+                                            userCouponParam.setStationId(stationId);        //油站ID
+                                            userCouponParam.setCouponIsEffective("1");      //优惠券是否有效
+                                            userCouponParam.setGetCouponTime(new Date());   //优惠券领取时间
+                                            String effectiveTimeType = coupon.getEffectiveTimeType();
+                                            //'有效时间类型: 1,固定时间;2,领取后x天内有效'
+                                            switch (effectiveTimeType) {
+                                                case "1":
+                                                    userCouponParam.setCouponEffectiveTime(coupon.getEffectiveTimeEnd());  //优惠券有效期截止时间
+                                                    break;
+                                                case "2":
+                                                    Calendar calendar = Calendar.getInstance();
+                                                    calendar.setTime(userCouponParam.getGetCouponTime());
+                                                    calendar.add(Calendar.DATE, coupon.getEffectiveDayNum());     //领取后多少天有效
+                                                    userCouponParam.setCouponEffectiveTime(calendar.getTime());   //优惠券有效期截止时间
+                                                    break;
+                                            }
+                                            if(couponService.addUserCoupon(userCouponParam) == 1) {
+                                                //领取成功
+                                                successCouponList.add(couponId.toString());
+                                                //领取成功后次数 +1
+                                                couponSuccessNum++;
+                                            }
+                                        }else {
+                                            //用户累计领取已达到最大值
+                                            couponReceiveNumList.add(couponId.toString());
+                                        }
+                                    }else {
+                                        //用户持有数量超出
+                                        couponHoldNumMaxList.add(couponId.toString());
                                     }
+                                }else {
+                                    //优惠券数量不足
+                                    couponNumNEList.add(couponId.toString());
                                 }
-                            }else {
-                                failMap.put("领取失败,该优惠券已被领完", coupon.getId());
-                                failCouponList.add(failMap);
                             }
+                        }else {
+                            //未领取的优惠券
+                            notClaimedCouponList.add(couponId.toString());
                         }
                     }
+                    //领取成功
+                    Map<String, Object> resultMap = new HashMap<>();
+                    resultMap.put("successCouponList", successCouponList);
+                    resultMap.put("couponNumNEList", couponNumNEList);
+                    resultMap.put("couponHoldNumMaxList", couponHoldNumMaxList);
+                    resultMap.put("notClaimedCouponList", notClaimedCouponList);
+                    resultMap.put("couponReceiveNumList", couponReceiveNumList);
+                    logger.info("用户领取到的优惠券:" + resultMap.toString());
+                    resultData = ResultData.success(resultMap);
+                }else {
+                    resultData = ResultData.error(CodeMsg.YEWU_FAIL,"该领取方式不存在");
                 }
-                //领取成功
-                Map<String, Object> resultMap = new HashMap<>();
-                resultMap.put("successCouponList", successCouponList);
-                resultMap.put("failCouponList", failCouponList);
-                logger.info("用户领取到的优惠券:" + resultMap.toString());
-                resultData = ResultData.success(CodeMsg.SUCCESS);
             }else {
-                resultData = ResultData.error(CodeMsg.YEWU_FAIL,"该领取方式不存在");
+                resultData = ResultData.success(CodeMsg.SUCCESS);
             }
         }catch (Exception e){
-            logger.error("用户领取优惠券错误信息:" + e.getMessage());
+            e.printStackTrace();
+            //logger.error("用户领取优惠券错误信息:" + e.getMessage());
             resultData = ResultData.error(CodeMsg.INSERT_FAIL);
         }
         return gson.toJson(resultData);

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

@@ -1443,6 +1443,7 @@ public class PayOrderController {
         Gson gson =new Gson();
         ResultData resultData =null;
         PayOrder payOrder = payOrderService.selectOrderInfoByOrdNo(ordNo);
+        Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
         if(payOrder !=null){
             Coupon coupon = new Coupon();
             coupon.setId(couponId);
@@ -1451,27 +1452,48 @@ public class PayOrderController {
                 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());  //应收金额
+                    BigDecimal amt = new BigDecimal(infoMap.get("amt").toString());                      //实收金额
+                    BigDecimal dzkAmt = new BigDecimal(infoMap.get("dzkAmt").toString());                //电子卡金额
+                    BigDecimal oilPrice = new BigDecimal(infoMap.get("oilPirce").toString());            //油品价格
+
+                    BigDecimal couponAmt = coupon.getCouponAmt();                                       //优惠券金额:金额 比例值
+
                     String couponType = coupon.getCouponType();     //优惠劵类型 1现金劵,2折扣券,3兑换券
                     switch (couponType){
                         case "1":
                             //现金券
-                            p.setAmt(new BigDecimal(payOrder.getReceivableAmt().toString()).subtract(coupon.getCouponAmt()).doubleValue());
+                            //与营销方案,电子卡互斥
+                            BigDecimal subtract = receivableAmt.subtract(couponAmt);
+                            subtract =subtract.signum() == -1 ? new BigDecimal("0.01"): subtract;
+                            p.setAmt(subtract.doubleValue());
+                            p.setDzkAmt(subtract.doubleValue());
+                            //是否与电子卡叠加
+                            if(isCardFlag.equals("1")){
+                                BigDecimal dzkAmtSub = dzkAmt.subtract(couponAmt);
+                                p.setDzkAmt(dzkAmtSub.doubleValue());
+                            }
                             //是否与营销方案叠加
-                            if(isMarketFlag.equals("1"))
-                                p.setAmt(new BigDecimal(new BigInteger(payOrder.getAmt().toString())).subtract(coupon.getCouponAmt()).doubleValue());
-
+                            if(isMarketFlag.equals("1")){
+                                BigDecimal marketSub = amt.subtract(couponAmt);
+                                p.setAmt(marketSub.doubleValue());
+                            }
                             break;
                         case "2":
                             //折扣券
-                            if(isMarketFlag.equals("1"))
+                            if(isMarketFlag.equals("1")){
 
+                            }
                             break;
                     }
 

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

@@ -51,7 +51,7 @@ public class Coupon {
 
     //查询参数
     private String issueType;               //领取方式
-    private Integer couponIssueId;          //领取方式ID
+    private String couponIssueId;          //领取方式ID
     private String unionId;                 //用户unionId
 
 }

+ 12 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponCount.java

@@ -0,0 +1,12 @@
+package com.platform.yijia.pojo;
+
+import lombok.Data;
+
+/**
+ *  用户优惠券数量
+ */
+@Data
+public class CouponCount {
+    private String couponIsUsed;    //使用类型 1已使用; 2 未使用;
+    private Integer countSum;       //数量
+}

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

@@ -11,7 +11,7 @@ import java.util.List;
  */
 @Data
 public class CouponIssue {
-    private Integer couponIssueId;            //发放表主键id
+    private String couponIssueId;            //发放表主键id
     private String issueName;                 //发放名
     private String issueType;                 //发放类型 (1主动发放,2消费发放,3扫码发放,4展示发放)
     private BigDecimal discountThresholdAmt;  //主动发放时,优惠券发放门槛

+ 9 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/StationInfo.java

@@ -142,12 +142,21 @@ public class StationInfo {
     private String integralFlagGroup;       //集团是否开启积分功能
     private String cardRuleFlagGroup;       //集团是否共享电子卡充值规则
     private String cardEnabledFlagGroup;    //集团是否开启电子卡
+    private String couponEnabledFlag;       //是否开启优惠劵 0否 1 是
 
     private String isLngFlag;               //该油站是否为LNG第三方平台商:0,否;1,是;
     private String isLngFlagGroup;          //该集团是否为LNG第三方平台商:0,否;1,是;
     private Double balance;                 //余额
     private String city;                    //油站所在市
 
+    public String getCouponEnabledFlag() {
+        return couponEnabledFlag;
+    }
+
+    public void setCouponEnabledFlag(String couponEnabledFlag) {
+        this.couponEnabledFlag = couponEnabledFlag;
+    }
+
     public String getCity() {
         return city;
     }

+ 1 - 3
YijiaRestful/src/main/java/com/platform/yijia/pojo/UserCoupon.java

@@ -13,13 +13,11 @@ public class UserCoupon {
 
     //用户优惠券属性
     private Integer couponId;               //优惠券ID;
+    private String issueId;                 //领取方式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 Date couponEffectiveTime;       //优惠券有效期截止时间
 

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

@@ -37,6 +37,7 @@ public class CodeMsg {
     public static CodeMsg NO_COUPON = new CodeMsg(-3,"此优惠券不存在");
     public static CodeMsg COUPON_NO_GRANT = new CodeMsg(-4,"此优惠券暂未发放");
     public static CodeMsg NO_PERSONNAL = new CodeMsg(-4,"该油站或油枪未添加或绑定加油员");
+    public static CodeMsg NO_ENABLE_COUPON = new CodeMsg(-5,"该油站暂未开启积分功能");
 
 
 

+ 22 - 30
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.platform.yijia.dao.CouponMapper">
     <!--优惠券-->
   <resultMap id="BaseResultMap"                type="com.platform.yijia.pojo.Coupon">
-    <id     column="id"                       jdbcType="INTEGER"   property="couponId" />
+    <id     column="id"                       jdbcType="INTEGER"   property="id" />
     <result column="station_id"               jdbcType="INTEGER"   property="stationId" />
     <result column="coupon_name"              jdbcType="VARCHAR"   property="couponName" />
     <result column="coupon_type"              jdbcType="VARCHAR"   property="couponType" />
@@ -39,7 +39,7 @@
       <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="coupon_issue_id"           jdbcType="VARCHAR"   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" />
@@ -48,7 +48,7 @@
 
     <!--发放方式,优惠劵信息-->
    <resultMap id="CouponIssueBaseResultMap"       type="com.platform.yijia.pojo.CouponIssue">
-       <result column="coupon_issue_id"           jdbcType="INTEGER"   property="couponIssueId" />
+       <result column="coupon_issue_id"           jdbcType="VARCHAR"   property="couponIssueId" />
        <result column="issue_type"                jdbcType="VARCHAR"   property="issueType" />
        <result column="issue_name"                jdbcType="VARCHAR"   property="issueName" />
        <result column="discount_threshold_amt"    jdbcType="DECIMAL"   property="discountThresholdAmt" />
@@ -71,15 +71,12 @@
 
     <!--用户优惠券-->
   <resultMap id="UserCouponsBaseResultMap"    type="com.platform.yijia.pojo.UserCoupon">
-    <result column="coupon_id"                jdbcType="INTEGER"   property="couponId" />
+    <result column="coupon_id"                jdbcType="VARCHAR"   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="coupon_effective_time"    jdbcType="TIMESTAMP" property="couponEffectiveTime" />
 
     <result column="station_id"               jdbcType="INTEGER"   property="stationId" />
@@ -102,6 +99,11 @@
   </resultMap>
 
 
+    <resultMap id="CouponCountResultMap"    type="com.platform.yijia.pojo.CouponCount">
+        <result column="coupon_is_used"           jdbcType="VARCHAR"   property="couponIsUsed" />
+        <result column="countSum"                 jdbcType="INTEGER"   property="countSum" />
+    </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,
@@ -207,20 +209,22 @@
   </select>
 
     <!--用户已领取的该优惠券数量-->
-    <select id="selectUserCouponCount" parameterType="com.platform.yijia.pojo.UserCoupon" resultMap="int">
+    <select id="selectUserCouponCount" parameterType="com.platform.yijia.pojo.UserCoupon" resultType="int">
         SELECT
-            COUNT (*)
+            COUNT(*)
         FROM
             coupon_user
         <where>
-            coupon_is_used = "0"
-            AND coupon_is_effective ="1"
+             coupon_is_effective ="1"
             <if test="unionId !=null and unionId !=''">
                 AND coupon_id = #{couponId}
             </if>
             <if test="unionId !=null and unionId !=''">
                 AND union_id = #{unionId}
             </if>
+            <if test="couponIsUsed !=null and couponIsUsed !=''">
+                AND coupon_is_used = #{couponIsUsed}
+            </if>
         </where>
     </select>
 
@@ -261,7 +265,7 @@
   </select>
 
     <!--用户获取优惠券-->
-    <insert id="addUserCoupon" parameterType="com.platform.yijia.pojo.UserCoupon" >
+    <insert id="addUserCoupon"  parameterType="com.platform.yijia.pojo.UserCoupon" >
         INSERT INTO coupon_user
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="unionId !=null">
@@ -270,27 +274,21 @@
             <if test="couponId !=null">
                 coupon_id,
             </if>
+            <if test="issueId !=null">
+                issue_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>
@@ -305,27 +303,21 @@
             <if test="couponId !=null">
                 #{couponId},
             </if>
+            <if test="issueId !=null">
+                #{issueId},
+            </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>

+ 3 - 0
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -31,6 +31,8 @@
     <result column="integral_print_flag"  jdbcType="VARCHAR" property="integralPrintFlag" />
     <result column="integral_rule_flag"   jdbcType="VARCHAR" property="integralRuleFlag" />
 
+    <result column="coupon_enabled_flag"   jdbcType="VARCHAR" property="couponEnabledFlag" />
+
     <result column="card_rule_flag_group"       jdbcType="VARCHAR" property="cardRuleFlagGroup" />
     <result column="card_enabled_flag_group"    jdbcType="VARCHAR" property="cardEnabledFlagGroup" />
     <result column="integral_flag_group"        jdbcType="VARCHAR" property="integralFlagGroup" />
@@ -154,6 +156,7 @@
         T1.label_flag,
         T1.is_lng_flag,
         T1.balance,
+        T1.coupon_enabled_flag,
         T2.card_enabled_flag    AS card_enabled_flag_group,
         T2.card_rule_flag       AS card_rule_flag_group,
         T2.integral_flag        AS integral_flag_group,