Jelajahi Sumber

停车记录分页查询

zhupeng 3 tahun lalu
induk
melakukan
4ef7a19f02

+ 3 - 0
src/main/java/com/charging/chargingparking/entity/ParkingRecord.java

@@ -185,6 +185,9 @@ public class ParkingRecord implements Serializable {
      */
     private String releaseStatus = "0";
 
+    @TableField(exist = false)
+    private String parkName;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 4 - 0
src/main/java/com/charging/chargingparking/mapper/ParkingPayMapper.java

@@ -1,11 +1,14 @@
 package com.charging.chargingparking.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingPay;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.charging.chargingparking.modules.common.dto.Sort;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,6 +19,7 @@ public interface ParkingPayMapper extends BaseMapper<ParkingPay> {
 
 
     ParkingPay findOneByParam(@Param("searchParams") Map<String,Object> searchParams);
+    List<ParkingPay> search(Map<String, Object> searchParams, List<Sort> sortList);
 }
 
 

+ 6 - 1
src/main/java/com/charging/chargingparking/mapper/ParkingRecordMapper.java

@@ -1,15 +1,20 @@
 package com.charging.chargingparking.mapper;
 
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingRecord;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.charging.chargingparking.modules.common.dto.Sort;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Entity com.charging.chargingparking.entity.ParkingRecord
  */
 @Repository
 public interface ParkingRecordMapper extends BaseMapper<ParkingRecord> {
-
+    List<ParkingRecord> search(Map<String, Object> searchParams, List<Sort> sortList);
 }
 
 

+ 116 - 4
src/main/java/com/charging/chargingparking/modules/backController/BackParkingRecordController.java

@@ -3,14 +3,23 @@ package com.charging.chargingparking.modules.backController;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.charging.chargingparking.dto.MessageResult;
+import com.charging.chargingparking.dto.PojoUtils;
+import com.charging.chargingparking.entity.ParkingInfo;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingRecord;
+import com.charging.chargingparking.modules.common.dto.Sort;
+import com.charging.chargingparking.service.ParkingInfoService;
 import com.charging.chargingparking.service.ParkingRecordService;
+import com.charging.chargingparking.utils.StringUtils;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -22,9 +31,30 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/backParkingRecord")
 public class BackParkingRecordController {
 
+    @Autowired
+    private ParkingInfoService parkingInfoService;
+
     @Autowired
     private ParkingRecordService parkingRecordService;
 
+    @PostMapping("parkingInfoList")
+    public MessageResult<Object> parkingInfoList(){
+        MessageResult<Object> messageResult = new MessageResult<>();
+
+        try{
+            List<ParkingInfo> lst =  parkingInfoService.list();
+
+            messageResult.setData(lst);
+            messageResult.setResult(true);
+
+        }catch (Exception ex){
+            log.error(ex.getMessage(),ex);
+            messageResult.setResult(false);
+        }
+
+        return messageResult;
+    }
+
     @PostMapping("parkingRecordList")
     public MessageResult<Object> parkingRecordList(String parkingName, @RequestParam Integer pageSize, @RequestParam Integer pageIndex) {
 
@@ -45,4 +75,86 @@ public class BackParkingRecordController {
 
         return messageResult;
     }
+
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
+    public MessageResult<Map> pageList(
+            String carNum, String parkId, String inParkingTimeStart,String inParkingTimeEnd,
+            String outParkingTimeStart, String outParkingTimeEnd,
+            String status,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            @RequestAttribute String subject) {
+
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String, Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("a.create_time", "desc"));
+
+        if (StringUtils.isNotEmpty(carNum)) {
+            searchParams.put("carNum", "%" + carNum + "%");
+        }
+        if (StringUtils.isNotEmpty(parkId)) {
+            searchParams.put("parkId",  parkId );
+        }
+
+        if (StringUtils.isNotEmpty(status)) {
+            searchParams.put("status", status);
+        }
+        if(StringUtils.isNotEmpty(inParkingTimeStart))
+        {
+            searchParams.put("inParkingTimeStart",inParkingTimeStart);
+        }
+        if(StringUtils.isNotEmpty(inParkingTimeEnd))
+        {
+            searchParams.put("inParkingTimeEnd",inParkingTimeEnd);
+        }
+        if(StringUtils.isNotEmpty(outParkingTimeStart))
+        {
+            searchParams.put("outParkingTimeStart",outParkingTimeStart);
+        }
+        if(StringUtils.isNotEmpty(outParkingTimeEnd))
+        {
+            searchParams.put("outParkingTimeEnd",outParkingTimeEnd);
+        }
+/*
+        if (StringUtils.isNotEmpty(rangeDate)) {
+            String[] timeRangeArray = rangeDate.split(",");
+            String startTime = "";
+            String endTime = "";
+            if (timeRangeArray.length == 1) {
+                startTime = timeRangeArray[0];
+                startTime += " 00:00:00";
+            } else if (timeRangeArray.length == 2) {
+                startTime = timeRangeArray[0];
+                endTime = timeRangeArray[1];
+                startTime += " 00:00:00";
+                endTime += " 23:59:59";
+            }
+
+            searchParams.put("startTime", startTime);
+            searchParams.put("endTime", endTime);
+        }
+
+*/
+        com.github.pagehelper.Page<ParkingRecord> page = parkingRecordService.pageSearch(searchParams, pageIndex, pageSize, sortList);
+
+        for (ParkingRecord parkingMember : page) {
+            ParkingInfo parkingInfo = parkingInfoService.getById(parkingMember.getParkId());
+            if (parkingInfo != null) {
+                parkingMember.setParkName(parkingInfo.getParkingName());
+            }
+        }
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
 }

+ 6 - 0
src/main/java/com/charging/chargingparking/service/ParkingPayService.java

@@ -1,11 +1,15 @@
 package com.charging.chargingparking.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingPay;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.charging.chargingparking.modules.common.dto.Sort;
+import com.github.pagehelper.Page;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -16,4 +20,6 @@ public interface ParkingPayService extends IService<ParkingPay> {
     void saveAndUpdateRecord(String outTradeNo, Date payTime, BigDecimal buyerPayAmount,String openId,String transactionNo,String payName) throws Exception;
 
     ParkingPay findOneByParam(Map<String,Object> map);
+
+    Page<ParkingPay> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList);
 }

+ 6 - 0
src/main/java/com/charging/chargingparking/service/ParkingRecordService.java

@@ -2,9 +2,13 @@ package com.charging.chargingparking.service;
 
 import com.charging.chargingparking.dto.AlarmInfoPlate;
 import com.charging.chargingparking.dto.ParkingDetailDTO;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingRecord;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.charging.chargingparking.modules.common.dto.Sort;
+import com.github.pagehelper.Page;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -17,4 +21,6 @@ public interface ParkingRecordService extends IService<ParkingRecord> {
     ParkingDetailDTO getParkDetail(String channelId) throws Exception;
 
     ParkingDetailDTO carPayDetail(String carNum, String parkId) throws Exception;
+
+    Page<ParkingRecord> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList);
 }

+ 14 - 0
src/main/java/com/charging/chargingparking/service/impl/ParkingPayServiceImpl.java

@@ -2,17 +2,22 @@ package com.charging.chargingparking.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingPay;
 import com.charging.chargingparking.entity.ParkingRecord;
+import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.service.ParkingPayService;
 import com.charging.chargingparking.mapper.ParkingPayMapper;
 import com.charging.chargingparking.service.ParkingRecordService;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -60,6 +65,15 @@ public class ParkingPayServiceImpl extends ServiceImpl<ParkingPayMapper, Parking
     public ParkingPay findOneByParam(Map<String,Object> map) {
         return parkingPayMapper.findOneByParam(map);
     }
+
+
+    @Override
+    public Page<ParkingPay> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList) {
+        Page<ParkingPay> page = PageHelper.startPage(pageNumber,pageSize).doSelectPage(()->{
+            parkingPayMapper.search(searchParams,sortList);
+        });
+        return page;
+    }
 }
 
 

+ 16 - 0
src/main/java/com/charging/chargingparking/service/impl/ParkingRecordServiceImpl.java

@@ -12,12 +12,17 @@ import com.charging.chargingparking.constant.ParkingConstant;
 import com.charging.chargingparking.dto.*;
 import com.charging.chargingparking.entity.ParkingChannel;
 import com.charging.chargingparking.entity.ParkingInfo;
+import com.charging.chargingparking.entity.ParkingMember;
 import com.charging.chargingparking.entity.ParkingRecord;
+import com.charging.chargingparking.mapper.ParkingPayMapper;
+import com.charging.chargingparking.modules.common.dto.Sort;
 import com.charging.chargingparking.modules.pay.properties.WxPayProperties;
 import com.charging.chargingparking.service.*;
 import com.charging.chargingparking.mapper.ParkingRecordMapper;
 import com.charging.chargingparking.utils.FileUtil;
 import com.charging.chargingparking.utils.StringUtils;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -26,6 +31,7 @@ import javax.xml.ws.Response;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Service
@@ -54,6 +60,8 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
     @Autowired
     private StringUtils stringUtils;
 
+    @Autowired
+    private ParkingRecordMapper parkingRecordMapper;
 
     @Override
     public Map<String, Object> plateRecord(AlarmInfoPlate alarmInfoPlate) throws Exception {
@@ -337,6 +345,14 @@ public class ParkingRecordServiceImpl extends ServiceImpl<ParkingRecordMapper, P
 
         return parkingDetailDTO;
     }
+
+    @Override
+    public Page<ParkingRecord> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList) {
+        Page<ParkingRecord> page = PageHelper.startPage(pageNumber,pageSize).doSelectPage(()->{
+            parkingRecordMapper.search(searchParams,sortList);
+        });
+        return page;
+    }
 }
 
 

+ 31 - 0
src/main/resources/mapper/ParkingPayMapper.xml

@@ -54,4 +54,35 @@
         </where>
             limit 1
     </select>
+
+
+    <select id="search" parameterType="hashmap" resultMap="BaseResultMap">
+        <![CDATA[
+			select * from base_parking_member a
+			inner join base_parking_info b on a.park_id = b.id
+		]]>
+        where a.del_flag=false and b.del_flag=false
+        <if test="searchParams.parkName != null">
+            and b.parking_name like #{searchParams.parkName}
+        </if>
+        <if test="searchParams.memberCarNum != null">
+            and a.member_car_num = #{searchParams.memberCarNum}
+        </if>
+        <if test="searchParams.cloudDelFlag != null">
+            and a.cloud_del_flag = #{searchParams.cloudDelFlag}
+        </if>
+        <if test="searchParams.startTime != null">
+            <![CDATA[
+                  and a.member_start_time >= #{searchParams.startTime}
+            ]]>
+        </if>
+        <if test="searchParams.endTime != null">
+            <![CDATA[
+                  and a.member_start_time <= #{searchParams.endTime}
+            ]]>
+        </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
 </mapper>

+ 58 - 0
src/main/resources/mapper/ParkingRecordMapper.xml

@@ -53,4 +53,62 @@
         in_channel,out_channel_id,out_channel,
         in_image,out_image,in_fragment_image,out_fragment_image,out_parking_time,release_status
     </sql>
+
+    <select id="search" parameterType="hashmap" resultMap="BaseResultMap">
+        <![CDATA[
+			select * from base_parking_record a
+		]]>
+        where a.del_flag=false
+        <if test="searchParams.carNum != null">
+            and a.car_num like #{searchParams.carNum}
+        </if>
+        <if test="searchParams.parkId != null">
+            and a.park_id = #{searchParams.parkId}
+        </if>
+        <if test="searchParams.status != null">
+            and a.release_status = #{searchParams.status}
+        </if>
+        <if test="searchParams.startTime != null">
+            <![CDATA[
+                  and a.in_parking_time >= #{searchParams.startTime}
+            ]]>
+        </if>
+        <if test="searchParams.inParkingTimeEnd != null">
+            <![CDATA[
+                  and a.in_parking_time <= #{searchParams.inParkingTimeEnd}
+            ]]>
+        </if>
+        <if test="searchParams.outParkingTimeStart != null">
+            <![CDATA[
+                  and a.out_parking_time >= #{searchParams.outParkingTimeStart}
+            ]]>
+        </if>
+        <if test="searchParams.outParkingTimeEnd != null">
+            <![CDATA[
+                  and a.out_parking_time <= #{searchParams.outParkingTimeEnd}
+            ]]>
+        </if>
+    <!--
+        <if test="searchParams.carNum != null">
+            and a.carNum like #{searchParams.parkName}
+        </if>
+
+        <if test="searchParams.cloudDelFlag != null">
+            and a.cloud_del_flag = #{searchParams.cloudDelFlag}
+        </if>
+        <if test="searchParams.startTime != null">
+            <![CDATA[
+                  and a.member_start_time >= #{searchParams.startTime}
+            ]]>
+        </if>
+        <if test="searchParams.endTime != null">
+            <![CDATA[
+                  and a.member_start_time <= #{searchParams.endTime}
+            ]]>
+        </if>
+        -->
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
 </mapper>