瀏覽代碼

油站余额

jk-GitHub-coder 3 年之前
父節點
當前提交
811dd8ff85

+ 64 - 51
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -588,71 +588,77 @@ public class PayController {
                         logger.info("根据订单查询用户手机号等订单信息"+ infoMap.toString());
                         //手机号必须有
                         if(infoMap != null && infoMap.containsKey("mobilePhone") && infoMap.get("mobilePhone") !=null ){
-
+                            int integral =0;
                             StationInfo stationInfo = new StationInfo();
                             stationInfo.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));
                             StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
-                            //插入油站余额记录
                             if(stationInfos.getIsLngFlagGroup() !=null && stationInfos.getIsLngFlagGroup().equals("1")){
+                                //等于1表示次要业务:LNG集团平台加气(可能会出现); 插入油站余额记录
                                 StationBalanceChange stationBalanceChange = new StationBalanceChange();
                                 stationBalanceChange.setStationId(stationInfos.getStationId());
                                 stationBalanceChange.setAmt(Double.valueOf(infoMap.get("driverAmt").toString()));
                                 stationBalanceChange.setCreateTime(new SimpleDateFormat("yyyy-MM-dd hh-mm-ss").parse(infoMap.get("payDate").toString()));
                                 stationBalanceChange.setType("-");
                                 stationBalanceChange.setOrderNo(ordNo);
+                                //生成记录
                                 payOrderService.insertStationBalanceExchange(stationBalanceChange);
-                            }
-
-                            CustomerManage customerManage = this.insertCustomerManage(infoMap);                              //插入客户积分返回要插入客户的信息
-                            int integral =0;
-                            CalculateIntegral calculateIntegral = new CalculateIntegral();
-                            calculateIntegral.setOrderNo(ordNo);
-                            if(infoMap.containsKey("consumer") && infoMap.get("consumer") !=null){
-                                calculateIntegral.setNickName(infoMap.get("consumer").toString());
+                                StationInfo s = new StationInfo();
+                                BigDecimal subtract = new BigDecimal(String.valueOf(stationInfos.getBalance())).subtract(new BigDecimal(amt));
+                                s.setBalance(subtract.doubleValue());
+                                //更新油站余额
+                                stationService.updateStationBalance(s);
                             }else {
-                                calculateIntegral.setNickName("");
-                            }
-                            calculateIntegral.setGroupId(Integer.valueOf(infoMap.get("groupId").toString()));               //集团ID
-                            calculateIntegral.setCustomerGrade(customerManage.getGrade());                                  //客户等级
-                            calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlagGroup());                 //是否共享积分规则
-                            calculateIntegral.setOpenId(infoMap.get("minaOpenid").toString());                              //客户小程序ID
-                            if(infoMap.containsKey("blogOpenid") && StringUtils.isNotBlank(infoMap.get("blogOpenid").toString())){
-                                calculateIntegral.setBlogOpenid(infoMap.get("blogOpenid").toString());
-                            }
-                            calculateIntegral.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));           //油站ID
-                            calculateIntegral.setStationName(infoMap.get("stationName").toString());                        //油站名称
-                            calculateIntegral.setAmt(new BigDecimal(infoMap.get("amt").toString()));                        //实收金额
-                            calculateIntegral.setOilType(infoMap.get("oilType").toString());                               //订单类型
-                            calculateIntegral.setOilName(infoMap.get("oilName").toString());                                //油品名称
-                            calculateIntegral.setOilLiters(new BigDecimal(infoMap.get("orderLiters").toString()));          //加油升数
-                            calculateIntegral.setUnionId(infoMap.get("unionId").toString());                                //客户unionId
-                            calculateIntegral.setNickName(infoMap.get("consumer").toString());                              //客户昵称
-                            calculateIntegral.setMobilePhone(infoMap.get("mobilePhone").toString());                        //客户手机号
-                            calculateIntegral.setReceivableAmt(new BigDecimal(infoMap.get("receivableAmt").toString()));    //应收金额
-
-                            CustomerPoints customerPoints;
-                            //计算积分
-                            CalculateIntegral calculateIntegralInfos;
-                            if(stationInfos.getIntegralRuleFlagGroup().equals("1")){    //表示积分共享
-                                if(stationInfos.getIntegralFlagGroup().equals("1")){    //集团开启积分功能
-                                    //calculateIntegral.setGroupId(stationInfos.getGroupId());
-                                    calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
-                                    //插入客户所得积分
-                                    customerPoints = this.insertUserIntegral(calculateIntegralInfos);
-                                    integral =calculateIntegralInfos.getIntegral();
-                                    //推送积分
-                                    this.pushIntegral(customerPoints, calculateIntegral);
+                                //当前系统主要业务逻辑
+                                CustomerManage customerManage = this.insertCustomerManage(infoMap);                              //插入客户积分返回要插入客户的信息
+                                CalculateIntegral calculateIntegral = new CalculateIntegral();
+                                calculateIntegral.setOrderNo(ordNo);
+                                if(infoMap.containsKey("consumer") && infoMap.get("consumer") !=null){
+                                    calculateIntegral.setNickName(infoMap.get("consumer").toString());
+                                }else {
+                                    calculateIntegral.setNickName("");
                                 }
-                            }else {
-                                if(stationInfos.getIntegralFlag().equals("1")){
-                                    //calculateIntegral.setStationId(stationInfos.getStationId());
-                                    calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
-                                    //插入客户所得积分
-                                    customerPoints = this.insertUserIntegral(calculateIntegralInfos);
-                                    //推送积分
-                                    integral =calculateIntegralInfos.getIntegral();
-                                    this.pushIntegral(customerPoints, calculateIntegral);
+                                calculateIntegral.setGroupId(Integer.valueOf(infoMap.get("groupId").toString()));               //集团ID
+                                calculateIntegral.setCustomerGrade(customerManage.getGrade());                                  //客户等级
+                                calculateIntegral.setIntegralRuleFlag(stationInfos.getIntegralRuleFlagGroup());                 //是否共享积分规则
+                                calculateIntegral.setOpenId(infoMap.get("minaOpenid").toString());                              //客户小程序ID
+                                if(infoMap.containsKey("blogOpenid") && StringUtils.isNotBlank(infoMap.get("blogOpenid").toString())){
+                                    calculateIntegral.setBlogOpenid(infoMap.get("blogOpenid").toString());
+                                }
+                                calculateIntegral.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));           //油站ID
+                                calculateIntegral.setStationName(infoMap.get("stationName").toString());                        //油站名称
+                                calculateIntegral.setAmt(new BigDecimal(infoMap.get("amt").toString()));                        //实收金额
+                                calculateIntegral.setOilType(infoMap.get("oilType").toString());                               //订单类型
+                                calculateIntegral.setOilName(infoMap.get("oilName").toString());                                //油品名称
+                                calculateIntegral.setOilLiters(new BigDecimal(infoMap.get("orderLiters").toString()));          //加油升数
+                                calculateIntegral.setUnionId(infoMap.get("unionId").toString());                                //客户unionId
+                                calculateIntegral.setNickName(infoMap.get("consumer").toString());                              //客户昵称
+                                calculateIntegral.setMobilePhone(infoMap.get("mobilePhone").toString());                        //客户手机号
+                                calculateIntegral.setReceivableAmt(new BigDecimal(infoMap.get("receivableAmt").toString()));    //应收金额
+
+                                CustomerPoints customerPoints;
+                                //计算积分
+                                CalculateIntegral calculateIntegralInfos;
+                                if(stationInfos.getIntegralRuleFlagGroup().equals("1")){    //表示积分共享
+                                    if(stationInfos.getIntegralFlagGroup().equals("1")){    //集团开启积分功能
+                                        //calculateIntegral.setGroupId(stationInfos.getGroupId());
+                                        calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                                        //插入客户所得积分
+                                        customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                                        integral =calculateIntegralInfos.getIntegral();
+                                        //推送积分
+                                        this.pushIntegral(customerPoints, calculateIntegral);
+                                    }
+                                }else {
+                                    if(stationInfos.getIntegralFlag().equals("1")){
+                                        //calculateIntegral.setStationId(stationInfos.getStationId());
+                                        calculateIntegralInfos = this.calculateIntegral(calculateIntegral);
+                                        //插入客户所得积分
+                                        customerPoints = this.insertUserIntegral(calculateIntegralInfos);
+                                        //推送积分
+                                        integral =calculateIntegralInfos.getIntegral();
+                                        this.pushIntegral(customerPoints, calculateIntegral);
 
+                                    }
                                 }
                             }
 
@@ -675,6 +681,7 @@ public class PayController {
                                             payOrder.setIntegral(String.valueOf(integral));
                                             payOrder.setPrintSetting(stationInfos.getPrintSetting());
                                             if(stationDeviceManagerList.get(0).getPosFanoutExchange() !=null && stationDeviceManagerList.get(0).getPosQueue() !=null){
+                                                logger.info("POS设备交换机信息:" + stationDeviceManagerList.get(0).getPosFanoutExchange());
                                                 payOrder.setPosFanoutExchange(stationDeviceManagerList.get(0).getPosFanoutExchange());
                                                 payOrder.setPosQueue(stationDeviceManagerList.get(0).getPosFanoutExchange());
                                                 payOrder.setDeviceNo(stationDeviceManagerList.get(0).getDeviceNo());
@@ -711,8 +718,14 @@ public class PayController {
                         }else{
                             logger.info("该用户无手机号!");
                         }
+                    }else {
+                        logger.info("更新订单状态失败!");
                     }
+                }else {
+                    logger.info("该订单状态不为0!");
                 }
+            }else {
+                logger.info("该订单不存在!");
             }
         }else {
             logger.info("验签失败");

+ 5 - 4
YijiaRestful/src/main/java/com/platform/yijia/dao/StationInfoMapper.java

@@ -1,16 +1,17 @@
 package com.platform.yijia.dao;
 
-import com.platform.yijia.pojo.StationDeviceManager;
-import com.platform.yijia.pojo.StationInfo;
-import com.platform.yijia.pojo.StationInfoExample;
+import com.platform.yijia.pojo.*;
+
 import java.util.List;
 import java.util.Map;
 
-import com.platform.yijia.pojo.StationPic;
 import org.apache.ibatis.annotations.Param;
 
 public interface StationInfoMapper {
 
+    //更新LNG平台加气油站余额
+    void updateStationBalance(StationInfo stationInfo);
+
     //根据小程序ID查询油站列表
     List<StationInfo> getStationListByAppId(StationInfo stationInfo);
 

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

@@ -145,6 +145,15 @@ public class StationInfo {
 
     private String isLngFlag;               //该油站是否为LNG第三方平台商:0,否;1,是;
     private String isLngFlagGroup;          //该集团是否为LNG第三方平台商:0,否;1,是;
+    private Double balance;                 //余额
+
+    public Double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(Double balance) {
+        this.balance = balance;
+    }
 
     public String getIsLngFlag() {
         return isLngFlag;

+ 3 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/StationService.java

@@ -10,6 +10,9 @@ import java.util.Map;
 
 public interface StationService {
 
+    //更新LNG平台加气油站余额
+    void updateStationBalance(StationInfo stationInfo);
+
     //根据小程序获取油站列表
     List<StationInfo> getStationListByAppId(StationInfo stationInfo);
 

+ 5 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/StationServiceImpl.java

@@ -34,6 +34,11 @@ public class StationServiceImpl implements StationService {
         return stationInfoMapper.getStationListByAppId(stationInfo);
     }
 
+    //更新LNG平台加气油站余额
+    @Override
+    public void updateStationBalance(StationInfo stationInfo) {
+        stationInfoMapper.updateStationBalance(stationInfo);
+    }
 
     //获取油站的某个油品的价格和营销方案信息
     @Override

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

@@ -149,6 +149,7 @@
         T1.integral_flag,
         T1.label_flag,
         T1.is_lng_flag,
+        T1.balance,
         T2.card_enabled_flag    AS card_enabled_flag_group,
         T2.card_rule_flag       AS card_rule_flag_group,
         T2.integral_flag        AS integral_flag_group,
@@ -687,4 +688,20 @@
       </if>
     </where>
   </select>
+
+  <!-- 次要业务:LNG平台加气更新油站余额-->
+  <update id="updateStationBalance" parameterType="com.platform.yijia.pojo.StationInfo">
+    UPDATE sys_dept
+    <set>
+      <if test="balance !=null ">
+        balance = #{balance},
+      </if>
+    </set>
+    <where>
+      <if test="stationId != null and stationId !='' ">
+        station_id = #{stationId}
+      </if>
+    </where>
+
+  </update>
 </mapper>