From 812aeac52d3b3dad7235f34fb2ebe1e9e02a04bf Mon Sep 17 00:00:00 2001
From: keivn <shinelonddpro@outlook.com>
Date: Sun, 26 Dec 2021 22:15:49 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../carpool/controller/PCommonController.java | 15 ++++++-
 .../com/ruoyi/carpool/domain/PDriver.java     | 13 ++++++
 .../java/com/ruoyi/carpool/domain/POrder.java | 14 +++++++
 .../ruoyi/carpool/mapper/PCommonMapper.java   |  9 +++++
 .../ruoyi/carpool/mapper/PDriverMapper.java   |  8 ++++
 .../ruoyi/carpool/mapper/POrderMapper.java    |  8 ++++
 .../carpool/service/IPCommonService.java      |  7 ++++
 .../service/impl/IPCommonServiceImpl.java     | 21 ++++++----
 .../service/impl/POrderServiceImpl.java       |  9 ++++-
 .../mapper/carpool/PCommonMapper.xml          |  4 ++
 .../mapper/carpool/PDriverMapper.xml          | 13 +++++-
 .../resources/mapper/carpool/POrderMapper.xml | 40 +++++++++++++++++++
 .../mapper/carpool/PPassengerMapper.xml       |  4 +-
 13 files changed, 153 insertions(+), 12 deletions(-)

diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/controller/PCommonController.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/controller/PCommonController.java
index 29b9f38f1..17da09549 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/controller/PCommonController.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/controller/PCommonController.java
@@ -28,12 +28,25 @@ public class PCommonController {
      * @return
      */
     @PostMapping(value = "/cancelOrder")
-    public AjaxResult getDriverInfo(@RequestBody CommonVO commonVO)
+    public AjaxResult cancelOrder(@RequestBody CommonVO commonVO)
     {
         return pCommonService.cancelOrder(commonVO);
     }
 
 
+    /**
+     * 乘客或者司机关闭订单
+     * @param commonVO
+     * @return
+     */
+    @PostMapping(value = "/finishOrder")
+    public AjaxResult finishOrder(@RequestBody CommonVO commonVO)
+    {
+        return pCommonService.cancelOrder(commonVO);
+    }
+
+
+
 
     /**
      * 乘客申请加入拼单
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/PDriver.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/PDriver.java
index acc95255b..11fe91efd 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/PDriver.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/PDriver.java
@@ -66,6 +66,10 @@ public class PDriver extends BaseEntity
     @Excel(name = "用户当前的状态:0:审核中,1:审核通过,2:禁用")
     private Integer state ;
 
+    /** 当前状态 */
+    @Excel(name = "微信openId")
+    private String openId ;
+
     public void setId(Long id) 
     {
         this.id = id;
@@ -182,6 +186,14 @@ public class PDriver extends BaseEntity
         this.numberPlate = numberPlate;
     }
 
+    public String getOpenId() {
+        return openId;
+    }
+
+    public void setOpenId(String openId) {
+        this.openId = openId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -200,6 +212,7 @@ public class PDriver extends BaseEntity
             .append("updateTime", getUpdateTime())
             .append("state", getState())
             .append("numberPlate", getNumberPlate())
+            .append("OpenId", getOpenId())
             .toString();
     }
 }
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/POrder.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/POrder.java
index a2663b6ef..c53e5e017 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/POrder.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/domain/POrder.java
@@ -98,6 +98,11 @@ public class POrder extends BaseEntity
     @ApiModelProperty(value = "发起者手机号")
     private String createrPhone;
 
+    @Excel(name = "参与者openID")
+    @ApiModelProperty(value = "参与者openID")
+    private String memberOpenId;
+
+
 
     public void setId(Long id) 
     {
@@ -247,6 +252,14 @@ public class POrder extends BaseEntity
         this.createrOpenId = createrOpenId;
     }
 
+    public String getMemberOpenId() {
+        return memberOpenId;
+    }
+
+    public void setMemberOpenId(String memberOpenId) {
+        this.memberOpenId = memberOpenId;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -269,6 +282,7 @@ public class POrder extends BaseEntity
             .append("createrName", getCreaterName())
             .append("CreaterPhone", getCreaterPhone())
             .append("createrOpenId", getCreaterOpenId())
+            .append("memberOpenId", getMemberOpenId())
             .toString();
     }
 }
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PCommonMapper.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PCommonMapper.java
index b47d3e92a..978be83ed 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PCommonMapper.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PCommonMapper.java
@@ -47,6 +47,15 @@ public interface PCommonMapper {
      */
     public int updateOrderState(String orderNum);
 
+
+    /**
+     * 完成订单-取消拼单
+     * @param orderNum
+     * @return
+     */
+    public int updateOrderStateFinsh(String orderNum);
+
+
     /**
      * 司机取消订单-取消拼单
      * @param orderNum
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PDriverMapper.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PDriverMapper.java
index 1df510fd2..a90caebef 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PDriverMapper.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/PDriverMapper.java
@@ -75,4 +75,12 @@ public interface PDriverMapper
      */
     public int agreePDriver(PDriver pDriver);
 
+    /**
+     * 修改司机信息
+     *
+     * @param pDriver 司机信息
+     * @return 结果
+     */
+    public PDriver getDriverInfoByOpenId(String openid);
+
 }
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/POrderMapper.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/POrderMapper.java
index 096a9bf17..caccdac9d 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/POrderMapper.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/mapper/POrderMapper.java
@@ -27,6 +27,14 @@ public interface POrderMapper
      */
     public List<POrder> selectPOrderList(POrder pOrder);
 
+    /**
+     * 查询订单信息列表
+     *
+     * @param pOrder 订单信息
+     * @return 订单信息集合
+     */
+    public List<POrder> selectPOrderListContentMember(POrder pOrder);
+
     /**
      * 新增订单信息
      * 
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/IPCommonService.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/IPCommonService.java
index a83b3ba66..106e9a002 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/IPCommonService.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/IPCommonService.java
@@ -15,6 +15,13 @@ public interface IPCommonService {
     public AjaxResult cancelOrder(CommonVO commonVO);
 
 
+    /**
+     * 完成订单
+     * @param commonVO
+     * @return
+     */
+    public AjaxResult finshOrder(CommonVO commonVO);
+
     /**
      * 审查拼单
      * @param commonVO
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/IPCommonServiceImpl.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/IPCommonServiceImpl.java
index fc63e5b11..dd2a0d305 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/IPCommonServiceImpl.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/IPCommonServiceImpl.java
@@ -1,9 +1,6 @@
 package com.ruoyi.carpool.service.impl;
 
-import com.ruoyi.carpool.domain.CommonVO;
-import com.ruoyi.carpool.domain.PMember;
-import com.ruoyi.carpool.domain.POrder;
-import com.ruoyi.carpool.domain.PPassenger;
+import com.ruoyi.carpool.domain.*;
 import com.ruoyi.carpool.mapper.*;
 import com.ruoyi.carpool.service.IPCommonService;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -34,10 +31,10 @@ public class IPCommonServiceImpl implements IPCommonService {
     private POrderMapper pOrderMapper;
 
     @Autowired
-    private PMemberMapper pMemberMapper;
+    private PPassengerMapper pPassengerMapper;
 
     @Autowired
-    private PPassengerMapper pPassengerMapper;
+    private PDriverMapper pDriverMapper ;
 
 
     @Override
@@ -86,6 +83,12 @@ public class IPCommonServiceImpl implements IPCommonService {
         return AjaxResult.error();
     }
 
+    @Override
+    public AjaxResult finshOrder(CommonVO commonVO) {
+        String orderNum = commonVO.getOrderNum();
+        pCommonMapper.updateOrderStateFinsh(orderNum);
+        return AjaxResult.success();
+    }
 
     @Override
     public AjaxResult joinOrderList(CommonVO commonVO) {
@@ -119,7 +122,11 @@ public class IPCommonServiceImpl implements IPCommonService {
         if(StringUtils.isEmpty(openId)) return AjaxResult.error("请求参数错误,请检查入参是否有误!");
         PPassenger passemger = pPassengerMapper.selectPPassengerByOpenId(openId);
         if(passemger != null){
-            /*TODO 需要判断当前用户是否申请成为看司机 */
+            /*如果已经申请成为看司机则返回diverID*/
+            if("1".equals(passemger.getApplyState())){
+                PDriver driverInfoByOpenId = pDriverMapper.getDriverInfoByOpenId(openId);
+                passemger.setCustId(driverInfoByOpenId.getDriverId());
+            }
             return AjaxResult.success(passemger);
         }else {
             /*系统没有用户,初始化一个乘客信息*/
diff --git a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/POrderServiceImpl.java b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/POrderServiceImpl.java
index 2adbcb680..f2772e005 100644
--- a/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/POrderServiceImpl.java
+++ b/ruiyi-carpool/src/main/java/com/ruoyi/carpool/service/impl/POrderServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.carpool.service.impl;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.ruoyi.carpool.domain.PPassenger;
@@ -49,7 +50,13 @@ public class POrderServiceImpl implements IPOrderService
     @Override
     public List<POrder> selectPOrderList(POrder pOrder)
     {
-        return pOrderMapper.selectPOrderList(pOrder);
+        List<POrder> pOrders = new ArrayList<>();
+        if(StringUtils.isNotEmpty(pOrder.getMemberOpenId())){
+            pOrders = pOrderMapper.selectPOrderListContentMember(pOrder);
+        }else {
+            pOrderMapper.selectPOrderList(pOrder);
+        }
+        return pOrders;
     }
 
 
diff --git a/ruiyi-carpool/src/main/resources/mapper/carpool/PCommonMapper.xml b/ruiyi-carpool/src/main/resources/mapper/carpool/PCommonMapper.xml
index 05e612dac..fc5aee249 100644
--- a/ruiyi-carpool/src/main/resources/mapper/carpool/PCommonMapper.xml
+++ b/ruiyi-carpool/src/main/resources/mapper/carpool/PCommonMapper.xml
@@ -28,6 +28,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         UPDATE p_order SET state = '2' WHERE order_num = #{orderNum}
     </update>
 
+    <update id="updateOrderStateFinsh" parameterType="String" >
+        UPDATE p_order SET state = '1' WHERE order_num = #{orderNum}
+    </update>
+
     <update id="updateOrderIsTake" parameterType="String" >
         UPDATE p_order SET is_take = '0' , driver_id = '' WHERE order_num = #{orderNum}
     </update>
diff --git a/ruiyi-carpool/src/main/resources/mapper/carpool/PDriverMapper.xml b/ruiyi-carpool/src/main/resources/mapper/carpool/PDriverMapper.xml
index 8520c3bf2..bdbb5cc55 100644
--- a/ruiyi-carpool/src/main/resources/mapper/carpool/PDriverMapper.xml
+++ b/ruiyi-carpool/src/main/resources/mapper/carpool/PDriverMapper.xml
@@ -20,10 +20,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="isBlacklist"    column="is_blacklist"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="openId"    column="open_id"    />
     </resultMap>
 
     <sql id="selectPDriverVo">
-        select id, driver_id, name, sex, id_card, age, phone,number_plate,city,state, province, country, is_blacklist, create_time, update_time from p_driver
+        select id, driver_id, name, sex, id_card, age, phone,number_plate,city,state,open_id,province, country, is_blacklist, create_time, update_time from p_driver
     </sql>
 
     <select id="selectPDriverList" parameterType="PDriver" resultMap="PDriverResult">
@@ -67,6 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isBlacklist != null">is_blacklist,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="openId != null and openId != '' ">open_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -84,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isBlacklist != null">#{isBlacklist},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="openId != null and openId != '' ">#{openId},</if>
          </trim>
     </insert>
 
@@ -135,6 +138,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="province != null  and province != ''"> and province = #{province}</if>
             <if test="country != null  and country != ''"> and country = #{country}</if>
             <if test="isBlacklist != null "> and is_blacklist = #{isBlacklist}</if>
+            <if test="openId != null  and openId != '' "> and open_id = #{openId}</if>
         </where>
     </select>
 
@@ -145,4 +149,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         update p_driver SET state = 1 where driver_id = #{driverId}
     </update>
 
+
+    <select id="getDriverInfoByOpenId" parameterType="String" resultMap="PDriverResult">
+        <include refid="selectPDriverVo"/>
+        where open_id = #{openId}
+    </select>
+
+
 </mapper>
\ No newline at end of file
diff --git a/ruiyi-carpool/src/main/resources/mapper/carpool/POrderMapper.xml b/ruiyi-carpool/src/main/resources/mapper/carpool/POrderMapper.xml
index bf13c6044..f6de1ad57 100644
--- a/ruiyi-carpool/src/main/resources/mapper/carpool/POrderMapper.xml
+++ b/ruiyi-carpool/src/main/resources/mapper/carpool/POrderMapper.xml
@@ -53,6 +53,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="createrPhone != null  and createrPhone != ''"> and A.creater_phone = #{createrPhone}</if>
         <if test="createrName != null  and createrName != ''"> and A.creater_name = #{createrName}</if>
     </select>
+
+
+
+    <select id="selectPOrderListContentMember" parameterType="POrder" resultMap="POrderResult">
+        SELECT A.* , B.open_id memberOpenId, C.NAME AS driver_name
+        FROM p_order A
+        LEFT JOIN p_order_member B ON A.order_num = B.order_num
+        LEFT JOIN p_driver C ON A.driver_id = C.driver_id
+        where 1=1
+        <if test="orderNum != null  and orderNum != ''"> and A.order_num = #{orderNum}</if>
+        <if test="departure != null  and departure != ''"> and A.departure = #{departure}</if>
+        <if test="destination != null  and destination != ''"> and A.destination = #{destination}</if>
+        <if test="departureTime != null "> and A.departure_time = #{departureTime}</if>
+        <if test="member != null "> and <![CDATA[ A.member <=  #{member} ]]> </if>
+        <if test="state != null "> and A.state = #{state}</if>
+        <if test="isdelete != null "> and A.isDelete = #{isdelete}</if>
+        <if test="isTake != null "> and A.is_take = #{isTake}</if>
+        <if test="driverName != null "> and  C.name = #{driverName}</if>
+        <if test="memberOpenId != null and memberOpenId != '' "> and  B.open_id = #{memberOpenId}</if>
+        <if test="createUser != null  and createUser != ''"> and A.create_user = #{createUser}</if>
+        <if test="updateUser != null  and updateUser != ''"> and A.update_user = #{updateUser}</if>
+        <if test="driverOpenId != null  and driverOpenId != ''"> and A.driver_open_id = #{driverOpenId}</if>
+        <if test="createrOpenId != null  and createrOpenId != ''"> and A.creater_openid = #{createrOpenId}</if>
+        <if test="createrPhone != null  and createrPhone != ''"> and A.creater_phone = #{createrPhone}</if>
+        <if test="createrName != null  and createrName != ''"> and A.creater_name = #{createrName}</if>
+    </select>
+
+
+
+
+
+    SELECT A.* , B.open_id memberOpenId, C.NAME AS driver_name  FROM p_order A
+    LEFT JOIN p_order_member B ON A.order_num = B.order_num
+    LEFT JOIN p_driver C ON A.driver_id = C.driver_id
+
+
+
+
+
     
     <select id="selectPOrderById" parameterType="Long" resultMap="POrderResult">
         <include refid="selectPOrderVo"/>
@@ -132,6 +171,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="SET" suffixOverrides=",">
             <if test="isTake != null">is_take = #{isTake},</if>
             <if test="driverId != null">driver_id = #{driverId},</if>
+            <if test="driverOpenId != null and  driverOpenId != '' ">driver_open_id = #{driverOpenId},</if>
         </trim>
         where order_num = #{orderNum}
     </update>
diff --git a/ruiyi-carpool/src/main/resources/mapper/carpool/PPassengerMapper.xml b/ruiyi-carpool/src/main/resources/mapper/carpool/PPassengerMapper.xml
index 7c0878680..00e4f0372 100644
--- a/ruiyi-carpool/src/main/resources/mapper/carpool/PPassengerMapper.xml
+++ b/ruiyi-carpool/src/main/resources/mapper/carpool/PPassengerMapper.xml
@@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isBlacklist != null">is_blacklist,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
-            <if test="applyState != null">apply_state,</if>
+            <if test="applyState != null and applyState != '' ">apply_state,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -86,7 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isBlacklist != null">#{isBlacklist},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
-            <if test="applyState != null">#{applyState},</if>
+            <if test="applyState != null and applyState != ''  ">#{applyState},</if>
          </trim>
     </insert>