diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java index ad5ef2478..e2c5a251a 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardOrderDto.java @@ -48,4 +48,9 @@ public class HardOrderDto extends HardOrderEntity implements BaseIsIncludeTreeIn */ private Boolean isFindCarList = false; + /** + * 退款相关 + */ + private String afterSaleNo; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java index a23916164..dd703ccc7 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/feign/RemoteHardThirdPayService.java @@ -3,6 +3,7 @@ package com.bsd.pjcloud.hard.api.feign; import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; import com.bsd.pjcloud.common.feign.annotation.NoToken; import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPaySoureBizTypeEnum; +import com.bsd.pjcloud.thirdparty.dto.pay.PayDetailDto; import com.bsd.pjcloud.thirdparty.dto.pay.PayDto; import com.bsd.pjcloud.thirdparty.dto.pay.RefundDto; import com.bsd.pjcloud.thirdparty.dto.pay.WaterDto; @@ -41,4 +42,11 @@ public interface RemoteHardThirdPayService { @NoToken @PostMapping("/hard-third-pay/water") PayBaseVo> waterList(@RequestBody WaterDto dto, @RequestParam ThirdPaySoureBizTypeEnum soureType); + + /** + * 订单详情 + */ + @NoToken + @PostMapping("/hard-third-pay/detail") + PayBaseVo orderDetail(@RequestBody PayDetailDto dto, @RequestParam ThirdPaySoureBizTypeEnum soureType); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index e16c81f1d..f7d1f2e97 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -257,7 +257,7 @@ public class HardOrderController { dto.setMchIds(mchDtoIds); } } - List list = hardwareOrderService.scopeList(dto); + List list = hardwareOrderService.scopeList(dto, DataScope.of()); List excelList = BeanUtils.toBean(list, HardOrderExcelVo.class); try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(ResourceUtil.getStream("file/订单交易汇总.xlsx")).build()) { WriteSheet writeSheet = EasyExcel.writerSheet().build(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java index b6900d15d..39b389e82 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/third/HardThirdPayController.java @@ -4,6 +4,7 @@ import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.annotation.Inner; import com.bsd.pjcloud.hard.service.HardThirdPayService; import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPaySoureBizTypeEnum; +import com.bsd.pjcloud.thirdparty.dto.pay.PayDetailDto; import com.bsd.pjcloud.thirdparty.dto.pay.PayDto; import com.bsd.pjcloud.thirdparty.dto.pay.RefundDto; import com.bsd.pjcloud.thirdparty.dto.pay.WaterDto; @@ -54,4 +55,12 @@ public class HardThirdPayController { return hardThirdPayService.waterList(dto, soureType); } + @Inner + @PostMapping("/detail") + @SysLog("订单详情") + @Operation(summary = "订单详情") + public PayBaseVo orderDetail(@RequestBody PayDetailDto dto, @RequestParam ThirdPaySoureBizTypeEnum soureType) { + return hardThirdPayService.orderDetail(dto, soureType); + } + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java index cddab1e9b..701fe9c35 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleLogMapper.java @@ -7,6 +7,7 @@ import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleLogDto; import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleLogVo; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleVo; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index e78b43f16..d356202aa 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -110,6 +110,8 @@ public interface HardOrderMapper extends PjcloudBaseMapper { Page scopePageList(Page page, @Param("dto") HardOrderDto dto, DataScope dataScope); + List scopeList(@Param("dto") HardOrderDto dto, DataScope dataScope); + List listSb(@Param("dto") HardOrderDto dto, DataScope dataScope); List listCs(@Param("dto") HardOrderDto dto, DataScope dataScope); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index 6a4a89bb6..1b6ed8de2 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -29,7 +29,7 @@ public interface HardOrderService extends IService { Page scopePageList(Page page, HardOrderDto dto, DataScope dataScope); - List scopeList(HardOrderDto dto); + List scopeList(HardOrderDto dto, DataScope dataScope); HardOrderVo join(Long id); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdPayService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdPayService.java index 5974e89b5..58f73840f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdPayService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdPayService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPaySoureBizTypeEnum; +import com.bsd.pjcloud.thirdparty.dto.pay.PayDetailDto; import com.bsd.pjcloud.thirdparty.dto.pay.PayDto; import com.bsd.pjcloud.thirdparty.dto.pay.RefundDto; import com.bsd.pjcloud.thirdparty.dto.pay.WaterDto; @@ -28,4 +29,9 @@ public interface HardThirdPayService { * 获取流水 */ PayBaseVo> waterList(WaterDto dto, ThirdPaySoureBizTypeEnum soureType); + + /** + * 订单详情 + */ + PayBaseVo orderDetail(PayDetailDto dto, ThirdPaySoureBizTypeEnum soureType); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index 03d0b8bd6..4220954ac 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -124,11 +124,10 @@ public class HardOrderServiceImpl extends ServiceImpl scopeList(HardOrderDto dto) { - List list = baseMapper.list(dto); - List resultList = BeanUtils.toBean(list, HardOrderVo.class); - disposeList(resultList, dto); - return resultList; + public List scopeList(HardOrderDto dto, DataScope dataScope) { + List list = baseMapper.scopeList(dto, dataScope); + disposeList(list, dto); + return list; } /** @@ -142,40 +141,7 @@ public class HardOrderServiceImpl extends ServiceImpl scopePageList(Page page, HardOrderDto dto, DataScope dataScope) { Page list = baseMapper.scopePageList(page, dto, dataScope); - if (ObjectUtil.isNotEmpty(list.getRecords())) { - // 用户 - List userIds = list.getRecords().stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getInnerUserById(new ArrayList<>(userIds)); - if (ObjectUtil.isNotEmpty(userList.getData())) { - DataUtil.convertUserList(list.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); - } - } - // 部门 - List deptIds = list.getRecords().stream().map(HardOrderVo::getDeptId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(deptIds)) { - R> deptList = deptService.getDeptByDeptIds(deptIds); - if (ObjectUtil.isNotEmpty(deptList.getData())) { - DataUtil.convertDeptList(list.getRecords(), deptList.getData()); - } - } - // 商户 - List mchIds = list.getRecords().stream().map(HardOrderVo::getMerchantId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(mchIds)) { - R> mchList = remoteMchService.getByIds(mchIds); - if (ObjectUtil.isNotEmpty(mchList.getData())) { - WalletDataUtil.convertMchList(list.getRecords(), CollectionUtils.convertMap(mchList.getData(), MchManageVo::getId)); - } - } - // 购物车 - if (dto.getIsFindCarList()) { - for (HardOrderVo v : list.getRecords()) { - List carList = hardCarService.getByParentCarId(v.getParentCarId()); - List carVoList = BeanUtils.toBean(carList, HardCarVo.class); - v.setCarList(carVoList); - } - } - } + disposeList(list.getRecords(), dto); return list; } @@ -859,7 +825,7 @@ public class HardOrderServiceImpl extends ServiceImpl userIds = list.stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); if (ObjectUtil.isNotEmpty(userIds)) { - R> userList = userService.getUserById(new ArrayList<>(userIds)); + R> userList = userService.getInnerUserById(new ArrayList<>(userIds)); if (ObjectUtil.isNotEmpty(userList.getData())) { DataUtil.convertUserList(list, CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/third/HardThirdPayServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/third/HardThirdPayServiceImpl.java index 5ba579d5a..7541f61f5 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/third/HardThirdPayServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/third/HardThirdPayServiceImpl.java @@ -21,7 +21,7 @@ import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleLogEntity; import com.bsd.pjcloud.hard.api.entity.order.HardOrderEntity; -import com.bsd.pjcloud.hard.api.vo.order.HardOrderPayTypeVo; +import com.bsd.pjcloud.hard.api.vo.order.HardAfterSaleVo; import com.bsd.pjcloud.hard.api.vo.order.HardOrderVo; import com.bsd.pjcloud.hard.config.LbCallbackConfig; import com.bsd.pjcloud.hard.mapper.order.HardAfterSaleLogMapper; @@ -31,6 +31,7 @@ import com.bsd.pjcloud.hard.service.HardOrderService; import com.bsd.pjcloud.hard.service.HardThirdPayService; import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPaySoureBizTypeEnum; import com.bsd.pjcloud.thirdparty.constant.pay.ThirdPayVoStatusEnum; +import com.bsd.pjcloud.thirdparty.dto.pay.PayDetailDto; import com.bsd.pjcloud.thirdparty.dto.pay.PayDto; import com.bsd.pjcloud.thirdparty.dto.pay.RefundDto; import com.bsd.pjcloud.thirdparty.dto.pay.WaterDto; @@ -66,6 +67,7 @@ public class HardThirdPayServiceImpl implements HardThirdPayService { private final HardOrderService hardOrderService; private final HardCarService hardCarService; private final HardAfterSaleService hardAfterSaleService; + private final HardAfterSaleLogMapper hardAfterSaleLogMapper; private final RemoteMchService mchService; @@ -277,9 +279,13 @@ public class HardThirdPayServiceImpl implements HardThirdPayService { item.setName(v.getUsername()); item.setSignPhone(v.getUserMobile()); item.setPlatformOrderId(String.valueOf(v.getId())); - item.setPlatformRefundId(String.valueOf(v.getAfterSaleId())); + if (ObjectUtil.isNotEmpty(v.getAfterSaleId())) { + item.setPlatformRefundId(String.valueOf(v.getAfterSaleId())); + } item.setThirdOrderId(v.getOrderNo()); - item.setThirdRefundId(String.valueOf(v.getAfterSaleNo())); + if (ObjectUtil.isNotEmpty(v.getAfterSaleNo())) { + item.setThirdRefundId(String.valueOf(v.getAfterSaleNo())); + } item.setOrderStatus(v.getOrderStatus()); item.setOrderPrice(v.getPayPrice()); item.setRefundPrice(v.getRefundPrice()); @@ -298,6 +304,55 @@ public class HardThirdPayServiceImpl implements HardThirdPayService { return baseVo; } + /** + * 订单详情 + */ + @Override + public PayBaseVo orderDetail(PayDetailDto dto, ThirdPaySoureBizTypeEnum soureType) { + // 返回值 + PayBaseVo baseVo = new PayBaseVo(); + String orderType = getOrderType(soureType); + HardOrderDto query = new HardOrderDto(); + query.setOrderType(orderType); + query.setOrderNo(dto.getThirdOrderId()); + query.setAfterSaleNo(dto.getThirdRefundId()); + List hardOrderVos = hardOrderService.scopeList(query, null); + if (ObjectUtil.isEmpty(hardOrderVos)) { + baseVo.set(ThirdPayVoStatusEnum.ORDER_EXIST); + return baseVo; + } + if (hardOrderVos.size() > 1) { + baseVo.set(ThirdPayVoStatusEnum.DETAIL_ITEM_NOT_ONE); + return baseVo; + } + HardOrderVo order = hardOrderVos.get(0); + // 组合返回参数 + PayWaterVo item = new PayWaterVo(); + item.setUserId(order.getUserId()); + item.setName(order.getUsername()); + item.setSignPhone(order.getUserMobile()); + item.setPlatformOrderId(String.valueOf(order.getId())); + if (ObjectUtil.isNotEmpty(order.getAfterSaleId())) { + item.setPlatformRefundId(String.valueOf(order.getAfterSaleId())); + } + item.setThirdOrderId(order.getOrderNo()); + if (ObjectUtil.isNotEmpty(order.getAfterSaleNo())) { + item.setThirdRefundId(String.valueOf(order.getAfterSaleNo())); + } + item.setOrderStatus(order.getOrderStatus()); + item.setOrderPrice(order.getPayPrice()); + item.setRefundPrice(order.getRefundPrice()); + if (ObjectUtil.isNotEmpty(order.getPayTime())) { + item.setPayTime(LocalDateTimeUtil.format(order.getPayTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + if (ObjectUtil.isNotEmpty(order.getRefundTime())) { + item.setRefundTime(LocalDateTimeUtil.format(order.getRefundTime(), DatePattern.NORM_DATETIME_PATTERN)); + } + baseVo.set(ThirdPayVoStatusEnum.SUCCESS); + baseVo.setData(item); + return baseVo; + } + /** * 查询美好生活默认商户信息 */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml index 6cdd74fb8..925b1ad82 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardOrderMapper.xml @@ -82,6 +82,9 @@ a.del_flag = '0' + + and a.order_no = #{dto.orderNo} + and a.order_status = #{dto.orderStatus} @@ -179,7 +182,7 @@ - + + + +