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

+ 137 - 103
YijiaRestful/src/main/java/com/platform/yijia/controller/CouponController.java

@@ -3,15 +3,13 @@ package com.platform.yijia.controller;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.platform.yijia.config.YiJiaRequest;
-import com.platform.yijia.pojo.Coupon;
-import com.platform.yijia.pojo.CouponIssue;
-import com.platform.yijia.pojo.StationInfo;
-import com.platform.yijia.pojo.UserCoupon;
+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.ResultData;
 import com.sun.corba.se.spi.ior.ObjectKey;
+import com.sun.org.apache.bcel.internal.classfile.Code;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -55,6 +53,7 @@ public class CouponController {
     @ResponseBody
     @ApiOperation(value = "获取油站已发放的优惠券信息", httpMethod = "GET", notes = "获取油站已发放的优惠券信息")
     public String selectStaGrantCouponList(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId,
+                                           @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;
@@ -63,25 +62,46 @@ public class CouponController {
             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);
+                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 {
+                    Coupon coupon = new Coupon();
+                    coupon.setStationId(stationId);
+                    coupon.setCouponIssueId(couponIssueId);
+                    //领取油站所分发的优惠券
+                    List<Coupon> couponsList = couponService.selectStaGrantCouponList(coupon);
+//                    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);
+//                    }
+                    resultData = ResultData.success(couponsList);
+                }
             }else {
                 resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
             }
         }catch (Exception e){
-            e.printStackTrace();
+            //e.printStackTrace();
             logger.error("获取油站已发放的优惠券错误信息:" + e.getMessage());
             resultData = ResultData.error(CodeMsg.SEARCH_FAIL);
         }
         return  gson.toJson(resultData);
     }
 
-
     //获取优惠券信息
     @RequestMapping(value = "/selectCouponInfo", method = RequestMethod.GET)
     @ResponseBody
@@ -115,8 +135,12 @@ public class CouponController {
             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());
+                }
                 userCoupon.setUnionId(unionId);
                 List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon);
                 resultData = ResultData.success(userCoupons);
@@ -144,110 +168,120 @@ public class CouponController {
         ResultData resultData = null;
         try{
             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();       //用户优惠券新增参数
+            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(",");
+                    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<>();       //用户累计的优惠券
+                    //返回前端参数
+                    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 = Integer.valueOf(ids.get(i));
-                        couponParam.setId(couponId);
-                        //领取成功的张数与该领取方式在当前页最多领取的张数
-                        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++;
+                    //获取领取方式信息
+                    CouponIssue couponIssue = new CouponIssue();
+                    couponIssue.setStationId(stationId);
+                    if(stationInfos.getCouponFlag().equals("1")){
+                        couponIssue.setStationId(stationInfos.getGroupId());
+                    }
+                    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 = Integer.valueOf(ids.get(i));
+                            couponParam.setId(couponId);
+                            //领取成功的张数与该领取方式在当前页最多领取的张数
+                            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 {
-                                            //用户累计领取已达到最大值
-                                            couponReceiveNumList.add(couponId.toString());
+                                            //用户持有数量超出
+                                            couponHoldNumMaxList.add(couponId.toString());
                                         }
                                     }else {
-                                        //用户持有数量超出
-                                        couponHoldNumMaxList.add(couponId.toString());
+                                        //优惠券数量不足
+                                        couponNumNEList.add(couponId.toString());
                                     }
-                                }else {
-                                    //优惠券数量不足
-                                    couponNumNEList.add(couponId.toString());
                                 }
+                            }else {
+                                //未领取的优惠券
+                                notClaimedCouponList.add(couponId.toString());
                             }
-                        }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.NO_COUPON_ISSUE);
                     }
-                    //领取成功
-                    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,"该领取方式不存在");
+                    resultData = ResultData.success(CodeMsg.SUCCESS);
                 }
             }else {
-                resultData = ResultData.success(CodeMsg.SUCCESS);
+                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON);
             }
         }catch (Exception e){
             e.printStackTrace();

+ 37 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -236,6 +236,43 @@ public class PayController {
                         //reqData.put("ledgerAccountFlag", "00"); //是否做分账 分账交易使 用;00:做; 01:不做;不传默认为不做分账
                         //reqData.put("ledgerAccountEffectTime", "00"); //分账有效时间 单位为天;是 否做分账选择 00 时该字段必传
                         // reqData.put("ruleId", "00"); //同 步 分 账 规 则 id
+
+
+                        //是否开启分账
+                        if(stationAppIdAndAppSecret.containsKey("mnoStatus") && stationAppIdAndAppSecret.get("mnoStatus").equals("1")){
+                            if(stationAppIdAndAppSecret.containsKey("mnoArray") && stationAppIdAndAppSecret.containsKey("mnoProportion")){
+                                logger.info("该商户号使用分账分账");
+                                //分账商户号
+                                //商户号
+                                List<Map<String, Object>> fusruleId = new ArrayList<>();
+                                String mnoArray = stationAppIdAndAppSecret.get("mnoArray");
+                                String[] mnoArraySplit = mnoArray.split(",");
+                                List<String> mnoArrayList = Arrays.asList(mnoArraySplit);
+
+                                //比例
+                                String mnoProportion = stationAppIdAndAppSecret.get("mnoProportion");
+                                String[] mnoProportionSplit = mnoProportion.split(":");
+                                List<String> mnoProportionList = Arrays.asList(mnoProportionSplit);
+                                for (int i=0; i<mnoArrayList.size(); i++){
+                                    for (int y=0; y<mnoProportionList.size()-1; y++){
+                                        Map<String, Object> map = new HashMap<>();
+                                        String mno = mnoArrayList.get(i);
+                                        String mnoPro = mnoProportionList.get(y);
+                                        //本单金额
+                                        String amt = payOrder.getAmt().toString();
+                                        BigDecimal allotValue = new BigDecimal(amt).multiply(new BigDecimal(mnoPro)).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_HALF_UP);
+                                        Map<String, Object> m = new HashMap<>();
+                                        m.put("mno", mno);
+                                        m.put("allotValue", allotValue);
+
+                                        //map.put(allotValue.toString(), mno);
+                                        fusruleId.add(m);
+                                    }
+                                }
+                                logger.info("fusruleId 分账规则:" + fusruleId.toString());
+                                reqData.put("fusruleId", fusruleId); //同步分账规则
+                            }
+                        }
                         // reqData.put("fusruleId", "00"); //同步分账规则
                         //reqData.put("ylTrmNo", ""); //银联终端号
                         //reqData.put("terminalId", ""); //TQ机具编号

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

@@ -3,6 +3,7 @@ package com.platform.yijia.dao;
 
 import com.platform.yijia.pojo.Coupon;
 import com.platform.yijia.pojo.CouponIssue;
+import com.platform.yijia.pojo.CouponUserGiveCount;
 import com.platform.yijia.pojo.UserCoupon;
 
 import java.util.List;
@@ -26,4 +27,13 @@ public interface CouponMapper {
 
     //用户已领取的该优惠券数量
     int selectUserCouponCount(UserCoupon userCoupon);
+
+    //用户进入领取页面的次数
+    CouponUserGiveCount selectCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
+
+    //更新用户进入领取页面次数
+    void updateCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
+
+    //更新用户进入领取页面次数
+    void addCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
 }

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

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

+ 20 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/CouponUserGiveCount.java

@@ -0,0 +1,20 @@
+package com.platform.yijia.pojo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *  用户进入领取界面的次数记录表
+ */
+@Data
+public class CouponUserGiveCount {
+    private Integer id;               //数量
+    private String unionId;           //用户unionId
+    private Integer stationId;         //油站ID
+    private String couponIssueId;     //领取方式
+    private Integer issueGiveCount;    //用户能进入领取界面的次数
+    private Date creteTime;          //创建时间
+    private Date updateTime;         //更新时间
+    private Integer giveCount;       // 领取方式表中字段:用户能进入领取界面的次数
+}

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

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

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

@@ -3,6 +3,7 @@ package com.platform.yijia.service;
 
 import com.platform.yijia.pojo.Coupon;
 import com.platform.yijia.pojo.CouponIssue;
+import com.platform.yijia.pojo.CouponUserGiveCount;
 import com.platform.yijia.pojo.UserCoupon;
 
 import java.util.List;
@@ -26,4 +27,13 @@ public interface CouponService {
 
     //用户已领取的该优惠券数量
     int selectUserCouponCount(UserCoupon userCoupon);
+
+    //用户进入领取页面的次数
+    CouponUserGiveCount selectCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
+
+    //更新用户进入领取页面次数
+    void updateCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
+
+    //更新用户进入领取页面次数
+    void addCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount);
 }

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

@@ -3,6 +3,7 @@ package com.platform.yijia.service.impl;
 import com.platform.yijia.dao.CouponMapper;
 import com.platform.yijia.pojo.Coupon;
 import com.platform.yijia.pojo.CouponIssue;
+import com.platform.yijia.pojo.CouponUserGiveCount;
 import com.platform.yijia.pojo.UserCoupon;
 import com.platform.yijia.service.CouponService;
 import org.springframework.stereotype.Service;
@@ -15,6 +16,24 @@ public class CouponServiceImpl implements CouponService {
     @Resource
     private CouponMapper couponMapper;
 
+    //更新用户进入领取页面次数
+    @Override
+    public void updateCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount) {
+        couponMapper.updateCouponUserGiveCount(couponUserGiveCount);
+    }
+
+    //新增用户进入领取页面次数
+    @Override
+    public void addCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount) {
+        couponMapper.addCouponUserGiveCount(couponUserGiveCount);
+    }
+
+    //用户进入领取页面的次数
+    @Override
+    public CouponUserGiveCount selectCouponUserGiveCount(CouponUserGiveCount couponUserGiveCount) {
+        return couponMapper.selectCouponUserGiveCount(couponUserGiveCount);
+    }
+
     //查询领取方式
     @Override
     public List<CouponIssue> selectCouponIssueList(CouponIssue couponIssue){

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

@@ -37,7 +37,10 @@ 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_COUPON_ISSUE = new CodeMsg(-4,"该领取方式不存在");
     public static CodeMsg NO_ENABLE_COUPON = new CodeMsg(-5,"该油站暂未开启积分功能");
+    public static CodeMsg COUPON_GIVE_COUNT_MAX = new CodeMsg(-6,"该用户进入该领取优惠券方式页面已达到最大次数值");
+
 
 
 

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

@@ -19,7 +19,7 @@ yijia:
     domainName: mp.huijy.net
     # 路径前缀 test:测试; api:生产一线;prod:生产二线; demo:演示;
     path:
-        global-prefix: demo
+        global-prefix: test
 
 
 # POS机登录解密密文密码

+ 115 - 4
YijiaRestful/src/main/resources/mapper/CouponMapper.xml

@@ -102,9 +102,17 @@
   </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 id="CouponUserGiveCountBaseResultMap"    type="com.platform.yijia.pojo.CouponUserGiveCount">
+        <result column="id"                     jdbcType="INTEGER"      property="id" />
+        <result column="union_id"               jdbcType="VARCHAR"      property="unionId" />
+        <result column="station_id"             jdbcType="INTEGER"      property="stationId" />
+        <result column="coupon_issue_id"        jdbcType="VARCHAR"      property="couponIssueId" />
+        <result column="issue_give_count"       jdbcType="INTEGER"      property="issueGiveCount" />
+        <result column="crete_time"             jdbcType="TIMESTAMP"    property="creteTime" />
+        <result column="update_time"            jdbcType="TIMESTAMP"    property="updateTime" />
+        <result column="give_count"             jdbcType="INTEGER"      property="giveCount" />
+
     </resultMap>
 
   <sql id="Base_Column_List">
@@ -145,7 +153,6 @@
 
     </select>
 
-
     <!--获取油站所分发的加油券-->
     <select id="selectStaGrantCouponList" parameterType="com.platform.yijia.pojo.Coupon" resultMap="BaseResultMap">
         SELECT
@@ -197,6 +204,110 @@
         </where>
     </select>
 
+    <!--获取用户进入领取页面的次数-->
+    <select id="selectCouponUserGiveCount" parameterType="com.platform.yijia.pojo.CouponUserGiveCount" resultMap="CouponUserGiveCountBaseResultMap">
+        SELECT
+            T1.id,
+            T1.union_id,
+            T1.station_id,
+            T1.coupon_issue_id,
+            T1.issue_give_count,
+            T1.crete_time,
+            T1.update_time,
+            T2.give_count
+        FROM
+                coupon_user_give_count      AS T1
+        LEFT    JOIN coupon_issue           AS T2 ON  T1.coupon_issue_id = T2.id
+        <where>
+            <if test="unionId !=null and unionId !=''">
+                 T1.union_id = #{unionId}
+            </if>
+            <if test="stationId !=null">
+                AND T1.station_id = #{stationId}
+            </if>
+            <if test="couponIssueId !=null and couponIssueId !=''">
+                AND T1.coupon_issue_id = #{couponIssueId}
+            </if>
+            <if test="id !=null">
+                AND T1.id = #{id}
+            </if>
+        </where>
+    </select>
+
+    <!-- 更新订单-->
+    <update id="updateCouponUserGiveCount" parameterType="com.platform.yijia.pojo.CouponUserGiveCount">
+        UPDATE
+            coupon_user_give_count
+        <set>
+            <if test="issueGiveCount != null">
+                issue_give_count = #{issueGiveCount},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+        </set>
+        <where>
+            <if test="unionId !=null and unionId !=''">
+                union_id = #{unionId}
+            </if>
+            <if test="stationId !=null">
+                AND station_id = #{stationId}
+            </if>
+            <if test="couponIssueId !=null and couponIssueId !=''">
+                AND coupon_issue_id = #{couponIssueId}
+            </if>
+            <if test="id !=null">
+                AND id = #{id}
+            </if>
+        </where>
+    </update>
+
+    <!--新增用户进入领取页面的次数-->
+    <insert id="addCouponUserGiveCount"  parameterType="com.platform.yijia.pojo.CouponUserGiveCount" >
+        INSERT INTO coupon_user_give_count
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                union_id,
+            </if>
+            <if test="stationId !=null">
+                station_id,
+            </if>
+            <if test="couponIssueId !=null">
+                coupon_issue_id,
+            </if>
+            <if test="issueGiveCount !=null">
+                issue_give_count,
+            </if>
+            <if test="creteTime !=null">
+                crete_time,
+            </if>
+            <if test="updateTime !=null">
+                update_time,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="unionId !=null">
+                #{unionId},
+            </if>
+            <if test="stationId !=null">
+                #{stationId},
+            </if>
+            <if test="couponIssueId !=null">
+                #{couponIssueId},
+            </if>
+            <if test="issueGiveCount !=null">
+                #{issueGiveCount},
+            </if>
+            <if test="creteTime !=null">
+                #{creteTime},
+            </if>
+            <if test="updateTime !=null">
+                #{updateTime},
+            </if>
+        </trim>
+    </insert>
+
+
 
   <!--获取加油券信息-->
   <select id="selectCouponInfo" parameterType="com.platform.yijia.pojo.Coupon" resultMap="BaseResultMap">

+ 6 - 1
YijiaRestful/src/main/resources/mapper/StationInfoMapper.xml

@@ -31,6 +31,7 @@
     <result column="integral_print_flag"  jdbcType="VARCHAR" property="integralPrintFlag" />
     <result column="integral_rule_flag"   jdbcType="VARCHAR" property="integralRuleFlag" />
 
+    <result column="coupon_flag"           jdbcType="VARCHAR" property="couponFlag" />
     <result column="coupon_enabled_flag"   jdbcType="VARCHAR" property="couponEnabledFlag" />
 
     <result column="card_rule_flag_group"       jdbcType="VARCHAR" property="cardRuleFlagGroup" />
@@ -156,6 +157,7 @@
         T1.label_flag,
         T1.is_lng_flag,
         T1.balance,
+        T1.coupon_flag,
         T1.coupon_enabled_flag,
         T2.card_enabled_flag    AS card_enabled_flag_group,
         T2.card_rule_flag       AS card_rule_flag_group,
@@ -613,7 +615,10 @@
       ali_encrypt_key AS aliEncryptKey,
       merchant_no     AS merchantNo,
       terminal_id     AS terminalId,
-      yun_key         AS yunKey
+      yun_key         AS yunKey,
+      mno_array        AS mnoArray,
+      mno_proportion    AS mnoProportion,
+      mno_status        AS mnoStatus
 
     FROM
         sys_dept