jk-GitHub-coder 4 jaren geleden
bovenliggende
commit
91df84f8bb

+ 38 - 20
YijiaRestful/src/main/java/com/platform/yijia/controller/PayOrderController.java

@@ -250,11 +250,15 @@ public class PayOrderController {
                     }
                     break;
             }
+            //计算等级优惠
+            PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
+            gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
             String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
-            if(vipDiscountyPlus.equals("1")){
-                PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
-                discountAmt = discountAmt.add(new BigDecimal(payOrderResultInfoGrade.getDiscountAmt()));
+            if(!vipDiscountyPlus.equals("1")){
+                //如果不叠加等级优惠 则设置等级优惠赋值为0
+                gradeDiscountAmt = new BigDecimal(0);
             }
+            discountAmt = discountAmt.add(gradeDiscountAmt);
         }
         amt = receivableAmt.subtract(discountAmt);  //应收金额
         amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
@@ -277,12 +281,14 @@ public class PayOrderController {
                 String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
                 if(isMarket.equals("1")){
                     if(isGradeSetting.equals("1")){
-                        payOrderResultInfo.setDzkAmt(amt.toString());
-                    }else {
-                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
                         BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
                         dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
                         payOrderResultInfo.setDzkAmt(dzkAmt.toString());
+                    }else {
+                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
+                        BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
+                        dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
+                        payOrderResultInfo.setDzkAmt(dzkAmt.toString());
                     }
                 }else {
                     if(isGradeSetting.equals("1")){
@@ -327,13 +333,15 @@ public class PayOrderController {
             if(receivableAmt.compareTo(discountAmt_b) == 1 || receivableAmt.compareTo(discountAmt_b) == 0){
                 discountAmt = gasoilDiscountAmt_b;
             }
+            //计算等级优惠
+            PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
+            gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
             String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
-            if(vipDiscountyPlus.equals("1")){
-                PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
-                gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());        //等级优惠金额
-                discountAmt = discountAmt.add(gradeDiscountAmt);                    //总优惠
+            if(!vipDiscountyPlus.equals("1")){
+                //如果不叠加等级优惠 则设置等级优惠赋值为0
+                gradeDiscountAmt = new BigDecimal(0);
             }
-
+            discountAmt = discountAmt.add(gradeDiscountAmt);
         }
         amt = receivableAmt.subtract(discountAmt);  //应收金额
         amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
@@ -356,12 +364,14 @@ public class PayOrderController {
                 String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
                 if(isMarket.equals("1")){
                     if(isGradeSetting.equals("1")){
-                        payOrderResultInfo.setDzkAmt(amt.toString());
-                    }else {
-                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
                         BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
                         dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
                         payOrderResultInfo.setDzkAmt(dzkAmt.toString());
+                    }else {
+                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
+                        BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
+                        dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
+                        payOrderResultInfo.setDzkAmt(dzkAmt.toString());
                     }
                 }else {
                     if(isGradeSetting.equals("1")){
@@ -408,12 +418,17 @@ public class PayOrderController {
                 discountAmt = receivableAmt.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);  //优惠金额
                 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP);
             }
+            //计算等级优惠
+            PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
+            gradeDiscountAmt = new BigDecimal(payOrderResultInfoGrade.getDiscountAmt());
             //是否共享会员等级优惠叠加: 1 代表是; 2 代表否;
             String vipDiscountyPlus = customerMarkertPlanList.get(0).get("vipDiscountyPlus").toString();
-            if(vipDiscountyPlus.equals("1")){
-                PayOrderResultInfo payOrderResultInfoGrade = this.calculateGradeDiscount(params);
-                discountAmt = discountAmt.add(new BigDecimal(payOrderResultInfoGrade.getDiscountAmt()));
+            if(!vipDiscountyPlus.equals("1")){
+                //如果不叠加等级优惠 则设置等级优惠赋值为0
+                gradeDiscountAmt = new BigDecimal(0);
             }
+            discountAmt = discountAmt.add(gradeDiscountAmt);
+
         }
         amt = receivableAmt.subtract(discountAmt);  //应收金额
         amt =amt.signum() == -1 ? new BigDecimal("0.01"): amt;
@@ -436,12 +451,15 @@ public class PayOrderController {
                 String isMarket = cardRechargeSettingList.get(0).getIsMarket(); //等候否叠加营销方案
                 if(isMarket.equals("1")){
                     if(isGradeSetting.equals("1")){
-                        payOrderResultInfo.setDzkAmt(amt.toString());
-                    }else {
-                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额+等级优惠金额
+                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠-等级优惠金额
                         BigDecimal dzkAmt = receivableAmt.subtract(discountAmt.subtract(gradeDiscountAmt));
                         dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
                         payOrderResultInfo.setDzkAmt(dzkAmt.toString());
+                    }else {
+                        //如果电子卡设置执行营销方案不执行等级优惠 则 电子卡支付金额 =实收金额-营销优惠金额
+                        BigDecimal dzkAmt = receivableAmt.subtract(discountAmt);
+                        dzkAmt =dzkAmt.signum() == -1 ? new BigDecimal("0.01"): dzkAmt;
+                        payOrderResultInfo.setDzkAmt(dzkAmt.toString());
                     }
                 }else {
                     if(isGradeSetting.equals("1")){

+ 7 - 37
YijiaRestful/src/main/resources/mapper/IntegralOrderMapper.xml

@@ -5,7 +5,6 @@
   <resultMap id="BaseResultMap" type="com.platform.yijia.pojo.IntegralOrder">
     <id     column="id"                 jdbcType="INTEGER"      property="id" />
     <result column="integral_order_no"  jdbcType="VARCHAR"      property="integralOrderNo" />
-    <result column="wares_type"         jdbcType="VARCHAR"      property="waresType" />
     <result column="wares_name"         jdbcType="VARCHAR"      property="waresName" />
     <result column="wares_id"           jdbcType="INTEGER"      property="waresId" />
     <result column="wares_pic"          jdbcType="VARCHAR"      property="waresPic" />
@@ -23,24 +22,25 @@
 
   <!--查询列-->
   <sql id="Base_Column_List">
-    id, integral_order_no, wares_type, wares_name, wares_name, wares_id, wares_pic, wares_detail, union_id, customer_name, exchange_num, exchange_time,
-    status, integral, station_id, printer_status, mobile_phone
+    T1.id, T1.integral_order_no, T2.wares_name, T1.wares_id, T2.wares_pic, T2.wares_detail, T1.union_id, T1.customer_name,
+    T1.exchange_num, T1.exchange_time, T1.status, T1.integral, T1.station_id, T1.printer_status, T1.mobile_phone
   </sql>
 
   <!--查询个人积分订单信息-->
   <select id="getUserIntegralOrderList" resultMap="BaseResultMap" parameterType="com.platform.yijia.pojo.IntegralOrder">
     SELECT
         <include refid="Base_Column_List" />
-    FROM integral_order
+    FROM        integral_order  AS  T1
+    LEFT JOIN   integral_wares  AS  T2 ON T1.wares_id = T2.id
     <where>
       <if test="unionId !=null and unionId !=''">
-        union_id = #{unionId}
+        T1.union_id = #{unionId}
       </if>
       <if test="stationId !=null and stationId !=''">
-        AND station_id = #{stationId}
+        AND T1.station_id = #{stationId}
       </if>
     </where>
-    ORDER BY exchange_time DESC
+    ORDER BY T1.exchange_time DESC
   </select>
 
   <!-- 更新积分订单-->
@@ -67,21 +67,9 @@
       <if test="integralOrderNo !=null">
         integral_order_no,
       </if>
-      <if test="waresType !=null">
-        wares_type,
-      </if>
-      <if test="waresName !=null">
-        wares_name,
-      </if>
       <if test="waresId !=null">
         wares_id,
       </if>
-      <if test="waresPic !=null">
-        wares_pic,
-      </if>
-      <if test="waresDetail !=null">
-        wares_detail,
-      </if>
       <if test="unionId !=null">
         union_id,
       </if>
@@ -103,9 +91,6 @@
       <if test="stationId !=null">
         station_id,
       </if>
-      <if test="stationName !=null">
-        station_name,
-      </if>
       <if test="printerStatus !=null">
         printer_status,
       </if>
@@ -117,21 +102,9 @@
       <if test="integralOrderNo !=null">
         #{integralOrderNo},
       </if>
-      <if test="waresType !=null">
-        #{waresType},
-      </if>
-      <if test="waresName !=null">
-        #{waresName},
-      </if>
       <if test="waresId !=null">
         #{waresId},
       </if>
-      <if test="waresPic !=null">
-        #{waresPic},
-      </if>
-      <if test="waresDetail !=null">
-        #{waresDetail},
-      </if>
       <if test="unionId !=null">
         #{unionId},
       </if>
@@ -153,9 +126,6 @@
       <if test="stationId !=null">
         #{stationId},
       </if>
-      <if test="stationName !=null">
-        #{stationName},
-      </if>
       <if test="printerStatus !=null">
         #{printerStatus},
       </if>