wkyy 3 年 前
コミット
f69855e595

+ 4 - 1
src/main/java/com/charging/chargingparking/entity/ParkingPay.java

@@ -27,6 +27,8 @@ public class ParkingPay implements Serializable {
      */
      */
     @TableField(exist = false)
     @TableField(exist = false)
     private String carNum;
     private String carNum;
+    @TableField(exist = false)
+    private String parkingName;
 
 
     /**
     /**
      * 停车记录表
      * 停车记录表
@@ -37,7 +39,8 @@ public class ParkingPay implements Serializable {
      * 支付金额
      * 支付金额
      */
      */
     private BigDecimal payAmount = BigDecimal.ZERO;
     private BigDecimal payAmount = BigDecimal.ZERO;
-
+    @TableField(exist = false)
+    private BigDecimal summary = BigDecimal.ZERO;
     /**
     /**
      * 外部订单号
      * 外部订单号
      */
      */

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

@@ -22,6 +22,8 @@ public interface ParkingPayMapper extends BaseMapper<ParkingPay> {
     List<ParkingPay> search(Map<String, Object> searchParams, List<Sort> sortList);
     List<ParkingPay> search(Map<String, Object> searchParams, List<Sort> sortList);
 
 
     ParkingPay findByParkingRecordId(String parkingRecordId);
     ParkingPay findByParkingRecordId(String parkingRecordId);
+
+    List<ParkingPay> searchSummary(Map<String, Object> searchParams, List<Sort> sortList);
 }
 }
 
 
 
 

+ 67 - 3
src/main/java/com/charging/chargingparking/modules/backController/BackParkingPayController.java

@@ -47,6 +47,9 @@ public class BackParkingPayController {
     @Autowired
     @Autowired
     private UserService userService;
     private UserService userService;
 
 
+    @Autowired
+    private ParkingInfoService parkingInfoService;
+
     @Autowired
     @Autowired
     private ParkingUserRelationService parkingUserRelationService;
     private ParkingUserRelationService parkingUserRelationService;
 
 
@@ -103,7 +106,7 @@ public class BackParkingPayController {
     @ApiOperation(value = "列表")
     @ApiOperation(value = "列表")
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
     public MessageResult<Map> pageList(
-            String carNum, String payTimeRange, Integer payStatus,
+            String carNum, String payTimeRange,String parkingName,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
             @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
             @RequestAttribute String subject) {
             @RequestAttribute String subject) {
@@ -119,12 +122,14 @@ public class BackParkingPayController {
         List<Sort> sortList = new ArrayList<>();
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("a.create_time", "desc"));
         sortList.add(new Sort("a.create_time", "desc"));
 
 
-        searchParams.put("payStatus", payStatus);
-
         if (StringUtils.isNotEmpty(carNum)) {
         if (StringUtils.isNotEmpty(carNum)) {
             searchParams.put("carNum", "%" + carNum + "%");
             searchParams.put("carNum", "%" + carNum + "%");
         }
         }
 
 
+        if (StringUtils.isNotEmpty(parkingName)) {
+            searchParams.put("parkingName", parkingName);
+        }
+
         if (StringUtils.isNotEmpty(payTimeRange)) {
         if (StringUtils.isNotEmpty(payTimeRange)) {
             String[] timeRangeArray = payTimeRange.split(",");
             String[] timeRangeArray = payTimeRange.split(",");
             String startTime = "";
             String startTime = "";
@@ -153,9 +158,68 @@ public class BackParkingPayController {
             ParkingRecord parkingRecord = parkingRecordService.getById(parkingPay.getParkingRecordId());
             ParkingRecord parkingRecord = parkingRecordService.getById(parkingPay.getParkingRecordId());
             if (parkingRecord != null) {
             if (parkingRecord != null) {
                 parkingPay.setCarNum(parkingRecord.getCarNum());
                 parkingPay.setCarNum(parkingRecord.getCarNum());
+                ParkingInfo parkingInfo = parkingInfoService.getById(parkingRecord.getParkId());
+                parkingPay.setParkingName(parkingInfo.getParkingName());
+            }
+        }
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "汇总")
+    @RequestMapping(value = "amountSummary", method = RequestMethod.POST)
+    public MessageResult<Map> amountSummary(
+            String carNum, String payTimeRange,String parkingName,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "10") 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(parkingName)) {
+            searchParams.put("parkingName", parkingName);
+        }
+
+        if (StringUtils.isNotEmpty(payTimeRange)) {
+            String[] timeRangeArray = payTimeRange.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("pay_time_start", startTime);
+            searchParams.put("pay_time_end", endTime);
+        }
+
+        if(!userService.hasRole(subject,"SYSADMIN")) {
+            searchParams.put("filterParkingList", parkingUserRelationService.findByUserId(subject));
         }
         }
 
 
+        com.github.pagehelper.Page<ParkingPay> page = parkingPayService.pageSummary(searchParams, pageIndex, pageSize, sortList);
+
         msgResult.setResult(true);
         msgResult.setResult(true);
         msgResult.setData(PojoUtils.pageWrapper(page));
         msgResult.setData(PojoUtils.pageWrapper(page));
 
 

+ 13 - 0
src/main/java/com/charging/chargingparking/modules/backController/ParkingInfoController.java

@@ -296,4 +296,17 @@ public class ParkingInfoController {
 
 
         return msgResult;
         return msgResult;
     }
     }
+
+    @ApiOperation(value = "商户列表")
+    @RequestMapping(value = "parkingNameList", method = RequestMethod.POST)
+    public MessageResult<List> parkingNameList(@RequestAttribute String subject) {
+        MessageResult<List> msgResult = new MessageResult<>();
+
+        List<ParkingInfo> parkingInfoList = parkingInfoService.list();
+
+        msgResult.setResult(true);
+        msgResult.setData(parkingInfoList);
+
+        return msgResult;
+    }
 }
 }

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

@@ -24,4 +24,6 @@ public interface ParkingPayService extends IService<ParkingPay> {
     Page<ParkingPay> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList);
     Page<ParkingPay> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, List<Sort> sortList);
 
 
     ParkingPay findByParkingRecordId(String parkingRecordId);
     ParkingPay findByParkingRecordId(String parkingRecordId);
+
+    Page<ParkingPay> pageSummary(Map<String, Object> searchParams, int pageIndex, int pageSize, List<Sort> sortList);
 }
 }

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

@@ -91,6 +91,14 @@ public class ParkingPayServiceImpl extends ServiceImpl<ParkingPayMapper, Parking
     public ParkingPay findByParkingRecordId(String parkingRecordId) {
     public ParkingPay findByParkingRecordId(String parkingRecordId) {
         return parkingPayMapper.findByParkingRecordId(parkingRecordId);
         return parkingPayMapper.findByParkingRecordId(parkingRecordId);
     }
     }
+
+    @Override
+    public Page<ParkingPay> pageSummary(Map<String, Object> searchParams, int pageIndex, int pageSize, List<Sort> sortList) {
+        Page<ParkingPay> page = PageHelper.startPage(pageIndex,pageSize).doSelectPage(()->{
+            parkingPayMapper.searchSummary(searchParams,sortList);
+        });
+        return page;
+    }
 }
 }
 
 
 
 

+ 39 - 4
src/main/resources/mapper/ParkingPayMapper.xml

@@ -59,14 +59,14 @@
 
 
     <select id="search" parameterType="hashmap" resultMap="BaseResultMap">
     <select id="search" parameterType="hashmap" resultMap="BaseResultMap">
         <![CDATA[
         <![CDATA[
-			select * from base_parking_pay a join base_parking_record b
+			select * from base_parking_pay a join base_parking_record b join base_parking_info c
 		]]>
 		]]>
-        where a.del_flag=false and b.del_flag=false and a.parking_record_id = b.id
+        where a.del_flag=false and b.del_flag=false and c.del_flag=false and a.parking_record_id = b.id and b.park_id=c.id and a.pay_status = 20
         <if test="searchParams.carNum != null">
         <if test="searchParams.carNum != null">
             and b.car_num like #{searchParams.carNum}
             and b.car_num like #{searchParams.carNum}
         </if>
         </if>
-        <if test="searchParams.payStatus != null">
-            and a.pay_status = #{searchParams.payStatus}
+        <if test="searchParams.parkingName != null">
+            and c.parking_name = #{searchParams.parkingName}
         </if>
         </if>
         <if test="searchParams.pay_time_start != null">
         <if test="searchParams.pay_time_start != null">
             <![CDATA[
             <![CDATA[
@@ -95,4 +95,39 @@
     <select id="findByParkingRecordId" resultType="com.charging.chargingparking.entity.ParkingPay">
     <select id="findByParkingRecordId" resultType="com.charging.chargingparking.entity.ParkingPay">
         select * from base_parking_pay where parking_record_id=#{0} and del_flag = 0 order by create_time desc limit 1
         select * from base_parking_pay where parking_record_id=#{0} and del_flag = 0 order by create_time desc limit 1
     </select>
     </select>
+    <select id="searchSummary" resultType="com.charging.chargingparking.entity.ParkingPay">
+        <![CDATA[
+			select SUM(a.pay_amount) AS summary from base_parking_pay a join base_parking_record b join base_parking_info c
+		]]>
+        where a.del_flag=false and b.del_flag=false and c.del_flag=false and a.parking_record_id = b.id and b.park_id=c.id and a.pay_status = 20
+        <if test="searchParams.carNum != null">
+            and b.car_num like #{searchParams.carNum}
+        </if>
+        <if test="searchParams.parkingName != null">
+            and c.parking_name = #{searchParams.parkingName}
+        </if>
+        <if test="searchParams.pay_time_start != null">
+            <![CDATA[
+                  and a.pay_time >= #{searchParams.pay_time_start}
+            ]]>
+        </if>
+        <if test="searchParams.pay_time_end != null">
+            <![CDATA[
+                  and a.pay_time <= #{searchParams.pay_time_end}
+            ]]>
+        </if>
+        <if test="searchParams.filterParkingList!=null">
+            <if test="searchParams.filterParkingList.size>0">
+                <foreach item="item" collection="searchParams.filterParkingList"  open=" and park_id in(" separator="," close=")">
+                    #{item.parkingId}
+                </foreach>
+            </if>
+            <if test="searchParams.filterParkingList.size==0">
+                and park_id=''
+            </if>
+        </if>
+        <foreach item="sort" collection="sortList" open="order by" separator=",">
+            ${sort.name} ${sort.order}
+        </foreach>
+    </select>
 </mapper>
 </mapper>