From c14def6a39d521634e3035eaca5f56b2c01bee5d Mon Sep 17 00:00:00 2001 From: Lemon Date: Fri, 20 Mar 2026 09:21:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=81=9C=E8=BD=A6=E4=BC=98=E5=85=8D=E4=BF=A1=E6=81=AF=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/BusinessFinancialController.java | 31 ++++++++ .../pile/mapper/CarCouponRecordMapper.java | 10 +++ .../service/BusinessFinancialService.java | 11 +++ .../impl/BusinessFinancialServiceImpl.java | 71 +++++++++++++++++++ .../mapper/pile/CarCouponRecordMapper.xml | 64 +++++++++++++++++ 5 files changed, 187 insertions(+) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessFinancialController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessFinancialController.java index f5840797e..dab69e459 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessFinancialController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessFinancialController.java @@ -1,10 +1,13 @@ package com.jsowell.api.uniapp.business; +import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.core.controller.BaseController; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.response.RestApiResponse; import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.dto.ParkingCouponRecordQueryDTO; import com.jsowell.pile.service.BusinessFinancialService; import com.jsowell.pile.vo.web.MerchantOrderReportVO; import org.apache.commons.lang3.StringUtils; @@ -56,4 +59,32 @@ public class BusinessFinancialController extends BaseController { } return response; } + + /** + * 查询停车优免记录 + * + * @param dto 查询参数 + * @return 优免记录列表 + */ + @PostMapping("/parkingCouponRecords") + public RestApiResponse queryParkingCouponRecords(@RequestBody ParkingCouponRecordQueryDTO dto) { + logger.info("查询停车优免记录 params:{}", JSONObject.toJSONString(dto)); + RestApiResponse response; + try { + if (dto == null) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + } + + PageResponse result = businessFinancialService.queryParkingCouponRecords(dto); + response = new RestApiResponse<>(result); + logger.info("查询停车优免记录成功 total:{}", result.getTotal()); + } catch (BusinessException e) { + logger.warn("查询停车优免记录业务异常 code:{}, message:{}", e.getCode(), e.getMessage(), e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + logger.error("查询停车优免记录系统异常", e); + response = new RestApiResponse<>(e); + } + return response; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/CarCouponRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/CarCouponRecordMapper.java index 20becc164..9b4ac27df 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/CarCouponRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/CarCouponRecordMapper.java @@ -1,7 +1,9 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.CarCouponRecord; +import com.jsowell.pile.dto.ParkingCouponRecordQueryDTO; import com.jsowell.pile.vo.uniapp.customer.ParkingOrderVO; +import com.jsowell.pile.vo.web.ParkingCouponRecordVO; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -76,4 +78,12 @@ public interface CarCouponRecordMapper { * @return */ List queryParkingOrderList(@Param("memberId") String memberId); + + /** + * 分页查询停车优免记录(联表查询站点名称和优免信息) + * + * @param queryDTO 查询条件 + * @return 停车优免记录列表 + */ + List selectParkingCouponRecordList(ParkingCouponRecordQueryDTO queryDTO); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/BusinessFinancialService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/BusinessFinancialService.java index 0657a3041..5f12db792 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/BusinessFinancialService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/BusinessFinancialService.java @@ -1,8 +1,19 @@ package com.jsowell.pile.service; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.dto.ParkingCouponRecordQueryDTO; import com.jsowell.pile.vo.web.MerchantOrderReportVO; +import com.jsowell.pile.vo.web.ParkingCouponRecordVO; public interface BusinessFinancialService { MerchantOrderReportVO getMyWallet(MerchantOrderReportDTO dto); + + /** + * 分页查询停车优免记录 + * + * @param dto 查询条件 + * @return 分页结果 + */ + PageResponse queryParkingCouponRecords(ParkingCouponRecordQueryDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/BusinessFinancialServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/BusinessFinancialServiceImpl.java index a7037faee..2b0f74857 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/BusinessFinancialServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/BusinessFinancialServiceImpl.java @@ -1,18 +1,28 @@ package com.jsowell.pile.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.huifu.adapay.core.exception.BaseAdaPayException; import com.jsowell.adapay.service.AdapayService; import com.jsowell.adapay.vo.AdapayAccountBalanceVO; +import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; +import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.dto.ParkingCouponRecordQueryDTO; +import com.jsowell.pile.mapper.CarCouponRecordMapper; import com.jsowell.pile.service.BusinessFinancialService; import com.jsowell.pile.service.ClearingWithdrawInfoService; +import com.jsowell.pile.service.PileStationInfoService; import com.jsowell.pile.service.SettleOrderReportService; +import com.jsowell.pile.util.UserUtils; import com.jsowell.pile.vo.web.MerchantOrderReportVO; +import com.jsowell.pile.vo.web.ParkingCouponRecordVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.List; /** * 运营端小程序财务相关Service @@ -30,6 +40,12 @@ public class BusinessFinancialServiceImpl implements BusinessFinancialService { @Autowired private ClearingWithdrawInfoService clearingWithdrawInfoService; + @Autowired + private CarCouponRecordMapper carCouponRecordMapper; + + @Autowired + private PileStationInfoService pileStationInfoService; + /** * 我的钱包查询 * @param dto @@ -77,4 +93,59 @@ public class BusinessFinancialServiceImpl implements BusinessFinancialService { return result; } + + /** + * 分页查询停车优免记录 + * + * @param dto 查询条件 + * @return 分页结果 + */ + @Override + public PageResponse queryParkingCouponRecords(ParkingCouponRecordQueryDTO dto) { + // 设置默认分页参数 + if (dto.getPageNum() == null || dto.getPageNum() <= 0) { + dto.setPageNum(1); + } + if (dto.getPageSize() == null || dto.getPageSize() <= 0) { + dto.setPageSize(10); + } + + // 获取当前登录用户的站点权限 + if (dto.getStationIds() == null || dto.getStationIds().isEmpty()) { + try { + AuthorizedDeptVO authorizedMap = UserUtils.getAuthorizedMap(); + if (authorizedMap != null) { + // 判断用户角色类型 + if (authorizedMap.getStationDeptIds() != null && !authorizedMap.getStationDeptIds().isEmpty()) { + // 站点管理员:根据站点部门ID查询站点 + dto.setStationIds(pileStationInfoService.queryByStationDeptIds(authorizedMap.getStationDeptIds())); + } else if (authorizedMap.getMerchantDeptIds() != null && !authorizedMap.getMerchantDeptIds().isEmpty()) { + // 运营商管理员:根据运营商部门ID查询站点 + dto.setStationIds(pileStationInfoService.getStationIdsByMerchantIds(authorizedMap.getMerchantDeptIds())); + } + // 平台账号:不设置站点ID限制,可查询所有站点 + } + } catch (Exception e) { + log.warn("获取当前登录用户站点权限失败", e); + } + } + + // 使用 PageHelper 分页 + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + + // 查询列表 + List list = carCouponRecordMapper.selectParkingCouponRecordList(dto); + + // 构建 PageInfo + PageInfo pageInfo = new PageInfo<>(list); + + // 构建 PageResponse + return PageResponse.builder() + .pageNum(dto.getPageNum()) + .pageSize(dto.getPageSize()) + .list(pageInfo.getList()) + .pages(pageInfo.getPages()) + .total(pageInfo.getTotal()) + .build(); + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/CarCouponRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/CarCouponRecordMapper.xml index 572e2ec7a..0b4c85987 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/CarCouponRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/CarCouponRecordMapper.xml @@ -15,6 +15,24 @@ + + + + + + + + + + + + + + + + + + select id, order_code, station_id, plate_number, return_code, return_msg, create_time, del_flag from car_coupon_record @@ -107,4 +125,50 @@ t1.del_flag = '0' AND t2.member_id = #{memberId,jdbcType=VARCHAR} + + + \ No newline at end of file