浏览代码

停车场手机管理端:停车缴费相关接口

chenwen 3 年之前
父节点
当前提交
db80b6ad3c

+ 39 - 0
src/main/java/com/charging/chargingparking/mapper/mobile/ParkingChargeMapper.java

@@ -0,0 +1,39 @@
+package com.charging.chargingparking.mapper.mobile;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+public interface ParkingChargeMapper {
+
+	/**
+	 * 分页查询停车费用
+	 * @param searchParams
+	 * @param page
+	 * @return
+	 */
+	IPage<Map<String,Object>> queryParkingCharge(Map<String,Object> searchParams,IPage<Map<String,Object>> page);
+	
+	/**
+	 * 根据停车记录查询所有缴费记录
+	 * @param parkingLogId
+	 * @return
+	 */
+	List<Map<String,Object>> loadChargeByParkingLog(String parkingLogId);
+	
+	/**
+	 * 获取某个停车场的收费规则
+	 * @param parkingId
+	 * @return
+	 */
+	Map<String,Object>  getParkSiteChargeRule(String parkingId);
+	
+	/**
+	 * 获取某个停车场的其它收费规则
+	 * @param parkingId
+	 * @return
+	 */
+	List<Map<String,Object>> loadParkSiteChargeRuleOth(String parkingId);
+
+}

+ 69 - 0
src/main/java/com/charging/chargingparking/modules/mobileController/ParkingChargeController.java

@@ -0,0 +1,69 @@
+package com.charging.chargingparking.modules.mobileController;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.validation.constraints.NotBlank;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.charging.chargingparking.modules.mobileservice.ParkingChargeService;
+import com.charging.chargingparking.utils.DateUtil;
+import com.charging.chargingparking.utils.RespVO;
+import com.charging.chargingparking.utils.RespVOBuilder;
+
+@RestController
+@Validated
+@RequestMapping("/mobileApi/charge")
+public class ParkingChargeController {
+
+	@Autowired
+	private ParkingChargeService  service;
+	
+	/**
+	 * 分页查询缴费记录
+	 * @param parkingIds
+	 * @param carNum
+	 * @param chargeStart
+	 * @param chargeEnd
+	 * @param pageNum
+	 * @param pageSize
+	 * @return
+	 */
+	@RequestMapping("/query")
+	public RespVO  query(@NotBlank(message="停车场编号不能为空") String parkingIds,String carNum,String chargeStart,String chargeEnd,@RequestParam(value="pageNum",defaultValue="1") int pageNum,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize) {
+		
+		Date dateObj=DateUtil.parse(chargeStart,"yyyy-MM-dd");
+		if(dateObj==null) {
+			chargeStart=DateUtil.format(new Date(), "yyyy-MM-dd");
+		}
+		dateObj=DateUtil.parse(chargeEnd,"yyyy-MM-dd");
+		if(dateObj==null) {
+			chargeEnd=DateUtil.format(new Date(), "yyyy-MM-dd");
+		}
+		Map<String,Object> searchParams=new HashMap<String,Object>();
+		searchParams.put("carNum", carNum);
+		searchParams.put("chargeStart", chargeStart);
+		searchParams.put("chargeEnd", chargeEnd);
+		searchParams.put("parkingIds",parkingIds);
+		
+		return RespVOBuilder.ok(service.queryChargeLog(searchParams, pageNum, pageSize));
+	}
+	
+	/**
+	 * 根据停车记录查询所有缴费记录
+	 * @param parkingLogId
+	 * @return
+	 */
+	@RequestMapping("/loadByParkingLog")
+	public RespVO  loadByParkingLog(@NotBlank(message="停车记录号不能为空") String parkingLogId) {
+		return RespVOBuilder.ok(service.loadChargeByParkingLog(parkingLogId));
+	}
+	
+}

+ 44 - 0
src/main/java/com/charging/chargingparking/modules/mobileservice/ParkingChargeService.java

@@ -0,0 +1,44 @@
+package com.charging.chargingparking.modules.mobileservice;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+public interface ParkingChargeService {
+
+	/**
+	 * 分页查询收费记录(交过费用的记录)
+	 * @param searchParams
+	 * @param pageNumber
+	 * @param pageSize
+	 * @return
+	 */
+	IPage<Map<String,Object>> queryChargeLog(Map<String, Object> searchParams, int pageNumber, int pageSize);
+	
+	
+	/**
+	 * 根据停车记录查询所有缴费记录
+	 * @param parkingLogId
+	 * @return
+	 */
+	List<Map<String,Object>> loadChargeByParkingLog(String parkingLogId);
+	
+	
+	/**
+	 * 获取某个停车场的收费规则
+	 * @param parkSiteId
+	 * @return
+	 */
+	Map<String,Object>  getChargeRule(String parkSiteId);
+	
+	/**
+	 * 获取某个停车场的其它收费规则
+	 * @param parkSiteId
+	 * @return
+	 */
+	List<Map<String,Object>> loadChargeRuleOth(String parkSiteId);
+	
+	
+	
+}

+ 45 - 0
src/main/java/com/charging/chargingparking/modules/mobileservice/impl/ParkingChargeServiceImp.java

@@ -0,0 +1,45 @@
+package com.charging.chargingparking.modules.mobileservice.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.charging.chargingparking.mapper.mobile.ParkingChargeMapper;
+import com.charging.chargingparking.modules.mobileservice.ParkingChargeService;
+
+@Service
+@Transactional(readOnly = true)
+public class ParkingChargeServiceImp implements ParkingChargeService {
+
+	@Autowired
+	private ParkingChargeMapper  mapper;
+
+	@Override
+	public IPage<Map<String, Object>> queryChargeLog(Map<String, Object> searchParams, int pageNumber,
+			int pageSize) {
+		Page<Map<String, Object>> page = new Page<>();
+        page.setCurrent(pageNumber);
+        page.setSize(pageSize);
+        return mapper.queryParkingCharge(searchParams, page);
+	}
+
+	@Override
+	public List<Map<String, Object>> loadChargeByParkingLog(String parkingLogId) {
+		return mapper.loadChargeByParkingLog(parkingLogId);
+	}
+
+	@Override
+	public Map<String, Object> getChargeRule(String parkSiteId) {
+		return mapper.getParkSiteChargeRule(parkSiteId);
+	}
+
+	@Override
+	public List<Map<String, Object>> loadChargeRuleOth(String parkSiteId) {
+		return mapper.loadParkSiteChargeRuleOth(parkSiteId);
+	}
+}

+ 64 - 0
src/main/resources/mapper/api/ParkingChargeMapper.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.charging.chargingparking.mapper.mobile.ParkingChargeMapper">
+    
+    <!-- 查询缴费记录(无论车是否已出场,暂无缴费记录的不检索) -->
+    <select id="queryParkingCharge" parameterType="hashmap" resultType="java.util.HashMap">
+    
+    	select  TIMESTAMPDIFF(MINUTE,in_parking_time,sysdate()) cal_parking_time, in_parking_time,out_parking_time,
+		parking_time,total_amount,release_status,paytab.pay_amount,paytab.pay_name,paytab.pay_date
+		from base_parking_record pr
+		inner join (
+		select parking_record_id,date_format(pay_time,'%Y-%m-%d') pay_date,sum(pay_amount) pay_amount,max(pay_name) pay_name from base_parking_pay pp where pp.del_flag=false and pay_status=20
+		group by parking_record_id,date_format(pay_time,'%Y-%m-%d')
+		) paytab  on pr.id=paytab.parking_record_id
+		
+		where pr.del_flag=false
+		
+		<if test="searchParams.carNum!=null">
+		    and pr.park_id in 
+			<foreach collection="parkingIds" item="id" index="index" open="(" close=")" separator=",">
+	           #{id}
+	       </foreach>
+		</if>
+		
+	
+		<if test="searchParams.carNum!=null">
+			and pr.car_num like #{searchParams.carNum}
+		</if>
+		
+		<if test="searchParams.chargeStart!=null">
+			<![CDATA[ and pay_date >= #{searchParams.chargeStart} ]]>
+		</if>
+		
+		<if test="searchParams.chargeEnd!=null">
+			<![CDATA[ and pay_date <= #{searchParams.chargeEnd} ]]>
+		</if>
+		
+    </select>
+    
+    <!-- 根据停车记录查询所有缴费记录 -->
+    <select id="loadChargeByParkingLog" resultType="java.util.HashMap">
+    	select parking_record_id,date_format(pay_time,'%Y-%m-%d %H:%i:%s') pay_time,pay_amount,pay_name 
+    	from base_parking_pay pp 
+    	where pp.del_flag=false and pay_status=20
+    	and parking_record_id=#{0}
+	</select>
+	
+	<!-- 获取某个停车场的收费规则 -->
+	<select id="getParkSiteChargeRule" resultType="java.util.HashMap">
+		select free_duration,new_energy_free_duration,hour_cost,new_energy_hour_cost,day_capping_cost
+		from base_parking_fee
+		where del_flag=false and park_id=#{0}
+	</select>
+	
+	<!-- 获取某个停车场的其它收费规则 -->
+	<select id="loadParkSiteChargeRuleOth" resultType="java.util.HashMap">
+		select *
+		from base_parking_fee_sub 
+		where del_flag=false and park_id=#{0}
+	</select>
+    
+</mapper>