Browse Source

停车场管理手机端:调整收费列表查询接口、增加手动放行日志记录

chenwen 3 years ago
parent
commit
37f62d7dca

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

@@ -8,6 +8,13 @@ import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 public interface ParkingChargeMapper {
+	
+	/**
+	 * 查询缴费合计  按天合计
+	 * @param searchParams
+	 * @return
+	 */
+	Map<String,Object>  queryParkingChargeDaySum(Map<String,Object> params);
 
 	/**
 	 * 分页查询停车费用
@@ -17,6 +24,8 @@ public interface ParkingChargeMapper {
 	 */
 	IPage<Map<String,Object>> queryParkingCharge(Map<String,Object> searchParams,IPage<Map<String,Object>> page);
 	
+	
+	
 	/**
 	 * 根据停车记录查询所有缴费记录
 	 * @param parkingLogId

+ 2 - 0
src/main/java/com/charging/chargingparking/mapper/mobile/ParkingSiteMapper.java

@@ -22,4 +22,6 @@ public interface ParkingSiteMapper {
 	Map<String, Object> getOutChannel(String parkingId);
 	
 	Map<String, Object> get(String parkingId);
+	
+	boolean addManualOpenRecord(Map<String,Object> record);
 }

+ 3 - 4
src/main/java/com/charging/chargingparking/modules/mobileController/MobileAuthController.java

@@ -64,16 +64,15 @@ public class MobileAuthController {
 		if(us==null||us.size()==0) {
 			return RespVOBuilder.error("非系统内的用户");
 		}
-		
 		String refVerifyCode=verifyCoder.getFromSession(phoneNum);
 		if(refVerifyCode==null) {
-			return RespVOBuilder.error("验证码已失效,请重新获取");
+			return RespVOBuilder.error("验证码效,请重新获取");
 		}
 		if(!verifyCode.equals(refVerifyCode)) {
 			return RespVOBuilder.error("验证码输入错误");
 		}
-		//验证通过后,清除验证码缓存
-		verifyCoder.clear(phoneNum);  //测试时屏蔽,发布时启用
+		//验证通过后,清除验证码缓存  测试时屏蔽,发布时启用
+		verifyCoder.clear(phoneNum);
 		return RespVOBuilder.ok(us);
 	}
 }

+ 14 - 22
src/main/java/com/charging/chargingparking/modules/mobileController/ParkingChargeController.java

@@ -54,48 +54,40 @@ public class ParkingChargeController {
 			chargeEnd=nowStr;
 		}
 		
-		Map<String,Object> searchParams=new HashMap<String,Object>();
-		searchParams.put("chargeStart", chargeStart);
-		searchParams.put("chargeEnd", chargeEnd);
-		searchParams.put("parkingIds",ids);
-		
+		Object  obj=query(parkingIds,chargeEnd,1,10).getData();
 		
-		IPage<Map<String,Object>>  chargeLogDatas=service.queryChargeLog(searchParams, 1, 10);
-		
-		return RespVOBuilder.ok(MapUtils.build("rptPay",service.rptPay(ids, chargeStart,chargeEnd),"payLogs",chargeLogDatas));
+		return RespVOBuilder.ok(MapUtils.build("rptPay",service.rptPay(ids, chargeStart,chargeEnd),"payLogs",obj));
 	}
 	
 	/**
-	 * 分页查询缴费记录
+	 * 分页查询缴费记录(改为按天查询)
 	 * @param parkingIds
 	 * @param carNum
-	 * @param chargeStart
-	 * @param chargeEnd
+	 * @param chargeDate
 	 * @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,
+	public RespVO  query(@NotBlank(message="停车场编号不能为空") String parkingIds,String chargeDate,@RequestParam(value="pageNum",defaultValue="1") int pageNum,
             @RequestParam(value="pageSize",defaultValue="10") int pageSize) {
 		
-		Date dateObj=DateUtil.parse(chargeStart,"yyyy-MM-dd");
+		Date dateObj=DateUtil.parse(chargeDate,"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");
+			chargeDate=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("chargeDate", chargeDate);
 		searchParams.put("parkingIds",parkingIds.split(","));
 		
+		Map<String,Object>  dayGrp=service.queryChargeLogDaySum(searchParams);
+		
 		IPage<Map<String,Object>>  pagedData=service.queryChargeLog(searchParams, pageNum, pageSize);
 		
-		return RespVOBuilder.ok(pagedData);
+		
+		
+		return RespVOBuilder.ok(MapUtils.build("pagedData",pagedData,"dayGrp",dayGrp));
 	}
 	
 	/**

+ 6 - 4
src/main/java/com/charging/chargingparking/modules/mobileController/ParkingLogController.java

@@ -17,6 +17,7 @@ import com.charging.chargingparking.modules.mobileservice.ParkingLogService;
 import com.charging.chargingparking.modules.mobileservice.ParkingSiteService;
 import com.charging.chargingparking.service.ParkingChannelService;
 import com.charging.chargingparking.utils.DateUtil;
+import com.charging.chargingparking.utils.MapUtils;
 import com.charging.chargingparking.utils.RespVO;
 import com.charging.chargingparking.utils.RespVOBuilder;
 
@@ -69,13 +70,12 @@ public class ParkingLogController {
 	
 	/**
 	   * 管理员手动收费放行
-	 * @param carNum
-	 * @param payType
-	 * @param payAmount
+	 * @param parkingSiteId
+	 * @param note
 	 * @return
 	 */
 	@RequestMapping("/manualCharging")
-	public  RespVO manualCharging(@NotBlank(message="缺少停车场参数") String parkingSiteId,String carNum,String payType,Double payAmount) {
+	public  RespVO manualCharging(@NotBlank(message="缺少停车场参数") String parkingSiteId,@NotBlank(message="缺少用户编号参数") String usId,String note) {
 		try {
 			Map<String,Object> channelMap=parkingSiteService.getOutChannel(parkingSiteId);
 			if(channelMap==null||channelMap.get("id")==null) {
@@ -85,6 +85,8 @@ public class ParkingLogController {
             parkingChannelService.remoteOpen((String)channelMap.get("id"));
             
             //暂时不处理停车记录、空闲车位数据
+            
+            parkingSiteService.addManualOpenRecord(MapUtils.build("channelId",channelMap.get("id"),"usId",usId,"note",note));
             return RespVOBuilder.ok();
         }
         catch (Exception ex){

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

@@ -16,6 +16,13 @@ public interface ParkingChargeService {
 	 */
 	IPage<Map<String,Object>> queryChargeLog(Map<String, Object> searchParams, int pageNumber, int pageSize);
 	
+	/**
+	 * 查询缴费合计  按天合计
+	 * @param searchParams
+	 * @return
+	 */
+	Map<String,Object> queryChargeLogDaySum(Map<String,Object> params);
+	
 	
 	/**
 	 * 根据停车记录查询所有缴费记录

+ 7 - 0
src/main/java/com/charging/chargingparking/modules/mobileservice/ParkingSiteService.java

@@ -63,4 +63,11 @@ public interface ParkingSiteService {
 	 * @return
 	 */
 	Map<String, Object> get(String parkingId);
+	
+	/**
+	 * 增加手动开门记录
+	 * @param record
+	 * @return
+	 */
+	boolean  addManualOpenRecord(Map<String,Object> record);
 }

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

@@ -27,6 +27,11 @@ public class ParkingChargeServiceImp implements ParkingChargeService {
         page.setSize(pageSize);
         return mapper.queryParkingCharge(searchParams, page);
 	}
+	
+	@Override
+	public Map<String,Object>  queryChargeLogDaySum(Map<String,Object> params){
+		return mapper.queryParkingChargeDaySum(params);
+	}
 
 	@Override
 	public List<Map<String, Object>> loadChargeByParkingLog(String parkingLogId) {

+ 7 - 0
src/main/java/com/charging/chargingparking/modules/mobileservice/impl/ParkingSiteServiceImp.java

@@ -58,4 +58,11 @@ public class ParkingSiteServiceImp implements ParkingSiteService {
 		return mapper.get(parkingId);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean addManualOpenRecord(Map<String, Object> record) {
+		mapper.addManualOpenRecord(record);
+		return true;
+	}
+
 }

+ 24 - 4
src/main/resources/mapper/api/ParkingChargeMapper.xml

@@ -3,18 +3,37 @@
         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="queryParkingChargeDaySum"  resultType="java.util.HashMap">
+	    select sum(pp.pay_amount) day_pay_amount,#{chargeDate} pay_date
+		from base_parking_record pr
+		inner join base_parking_pay pp on pr.id=pp.parking_record_id
+		where pr.del_flag=false and pp.del_flag=false and pp.pay_status=20 
+		
+			and pr.park_id in 
+			<foreach collection="parkingIds" item="id" index="index" open="(" close=")" separator=",">
+		        #{id}
+		    </foreach>
+			
+			and date_format(pp.pay_time,'%Y-%m-%d') = #{chargeDate}
+		
+			<if test="carNum!=null">
+				and pr.car_num like #{carNum}
+			</if>
+	</select>
     
     <!-- 查询缴费记录(无论车是否已出场,暂无缴费记录的不检索) -->
     <select id="queryParkingCharge" parameterType="hashmap" resultType="java.util.HashMap">
     
-    	select  pr.id parking_log_id,TIMESTAMPDIFF(MINUTE,in_parking_time,sysdate()) cal_parking_time, in_parking_time,out_parking_time,
+    	select  pi.parking_name,pr.id parking_log_id,TIMESTAMPDIFF(MINUTE,in_parking_time,sysdate()) cal_parking_time, in_parking_time,out_parking_time,
 		parking_time,total_amount should_pay_amount,release_status,paytab.pay_amount,paytab.pay_name,paytab.pay_date,pr.car_num,pr.transaction_number
 		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
-		
+		left join base_parking_info  pi on pr.park_id=pi.id
 		where pr.del_flag=false
 		
 		and pr.park_id in 
@@ -22,18 +41,19 @@
 	        #{id}
 	    </foreach>
 		
+		<![CDATA[ and pay_date = #{searchParams.chargeDate} ]]>
 	
 		<if test="searchParams.carNum!=null">
 			and pr.car_num like #{searchParams.carNum}
 		</if>
 		
-		<if test="searchParams.chargeStart!=null">
+		<!-- <if test="searchParams.chargeStart!=null">
 			<![CDATA[ and pay_date >= #{searchParams.chargeStart} ]]>
 		</if>
 		
 		<if test="searchParams.chargeEnd!=null">
 			<![CDATA[ and pay_date <= #{searchParams.chargeEnd} ]]>
-		</if>
+		</if> -->
 		
 		order by pay_date  desc,out_parking_time desc
 		

+ 10 - 9
src/main/resources/mapper/api/ParkingSiteMapper.xml

@@ -3,6 +3,12 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.charging.chargingparking.mapper.mobile.ParkingSiteMapper">
+
+	<!-- 增加收动开门记录 -->
+	<insert id="addManualOpenRecord">
+		insert into base_parking_channel_open(id,channel_id,remark_,create_by,create_time,del_flag)
+		values(uuid(),#{channelId},#{note},#{usId},sysdate(),false)
+	</insert>
     
     <!-- 加载当前用户所有的停车场基本信息 -->
     <select id="loadMyParkingSites" resultType="java.util.HashMap">
@@ -24,19 +30,14 @@
     <!-- 设备在线状态判断,离线=离线状态或在线但更新时间已滞后30分钟,目前只需要状态判断,不需要时间了or (channel_status='1' and TIMESTAMPDIFF(MINUTE,update_time,sysdate())>30 )-->
     <select id="getCrtSeatInfo" resultType="java.util.HashMap">
     	
-	    	select p.parking_name,prtab.using_seat,p.id park_id,p.total_parking_number total_seat,
-	    	(p.total_parking_number-prtab.using_seat)  idle_seat,
+	    	select p.parking_name,p.id park_id,p.total_parking_number total_seat,
+	    	surplus_parking_number idle_seat,
 	    	<![CDATA[
 		    	(select sum((case when channel_status='2' then 1 else 0 end))  
 		    	from base_parking_channel pc where pc.del_flag=false and pc.park_id=p.id) offline_count
 	    	]]>
 	    	from base_parking_info  p 
-			left join (
-			select pr.park_id,count(distinct car_num) using_seat  from base_parking_record  pr
-			where pr.del_flag=false 
-			and pr.release_status='0'
-			group by pr.park_id
-			) prtab  on p.id=prtab.park_id
+			
 			where p.del_flag=false 
 			and p.id in 
 			<foreach collection="parkingIds" item="id" index="index" open="(" close=")" separator=",">
@@ -45,7 +46,7 @@
      	
     </select>
     
-    <!-- 获取指定停车场的运营动态 可传多个停车场id参数 -->
+    <!-- 获取指定停车场的运营动态 可传多个停车场id参数  免单判断:支付金额0且已放行-->
     <select id="loadTodayTrend" resultType="java.util.HashMap">
     	<![CDATA[
 	    	select   park_id,sum(total_amount) should_pay,sum(pay_amount) real_pay,