jk-GitHub-coder 4 년 전
부모
커밋
ff3c5cedb5

+ 19 - 6
YijiaRestful/src/main/java/com/platform/yijia/controller/AppUserInfoController.java

@@ -501,6 +501,10 @@ public class AppUserInfoController {
                 customerElectronicCard.setMobilePhone(request.getMobilePhone());
             }
 
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(request.getStationId());
+            //获取油站功能信息
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             if(request.getUserType()!=null){
                 String userType = request.getUserType();
                 appUserInfo.setUserType(userType);
@@ -508,6 +512,9 @@ public class AppUserInfoController {
                     case "1":       //当为微信用户时
                         AppUserInfo wxInfo = new AppUserInfo();
                         wxInfo.setStationId(request.getStationId());
+                        if(stationInfos.getCardRuleFlag().equals("1")){
+                            wxInfo.setStationId(stationInfos.getGroupId());
+                        }
                         //判断当前登录是否存在手机号
                         if(StringUtils.isNotBlank(request.getMobilePhone())){
                             appUserInfo.setMinaOpenid(openId);
@@ -549,6 +556,9 @@ public class AppUserInfoController {
                     case "2":
                         AppUserInfo aLiInfo  =new AppUserInfo();
                         aLiInfo.setStationId(request.getStationId());
+                        if(stationInfos.getCardRuleFlag().equals("1")){
+                            aLiInfo.setStationId(stationInfos.getGroupId());
+                        }
                         if(StringUtils.isNotBlank(request.getMobilePhone())){
                             //如果手机号不为空,则说明是支付宝小程序登录
                             aLiInfo.setMobilePhone(request.getMobilePhone());
@@ -589,17 +599,13 @@ public class AppUserInfoController {
                         break;
                 }
             }
-            StationInfo stationInfo = new StationInfo();
-            stationInfo.setStationId(request.getStationId());
-            //获取油站功能信息
-            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             if(stationInfos !=null && stationInfos.getStationName() !=null){
                 customerPoints.setStationName(stationInfos.getStationName());
                 customerElectronicCard.setStationName(stationInfos.getStationName());
             }
             //是否开起积分功能
             if(stationInfos !=null && stationInfos.getIntegralFlag().equals("1")){
-                this.insertCustomerPointsInfo(customerPoints, request);
+                this.insertCustomerPointsInfo(customerPoints, request, stationInfos);
             }
             //是否开起电子卡功能
             if(stationInfos !=null && stationInfos.getCardEnabledFlag().equals("1")){
@@ -614,7 +620,7 @@ public class AppUserInfoController {
     }
 
     //客户积分表信息操作
-    public void insertCustomerPointsInfo(CustomerPoints customerPoints, AppUserInfoRequest request){
+    public void insertCustomerPointsInfo(CustomerPoints customerPoints, AppUserInfoRequest request, StationInfo stationInfos){
         CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfo(customerPoints);
         if(customerPointsInfo !=null){
             CustomerPoints c = new CustomerPoints();
@@ -622,8 +628,14 @@ public class AppUserInfoController {
             c.setStationId(request.getStationId());
             c.setMobilePhone(request.getMobilePhone());
             c.setStationId(request.getStationId());
+            if(stationInfos !=null && stationInfos.getIntegralRuleFlag().equals("1")){
+                c.setStationId(stationInfos.getGroupId());
+            }
             customerPointsService.updateCustomerPointsInfo(c);
         }else {
+            if(stationInfos !=null && stationInfos.getIntegralRuleFlag().equals("1")){
+                customerPoints.setStationId(stationInfos.getGroupId());
+            }
             customerPointsService.insertCustomerPointsInfo(customerPoints);
         }
     }
@@ -635,6 +647,7 @@ public class AppUserInfoController {
         if(stationInfos.getCardRuleFlag().equals("1")){
             //表示共享则使用集团ID为查询条件
             customerCardSetting.setStationId(stationInfos.getGroupId());
+            customerElectronicCard.setStationId(stationInfos.getGroupId());
         }
         List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
         if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){

+ 34 - 3
YijiaRestful/src/main/java/com/platform/yijia/controller/ElectronicMembershipCardController.java

@@ -109,6 +109,7 @@ public class ElectronicMembershipCardController {
                 customerCardSetting.setStationId(stationId);
                 if(stationInfos.getCardRuleFlag().equals("1")){ //card_rule_flag 是否共享积分规则
                     customerCardSetting.setStationId(stationInfos.getGroupId());
+                    customerElectronicCard.setStationId(stationInfos.getGroupId());
                 }
                 List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
                 if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){
@@ -145,7 +146,10 @@ public class ElectronicMembershipCardController {
             String cardOilsType = rechargeBalance.getCardOilsType();
             String unionId = rechargeBalance.getUnionId();
             String stationName = rechargeBalance.getStationName();
-            String stationCardEnabledFlag = electronicMembershipCardService.getStationCardEnabledFlag(stationId);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            //获取油站信息
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             logger.info("充值金额:"+amt);
             //logger.info("支付类型:"+payType);
             logger.info("充值卡类型:"+cardOilsType);
@@ -153,10 +157,14 @@ public class ElectronicMembershipCardController {
             logger.info("油站ID:"+stationId);
             logger.info("充值unionId:"+unionId);
             //是否启用电子卡功能
-            if(stationCardEnabledFlag.equals("1")){
+            if(stationInfos.getCardEnabledFlag() !=null && stationInfos.getCardEnabledFlag().equals("1")){
                 CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord();      //电子会员卡使用记录
                 CustomerCardSetting customerCardSetting = new CustomerCardSetting();        //电子卡优惠规则设置
                 customerCardSetting.setStationId(stationId);
+                if(stationInfos.getCardRuleFlag().equals("1")){
+                    //如果油站充值规则共享
+                    customerCardSetting.setStationId(stationInfos.getGroupId());
+                }
                 customerCardSetting.setCardOilsType(cardOilsType);
                 customerCardSetting.setOrderBy("DESC");
                 customerCardSetting.setDelFlag("0");
@@ -1130,7 +1138,15 @@ public class ElectronicMembershipCardController {
             }else if(usageType.equals("0")){
                 customerCardUseRecord.setUsageType("-"); // '1' 代表充值 '0' 代表消费
             }
-            customerCardUseRecord.setStationId(stationId);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            if(stationInfos.getCardRuleFlag() !=null && stationInfos.getCardRuleFlag().equals("1")){
+                //如果集团充值规则共享
+                customerCardUseRecord.setGroupId(stationInfos.getGroupId());
+            }else {
+                customerCardUseRecord.setStationId(stationId);
+            }
             customerCardUseRecord.setUnionId(unionId);
             List<CustomerCardUseRecord> cardUseRecordList = electronicMembershipCardService.getCardUseRecordList(customerCardUseRecord);
             resultData = ResultData.success(cardUseRecordList);
@@ -1150,6 +1166,13 @@ public class ElectronicMembershipCardController {
         if(stationId !=null){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(stationId);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(stationId);
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
+            if(stationInfos.getCardRuleFlag() !=null && stationInfos.getCardRuleFlag().equals("1")){
+                //如果集团充值规则共享
+                customerCardSetting.setStationId(stationInfos.getGroupId());
+            }
             if(StringUtils.isNotBlank(cardOilsType)){
                 customerCardSetting.setCardOilsType(cardOilsType);
             }
@@ -1167,6 +1190,10 @@ public class ElectronicMembershipCardController {
         int integral =0;
         IntegralRule integralRule = new IntegralRule();
         integralRule.setStationId(calculateIntegral.getStationId());
+        if(StringUtils.isNotBlank(calculateIntegral.getIntegralRuleFlag()) && calculateIntegral.getIntegralRuleFlag().equals("1")){
+            //如果共享则先根据集团ID查询集团规则
+            integralRule.setStationId(calculateIntegral.getGroupId());
+        }
         integralRule.setOilName(calculateIntegral.getOilName());
         //获取该油站的积分规则
         List<IntegralRule> integralRuleList = integralRuleService.getIntegralRule(integralRule);
@@ -1442,6 +1469,10 @@ public class ElectronicMembershipCardController {
         CustomerPoints customerPoints = new CustomerPoints();
         customerPoints.setRecentlyPoints(calculateIntegral.getIntegral());  //用户当前所获得的积分
         customerPoints.setStationId(calculateIntegral.getStationId());  //油站ID
+        if(StringUtils.isNotBlank(calculateIntegral.getIntegralRuleFlag()) && calculateIntegral.getIntegralRuleFlag().equals("1")){
+            //如果共享则先根据集团ID查询集团规则
+            customerPoints.setStationId(calculateIntegral.getGroupId());
+        }
         customerPoints.setMinaOpenId(calculateIntegral.getOpenId());    //用户小程序ID
         customerPoints.setBlogOpenId(calculateIntegral.getBlogOpenid());    //公众号ID
         customerPoints.setUnionId(calculateIntegral.getUnionId());      //用户unionId

+ 7 - 0
YijiaRestful/src/main/java/com/platform/yijia/controller/IntegralShoppingMallController.java

@@ -155,8 +155,14 @@ public class IntegralShoppingMallController {
             integralOrder.setExchangeNum(request.getExchangeNum());
         }
         if(request.getStationId() != null){
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(request.getStationId());
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             integralOrder.setStationId(request.getStationId());
             customerPoints.setStationId(request.getStationId());
+            if(stationInfos.getIntegralRuleFlag()!=null && stationInfos.getIntegralRuleFlag().equals("1")){ //如果积分规则共享
+                customerPoints.setStationId(stationInfos.getGroupId());
+            }
             customerPointsRecord.setStationId(request.getStationId());
         }
         if(request.getWaresId() !=null){
@@ -203,6 +209,7 @@ public class IntegralShoppingMallController {
             //更新用户积分
             String surplusPoints ="";   //剩余积分
             String orderSumIntegral ="";        //订单消费总积分
+
             CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfo(customerPoints);
             if(customerPointsInfo !=null){
                 IntegralWares integralWaresInfo = integralWaresService.getIntegralWaresInfo(integralWares);

+ 10 - 46
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -11,6 +11,7 @@ import com.platform.yijia.utils.*;
 import com.platform.yijia.utils.redis.RedisCacheUtil;
 import com.platform.yijia.utils.weixinapp.WeiXinUserUtil;
 import com.platform.yijia.utils.weixinapp.WxPushUtil;
+import lombok.SneakyThrows;
 import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -632,54 +633,14 @@ public class PayController {
     }
 
     //插入客户信息
-    public CustomerManage insertCustomerManage(Map infoMap){
+    public CustomerManage insertCustomerManage(Map infoMap) throws ParseException {
         CustomerManage customerManage = new CustomerManage();   //存放客户信息
         customerManage.setGroupId(Integer.valueOf(infoMap.get("groupId").toString()));
-        AppUserInfo appUserInfo = new AppUserInfo();    //存放查询用户信息
-        appUserInfo.setMobilePhone(infoMap.get("mobilePhone").toString());
-        appUserInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
-        //从客户信息表查询数据用于插入客户表 使用List原因:app_user_info存在小程序和公众号两种信息
-        List<AppUserInfo> appUserInfoList = payOrderService.getUserInfoByOpenId(appUserInfo);
-//        Date blogRegTime = null;    //微信注册时间
-//        Date AliRegTime = null;    //阿里注册时间
-        if(appUserInfoList != null && appUserInfoList.size() >0){
-            for(AppUserInfo u : appUserInfoList){
-                //向客户表插入小程序和公众号的openId 用户表ID 用户手机号 注册时间
-                if(u.getUnionId() !=null && u.getUnionId() !=""){
-                    customerManage.setUnionId(u.getUnionId());
-                }
-                switch (u.getUserType()){
-                    case "1":
-                        customerManage.setMinaUserId(u.getUserId());
-                        customerManage.setPhoneNumber(u.getMobilePhone());
-                        customerManage.setCustomerName(u.getBlogNickName());
-                        //blogRegTime =u.getRegisteDate();
-                        customerManage.setRegtime(u.getRegisteDate());
-                        break;
-                    case "2":
-                        //customerManage.setMinaUserId(u.getALiId());
-                        customerManage.setPhoneNumber(u.getMobilePhone());
-                        customerManage.setCustomerName(u.getBlogNickName());
-                        //AliRegTime = u.getRegisteDate();
-                        break;
-                }
-            }
-            //判断公众号和小程序时间取最早的时间
-//            if(blogRegTime !=null && AliRegTime != null){
-//                if(blogRegTime.compareTo(AliRegTime) >0){
-//                    customerManage.setRegtime(AliRegTime);
-//                }else if(blogRegTime.compareTo(AliRegTime) <0){
-//                    customerManage.setRegtime(blogRegTime);
-//                }else if(blogRegTime.compareTo(AliRegTime) ==0){
-//                    //相等时随便取一个
-//                    customerManage.setRegtime(AliRegTime);
-//                }
-//            }else if(blogRegTime == null){
-//                customerManage.setRegtime(AliRegTime);
-//            }else if(AliRegTime == null){
-//                customerManage.setRegtime(blogRegTime);
-//            }
-        }
+        customerManage.setUnionId(infoMap.get("unionId").toString());
+        customerManage.setMinaUserId(Integer.valueOf(infoMap.get("consumerId").toString()));
+        customerManage.setPhoneNumber(infoMap.get("mobilePhone").toString());
+        customerManage.setCustomerName(infoMap.get("consumer").toString());
+        customerManage.setRegtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(infoMap.get("registeDate").toString()));
         customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));    //油站ID
         customerManage.setOilName(infoMap.get("oilName").toString());    //油品名称
         CustomerManage existCustomer = customerManagerService.getCustomerManageInfo(customerManage);         //已存在用户信息 existCustomer
@@ -1281,6 +1242,9 @@ public class PayController {
         CustomerPoints customerPoints = new CustomerPoints();
         customerPoints.setRecentlyPoints(calculateIntegral.getIntegral());  //用户当前所获得的积分
         customerPoints.setStationId(calculateIntegral.getStationId());  //油站ID
+        if(StringUtils.isNotBlank(calculateIntegral.getIntegralRuleFlag()) && calculateIntegral.getIntegralRuleFlag().equals("1")){
+            customerPoints.setStationId(calculateIntegral.getGroupId());
+        }
         customerPoints.setMinaOpenId(calculateIntegral.getOpenId());    //用户小程序ID
         customerPoints.setCustomerName(calculateIntegral.getNickName());
         if(calculateIntegral.getBlogOpenid() !=null){

+ 118 - 100
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -61,113 +61,114 @@ public class PayOrderController {
                     appUserInfo.setALiId(payOrderRequest.getOpenId());
                     break;
             }
-            AppUserInfo appUserInfos = appUserInfoService.getAppUserInfo(appUserInfo);
+            StationInfo stationInfo = new StationInfo();
+            stationInfo.setStationId(payOrderRequest.getStationId());
+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
             Map<String ,Object> resultMap = new HashMap<>();            //返回结果集
-            if(appUserInfos !=null){
-                payOrderRequest.setCustomerPhone(appUserInfos.getMobilePhone());    //客户手机号; 注:此处存放手机号用于获取客户信息参数查询
-                payOrderRequest.setUnionId(appUserInfos.getUnionId());              //客户UnionId;注:此处存放unionId用于获取客户电子卡参数查询
-                payOrder.setConsumer(appUserInfos.getBlogNickName());             //昵称
-                payOrder.setConsumerId(appUserInfos.getUserId());                 //用户id
-                Random random = new Random();
-                String result="";
-                for(int i=0;i<6;i++){
-                    result+=random.nextInt(10);
-                }
-                String ordNo=System.nanoTime()+result;
-                payOrder.setOrderNo(ordNo);                                             //订单号
-                logger.info("生成的订单号:" + ordNo);
-                payOrder.setDiscountCouponAmt(payOrderRequest.getDiscountCouponAmt());  //优惠劵金额
-                payOrder.setDiscountCoupon(payOrderRequest.getDiscountCoupon());        //优惠券
-                payOrder.setCarNo(payOrderRequest.getCarNo());                          //车牌号、
-                payOrder.setCustomerGrade(payOrderRequest.getCustomerGrade());          //客户电话
-                payOrder.setMemberNo(payOrderRequest.getMemberNo());                    //会员卡号
-                payOrder.setMemberAmt(payOrderRequest.getMemberAmt());                  //会员支付金额
-                payOrder.setScore(payOrderRequest.getScore());                          //积分
-                payOrder.setStationId(payOrderRequest.getStationId());                  //油站id
-                payOrder.setStatus("0");                                                //创建订单 未支付状态 0
-                payOrder.setCreatedDate(new Timestamp(new Date().getTime()));                    //创建时间
-                payOrder.setOrderType(payOrderRequest.getOrderType());  //订单类型
-                payOrder.setOilGun(payOrderRequest.getOilGun());        //油枪号
-                payOrder.setReceivableAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));                //订单应收金额
-                String oilName =payOrderRequest.getOilName();
-                //获取该油品所属哪一类
-                Oil oil = new Oil();
-                oil.setOilName(oilName);
-                oil.setDictType("oil_name");
-                Oil oilInfo = sysDictDataService.selectOilType(oil);
-                payOrder.setOilType(oilInfo.getOilsType());     //油品类型
-                String oilsType = oilInfo.getOilsType();                          //获取订单类型
-                logger.info("订单油品类型:" + oilsType);
-                payOrderRequest.setCardOilsType(oilInfo.getOilsType());                 //电子卡类型;注:用于获取客户电子卡参数查询
-                payOrder.setOilName(oilName);                   //油品名称
-                StationInfo stationInfo = new StationInfo();
-                stationInfo.setStationId(payOrderRequest.getStationId());
-                StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-                if(stationInfos !=null){
-                    payOrder.setStationName(stationInfos.getStationName());
-                    //获取油站图片和名称
-                    resultMap.put("stationPic", stationInfos.getStationPic());
-                    resultMap.put("stationName", stationInfos.getStationName());
-                }
-
-                //根据油站和油枪获取加油员
-                HashMap<String, Object> params = new HashMap<>();
-                params.put("oliGunNo", payOrderRequest.getOilGun());
-                params.put("stationId", payOrderRequest.getStationId());
-                List<Map> mapResultList = payOrderMapper.selectPersonelName(params);    //使用list原因:一个枪号对应多个加油员场景
-                logger.info("加油员信息:"+ mapResultList.toString());
-                if(mapResultList != null && mapResultList.size() > 0){
-                    String oilPersonnel = "";
-                    for (Map per : mapResultList){
-                        if(per.containsKey("personelName") && per.get("personelName").toString() !=null && per.get("personelName").toString() !=""){
-                            oilPersonnel += per.get("personelName").toString() +",";
+            if(stationInfos !=null){
+                payOrder.setStationName(stationInfos.getStationName());
+                //获取油站图片和名称
+                resultMap.put("stationPic", stationInfos.getStationPic());
+                resultMap.put("stationName", stationInfos.getStationName());
+                AppUserInfo appUserInfos = appUserInfoService.getAppUserInfo(appUserInfo);
+                if(appUserInfos !=null){
+                    payOrderRequest.setCustomerPhone(appUserInfos.getMobilePhone());    //客户手机号; 注:此处存放手机号用于获取客户信息参数查询
+                    payOrderRequest.setUnionId(appUserInfos.getUnionId());              //客户UnionId;注:此处存放unionId用于获取客户电子卡参数查询
+                    payOrder.setConsumer(appUserInfos.getBlogNickName());             //昵称
+                    payOrder.setConsumerId(appUserInfos.getUserId());                 //用户id
+                    Random random = new Random();
+                    String result="";
+                    for(int i=0;i<6;i++){
+                        result+=random.nextInt(10);
+                    }
+                    String ordNo=System.nanoTime()+result;
+                    payOrder.setOrderNo(ordNo);                                             //订单号
+                    logger.info("生成的订单号:" + ordNo);
+                    payOrder.setDiscountCouponAmt(payOrderRequest.getDiscountCouponAmt());  //优惠劵金额
+                    payOrder.setDiscountCoupon(payOrderRequest.getDiscountCoupon());        //优惠券
+                    payOrder.setCarNo(payOrderRequest.getCarNo());                          //车牌号、
+                    payOrder.setCustomerGrade(payOrderRequest.getCustomerGrade());          //客户电话
+                    payOrder.setMemberNo(payOrderRequest.getMemberNo());                    //会员卡号
+                    payOrder.setMemberAmt(payOrderRequest.getMemberAmt());                  //会员支付金额
+                    payOrder.setScore(payOrderRequest.getScore());                          //积分
+                    payOrder.setStationId(payOrderRequest.getStationId());                  //油站id
+                    payOrder.setStatus("0");                                                //创建订单 未支付状态 0
+                    payOrder.setCreatedDate(new Timestamp(new Date().getTime()));                    //创建时间
+                    payOrder.setOrderType(payOrderRequest.getOrderType());  //订单类型
+                    payOrder.setOilGun(payOrderRequest.getOilGun());        //油枪号
+                    payOrder.setReceivableAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));                //订单应收金额
+                    String oilName =payOrderRequest.getOilName();
+                    //获取该油品所属哪一类
+                    Oil oil = new Oil();
+                    oil.setOilName(oilName);
+                    oil.setDictType("oil_name");
+                    Oil oilInfo = sysDictDataService.selectOilType(oil);
+                    payOrder.setOilType(oilInfo.getOilsType());     //油品类型
+                    String oilsType = oilInfo.getOilsType();                          //获取订单类型
+                    logger.info("订单油品类型:" + oilsType);
+                    payOrderRequest.setCardOilsType(oilInfo.getOilsType());                 //电子卡类型;注:用于获取客户电子卡参数查询
+                    payOrder.setOilName(oilName);                   //油品名称
+                    //根据油站和油枪获取加油员
+                    HashMap<String, Object> params = new HashMap<>();
+                    params.put("oliGunNo", payOrderRequest.getOilGun());
+                    params.put("stationId", payOrderRequest.getStationId());
+                    List<Map> mapResultList = payOrderMapper.selectPersonelName(params);    //使用list原因:一个枪号对应多个加油员场景
+                    logger.info("加油员信息:"+ mapResultList.toString());
+                    if(mapResultList != null && mapResultList.size() > 0){
+                        String oilPersonnel = "";
+                        for (Map per : mapResultList){
+                            if(per.containsKey("personelName") && per.get("personelName").toString() !=null && per.get("personelName").toString() !=""){
+                                oilPersonnel += per.get("personelName").toString() +",";
+                            }
                         }
+                        if(oilPersonnel !=""){
+                            payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1));   //加油员
+                        }
+                    }else {
+                        payOrder.setOilPersonnel("");
                     }
-                    if(oilPersonnel !=""){
-                        payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1));   //加油员
+                    if(oilsType.equals("3")){                                                  //订单类型是油品时计算
+                        payOrder.setOrderType("2");
+                        payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
+                        payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额
+                        payOrder.setOilPirce(payOrderRequest.getReceivableAmt());        //非油品价格
+                        payOrder.setOrderLiters("0");
+                        resultMap.put("discountAmt", "0");                                          //优惠价格
+                        resultMap.put("amt", payOrderRequest.getReceivableAmt());                   //实收价格
+                        resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt());         //应收价格
+                        resultMap.put("oilLiters", "0");
+                        resultMap.put("discountPrice", "0");
+                        resultMap.put("ordNo", ordNo);
+                        payOrderMapper.insertSelective(payOrder);
+                    }else {
+                        PayOrderResultInfo payOrderResultInfo = this.calculateAmt(payOrderRequest); //计算订单金额 价格 加油升数 等等
+                        payOrder.setOilPirce(payOrderResultInfo.getOilPrice());
+                        payOrder.setOrderLiters(payOrderResultInfo.getOilLiters());
+                        payOrder.setDiscountAmt(Double.valueOf(payOrderResultInfo.getDiscountAmt()));
+                        payOrder.setAmt(Double.valueOf(payOrderResultInfo.getAmt()));
+                        payOrder.setOrderType("1");
+                        resultMap.put("cardEnabledFlag", payOrderResultInfo.getCardEnabledFlag());
+                        resultMap.put("oilsCardFlag", payOrderResultInfo.getOilsCardFlag());
+                        resultMap.put("discountAmt", payOrderResultInfo.getDiscountAmt());                                          //优惠价格
+                        resultMap.put("amt", payOrderResultInfo.getAmt());                   //实收价格
+                        resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt());         //应收价格
+                        resultMap.put("oilLiters", payOrderResultInfo.getOilLiters());
+                        resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
+                        resultMap.put("amt_dzk", payOrderResultInfo.getDzkAmt());
+                        resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt());   //电子卡优惠金额
+                        resultMap.put("balance", payOrderResultInfo.getBalance());               //电子卡余额
+                        resultMap.put("cardOilsType", payOrderResultInfo.getCardOilsType());     //电子卡类型1.汽油; 2.柴油
+                        resultMap.put("ordNo", ordNo);
+                        logger.info("返回前端的结果:" +resultMap.toString());
+                        payOrderMapper.insertSelective(payOrder);
                     }
+                    resultData = ResultData.success(resultMap);
                 }else {
-                    payOrder.setOilPersonnel("");
+                    //登录人验证失败
+                    resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
                 }
-                if(oilsType.equals("3")){                                                  //订单类型是油品时计算
-                    payOrder.setOrderType("2");
-                    payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt()));        //非油品金额
-                    payOrder.setDiscountAmt(Double.valueOf(0));                                 //优惠金额
-                    payOrder.setOilPirce(payOrderRequest.getReceivableAmt());        //非油品价格
-                    payOrder.setOrderLiters("0");
-                    resultMap.put("discountAmt", "0");                                          //优惠价格
-                    resultMap.put("amt", payOrderRequest.getReceivableAmt());                   //实收价格
-                    resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt());         //应收价格
-                    resultMap.put("oilLiters", "0");
-                    resultMap.put("discountPrice", "0");
-                    resultMap.put("ordNo", ordNo);
-                    payOrderMapper.insertSelective(payOrder);
-                }else {
-                    PayOrderResultInfo payOrderResultInfo = this.calculateAmt(payOrderRequest); //计算订单金额 价格 加油升数 等等
-                    payOrder.setOilPirce(payOrderResultInfo.getOilPrice());
-                    payOrder.setOrderLiters(payOrderResultInfo.getOilLiters());
-                    payOrder.setDiscountAmt(Double.valueOf(payOrderResultInfo.getDiscountAmt()));
-                    payOrder.setAmt(Double.valueOf(payOrderResultInfo.getAmt()));
-                    payOrder.setOrderType("1");
-                    resultMap.put("cardEnabledFlag", payOrderResultInfo.getCardEnabledFlag());
-                    resultMap.put("oilsCardFlag", payOrderResultInfo.getOilsCardFlag());
-                    resultMap.put("discountAmt", payOrderResultInfo.getDiscountAmt());                                          //优惠价格
-                    resultMap.put("amt", payOrderResultInfo.getAmt());                   //实收价格
-                    resultMap.put("receivableAmt", payOrderResultInfo.getReceivableAmt());         //应收价格
-                    resultMap.put("oilLiters", payOrderResultInfo.getOilLiters());
-                    resultMap.put("discountPrice", payOrderResultInfo.getDiscountPrice());
-                    resultMap.put("amt_dzk", payOrderResultInfo.getDzkAmt());
-                    resultMap.put("discountAmt_dzk", payOrderResultInfo.getDzkDiscountAmt());   //电子卡优惠金额
-                    resultMap.put("balance", payOrderResultInfo.getBalance());               //电子卡余额
-                    resultMap.put("cardOilsType", payOrderResultInfo.getCardOilsType());     //电子卡类型1.汽油; 2.柴油
-                    resultMap.put("ordNo", ordNo);
-                    logger.info("返回前端的结果:" +resultMap.toString());
-                    payOrderMapper.insertSelective(payOrder);
-                }
-                resultData = ResultData.success(resultMap);
             }else {
-                //登录人验证失败
-                resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
+                resultData = ResultData.error(CodeMsg.REQUEST_FAIL);
             }
         }else {
             resultData = ResultData.error(CodeMsg.REQUEST_FAIL);
@@ -190,6 +191,8 @@ public class PayOrderController {
         String oilPrice = result.get("oilPrice").toString();                //油站油品价格
         String discountSetting = result.get("discountSetting").toString();  //优惠方案
         String cardEnabledFlag = result.get("cardEnabledFlag").toString();  //是否开启电子卡
+        String cardRuleFlag = result.get("cardRuleFlag").toString();  //是否共享电子卡储值规则
+        String groupId = result.get("groupId").toString();  //是否共享电子卡储值规则
 
         Map<String ,Object> params = new HashMap<String, Object>();
         params.put("stationId", stationId);
@@ -199,8 +202,11 @@ public class PayOrderController {
         params.put("mobilePhone", payOrderRequest.getCustomerPhone());
         params.put("minaOpenid", openId);
         params.put("cardEnabledFlag", cardEnabledFlag);
+        params.put("cardRuleFlag", cardRuleFlag);
+        params.put("groupId", groupId);
         params.put("unionId", payOrderRequest.getUnionId());
         params.put("cardOilsType", payOrderRequest.getCardOilsType());
+
         switch (discountSetting){
             case "0":   //不执营销方案时 计算等级优惠
                 payOrderResultInfo = this.calculateGradeDiscount(params);
@@ -285,6 +291,9 @@ public class PayOrderController {
         if(params.get("cardEnabledFlag").toString().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
+            if(params.get("cardRuleFlag").toString().equals("1")){
+                customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
+            }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
             if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){
                 String isGradeSetting = cardRechargeSettingList.get(0).getIsGradeSetting(); //是否叠加等级方案
@@ -381,6 +390,9 @@ public class PayOrderController {
         if(params.get("cardEnabledFlag").toString().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
+            if(params.get("cardRuleFlag").toString().equals("1")){
+                customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
+            }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
             if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){
                 String isGradeSetting = cardRechargeSettingList.get(0).getIsGradeSetting(); //是否叠加等级方案
@@ -477,6 +489,9 @@ public class PayOrderController {
         if(params.get("cardEnabledFlag").toString().equals("1")){
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
+            if(params.get("cardRuleFlag").toString().equals("1")){
+                customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
+            }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
             if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){
                 String isGradeSetting = cardRechargeSettingList.get(0).getIsGradeSetting(); //是否叠加等级方案
@@ -581,6 +596,9 @@ public class PayOrderController {
             payOrderResultInfo.setDzkDiscountAmt("0");
             CustomerCardSetting customerCardSetting = new CustomerCardSetting();
             customerCardSetting.setStationId(Integer.valueOf(params.get("stationId").toString()));
+            if(params.get("cardRuleFlag").toString().equals("1")){
+                customerCardSetting.setStationId(Integer.valueOf(params.get("groupId").toString()));
+            }
             List<CustomerCardSetting> cardRechargeSettingList = electronicMembershipCardService.getCardRechargeSettingList(customerCardSetting);
             if(cardRechargeSettingList !=null && cardRechargeSettingList.size() >0){
                 String isGradeSetting = cardRechargeSettingList.get(0).getIsGradeSetting();

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

@@ -27,6 +27,7 @@ public class CustomerCardUseRecord {
     private BigDecimal balance;             //余额
     private Date createTime;                //'记录时间'
     private Integer stationId;              //'油站ID'
+    private Integer groupId;              //'油站ID'
     private String stationName;             //'油站名称'
     private String status;                  //'充值状态'
     private String oilsCardName;            //卡名字

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

@@ -9,7 +9,7 @@ server:
         # tomcat的URI编码
         uri-encoding: UTF-8
 
-# POS机查询数据分页
+# POS机查询数据分页e
 pagehelper:
     helper-dialect=mysql:
 
@@ -19,7 +19,7 @@ yijia:
     domainName: pay.huijy.net
     # 路径前缀 test:测试; api:生产; demo:演示;
     path:
-        global-prefix: test
+        global-prefix: demo
 
 
 # POS机登录解密密文密码
@@ -30,7 +30,7 @@ yijia:
 spring:
     datasource:
 #        url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
-        url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
+        url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_test?useUnicode=true&characterEncoding=utf8&nullCatalogMeansCurrent=true&serverTimezone=GMT%2b8&useSSL=true
         username: develop
         password: 1234.Abcd
         driver-class-name: com.mysql.cj.jdbc.Driver

+ 21 - 7
YijiaRestful/src/main/resources/mapper/ElectronicMembershipCardMapper.xml

@@ -439,21 +439,35 @@
     <!--查询客户电子会员卡的使用记录-->
     <select id="getCardUseRecordList" resultMap="CardRecordBaseResultMap" parameterType="com.platform.yijia.pojo.CustomerCardUseRecord">
         SELECT
-            union_id, station_id, amt, present_amt, usage_type, balance, card_oils_type, usage_type, create_time, `status`
-        FROM customer_card_use_record
+            T1.union_id,
+            T1.station_id,
+            T1.amt,
+            T1.present_amt,
+            T1.usage_type,
+            T1.balance,
+            T1.card_oils_type,
+            T1.usage_type,
+            T1.create_time,
+            T1.status,
+            T2.dept_name    AS station_name
+        FROM customer_card_use_record  AS T1
+        LEFT JOIN   sys_dept           AS T2  ON T1.station_id = T2.dept_id
         <where>
-            status ="1"
+            T1.status ="1"
             <if test="stationId !=null and stationId !=''">
-                AND station_id = #{stationId}
+                AND T1.station_id = #{stationId}
+            </if>
+            <if test="groupId !=null and groupId !=''">
+                AND T2.parent_id = #{groupId}
             </if>
             <if test="unionId !=null and unionId !=''">
-                AND union_id = #{unionId}
+                AND T1.union_id = #{unionId}
             </if>
             <if test="usageType !=null and usageType !=''">
-                AND usage_type = #{usageType}
+                AND T1.usage_type = #{usageType}
             </if>
         </where>
-        ORDER BY create_time DESC
+        ORDER BY T1.create_time DESC
     </select>
 
     <!--  根据设置的卡规则来查询用户所拥有的储蓄卡    -->

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

@@ -72,11 +72,14 @@
   <select id="selectStationOilPriceAndDiscountSetting" parameterType="Map" resultType="Map">
     SELECT
         T1.dept_id                   AS stationId,
+        T1.parent_id                 AS groupId,
         T1.discount_setting          AS discountSetting,
         T1.card_enabled_flag         AS cardEnabledFlag,
+        T3.card_rule_flag            AS cardRuleFlag,
         T2.oil_price                 AS oilPrice
     FROM            sys_dept             AS T1
         LEFT JOIN   station_oil_price    AS T2 ON T1.dept_id = T2.station_id
+        LEFT JOIN   sys_dept             AS T3 ON T1.parent_id = T3.dept_id
     <where>
       <if test="stationId !='' and stationId != null" >
         T1.dept_id = #{stationId}

+ 0 - 1
YijiaRestful/src/test/java/com/palatform/yijia/test.java

@@ -30,7 +30,6 @@ public class test {
         }
 
         int result = 0;
-        // time-constant comparison
         for (int i = 0; i < digesta.length; i++) {
             result |= digesta[i] ^ digestb[i];
             System.out.println(digesta[i] ^ digestb[i]);