diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardTypeEnum.java index 0f99a9daa..fdcafcba8 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardTypeEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardTypeEnum.java @@ -21,7 +21,7 @@ public enum HardTypeEnum { private final String type; private final String description; - public static HardTypeEnum valueOfByType(Integer type) { + public static HardTypeEnum valueOfByType(String type) { if (ObjectUtil.isEmpty(type)) return null; return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java index 289e7933e..00adb7a2e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardInvoiceVo.java @@ -13,4 +13,6 @@ public class HardInvoiceVo extends HardInvoiceEntity implements BaseDeptInterfac private Long merchantId; private String merchantName; + + private String logoPic; } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardManagerVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardManagerVo.java index 169d9bfc4..85cd91a54 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardManagerVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardManagerVo.java @@ -13,4 +13,6 @@ public class HardManagerVo extends HardManagerEntity implements BaseDeptInterfac private String merchantName; + private String logoPic; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java index 03a415b8e..362513d1e 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/order/HardOrderVo.java @@ -22,8 +22,14 @@ public class HardOrderVo extends HardOrderEntity implements BaseUserInterface, B */ private String deptName; + /** + * 商户相关 + */ + private String merchantName; + private String logoPic; + /** * 设备相关 */ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java index 5b1c6539b..a4be792ee 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardAfterSaleController.java @@ -14,6 +14,8 @@ import com.bsd.pjcloud.hard.api.dto.order.HardAfterSaleDto; import com.bsd.pjcloud.hard.api.dto.order.HardDisagreeDto; import com.bsd.pjcloud.hard.api.entity.order.HardAfterSaleEntity; 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.bsd.pjcloud.hard.service.HardAfterSaleService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -48,6 +50,14 @@ public class HardAfterSaleController { return R.ok(hardAfterSaleService.getHistory(id)); } + @GetMapping(value = "/detail-by-order-id") + @Operation(summary = "查询售后进度") + public R getDetailByOrderId(@RequestParam Long orderId) { + HardAfterSaleDto dto = new HardAfterSaleDto(); + dto.setOrderId(orderId); + return R.ok(hardAfterSaleService.join(dto)); + } + @PutMapping("/agree") @Operation(summary = "同意售后") @Idempotent(expireTime = 10, info = "正在处理中,请勿重复操作") 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 8355e50bd..6b47184c9 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 @@ -88,7 +88,7 @@ public class HardOrderController { @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('hard_hardwareOrder_view')") public R getById(@PathVariable("id") Long id) { - return R.ok(hardwareOrderService.getById(id)); + return R.ok(hardwareOrderService.join(id)); } @Operation(summary = "新增订单表", description = "新增订单表") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java index 032eaa5a6..9e84ccc09 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardAfterSaleMapper.java @@ -11,10 +11,17 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface HardAfterSaleMapper extends PjcloudBaseMapper { - - default Page pageJoin(Page page, HardAfterSaleDto dto){ + default Page pageJoin(Page page, HardAfterSaleDto dto) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() .selectAll(HardAfterSaleEntity.class); return selectJoinPage(page, HardAfterSaleVo.class, wrapper); } + + default HardAfterSaleVo join(HardAfterSaleDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(HardAfterSaleEntity.class) + .eqIfExists(HardAfterSaleEntity::getId, dto.getId()) + .eqIfExists(HardAfterSaleEntity::getOrderId, dto.getOrderId()); + return selectJoinOne(HardAfterSaleVo.class, wrapper); + } } \ No newline at end of file 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 67fd637d0..3c8880a30 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 @@ -28,7 +28,11 @@ public interface HardOrderMapper extends PjcloudBaseMapper { default HardOrderVo join(HardOrderDto dto) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper() - .selectAll(HardOrderEntity.class); + .selectAll(HardOrderEntity.class) + .selectAs(HardManagerEntity::getName, HardOrderVo::getHardName) + .selectAs(HardManagerEntity::getType, HardOrderVo::getHardType) + .leftJoin(HardManagerEntity.class, HardManagerEntity::getId, HardOrderEntity::getHardId) + .eqIfExists(HardOrderEntity::getId, dto.getId()); return selectJoinOne(HardOrderVo.class, wrapper); } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java index ae0f6be7f..e19b6b890 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAfterSaleService.java @@ -14,6 +14,8 @@ public interface HardAfterSaleService extends IService { Page pageJoin(Page page, HardAfterSaleDto dto); + HardAfterSaleVo join(HardAfterSaleDto dto); + /** * 获取售后进度 * 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 a8cb90976..35a13598e 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 @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.constant.HardTypeEnum; import com.bsd.pjcloud.hard.api.dto.hard.HandCancelCodeDto; import com.bsd.pjcloud.hard.api.dto.hard.HardCreateOrderDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; @@ -46,6 +47,11 @@ public interface HardOrderService extends IService { */ void cancelCode(HardOrderEntity order); + /** + * 扣件库存 + */ + void fastenerInventory(HardOrderEntity order); + /** * 核销硬件二维码 * diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java index 24abd1090..75106236c 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.entity.SysUser; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; @@ -85,6 +86,28 @@ public class HardAfterSaleServiceImpl extends ServiceImpl user = userService.getByUserId(detail.getUserId()); + if (ObjectUtil.isNotEmpty(user.getData())) { + DataUtil.convertUser(detail, user.getData().getSysUser()); + } + } + // 部门 + if (ObjectUtil.isNotEmpty(detail.getDeptId())) { + R dept = deptService.getDeptByDeptId(detail.getDeptId()); + if (ObjectUtil.isNotEmpty(dept.getData())) { + DataUtil.convertDept(detail, dept.getData()); + } + } + } + return detail; + } + @Override public List getHistory(Long id) { return hardAfterSaleLogMapper.selectList(new LambdaQueryWrapper() @@ -161,7 +184,7 @@ public class HardAfterSaleServiceImpl extends ServiceImpl list = baseMapper.pageJoin(page, dto); if (ObjectUtil.isNotEmpty(list.getRecords())) { // 用户 - List userIds = list.getRecords().stream().map(HardOrderVo::getUserId).distinct().toList(); + List userIds = list.getRecords().stream().map(HardOrderVo::getUserId).filter(ObjectUtil::isNotEmpty).distinct().toList(); if (ObjectUtil.isNotEmpty(userIds)) { R> userList = userService.getUserById(new ArrayList<>(userIds)); if (ObjectUtil.isNotEmpty(userList.getData())) { @@ -96,7 +95,7 @@ public class HardwareOrderServiceImpl extends ServiceImpl deptIds = list.getRecords().stream().map(HardOrderVo::getDeptId).distinct().toList(); + 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())) { @@ -104,7 +103,7 @@ public class HardwareOrderServiceImpl extends ServiceImpl mchIds = list.getRecords().stream().map(HardOrderVo::getMerchantId).distinct().toList(); + 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())) { @@ -119,7 +118,31 @@ public class HardwareOrderServiceImpl extends ServiceImpl user = userService.getByUserId(detail.getUserId()); + if (ObjectUtil.isNotEmpty(user.getData())) { + DataUtil.convertUser(detail, user.getData().getSysUser()); + } + } + // 部门 + if (ObjectUtil.isNotEmpty(detail.getDeptId())) { + R dept = deptService.getDeptByDeptId(detail.getDeptId()); + if (ObjectUtil.isNotEmpty(dept.getData())) { + DataUtil.convertDept(detail, dept.getData()); + } + } + // 商户 + if (ObjectUtil.isNotEmpty(detail.getMerchantId())) { + R mch = remoteMchService.getById(detail.getMerchantId()); + if (ObjectUtil.isNotEmpty(mch.getData())) { + MchDataUtil.convertMch(detail, mch.getData()); + } + } + } + return detail; } @@ -274,6 +297,7 @@ public class HardwareOrderServiceImpl extends ServiceImpl T convertMch(T v, MchManageVo vo) { if (ObjectUtil.isEmpty(vo)) return v; v.setMerchantName(vo.getName()); + v.setLogoPic(vo.getLogoPic()); return v; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java index bff468891..e12a0ffd2 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java @@ -27,4 +27,6 @@ public class WalletActiveVo extends WalletActiveEntity implements BaseUserInterf * 商户相关 */ private String merchantName; + + private String logoPic; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java index afc7012a9..f11cd242f 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java @@ -16,4 +16,12 @@ public interface BaseMchInterface { void setMerchantName(String dchName); + /** + * 商户logo + */ + String getLogoPic(); + + void setLogoPic(String logoPic); + + }