diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index 969b7d549..97f942c5f 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -369,9 +369,7 @@ public class MemberService { .list(collect) .pages(pages) .total(total) - .build(); - vo.setPageResponse(pageResponse); log.info("查询用户余额信息 service方法 end"); return vo; diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 2b99d76eb..b936b21e4 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -405,7 +405,9 @@ public class OrderService { } // 支付流水 - List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); + List payRecords = orderPayRecordService.selectOrderPayInfoList(orderCode); + vo.setPayRecordList(payRecords); + /*List orderPayRecordList = orderPayRecordService.getOrderPayRecordList(orderCode); if (CollectionUtils.isNotEmpty(orderPayRecordList)) { List payRecordList = Lists.newArrayList(); for (OrderPayRecord orderPayRecord : orderPayRecordList) { @@ -466,7 +468,7 @@ public class OrderService { payRecordList.add(payInfo); } vo.setPayRecordList(payRecordList); - } + }*/ // 查询退款明细 List orderRefundInfoList = Lists.newArrayList(); diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java index d514f5964..b4db40be4 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/SettleOrderReportController.java @@ -1,5 +1,6 @@ package com.jsowell.web.controller.pile; +import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.annotation.Log; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.domain.AjaxResult; @@ -8,7 +9,9 @@ import com.jsowell.common.enums.BusinessType; import com.jsowell.common.util.poi.ExcelUtil; import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.service.ISettleOrderReportService; +import com.jsowell.pile.vo.web.OrderSettleDetailVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -100,4 +103,16 @@ public class SettleOrderReportController extends BaseController { public AjaxResult getMerchantOrderReport(@RequestBody MerchantOrderReportDTO dto) { return AjaxResult.success(settleOrderReportService.getMerchantOrderReport(dto)); } + + /** + * 查询站点订单日报详情 + * http://localhost:8080/order/report/getStationOrderReportDetail + */ + @Anonymous + @PostMapping("/getStationOrderReportDetail") + public TableDataInfo getStationOrderReportDetail(@RequestBody SettleOrderReportDTO dto) { + // startPage(); + List orderSettleDetailVOS = settleOrderReportService.selectSettleOrderReportDetail(dto); + return getDataTable(orderSettleDetailVOS); + } } diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 3166e05ca..b3d7c6cf4 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -9,15 +9,17 @@ public class CacheConstants { public static final int cache_expire_time_1m = 60; - public static final int cache_expire_time_5m = 60 * 5; + public static final int cache_expire_time_5m = cache_expire_time_1m * 5; - public static final int cache_expire_time_10m = 60 * 10; + public static final int cache_expire_time_10m = cache_expire_time_1m * 10; - public static final int cache_expire_time_1h = 60 * 60; + public static final int cache_expire_time_1h = cache_expire_time_1m * 60; - public static final int cache_expire_time_12h = 60 * 60 * 12; + public static final int cache_expire_time_12h = cache_expire_time_1h * 12; - public static final int cache_expire_time_1d = 60 * 60 * 24; + public static final int cache_expire_time_1d = cache_expire_time_1h * 24; + + public static final int cache_expire_time_10d = cache_expire_time_1d * 10; public static final String PUSH_STATION_CONNECTOR = "push_station_connector"; diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java index 3cd6fe460..6ac632caf 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/response/QueryPaymentConfirmDetailResponse.java @@ -32,7 +32,7 @@ public class QueryPaymentConfirmDetailResponse extends AdapayBaseResponse{ @Getter @Setter - static class PaymentConfirmInfo{ + public static class PaymentConfirmInfo{ /** * 返参,必填,由AdaPay生成的支付对象 ID */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/SettleOrderReportDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SettleOrderReportDTO.java index 35e2151ea..8d1f579e1 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/SettleOrderReportDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SettleOrderReportDTO.java @@ -6,13 +6,23 @@ import lombok.Setter; @Getter @Setter public class SettleOrderReportDTO { - private String merchantId; - + /** + * 站点id + */ private String stationId; + /** + * 交易日期 + */ private String tradeDate; + /** + * 当前页码 + */ private Integer pageNum; + /** + * 页面容量 + */ private Integer pageSize; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/AdapayCallbackRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/AdapayCallbackRecordMapper.java index 794b4ba6b..318546ced 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/AdapayCallbackRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/AdapayCallbackRecordMapper.java @@ -1,8 +1,11 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.AdapayCallbackRecord; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface AdapayCallbackRecordMapper { int deleteByPrimaryKey(Integer id); @@ -20,4 +23,6 @@ public interface AdapayCallbackRecordMapper { int updateByPrimaryKey(AdapayCallbackRecord record); AdapayCallbackRecord selectByPaymentId(String paymentId); + + List queryRecordList(@Param("orderCodeList") List orderCodeList); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java index 20b947f67..1f70c280b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java @@ -55,4 +55,6 @@ public interface ClearingBillDetailMapper { int updateBatch(List list); int batchInsert(@Param("list") List list); + + ClearingBillDetail selectClearingBillCode(String orderCode); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingWithdrawInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingWithdrawInfoMapper.java index df572a156..0af42a885 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingWithdrawInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingWithdrawInfoMapper.java @@ -1,6 +1,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.ClearingWithdrawInfo; +import com.jsowell.pile.vo.web.ClearingBillVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -63,4 +64,6 @@ public interface ClearingWithdrawInfoMapper { int batchInsert(@Param("list") List list); ClearingWithdrawInfo selectByWithdrawCode(String withdrawCode); + + ClearingBillVO selectWithdrawInfoByOrderCode(@Param("orderCode") String orderCode); } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java index 38735d6be..52695431b 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java @@ -4,9 +4,11 @@ import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.MerchantOrderReportDTO; import com.jsowell.pile.vo.web.SettleOrderReportVO; import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface SettleOrderReportMapper { /** * delete by primary key diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingWithdrawInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingWithdrawInfoService.java index 0dcfa0b8d..b8592b170 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingWithdrawInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingWithdrawInfoService.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.ClearingWithdrawInfo; +import com.jsowell.pile.vo.web.ClearingBillVO; import java.util.List; public interface ClearingWithdrawInfoService{ @@ -27,4 +28,6 @@ public interface ClearingWithdrawInfoService{ int batchInsert(List list); ClearingWithdrawInfo selectByWithdrawCode(String withdrawCode); + + ClearingBillVO selectWithdrawInfoByOrderCode(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderPayRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderPayRecordService.java index d663a8b8a..3f77fc1a9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderPayRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderPayRecordService.java @@ -1,6 +1,7 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.OrderPayRecord; +import com.jsowell.pile.vo.web.OrderDetailInfoVO; import java.util.List; @@ -16,4 +17,6 @@ public interface IOrderPayRecordService { int batchInsert(List payRecordList); List getOrderPayRecordList(String orderCode); + + List selectOrderPayInfoList(String orderCode); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java index 7f56eaae3..a2c272f17 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java @@ -2,7 +2,9 @@ package com.jsowell.pile.service; import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.MerchantOrderReportDTO; +import com.jsowell.pile.dto.SettleOrderReportDTO; import com.jsowell.pile.vo.web.MerchantOrderReportVO; +import com.jsowell.pile.vo.web.OrderSettleDetailVO; import java.util.List; @@ -23,6 +25,8 @@ public interface ISettleOrderReportService { SettleOrderReport selectByStationIdAndDate(String stationId, String date); + List selectSettleOrderReportDetail(SettleOrderReportDTO dto); + List selectByMerchantIdAndDate(String merchantId, String date); /** diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java index 95572adb1..0e043793c 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java @@ -1,11 +1,12 @@ package com.jsowell.pile.service.impl; -import org.springframework.stereotype.Service; -import javax.annotation.Resource; import com.jsowell.pile.domain.ClearingBillDetail; -import java.util.List; import com.jsowell.pile.mapper.ClearingBillDetailMapper; import com.jsowell.pile.service.ClearingBillDetailService; +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; + @Service public class ClearingBillDetailServiceImpl implements ClearingBillDetailService{ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingWithdrawInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingWithdrawInfoServiceImpl.java index 1bb5a6a79..2f838b5de 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingWithdrawInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingWithdrawInfoServiceImpl.java @@ -3,6 +3,7 @@ package com.jsowell.pile.service.impl; import com.jsowell.pile.domain.ClearingWithdrawInfo; import com.jsowell.pile.mapper.ClearingWithdrawInfoMapper; import com.jsowell.pile.service.ClearingWithdrawInfoService; +import com.jsowell.pile.vo.web.ClearingBillVO; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -68,4 +69,12 @@ public class ClearingWithdrawInfoServiceImpl implements ClearingWithdrawInfoServ return clearingWithdrawInfoMapper.selectByWithdrawCode(withdrawCode); } + /** + * 根据订单号查询 + */ + @Override + public ClearingBillVO selectWithdrawInfoByOrderCode(String orderCode) { + return clearingWithdrawInfoMapper.selectWithdrawInfoByOrderCode(orderCode); + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java index e5dad0948..cbfec59a9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPayRecordServiceImpl.java @@ -1,11 +1,24 @@ package com.jsowell.pile.service.impl; -import com.jsowell.pile.domain.OrderPayRecord; +import com.google.common.collect.Lists; +import com.jsowell.common.constant.CacheConstants; +import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.enums.ykc.ActionTypeEnum; +import com.jsowell.common.enums.ykc.OrderPayModeEnum; +import com.jsowell.common.enums.ykc.OrderPayRecordEnum; +import com.jsowell.common.enums.ykc.PaymentInstitutionsEnum; +import com.jsowell.common.util.DateUtils; +import com.jsowell.common.util.StringUtils; +import com.jsowell.pile.domain.*; import com.jsowell.pile.mapper.OrderPayRecordMapper; -import com.jsowell.pile.service.IOrderPayRecordService; +import com.jsowell.pile.service.*; +import com.jsowell.pile.vo.web.OrderDetailInfoVO; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.List; @Service @@ -14,6 +27,21 @@ public class OrderPayRecordServiceImpl implements IOrderPayRecordService { @Resource private OrderPayRecordMapper orderPayRecordMapper; + @Autowired + private WxpayCallbackRecordService wxpayCallbackRecordService; + + @Autowired + private AdapayCallbackRecordService adapayCallbackRecordService; + + @Autowired + private IMemberTransactionRecordService memberTransactionRecordService; + + @Autowired + private IOrderBasicInfoService orderBasicInfoService; + + @Autowired + private RedisCache redisCache; + @Override public int updateByPrimaryKeySelective(OrderPayRecord record) { @@ -31,4 +59,91 @@ public class OrderPayRecordServiceImpl implements IOrderPayRecordService { return orderPayRecordMapper.getOrderPayRecordList(orderCode); } + /** + * 查询订单支付信息 + * 加缓存 + * @param orderCode + * @return + */ + @Override + public List selectOrderPayInfoList(String orderCode) { + // 缓存 + String redisKey = "select_order_pay_info_list:" + orderCode; + List resultList = redisCache.getCacheList(redisKey); + if (CollectionUtils.isNotEmpty(resultList)) { + return resultList; + } + + // 订单信息 + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + if (orderBasicInfo == null) { + return Lists.newArrayList(); + } + // 支付流水 + List orderPayRecordList = getOrderPayRecordList(orderCode); + if (CollectionUtils.isEmpty(orderPayRecordList)) { + return Lists.newArrayList(); + } + List payRecordList = Lists.newArrayList(); + for (OrderPayRecord orderPayRecord : orderPayRecordList) { + OrderDetailInfoVO.PayRecord payInfo = new OrderDetailInfoVO.PayRecord(); + // 余额支付如果是由本金和赠送一起支付的,合并为一个 + BigDecimal bigDecimal = orderPayRecordList.stream() + .map(OrderPayRecord::getPayAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + payInfo.setPayAmount(bigDecimal.toString()); + payInfo.setPayStatus(orderBasicInfo.getPayStatus()); + payInfo.setPayTime(DateUtils.formatDateTime(orderBasicInfo.getPayTime())); + if (orderPayRecord.getRefundAmount() != null) { + payInfo.setRefundAmount(orderPayRecord.getRefundAmount().toString()); + } + String payMode = orderPayRecord.getPayMode(); + if (StringUtils.equals(payMode, OrderPayRecordEnum.PRINCIPAL_BALANCE_PAYMENT.getValue()) + || StringUtils.equals(payMode, OrderPayRecordEnum.GIFT_BALANCE_PAYMENT.getValue())) { + // 使用余额支付 + payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_BALANCE.getValue()); + payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_BALANCE.getLabel()); + } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WECHATPAY_PAYMENT.getValue())){ + // 使用微信支付 + payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getValue()); + payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WECHATPAY.getLabel()); + + // 判断是微信支付还是汇付支付 + MemberTransactionRecord record = memberTransactionRecordService.selectByOrderCode(orderCode, ActionTypeEnum.FORWARD.getValue()); + if (record != null) { + String paymentInstitutions = record.getPaymentInstitutions(); + if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.WECHAT_PAY.getValue())) { + // 查微信支付回调记录 + WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); + if (wxpayCallbackRecord != null) { + payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); + payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); + } + } else if (StringUtils.equals(paymentInstitutions, PaymentInstitutionsEnum.ADAPAY.getValue())) { + // 查询汇付支付回调 + AdapayCallbackRecord adapayCallbackRecord = adapayCallbackRecordService.selectByOrderCode(orderCode); + if (adapayCallbackRecord != null) { + payInfo.setOutTradeNo(adapayCallbackRecord.getPaymentId()); + payInfo.setTransactionId(adapayCallbackRecord.getOutTransId()); + } + } + } + // 查微信支付回调记录 + WxpayCallbackRecord wxpayCallbackRecord = wxpayCallbackRecordService.selectByOrderCode(orderCode); + if (wxpayCallbackRecord != null) { + payInfo.setOutTradeNo(wxpayCallbackRecord.getOutTradeNo()); + payInfo.setTransactionId(wxpayCallbackRecord.getTransactionId()); + } + } else if (StringUtils.equals(payMode, OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())){ + // 使用白名单支付 + payInfo.setPayMode(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue()); + payInfo.setPayModeDesc(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getLabel()); + } + payRecordList.add(payInfo); + } + redisCache.setCacheList(redisKey, payRecordList); + redisCache.expire(redisKey, CacheConstants.cache_expire_time_10d); + return payRecordList; + } + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java index 9e8c8958f..3b6a483e4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java @@ -1,15 +1,26 @@ package com.jsowell.pile.service.impl; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; +import com.jsowell.adapay.dto.QueryPaymentConfirmDTO; +import com.jsowell.adapay.response.QueryPaymentConfirmDetailResponse; +import com.jsowell.adapay.service.AdapayService; +import com.jsowell.common.constant.Constants; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.StringUtils; +import com.jsowell.pile.domain.AdapayCallbackRecord; import com.jsowell.pile.domain.SettleOrderReport; import com.jsowell.pile.dto.MerchantOrderReportDTO; import com.jsowell.pile.dto.SettleOrderReportDTO; +import com.jsowell.pile.mapper.AdapayCallbackRecordMapper; import com.jsowell.pile.mapper.SettleOrderReportMapper; +import com.jsowell.pile.service.ClearingWithdrawInfoService; +import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.service.ISettleOrderReportService; +import com.jsowell.pile.vo.web.ClearingBillVO; import com.jsowell.pile.vo.web.MerchantOrderReportVO; import com.jsowell.pile.vo.web.OrderSettleDetailVO; import com.jsowell.pile.vo.web.SettleOrderReportVO; @@ -32,6 +43,18 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { @Autowired private SettleOrderReportMapper settleOrderReportMapper; + @Autowired + private AdapayCallbackRecordMapper adapayCallbackRecordMapper; + + @Autowired + private AdapayService adapayService; + + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + + @Autowired + private ClearingWithdrawInfoService clearingWithdrawInfoService; + /** * 查询结算订单报 * @@ -48,11 +71,60 @@ public class SettleOrderReportServiceImpl implements ISettleOrderReportService { return settleOrderReportMapper.selectByStationIdAndDate(stationId, date); } + /** + * 查询站点订单日报明细 + * 分页查询 + * + * @param dto + * @return + */ + @Override public List selectSettleOrderReportDetail(SettleOrderReportDTO dto) { - Integer pageNum = dto.getPageNum() == null ? 1 : dto.getPageNum(); - Integer pageSize = dto.getPageSize() == null ? 20 : dto.getPageSize(); - PageUtils.startPage(pageNum, pageSize); - return null; + SettleOrderReport orderReport = selectByStationIdAndDate(dto.getStationId(), dto.getTradeDate()); + if (orderReport == null) { + return Lists.newArrayList(); + } + String orderCodes = orderReport.getOrderCodes(); + if (StringUtils.isBlank(orderCodes)) { + return Lists.newArrayList(); + } + + String wechatAppId = pileMerchantInfoService.queryAppIdByMerchantId(orderReport.getMerchantId()); + + List orderCodeList = Lists.newArrayList(StringUtils.split(orderCodes, ",")); + // 查询订单支付信息 分页 + int pageNum = dto.getPageNum() != null ? dto.getPageNum() : 1; + int pageSize = dto.getPageSize() != null ? dto.getPageSize() : 10; + PageHelper.startPage(pageNum, pageSize); + List adapayCallbackRecords = adapayCallbackRecordMapper.queryRecordList(orderCodeList); + PageInfo pageInfo = new PageInfo<>(adapayCallbackRecords); + // 封装结果集 + List resultList = Lists.newArrayList(); + OrderSettleDetailVO vo = null; + for (AdapayCallbackRecord adapayCallbackRecord : pageInfo.getList()) { + vo = new OrderSettleDetailVO(); + String orderCode = adapayCallbackRecord.getOrderCode(); + vo.setOrderCode(orderCode); + String paymentId = adapayCallbackRecord.getPaymentId(); + QueryPaymentConfirmDTO build = QueryPaymentConfirmDTO.builder() + .wechatAppId(wechatAppId) + .paymentId(paymentId) + .build(); + QueryPaymentConfirmDetailResponse response = adapayService.queryPaymentConfirmList(build); + List paymentConfirms = response.getPaymentConfirms(); + // 如果没有分账信息,说明没有清分 + vo.setClearingStatus(CollectionUtils.isEmpty(paymentConfirms) ? Constants.ZERO : Constants.ONE); + if (Constants.ONE.equals(vo.getClearingStatus())) { + ClearingBillVO clearingBillVO = clearingWithdrawInfoService.selectWithdrawInfoByOrderCode(orderCode); + vo.setClearingBillCode(clearingBillVO.getClearingBillCode()); + vo.setWithdrawCode(clearingBillVO.getWithdrawCode()); + vo.setWithdrawStatus(clearingBillVO.getWithdrawStatus()); + } + resultList.add(vo); + } + + PageInfo result = new PageInfo<>(resultList); + return result.getList(); } @Override diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/ClearingBillVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/ClearingBillVO.java new file mode 100644 index 000000000..4fc13c707 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/ClearingBillVO.java @@ -0,0 +1,21 @@ +package com.jsowell.pile.vo.web; + +import lombok.Data; + +@Data +public class ClearingBillVO { + /** + * 清分单号 + */ + private String clearingBillCode; + + /** + * 提现单号 + */ + private String withdrawCode; + + /** + * 提现状态 + */ + private String withdrawStatus; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderSettleDetailVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderSettleDetailVO.java index 3b704cbde..06dfd68aa 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderSettleDetailVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderSettleDetailVO.java @@ -23,6 +23,7 @@ public class OrderSettleDetailVO { /** * 清分状态 + * 0-未清分;1-已清分 */ private String clearingStatus; @@ -33,6 +34,7 @@ public class OrderSettleDetailVO { /** * 提现状态 + * 0-未提现;1-体现中;2-提现到账 */ private String withdrawStatus; diff --git a/jsowell-pile/src/main/resources/mapper/pile/AdapayCallbackRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/AdapayCallbackRecordMapper.xml index 25422fa6e..75cf3b40c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/AdapayCallbackRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/AdapayCallbackRecordMapper.xml @@ -294,4 +294,15 @@ del_flag = #{delFlag,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml index 1d267bf3f..42d7624ef 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml @@ -295,4 +295,12 @@ + + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/ClearingWithdrawInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ClearingWithdrawInfoMapper.xml index 931acb173..c7763eee6 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ClearingWithdrawInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ClearingWithdrawInfoMapper.xml @@ -436,4 +436,16 @@ where del_flag = '0' and withdraw_code = #{withdrawCode,jdbcType=VARCHAR} + + \ No newline at end of file