jk-GitHub-coder il y a 4 ans
Parent
commit
815a5f2b56

+ 137 - 219
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -681,144 +681,7 @@ public class PayController {
                             }
                             calculateIntegral.setReceivableAmt(new BigDecimal(infoMap.get("receivableAmt").toString()));
                             //计算积分并推送
-                            this.calculateIntegralAndPushIntegral(calculateIntegral);
-
-                            //客户积分
-//                            IntegralRule integralRule  =new IntegralRule();
-//                            integralRule.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
-//                            if(infoMap.containsKey("orderType") && infoMap.get("orderType").toString().equals("1")){
-//                                integralRule.setOilName(infoMap.get("oilName").toString());
-//                                integralRule.setOilType(infoMap.get("orderType").toString());
-//                            }else if(infoMap.containsKey("orderType") && infoMap.get("orderType").toString().equals("2")){
-//                                integralRule.setOilType(infoMap.get("orderType").toString());
-//                            }
-//
-//                            //获取该油站的积分规则
-//                            integralRule.setEmptyDate(new Date());
-//                            List<IntegralRule> rule = integralRuleService.getIntegralRule(integralRule);
-//                            logger.info("当前油站油品的积分规则:" + rule);
-//                            if(rule !=null && rule.size() > 0 && rule.get(0).getEmptyDate().compareTo(new Date()) ==1){
-//                                CustomerPoints customerPoints = new CustomerPoints();       //客户积分实体表
-//                                CustomerPointsRecord customerPointsRecord = new CustomerPointsRecord();     //客户积分记录实体表
-//                                if(infoMap.containsKey("unionId")){
-//                                    customerPoints.setUnionId(infoMap.get("unionId").toString());
-//                                    customerPointsRecord.setUnionId(infoMap.get("unionId").toString());
-//                                }
-//                                customerPoints.setCustomerName(infoMap.get("consumer").toString());
-//                                customerPoints.setMobilePhone(infoMap.get("mobilePhone").toString());   //存入手机号
-//                                customerPoints.setStationName(infoMap.get("stationName").toString());
-//                                customerPoints.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
-//
-//                                customerPointsRecord.setCustomerName(infoMap.get("consumer").toString());       //客户名称
-//                                customerPointsRecord.setRecordType("+");            // "+"表示增加积分
-//                                customerPointsRecord.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
-//                                customerPointsRecord.setStationName(infoMap.get("stationName").toString());
-//                                customerPointsRecord.setCreateTime(new Date());
-//                                //获取该用户积分信息
-//                                CustomerPoints customerPointsInfo = customerPointsService.getCustomerPointsInfo(customerPoints);
-//                                if(customerPointsInfo !=null){
-//                                    //String ruleType = rule.get(0).getRuleType();   //获取积分规则类型
-//                                    String[] datePicker={};     //积分比例时间
-//                                    if(rule.get(0).getDatePicker() != null && rule.get(0).getDatePicker() !=""){
-//                                        if(rule.get(0).getDatePicker().contains(",")){
-//                                            datePicker = rule.get(0).getDatePicker().split(",");
-//                                        }else {
-//                                            datePicker= new String[1];
-//                                            datePicker[0] = rule.get(0).getDatePicker();
-//                                        }
-//                                    }
-//                                    String currentTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
-//                                    List<IntegralRuleDetail> integralRuleDetailList = rule.get(0).getIntegralRuleDetailList();  //积分规则详细计算信息
-//                                    if(integralRuleDetailList !=null && integralRuleDetailList.size() > 0){
-//                                        BigDecimal realAmt = new BigDecimal(infoMap.get("amt").toString());  //本次消费实收金额
-//                                        BigDecimal receivableAmt = new BigDecimal(infoMap.get("receivableAmt").toString());  //本次消费实收金额
-//                                        BigDecimal orderLiters = null;  //本次加油升数
-//                                        if(infoMap.containsKey("orderType") && infoMap.get("orderType").toString().equals("1")){
-//                                            orderLiters = new BigDecimal(infoMap.get("orderLiters").toString());    //本次加油升数
-//                                        }
-//                                        //循环规则明细
-//                                        for(IntegralRuleDetail integralRuleDetail : integralRuleDetailList){
-//                                            if(integralRuleDetail.getOilType().equals("1")){    //油品
-//                                                //规则类型
-//                                                logger.info("当前生成积分类型:油品");
-//                                                String ruleType = integralRuleDetail.getRuleType();
-//                                                logger.info("当前油品规则类型ruleType: " + ruleType);
-//                                                if(ruleType !=null && ruleType.equals("1") && realAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1 || realAmt.compareTo(integralRuleDetail.getRuleTerms()) ==0){
-//                                                    //以实收金额为准时
-//                                                    logger.info("以实收金额为准时");
-//                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){
-//                                                        //计算积分并取整
-//                                                        logger.info("油站使用等级");
-//                                                        countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }else {
-//                                                        //计算积分并取整
-//                                                        logger.info("油站没有使用等级");
-//                                                        countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }
-//                                                }else if(ruleType !=null && ruleType.equals("2") && receivableAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1 || receivableAmt.compareTo(integralRuleDetail.getRuleTerms()) ==0){
-//                                                    //应收金额为准时
-//                                                    logger.info("应收金额为准");
-//                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){
-//                                                        //计算积分并取整
-//                                                        logger.info("油站使用等级");
-//                                                        countIntegral (receivableAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }else {
-//                                                        //计算积分并取整
-//                                                        logger.info("油站没有使用等级");
-//                                                        countIntegral (receivableAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }
-//
-//                                                }else if(ruleType !=null && ruleType.equals("3") && orderLiters.compareTo(integralRuleDetail.getRuleTerms()) ==1 || orderLiters.compareTo(integralRuleDetail.getRuleTerms()) ==0){
-//                                                    //加油升数为准时
-//                                                    logger.info("加油升数为准");
-//                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){
-//                                                        //计算积分并取整
-//                                                        logger.info("油站使用等级");
-//                                                        countIntegral (orderLiters, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }else {
-//                                                        //计算积分并取整
-//                                                        logger.info("油站没有使用等级");
-//                                                        countIntegral (orderLiters, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                        break;
-//                                                    }
-//                                                }else {
-//                                                    customerPoints.setPoints(customerPointsInfo.getPoints());
-//                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints());
-//                                                    customerPointsRecord.setIntegral(0);
-//                                                }
-//                                            }else if(integralRuleDetail.getOilType().equals("2")){ //非油品
-//                                                logger.info("当前生成积分类型:非油品");
-//                                                //计算积分并取整
-//                                                countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo);
-//                                                break;
-//                                            }
-//                                        }
-//                                    }
-//
-//                                    logger.info("客户积分customerPoints:"+ customerPoints);
-//                                    logger.info("客户积分记录customerPointsRecord:"+ customerPointsRecord);
-//                                    //更新客户余额积分
-//                                    customerPointsService.updateCustomerPointsInfo(customerPoints);
-//                                    //插入客户积分记录表
-//                                    customerPointsRecordService.insertCustomerPointsRecordInfo(customerPointsRecord);
-//                                    //客户公众号积分增加通知
-//                                    //customerPoints.getBlogOpenId()
-//                                    //weiXinPushIntegralInfo(infoMap.get("stationId").toString(), infoMap.get("consumer").toString(), customerPointsRecord.getIntegral().toString(), customerPoints.getPoints().toString(), customerPoints.getBlogOpenId());
-//                                   CustomerPoints m = new CustomerPoints();
-//                                   m.setUnionId(customerPoints.getUnionId());
-//                                   CustomerPoints cus = customerPointsService.getCustomerPointsInfo(m);
-//                                   if(cus.getBlogOpenId() !=null){
-//                                       //公众号积分消息推送
-//                                     this.weiXinPushIntegralInfo(cus.getStationId().toString(), cus.getCustomerName(), customerPointsRecord.getIntegral().toString(), cus.getPoints().toString(), cus.getBlogOpenId());
-//                                   }
-//                                }
-//                            }
-
+                            this.calculateIntegralAndPushIntegral(calculateIntegral, customerManage);
 ///========================================================================================================================================================//
                             //打印机打印小票
                             String content1;
@@ -979,63 +842,15 @@ public class PayController {
         }
     }
 
-    //计算积分并赋值
-//    public void  countIntegral (BigDecimal b1, IntegralRuleDetail integralRuleDetail,
-//                                String[] datePicker, String currentTime, List<IntegralRule> rule,
-//                                CustomerPoints customerPoints, CustomerPointsRecord customerPointsRecord, CustomerPoints customerPointsInfo){
-//        BigDecimal integral = b1.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN);
-//        logger.info("该用户本次消费获取积分值:"+integral.toString());
-//        //设置积分多倍时间时
-//        logger.info("积分双倍时间:" +datePicker);
-//        if(datePicker !=null){
-//            for(String str: datePicker){
-//                if (str.contains(currentTime) && rule.get(0).getIntegralProportion() !=null ){
-//                    integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion()));
-//                    break;
-//                }
-//            }
-//        }
-//        customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString()));
-//        customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString()));
-//        customerPointsRecord.setIntegral(Integer.valueOf(integral.toString()));
-//    }
-
-    /*
-     * 微信公众号消息推送
-     * @param stationId 油站ID
-     * @param consumer  用户昵称
-     * @param customerPointsRecordIntegral  用户积分记录
-     * @param customerPointsIntegral        用户当前还剩余的积分
-     */
-//    public void weiXinPushIntegralInfo (String stationId, String consumer, String customerPointsRecordIntegral, String customerPointsIntegral, String openId){
-//        //客户公众号积分增加通知
-//        String gzhAppId ="";
-//        String gzhAppSecret ="";
-//        String stationName = "";        //油站名称
-//        Map<String, String> m = stationService.getStationAppIdAndAppSecret(Integer.valueOf(stationId));
-//        if(m !=null && m.containsKey("stationName") && m.containsKey("gzhAppId") && m.containsKey("gzhAppSecret")){
-//            stationName = m.get("stationName");
-//            gzhAppId = m.get("gzhAppId");
-//            gzhAppSecret = m.get("gzhAppSecret");
-//        }
-//        List<WxMpTemplateData> wxMpTemplate = new ArrayList<>();
-//        wxMpTemplate.add(new WxMpTemplateData("first","尊敬的"+consumer+",您好:\n" + "您在"+stationName+"的积分最新交易信息如下"));
-//        wxMpTemplate.add(new WxMpTemplateData("time", new SimpleDateFormat("yyyy年MM月dd日HH时mm分").format(new Date())));
-//        wxMpTemplate.add(new WxMpTemplateData("type", "增加"));
-//        wxMpTemplate.add(new WxMpTemplateData("Point", customerPointsRecordIntegral));
-//        wxMpTemplate.add(new WxMpTemplateData("From", stationName));
-//        wxMpTemplate.add(new WxMpTemplateData("remark",
-//                "截止至" + new SimpleDateFormat(" yyyy年MM月dd日HH时mm分").format(new Date())+",您在"+stationName+"的可用积分为 "+customerPointsIntegral+" 分"));
-//        String templateId = "G9tN--a3tGM5BN3otqZr73b4ErQCYWISSgyshbTqLYc";  //积分兑换成功通知模板
-//        //wxPushUtil.push(gzhAppId, gzhAppSecret, templateId, customerPoints.getBlogOpenId(), wxMpTemplate);
-//        wxPushUtil.push(gzhAppId, gzhAppSecret, templateId, openId, wxMpTemplate);  //oJR5R6r4EJhaORFcPap70r_mtFZo
-//    }
-
     /**
      * 计算消费生成积分
+     * 注释:  1.判断油站配置的优惠类型
+     *        2.如果是等级直降则存在等级取对应等级的积分规则,否则按照其他优惠方式
      */
-    public void calculateIntegralAndPushIntegral(CalculateIntegral calculateIntegral){
+    public void calculateIntegralAndPushIntegral(CalculateIntegral calculateIntegral, CustomerManage customerManage){
         int integral =0;
+        //获取该油站的优惠方式
+        String discountPlanType = stationService.getStationDiscountWay(calculateIntegral.getStationId().toString());
         IntegralRule integralRule = new IntegralRule();
         integralRule.setStationId(calculateIntegral.getStationId());
         integralRule.setEmptyDate(new Date());
@@ -1044,84 +859,187 @@ public class PayController {
         //获取该油站的积分规则
         List<IntegralRule> integralRuleList = integralRuleService.getIntegralRule(integralRule);
         if(integralRuleList !=null && integralRuleList.size() >0){
+            logger.info("该油站积分规则信息:" + integralRuleList.toString());
             List<IntegralRuleDetail> integralRuleDetailList = integralRuleList.get(0).getIntegralRuleDetailList();
-            String currentTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
-            String datePicker=null;         //活动时间
-            String[] datePickerArray ={};
+            String currentTime = null;          //当前时间
+            String datePickerTime=null;         //活动时间
+            String[] datePickerTimeArray ={};
             String integralActivity = integralRuleList.get(0).getIntegralActivity();
             String integralProportion =null;
             if(integralActivity.equals("1")){
-                datePicker = integralRuleList.get(0).getDatePicker();
+                datePickerTime = integralRuleList.get(0).getDatePickerTime();
                 integralProportion = integralRuleList.get(0).getIntegralProportion();
-                if(datePicker.contains(",")){
-                    datePickerArray = datePicker.split(",");
+                if(datePickerTime.contains(",")){
+                    datePickerTimeArray = datePickerTime.split(",");
                 }else {
-                    datePickerArray= new String[1];
-                    datePickerArray[0] = datePicker;
+                    datePickerTimeArray= new String[1];
+                    datePickerTimeArray[0] = datePickerTime;
                 }
             }
             if(integralRuleDetailList !=null && integralRuleDetailList.size() >0){
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(new Date());   //获取当前时间
                 for (IntegralRuleDetail integralRuleDetail : integralRuleDetailList){
                     if(integralRuleDetail.getOilType().equals("1")){    //油品
                         if (integralRuleDetail.getRuleType().equals("1")){  //按照实收金额
                             if(calculateIntegral.getAmt().compareTo(integralRuleDetail.getRuleTerms()) == 1 || calculateIntegral.getAmt().compareTo(integralRuleDetail.getRuleTerms()) == 0){
-                                BigDecimal divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":   //  2.每月的多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
                                     }
                                 }
                                 integral =multiply.intValue();
+                                logger.info("本次客户所得积分:" + integral);
                                 break;
                             }
                         }else if (integralRuleDetail.getRuleType().equals("2")){    //按应收金额
                             if(calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                                BigDecimal divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":   //  2.每月的 多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
                                     }
                                 }
                                 integral = multiply.intValue();
+                                logger.info("本次客户所得积分:" + integral);
                                 break;
                             }
                         }else if (integralRuleDetail.getRuleType().equals("3")){    //按照加油升数
                             if(calculateIntegral.getOilLiters().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getOilLiters().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                                BigDecimal divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":  //  2.每月的 多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
                                     }
                                 }
                                 integral =multiply.intValue();
+                                logger.info("本次客户所得积分:" + integral);
                                 break;
                             }
                         }
                     }else if (integralRuleDetail.getOilType().equals("2")){     //非油品
                         if (calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                            BigDecimal divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                            BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                            if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                for (String s : datePickerArray){
-                                    if(s.contains(currentTime)){
+                            BigDecimal divide = null;
+                            BigDecimal multiply = null;
+                            //判断油站配置的优惠类型
+                            if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                multiply = divide.multiply(integralRuleDetail.getIntegral());
+                            }else {
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                multiply = divide.multiply(integralRuleDetail.getIntegral());
+                            }
+                            if(integralActivity.equals("1") && datePickerTimeArray !=null && integralProportion !=null){
+                                String datePicker = integralRuleList.get(0).getDatePicker();    //获取日期类型
+                                switch (datePicker){
+                                    case "1":   //  1.按周来
+                                        int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                        day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                        currentTime = String.valueOf(day_Week);
+                                        break;
+                                    case "2":   //  2.每月的 多少号
+                                        int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                        day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                        currentTime = String.valueOf(day_month); //当前时间
+                                        break;
+                                    case "3":   //  3.固定日期
+                                        currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                        break;
+                                }
+                                for (String s : datePickerTimeArray){
+                                    if(s.equals(currentTime)){
                                         multiply = multiply.multiply(new BigDecimal(integralProportion));
                                         break;
                                     }
                                 }
                             }
                             integral = multiply.intValue();
+                            logger.info("本次客户所得积分:" + integral);
                             break;
                         }
                     }

+ 131 - 30
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -281,7 +281,8 @@ public class PayOrderController {
                     calculateIntegral.setStationId(payOrder.getStationId());
                     calculateIntegral.setOpenId(payOrderRequest.getOpenId());   //小程序openId
                     //计算积分且推送积分
-                    this.calculateIntegralAndPushIntegral(calculateIntegral);
+                    CustomerManage customerManage = new CustomerManage();
+                    this.calculateIntegralAndPushIntegral(calculateIntegral, customerManage);
                     resultMap.put("ordNo", ordNo);
                     resultData = ResultData.success(resultMap);
                 }else {
@@ -515,8 +516,10 @@ public class PayOrderController {
     /**
      * 计算消费生成积分
      */
-    public void calculateIntegralAndPushIntegral(CalculateIntegral calculateIntegral){
+    public void calculateIntegralAndPushIntegral(CalculateIntegral calculateIntegral, CustomerManage customerManage){
         int integral =0;
+        //获取该油站的优惠方式
+        String discountPlanType = stationService.getStationDiscountWay(calculateIntegral.getStationId().toString());
         IntegralRule integralRule = new IntegralRule();
         integralRule.setStationId(calculateIntegral.getStationId());
         integralRule.setEmptyDate(new Date());
@@ -526,31 +529,57 @@ public class PayOrderController {
         List<IntegralRule> integralRuleList = integralRuleService.getIntegralRule(integralRule);
         if(integralRuleList !=null && integralRuleList.size() >0){
             List<IntegralRuleDetail> integralRuleDetailList = integralRuleList.get(0).getIntegralRuleDetailList();
-            String currentTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
-            String datePicker=null;         //活动时间
-            String[] datePickerArray ={};
+            String currentTime = null;
+            String datePickerTime=null;         //活动时间
+            String[] datePickerTimeArray ={};
             String integralActivity = integralRuleList.get(0).getIntegralActivity();
             String integralProportion =null;
             if(integralActivity.equals("1")){
-                datePicker = integralRuleList.get(0).getDatePicker();
+                datePickerTime = integralRuleList.get(0).getDatePickerTime();
                 integralProportion = integralRuleList.get(0).getIntegralProportion();
-                if(datePicker.contains(",")){
-                    datePickerArray = datePicker.split(",");
+                if(datePickerTime.contains(",")){
+                    datePickerTimeArray = datePickerTime.split(",");
                 }else {
-                    datePickerArray= new String[1];
-                    datePickerArray[0] = datePicker;
+                    datePickerTimeArray= new String[1];
+                    datePickerTimeArray[0] = datePickerTime;
                 }
             }
             if(integralRuleDetailList !=null && integralRuleDetailList.size() >0){
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(new Date());   //获取当前时间
                 for (IntegralRuleDetail integralRuleDetail : integralRuleDetailList){
                     if(integralRuleDetail.getOilType().equals("1")){    //油品
                         if (integralRuleDetail.getRuleType().equals("1")){  //按照实收金额
                             if(calculateIntegral.getAmt().compareTo(integralRuleDetail.getRuleTerms()) == 1 || calculateIntegral.getAmt().compareTo(integralRuleDetail.getRuleTerms()) == 0){
-                                BigDecimal divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":   //  2.每月的多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
@@ -561,11 +590,35 @@ public class PayOrderController {
                             }
                         }else if (integralRuleDetail.getRuleType().equals("2")){    //按应收金额
                             if(calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                                BigDecimal divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":   //  2.每月的多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
@@ -576,11 +629,35 @@ public class PayOrderController {
                             }
                         }else if (integralRuleDetail.getRuleType().equals("3")){    //按照加油升数
                             if(calculateIntegral.getOilLiters().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getOilLiters().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                                BigDecimal divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                                BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                                if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                    for (String s : datePickerArray){
-                                        if(s.contains(currentTime)){
+                                BigDecimal divide = null;
+                                BigDecimal multiply = null;
+                                //判断油站配置的优惠类型
+                                if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }else {
+                                    divide = calculateIntegral.getOilLiters().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                    multiply = divide.multiply(integralRuleDetail.getIntegral());
+                                }
+                                if(integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
+                                    String datePicker = integralRuleList.get(0).getDatePicker();
+                                    switch (datePicker){
+                                        case "1":   //  1.按周来
+                                            int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                            day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_Week);
+                                            break;
+                                        case "2":   //  2.每月的多少号
+                                            int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                            day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                            currentTime = String.valueOf(day_month); //当前时间
+                                            break;
+                                        case "3":   //  3.固定日期
+                                            currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                            break;
+                                    }
+                                    for (String s : datePickerTimeArray){
+                                        if(s.equals(currentTime)){
                                             multiply = multiply.multiply(new BigDecimal(integralProportion));
                                             break;
                                         }
@@ -592,11 +669,35 @@ public class PayOrderController {
                         }
                     }else if (integralRuleDetail.getOilType().equals("2")){     //非油品
                         if (calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==1 || calculateIntegral.getReceivableAmt().compareTo(integralRuleDetail.getRuleTerms()) ==0){
-                            BigDecimal divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
-                            BigDecimal multiply = divide.multiply(integralRuleDetail.getIntegral());
-                            if(integralActivity.equals("1") && datePickerArray !=null && integralProportion !=null){
-                                for (String s : datePickerArray){
-                                    if(s.contains(currentTime)){
+                            BigDecimal divide = null;
+                            BigDecimal multiply = null;
+                            //判断油站配置的优惠类型
+                            if(discountPlanType.equals("1") && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){   //等级直降
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                multiply = divide.multiply(integralRuleDetail.getIntegral());
+                            }else {
+                                divide = calculateIntegral.getReceivableAmt().divide(integralRuleDetail.getSaleAmt(), 0, BigDecimal.ROUND_HALF_DOWN);
+                                multiply = divide.multiply(integralRuleDetail.getIntegral());
+                            }
+                            if(integralActivity.equals("1") &&  datePickerTimeArray !=null && integralProportion !=null){
+                                String datePicker = integralRuleList.get(0).getDatePicker();
+                                switch (datePicker){
+                                    case "1":   //  1.按周来
+                                        int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+                                        day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+                                        currentTime = String.valueOf(day_Week);
+                                        break;
+                                    case "2":   //  2.每月的多少号
+                                        int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+                                        day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+                                        currentTime = String.valueOf(day_month); //当前时间
+                                        break;
+                                    case "3":   //  3.固定日期
+                                        currentTime =new SimpleDateFormat("yyyy-MM-dd").format(new Date()); //当前时间
+                                        break;
+                                }
+                                for (String s : datePickerTimeArray){
+                                    if(s.equals(currentTime)){
                                         multiply = multiply.multiply(new BigDecimal(integralProportion));
                                         break;
                                     }

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

@@ -18,7 +18,8 @@ public class IntegralRule {
     private String expirationReminder;              //'到期提醒设置',
     private Date remindDate;                        //'提醒时间设置',
     private String integralActivity;                //'积分活动设置',
-    private String datePicker;                      //'日期选择',
+    private String datePicker;                      //'日期选择',1,按照周选择,2.选择每月指定日,3固定日期
+    private String datePickerTime;                  //日期时间
     private String integralProportion;              //'积分比例',
     private String integralDeductionOil;      //'积分抵扣油品规则',
     private List<IntegralRuleDetail> integralRuleDetailList;  //积分规则明细实体类

+ 2 - 0
YijiaRestful/src/main/java/com/platform/yijia/pojo/PayOrder.java

@@ -49,4 +49,6 @@ public class PayOrder {
     private String beginTime;
     private String endTime;
 
+    private AppUserInfo appUserInfo;
+
 }

+ 0 - 4
YijiaRestful/src/main/resources/mapper/AppUserInfoMapper.xml

@@ -2,10 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.yijia.dao.AppUserInfoMapper">
   <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.AppUserInfo">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-    -->
     <id column="user_id" jdbcType="INTEGER" property="userId" />
     <result column="user_type" jdbcType="VARCHAR" property="userType" />
     <result column="blog_openid" jdbcType="VARCHAR" property="blogOpenid" />

+ 2 - 0
YijiaRestful/src/main/resources/mapper/IntegralRuleMapper.xml

@@ -12,6 +12,7 @@
       <result column="remind_date"            jdbcType="DATE"    property="remindDate" />
       <result column="integral_activity"      jdbcType="VARCHAR" property="integralActivity" />
       <result column="date_picker"            jdbcType="VARCHAR" property="datePicker" />
+      <result column="date_picker_time"       jdbcType="VARCHAR" property="datePickerTime" />
       <result column="integral_proportion"    jdbcType="VARCHAR" property="integralProportion" />
       <result column="integral_deduction_oil" jdbcType="VARCHAR" property="integralDeductionOil" />
       <collection property="integralRuleDetailList" resultMap="IntegralRuleDetailResultMap"/>
@@ -43,6 +44,7 @@
         T1.remind_date,
         T1.integral_activity,
         T1.date_picker,
+        T1.date_picker_time,
         T1.integral_proportion,
         T1.integral_deduction_oil,
         T2.id                           AS      integralRuleDetailId,

+ 41 - 58
YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml

@@ -1,63 +1,50 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.platform.yijia.dao.PayOrderMapper">
+  <!--订单对象实体类-->
   <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.PayOrder">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-    -->
-    <id column="order_id" jdbcType="INTEGER" property="orderId" />
-    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
-    <result column="oil_gun" jdbcType="VARCHAR" property="oilGun" />
-    <result column="oil_name" jdbcType="VARCHAR" property="oilName" />
-    <result column="oil_pirce" jdbcType="VARCHAR" property="oilPirce" />
-    <result column="consumer_id" jdbcType="INTEGER" property="consumerId" />
-    <result column="consumer" jdbcType="VARCHAR" property="consumer" />
-    <result column="amt" jdbcType="DOUBLE" property="amt" />
-    <result column="station_id" jdbcType="INTEGER" property="stationId" />
-    <result column="status" jdbcType="VARCHAR" property="status" />
-    <result column="order_liters" jdbcType="VARCHAR" property="orderLiters" />
-    <result column="pay_type" jdbcType="VARCHAR" property="payType" />
-    <result column="pay_way" jdbcType="VARCHAR" property="payWay" />
-    <result column="pay_date" jdbcType="TIMESTAMP" property="payDate" />
-    <result column="oil_personnel" jdbcType="VARCHAR" property="oilPersonnel" />
-    <result column="created_date" jdbcType="TIMESTAMP" property="createdDate" />
-    <result column="order_type" jdbcType="CHAR" property="orderType" />
-    <result column="station_name" jdbcType="CHAR" property="stationName" />
-
-
-    <result column="receivable_amt" jdbcType="DOUBLE" property="receivableAmt" />
-    <result column="received_amt" jdbcType="DOUBLE" property="receivedAmt" />
-    <result column="discount_coupon" jdbcType="VARCHAR" property="discountCoupon" />
-    <result column="discount_amt" jdbcType="DOUBLE" property="discountAmt" />
-    <result column="discount_coupon_amt" jdbcType="DOUBLE" property="discountCouponAmt" />
-
-    <result column="wx_amt" jdbcType="DOUBLE" property="wxAmt" />
-    <result column="zfb_amt" jdbcType="DOUBLE" property="zfbAmt" />
-    <result column="pos_amt" jdbcType="DOUBLE" property="posAmt" />
-    <result column="xj_amt" jdbcType="DOUBLE" property="xjAmt" />
-    <result column="didi_app_amt" jdbcType="DOUBLE" property="didiAppAmt" />
-
-    <result column="ty_app_amt" jdbcType="DOUBLE" property="tyAppAmt" />
-    <result column="other_amt" jdbcType="DOUBLE" property="otherAmt" />
-    <result column="dzk_amt" jdbcType="TIMESTAMP" property="dzkAmt" />
-    <result column="score" jdbcType="INTEGER" property="score" />
-    <result column="member_no" jdbcType="VARCHAR" property="memberNo" />
-
-    <result column="member_amt" jdbcType="DOUBLE" property="memberAmt" />
-    <result column="print_count" jdbcType="INTEGER" property="printCount" />
-    <result column="car_no" jdbcType="VARCHAR" property="carNo" />
-    <result column="customer_phone" jdbcType="VARCHAR" property="customerPhone" />
-    <result column="customer_grade" jdbcType="VARCHAR" property="customerGrade" />
-
-    <result column="oil_type" jdbcType="VARCHAR" property="oilType" />
-
+    <id     column="order_id"               jdbcType="INTEGER"   property="orderId" />
+    <result column="order_no"               jdbcType="VARCHAR"   property="orderNo" />
+    <result column="oil_gun"                jdbcType="VARCHAR"   property="oilGun" />
+    <result column="oil_name"               jdbcType="VARCHAR"   property="oilName" />
+    <result column="oil_pirce"              jdbcType="VARCHAR"   property="oilPirce" />
+    <result column="consumer_id"            jdbcType="INTEGER"   property="consumerId" />
+    <result column="consumer"               jdbcType="VARCHAR"   property="consumer" />
+    <result column="amt"                    jdbcType="DOUBLE"    property="amt" />
+    <result column="station_id"             jdbcType="INTEGER"   property="stationId" />
+    <result column="status"                 jdbcType="VARCHAR"   property="status" />
+    <result column="order_liters"           jdbcType="VARCHAR"   property="orderLiters" />
+    <result column="pay_type"               jdbcType="VARCHAR"   property="payType" />
+    <result column="pay_way"                jdbcType="VARCHAR"   property="payWay" />
+    <result column="pay_date"               jdbcType="TIMESTAMP" property="payDate" />
+    <result column="oil_personnel"          jdbcType="VARCHAR"   property="oilPersonnel" />
+    <result column="created_date"           jdbcType="TIMESTAMP" property="createdDate" />
+    <result column="order_type"             jdbcType="CHAR"      property="orderType" />
+    <result column="station_name"           jdbcType="CHAR"      property="stationName" />
+    <result column="receivable_amt"         jdbcType="DOUBLE"    property="receivableAmt" />
+    <result column="received_amt"           jdbcType="DOUBLE"    property="receivedAmt" />
+    <result column="discount_coupon"        jdbcType="VARCHAR"   property="discountCoupon" />
+    <result column="discount_amt"           jdbcType="DOUBLE"    property="discountAmt" />
+    <result column="discount_coupon_amt"    jdbcType="DOUBLE"    property="discountCouponAmt" />
+    <result column="wx_amt"                 jdbcType="DOUBLE"    property="wxAmt" />
+    <result column="zfb_amt"                jdbcType="DOUBLE"    property="zfbAmt" />
+    <result column="pos_amt"                jdbcType="DOUBLE"    property="posAmt" />
+    <result column="xj_amt"                 jdbcType="DOUBLE"    property="xjAmt" />
+    <result column="didi_app_amt"           jdbcType="DOUBLE"    property="didiAppAmt" />
+    <result column="ty_app_amt"             jdbcType="DOUBLE"    property="tyAppAmt" />
+    <result column="other_amt"              jdbcType="DOUBLE"    property="otherAmt" />
+    <result column="dzk_amt"                jdbcType="TIMESTAMP" property="dzkAmt" />
+    <result column="score"                  jdbcType="INTEGER"   property="score" />
+    <result column="member_no"              jdbcType="VARCHAR"   property="memberNo" />
+    <result column="member_amt"             jdbcType="DOUBLE"    property="memberAmt" />
+    <result column="print_count"            jdbcType="INTEGER"   property="printCount" />
+    <result column="car_no"                 jdbcType="VARCHAR"   property="carNo" />
+    <result column="customer_phone"         jdbcType="VARCHAR"   property="customerPhone" />
+    <result column="customer_grade"         jdbcType="VARCHAR"   property="customerGrade" />
+    <result column="oil_type"               jdbcType="VARCHAR"   property="oilType" />
   </resultMap>
+
   <sql id="Example_Where_Clause">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-    -->
     <where>
       <foreach collection="oredCriteria" item="criteria" separator="or">
         <if test="criteria.valid">
@@ -120,10 +107,6 @@
     </where>
   </sql>
   <sql id="Base_Column_List">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-    -->
     order_id, order_no, oil_gun, oil_name, oil_pirce, consumer_id, consumer, amt, station_id, status,
     order_liters, pay_type, pay_way, pay_date, oil_personnel, created_date, order_type, station_name,
     receivable_amt, received_amt, discount_amt, discount_coupon_amt, discount_coupon, wx_amt,

+ 21 - 7
YijiaRestful/src/test/java/com/palatform/yijia/test.java

@@ -3,6 +3,8 @@ package com.palatform.yijia;
 import org.apache.commons.codec.digest.DigestUtils;
 
 import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.Date;
 
 public class test {
 
@@ -13,13 +15,25 @@ public class test {
 //        System.out.println(equal);
         //DigestUtils.sha1();
 
-        BigDecimal receivableAmt_b =new BigDecimal(200);
-        BigDecimal discountAmt_b = new BigDecimal(13);
-        BigDecimal gasoilDiscountAmt_b = new BigDecimal(13.56);
-
-        BigDecimal discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);
-        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
-        System.out.println(discountAmt);
+//        BigDecimal receivableAmt_b =new BigDecimal(200);
+//        BigDecimal discountAmt_b = new BigDecimal(13);
+//        BigDecimal gasoilDiscountAmt_b = new BigDecimal(13.56);
+//
+//        BigDecimal discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);
+//        discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
+//        System.out.println(discountAmt);
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());   //获取当前时间
+        int day_Week = calendar.get(Calendar.DAY_OF_WEEK);
+        System.out.println(day_Week);
+        day_Week= day_Week-1;     //减一原因:数据库存的下标从零开始
+        String currentTime = String.valueOf(day_Week);
+        System.out.println(currentTime);
+        int day_month = calendar.get(Calendar.DAY_OF_MONTH);
+        day_month = day_month-1;        //减一原因:数据库存的下标从零开始
+        currentTime = String.valueOf(day_month); //当前时间
+        System.out.println(currentTime);
     }