From 914c5f291dd2981de7d59fbf5abc7ec1c6472b52 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 09 九月 2024 11:44:44 +0800
Subject: [PATCH] 停车缴费列表

---
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java |   39 +++++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml                  |   55 ++++++++++++++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java          |   10 +++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java            |   21 +++++++
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java                      |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java           |    5 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java    |    5 -
 7 files changed, 134 insertions(+), 3 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
index 38121cc..224a867 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/ParkingRecordQuery.java
@@ -5,6 +5,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "停车缴费订单Query")
 public class ParkingRecordQuery extends TimeRangePageQuery {
@@ -18,4 +20,7 @@
     @ApiModelProperty(value = "车牌号")
     private String licensePlate;
 
+    @ApiModelProperty(value = "停车场id集合 前端忽略")
+    private List<Integer> lotIds;
+
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
index b34c051..9718c4c 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingRecordController.java
@@ -55,9 +55,8 @@
 
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "停车缴费订单列表")
     @PostMapping(value = "/pageList")
-    public R<PageInfo<TParkingRecordPageInfoVO>> pageList(@RequestBody ParkingRecordQuery query) {
-
-        return R.ok();
+    public R<TParkingRecordPageInfoVO> pageList(@RequestBody ParkingRecordQuery query) {
+        return R.ok(parkingRecordService.pageList(query));
     }
 
     @ApiOperation(tags = {"后台-订单管理-停车记录"},value = "详情")
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
index 0b4fa13..9a7ab8d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
@@ -8,6 +8,7 @@
 import com.ruoyi.chargingPile.api.vo.SiteDetailVO;
 import com.ruoyi.chargingPile.api.vo.SiteVO;
 import com.ruoyi.common.core.web.page.PageInfo;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -17,6 +18,7 @@
  * @author zhibing.pu
  * @Date 2024/8/7 19:49
  */
+@Mapper
 public interface SiteMapper extends BaseMapper<Site> {
 	
 	
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
index 248c63f..d0b6ced 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
@@ -2,10 +2,15 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import com.ruoyi.chargingPile.api.query.ParkingRecordQuery;
+import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO;
+import com.ruoyi.chargingPile.api.vo.TParkingRecordVO;
+import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.List;
 
 /**
  * <p>
@@ -18,4 +23,20 @@
 public interface TParkingRecordMapper extends BaseMapper<TParkingRecord> {
 
     BigDecimal getSum(@Param("sixBefore") LocalDate sixBefore);
+
+    /**
+     * 停车缴费订单列表
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TParkingRecordVO> pageList(@Param("query") ParkingRecordQuery query, @Param("pageInfo")PageInfo<TParkingRecordVO> pageInfo);
+
+    /**
+     * 统计
+     * @param query
+     * @return
+     */
+    TParkingRecordPageInfoVO getParkingRecordCount(@Param("query")ParkingRecordQuery query);
+
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
index 2af1069..9479008 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import com.ruoyi.chargingPile.api.query.ParkingRecordQuery;
+import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO;
+import com.ruoyi.common.core.web.page.PageInfo;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -17,4 +20,11 @@
 public interface TParkingRecordService extends IService<TParkingRecord> {
 
     BigDecimal getSum(LocalDate sixBefore);
+
+    /**
+     * 停车缴费订单列表
+     * @param query
+     * @return
+     */
+    TParkingRecordPageInfoVO pageList(ParkingRecordQuery query);
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
index 73fccbb..8e6f6e9 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -1,13 +1,28 @@
 package com.ruoyi.chargingPile.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.chargingPile.api.model.Site;
+import com.ruoyi.chargingPile.api.model.TParkingLot;
 import com.ruoyi.chargingPile.api.model.TParkingRecord;
+import com.ruoyi.chargingPile.api.query.ParkingRecordQuery;
+import com.ruoyi.chargingPile.api.vo.TParkingLotVO;
+import com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO;
+import com.ruoyi.chargingPile.api.vo.TParkingRecordVO;
+import com.ruoyi.chargingPile.domain.SiteMenu;
+import com.ruoyi.chargingPile.mapper.SiteMapper;
+import com.ruoyi.chargingPile.mapper.TParkingLotMapper;
 import com.ruoyi.chargingPile.mapper.TParkingRecordMapper;
 import com.ruoyi.chargingPile.service.TParkingRecordService;
+import com.ruoyi.common.core.web.page.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -20,8 +35,32 @@
 @Service
 public class TParkingRecordServiceImpl extends ServiceImpl<TParkingRecordMapper, TParkingRecord> implements TParkingRecordService {
 
+    @Autowired
+    private SiteMapper siteMapper;
+    @Autowired
+    private TParkingLotMapper parkingLotMapper;
+
     @Override
     public BigDecimal getSum(LocalDate sixBefore) {
         return this.baseMapper.getSum(sixBefore);
     }
+
+    @Override
+    public TParkingRecordPageInfoVO pageList(ParkingRecordQuery query) {
+        // 查询站点的停车场id
+        if(Objects.nonNull(query.getSiteId())){
+            Site site = siteMapper.selectById(query.getSiteId());
+            List<TParkingLot> tParkingLots = parkingLotMapper.selectList(Wrappers.lambdaQuery(TParkingLot.class)
+                    .eq(TParkingLot::getSiteId, site.getId()));
+            List<Integer> lotIds = tParkingLots.stream().map(TParkingLot::getId).collect(Collectors.toList());
+            query.setLotIds(lotIds);
+        }
+        PageInfo<TParkingRecordVO> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize());
+        List<TParkingRecordVO> list = this.baseMapper.pageList(query,pageInfo);
+        pageInfo.setRecords(list);
+        // 查询总数
+        TParkingRecordPageInfoVO infoVO = this.baseMapper.getParkingRecordCount(query);
+        infoVO.setParkingRecordVOS(pageInfo);
+        return infoVO;
+    }
 }
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
index defbedf..3bc729d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -17,6 +17,7 @@
         <result column="status" property="status" />
         <result column="out_parking_type" property="outParkingType" />
         <result column="create_time" property="createTime" />
+        <result column="code" property="code" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
@@ -26,5 +27,59 @@
     <select id="getSum" resultType="java.math.BigDecimal">
         select sum(timeout_amount) from t_parking_record where   in_parking_time >= #{sixBefore}
     </select>
+    <select id="pageList" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordVO">
+        select
+        tpr.id, tpr.app_user_id, tpr.license_plate, tpr.vehicle_color, tpr.charging_order_id, tpr.parking_lot_id, tpr.in_parking_time, tpr.out_parking_time,
+        tpr.parking_duration, tpr.order_amount, tpr.status, tpr.out_parking_type, tpr.create_time,(tpr.order_amount - tpr.timeout_amount) as parkingFee,
+        (tpr.parking_duration - tpr.free_duration) as feeDuration,ts.name as siteName
+        from t_parking_record tpr
+        left join t_parking_lot tpl on tpr.parking_lot_id = tpl.id
+        left join t_site ts on tpl.site_id = ts.id
+        <where>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND tpr.create_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.code != null and query.code != ''">
+                AND tpr.code LIKE concat('%',#{query.code},'%')
+            </if>
+            <if test="query.licensePlate != null and query.licensePlate != ''">
+                AND tpr.licensePlate LIKE concat('%',#{query.licensePlate},'%')
+            </if>
+            <if test="query.lotIds != null and query.lotIds.size()>0">
+                AND tpr.parking_lot_id IN
+                <foreach collection="query.lotIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            AND tpr.status = 3
+        </where>
+        ORDER BY tpr.create_time DESC
+    </select>
+    <select id="getParkingRecordCount" resultType="com.ruoyi.chargingPile.api.vo.TParkingRecordPageInfoVO">
+        SELECT count(id) as orderCount,
+               sum(timeout_amount) as timeoutAmountSum,
+               sum(parking_duration - free_duration) as feeDurationSum,
+               sum(parking_duration) as parkingDurationSum
+        from t_parking_record
+        <where>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND create_time BETWEEN #{query.startTime} AND #{query.endTime}
+            </if>
+            <if test="query.code != null and query.code != ''">
+                AND code LIKE concat('%',#{query.code},'%')
+            </if>
+            <if test="query.licensePlate != null and query.licensePlate != ''">
+                AND licensePlate LIKE concat('%',#{query.licensePlate},'%')
+            </if>
+            <if test="query.lotIds != null and query.lotIds.size()>0">
+                AND parking_lot_id IN
+                <foreach collection="query.lotIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            AND status = 3
+        </where>
+        ORDER BY create_time DESC
+    </select>
 
 </mapper>

--
Gitblit v1.7.1