jk-GitHub-coder 4 anni fa
parent
commit
e08ada31ad

+ 38 - 29
YijiaRestful/src/main/java/com/platform/yijia/controller/PayController.java

@@ -478,43 +478,52 @@ public class PayController {
                         req.put("msg","修改订单状态成功");
                         logger.info(req.toString());
 
-                        //将用户消费的信息插入顾客表
-                        Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);
+                        //将用户消费的信息插入顾客表 以手机号 油品名称 油站id为条件插入且存入 加油升数、实收金额、油站名称  根据订单号查询用户手机号
+                        Map<String, Object> infoMap = payOrderService.getOrderInfoAndUserInfoByOrderNo(payOrder);   //获取该订单手机号、加油升数、实收金额、油站名称
                         //手机号必须有
                         if(infoMap != null && infoMap.containsKey("mobilePhone") && infoMap.get("mobilePhone") !=null ){
                             //存放客户信息
                             CustomerManage customerManage = new CustomerManage();
-                            String userType = infoMap.get("userType").toString();
+                            //存放查询用户信息
+                            AppUserInfo appUserInfo = new AppUserInfo();
+                            appUserInfo.setMobilePhone(infoMap.get("mobilePhone").toString());
+                            //从客户信息表查询数据用于插入客户表 使用List原因:app_user_info存在小程序和公众号两种信息
+                            List<AppUserInfo> appUserInfoList = payOrderService.getUserInfoByOpenId(appUserInfo);
                             Date blogRegTime = null;    //公众号注册时间
                             Date minaRegTime = null;    //小程序注册时间
-                            switch (userType){
-                                case "1":
-                                    customerManage.setBlogOpenid(infoMap.get("blogOpenid").toString());
-                                    customerManage.setBlogUserId((Integer) infoMap.get("userId"));
-                                    customerManage.setPhoneNumber(infoMap.get("mobilePhone").toString());
-                                    blogRegTime = (Date) infoMap.get("registeDate");
-                                    break;
-                                case "2":
-                                    customerManage.setMinaOpenid(infoMap.get("minaOpenid").toString());
-                                    customerManage.setMinaUserId((Integer) infoMap.get("userId"));
-                                    customerManage.setPhoneNumber(infoMap.get("mobilePhone").toString());
-                                    minaRegTime = (Date) infoMap.get("registeDate");
-                                    break;
-                            }
-                            //判断公众号和小程序时间取最早的时间
-                            if(blogRegTime !=null && minaRegTime != null){
-                                if(blogRegTime.compareTo(minaRegTime) >0){
+                            if(appUserInfoList != null && appUserInfoList.size() >0){
+                                for(AppUserInfo u : appUserInfoList){
+                                    //向客户表插入小程序和公众号的openId 用户表ID 用户手机号 注册时间
+                                    switch (u.getUserType()){
+                                        case "1":
+                                            customerManage.setBlogOpenid(u.getBlogOpenid());
+                                            customerManage.setBlogUserId(u.getUserId());
+                                            customerManage.setPhoneNumber(u.getMobilePhone());
+                                            blogRegTime =u.getRegisteDate();
+                                            break;
+                                        case "2":
+                                            customerManage.setMinaOpenid(u.getMinaOpenid());
+                                            customerManage.setMinaUserId(u.getUserId());
+                                            customerManage.setPhoneNumber(u.getMobilePhone());
+                                            minaRegTime = u.getRegisteDate();
+                                            break;
+                                    }
+                                }
+                                //判断公众号和小程序时间取最早的时间
+                                if(blogRegTime !=null && minaRegTime != null){
+                                    if(blogRegTime.compareTo(minaRegTime) >0){
+                                        customerManage.setRegtime(minaRegTime);
+                                    }else if(blogRegTime.compareTo(minaRegTime) <0){
+                                        customerManage.setRegtime(blogRegTime);
+                                    }else if(blogRegTime.compareTo(minaRegTime) ==0){
+                                        //相等时随便取一个
+                                        customerManage.setRegtime(minaRegTime);
+                                    }
+                                }else if(blogRegTime == null){
                                     customerManage.setRegtime(minaRegTime);
-                                }else if(blogRegTime.compareTo(minaRegTime) <0){
+                                }else if(minaRegTime == null){
                                     customerManage.setRegtime(blogRegTime);
-                                }else if(blogRegTime.compareTo(minaRegTime) ==0){
-                                    //相等时随便取一个
-                                    customerManage.setRegtime(minaRegTime);
                                 }
-                            }else if(blogRegTime == null){
-                                customerManage.setRegtime(minaRegTime);
-                            }else if(minaRegTime == null){
-                                customerManage.setRegtime(blogRegTime);
                             }
                             customerManage.setStationId(Integer.valueOf(infoMap.get("stationId").toString()));    //油站ID
                             customerManage.setOilName(infoMap.get("oilName").toString());    //油品名称
@@ -538,7 +547,7 @@ public class PayController {
                                 }else {
                                     customerManage.setLiters(BigDecimal.valueOf((Double) infoMap.get("orderLiters")));
                                 }
-                                logger.info("存在客户 更新时参数: " + customerManage.getPhoneNumber());
+                                logger.info("存在客户 更新时手机号参数: " + customerManage.getPhoneNumber());
                                 //存在 更新
                                 payOrderService.updateCustomer(customerManage);
                             }else{

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

@@ -22,6 +22,9 @@ public interface PayOrderService {
      //根据订单号查询
      PayOrder searchPayOrder(Integer orderId);
 
+     //根据手机号查询用户信息
+    List<AppUserInfo> getUserInfoByOpenId(AppUserInfo appUserInfo);
+
     /*
      * 根据订单号查询订单信息和用户信息  注:此方法在随行付回调校验之后修改状态完成后
      * @param payOrder

+ 6 - 0
YijiaRestful/src/main/java/com/platform/yijia/service/impl/PayOrderServiceImpl.java

@@ -191,6 +191,12 @@ public class PayOrderServiceImpl implements PayOrderService {
         return payOrder;
     }
 
+    //根据手机号查询用户信息
+    @Override
+    public List<AppUserInfo> getUserInfoByOpenId(AppUserInfo appUserInfo) {
+        return payOrderMapper.getUserInfoByOpenId(appUserInfo);
+    }
+
     /*
      * 根据订单号查询订单信息和用户信息  注:此方法在随行付回调校验之后修改状态完成后
      * @param payOrder

+ 6 - 17
YijiaRestful/src/main/resources/mapper/PayOrderMapper.xml

@@ -688,11 +688,7 @@
         A.order_liters 			AS orderLiters,
         A.amt 					AS amt,
         B.user_type 			AS userType,
-        B.blog_openid			AS blogOpenid,
-        B.mina_openid			AS minaOpenid,
-        B.mobile_phone			AS mobilePhone,
-        B.user_id				AS userId,
-        B.registe_date			AS registeDate
+        B.mobile_phone			AS mobilePhone
     FROM
         pay_order AS A
     LEFT JOIN app_user_info AS B ON A.consumer_id = B.user_id
@@ -736,18 +732,11 @@
         user_type 	     AS userType
     FROM
         app_user_info
-    WHERE
-        mobile_phone = (
-            SELECT mobile_phone FROM app_user_info
-            <where>
-                <if test="blogOpenid !=null and blogOpenid !='' ">
-                    blog_openid = #{blogOpenid}
-                </if>
-                <if test="minaOpenid !=null and minaOpenid !='' ">
-                    mina_openid = #{minaOpenid}
-                </if>
-            </where>
-        )
+    <where>
+        <if test="mobilePhone !=null and mobilePhone !='' ">
+          mobile_phone = #{mobilePhone}
+        </if>
+    </where>
   </select>