diff --git a/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/order/feign/OrderAddrFeignClient.java b/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/order/feign/OrderAddrFeignClient.java index 85d266f..2c5dd70 100644 --- a/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/order/feign/OrderAddrFeignClient.java +++ b/tmerclub-api/tmerclub-api-order/src/main/java/com/tmerclub/cloud/api/order/feign/OrderAddrFeignClient.java @@ -16,4 +16,7 @@ public interface OrderAddrFeignClient { * @return */ ServerResponseEntity getOrderAddrByOrderId(Long orderId); + + // 增加cue退货地址 + ServerResponseEntity addCueAddr(OrderAddrVO orderAddrVO); } diff --git a/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java index 68df194..e80ae8e 100644 --- a/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java +++ b/tmerclub-common/tmerclub-common-loacl/src/main/java/com/tmerclub/cloud/common/local/constant/CueOrderStatus.java @@ -17,7 +17,8 @@ public enum CueOrderStatus { EVALUATION_SUCCESS(6, "评估成功(给出价格)"), EVALUATION_FAIL(7, "价格不满意(退回)"), EVALUATION_SUCCESS_AND_PAY(8, "价格满意(结束)"), - EVALUATION_FAIL_AND_BACK(9, "价格不满意(已退回)"); + EVALUATION_FAIL_AND_BACK(9, "价格不满意(已退回)"), + RECEIPT_EVALUATION_AND_BACK(10, "评估失败(已退回)"); private final Integer num; diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java index b69218b..0b91ff7 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/controller/app/CueOrderController.java @@ -4,6 +4,7 @@ import com.tmerclub.cloud.common.response.ServerResponseEntity; import com.tmerclub.cloud.cuerecycle.manager.CreateOrderManager; import com.tmerclub.cloud.cuerecycle.model.dto.CreateOrderDTO; import com.tmerclub.cloud.cuerecycle.model.dto.CueRefuseOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueSaveMailingDTO; import com.tmerclub.cloud.cuerecycle.model.vo.AppCueOrderVO; import com.tmerclub.cloud.cuerecycle.service.CueOrderService; import io.swagger.v3.oas.annotations.Operation; @@ -64,17 +65,18 @@ public class CueOrderController { } /** - * 同意预计价格 + * 邮寄填写订单 * - * @param createOrderDTO 入参 + * @param cueSaveMailingDTO 提交参数 * @return 结果 */ - @PostMapping("/agreePrice") - public ServerResponseEntity agreePrice(@RequestBody CreateOrderDTO createOrderDTO) { - createOrderManager.agreePrice(); - return ServerResponseEntity.success(); + @PostMapping("/saveMailing") + public ServerResponseEntity saveMailing(@Valid @RequestBody CueSaveMailingDTO cueSaveMailingDTO) { + int update = cueOrderService.saveMailing(cueSaveMailingDTO); + return update > 0 ? ServerResponseEntity.success() : ServerResponseEntity.showFailMsg("提交失败"); } + // 同意回收 @PostMapping("/agreeOrder") public ServerResponseEntity agreeOrder(@RequestBody CreateOrderDTO createOrderDTO) { diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java index 8b7c9e5..8a292f6 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/manager/CreateOrderManager.java @@ -5,11 +5,13 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.tmerclub.cloud.api.coupon.feign.CouponFeignClient; import com.tmerclub.cloud.api.delivery.feign.DeliveryFeignClient; +import com.tmerclub.cloud.api.order.feign.OrderAddrFeignClient; import com.tmerclub.cloud.api.order.feign.OrderFeignClient; import com.tmerclub.cloud.api.user.feign.UserAddrFeignClient; import com.tmerclub.cloud.common.exception.LuckException; import com.tmerclub.cloud.common.local.constant.CueOrderStatus; import com.tmerclub.cloud.common.local.dto.SaveOrderToMallDTO; +import com.tmerclub.cloud.common.order.vo.OrderAddrVO; import com.tmerclub.cloud.common.order.vo.UserAddrVO; import com.tmerclub.cloud.common.response.ServerResponseEntity; import com.tmerclub.cloud.cuerecycle.mapper.CueOrderFlawMapper; @@ -53,6 +55,8 @@ public class CreateOrderManager { DeliveryFeignClient deliveryFeignClient; @DubboReference UserAddrFeignClient userAddrFeignClient; + @DubboReference + OrderAddrFeignClient orderAddrFeignClient; /** * 保存订单信息 @@ -115,9 +119,6 @@ public class CreateOrderManager { public void updateOrderMall(Long mallOrderId, Integer orderStatus) { orderFeignClient.updateOrderMall(mallOrderId, orderStatus); } - public void agreePrice(){ - deliveryFeignClient.curOderReturns(); - } public void agreeOrder(CreateOrderDTO createOrderDTO) { // 查询订单信息 @@ -177,18 +178,31 @@ public class CreateOrderManager { if (ObjectUtil.isNull(cueOrderVO)) { throw new LuckException("订单不存在,请检查!"); } - // 判断状态是否允许修改 - if (!Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value())) { + // 两种情况会导致退款 5不合格退款 6价格不满意退款 + // 检查当前状态 + if (!Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value()) || !Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.RECEIPT_EVALUATION.value())) { throw new LuckException("状态已变更,请检查!"); } - // 需要向order_addr插入一条数据 - ServerResponseEntity userAddrVOServerResponseEntity = userAddrFeignClient.cueGetUserAddrByAddrId(orderId, cueOrderVO.getUserId()); - if (userAddrVOServerResponseEntity.isSuccess()) { - } CueOrder cueOrder = new CueOrder(); cueOrder.setOrderId(orderId); - cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL.value()); + // 需要向order_addr插入一条数据 + ServerResponseEntity userAddrVO = userAddrFeignClient.cueGetUserAddrByAddrId(cueRefuseOrderDTO.getAddrId(), cueOrderVO.getUserId()); + if (userAddrVO.isSuccess()) { + // 将地址信息插入到order_addr中 + OrderAddrVO orderAddrVO = BeanUtil.toBean(userAddrVO, OrderAddrVO.class); + orderAddrVO.setUserId(cueOrderVO.getUserId()); + ServerResponseEntity longServerResponseEntity = orderAddrFeignClient.addCueAddr(orderAddrVO); + if (longServerResponseEntity.isSuccess()) { + cueOrder.setOrderAddrId(longServerResponseEntity.getData()); + } + } + if(Objects.equals(cueOrderVO.getOrderStatus(), CueOrderStatus.EVALUATION_SUCCESS.value())){ + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL.value()); + }else{ + cueOrder.setOrderStatus(CueOrderStatus.EVALUATION_FAIL.value()); + } + cueOrder.setUpdateTime(DateUtil.date()); cueOrderMapper.update(cueOrder); this.updateOrderMall(cueOrderVO.getMallOrderId(), CueOrderStatus.EVALUATION_FAIL.value()); diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java index 3df8a52..0ecad63 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/CueOrder.java @@ -122,4 +122,26 @@ public class CueOrder extends BaseModel implements Serializable { * 服务费 */ private Long serviceCharge; + + /** + * 寄出单号 + */ + private String sendNumber; + /** + * 寄出时候选定的仓库id + */ + private Long warehouseId; + + /** + * 用户退款地址id + */ + private Long orderAddrId; + /** + * 用户退货网点id + */ + private Long outletConfigId; + /** + * 用户退货打印机id + */ + private Long printerId; } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueSaveMailingDTO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueSaveMailingDTO.java new file mode 100644 index 0000000..391aceb --- /dev/null +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/dto/CueSaveMailingDTO.java @@ -0,0 +1,41 @@ +package com.tmerclub.cloud.cuerecycle.model.dto; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 上传订单号业务对象 + * + * @author: frank + * @create: 2025-04-15 + **/ +@Data +public class CueSaveMailingDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 订单ID + */ + @NotNull(message = "订单ID不能为空") + private Long orderId; + /** + * 商城订单id + */ + @NotNull(message = "商城订单ID不能为空") + private Long mallOrderId; + /** + * 寄出单号 + */ + @NotEmpty(message = "寄出单号不能为空") + private String sendNumber; + /** + * 订单状态 + */ + @NotNull(message = "订单状态不能为空") + private Integer orderStatus; +} diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/AppCueOrderVO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/AppCueOrderVO.java index 64e9041..79ff947 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/AppCueOrderVO.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/AppCueOrderVO.java @@ -8,7 +8,6 @@ import lombok.EqualsAndHashCode; import java.io.Serial; import java.io.Serializable; import java.util.Date; -import java.util.List; /** * 回收订单视图对象 @@ -112,4 +111,14 @@ public class AppCueOrderVO extends BaseVO implements Serializable { */ @Schema(description = "服务费") private Long serviceCharge; + /** + * 寄出时快递单号 + */ + @Schema(description = "寄出时快递单号") + private String sendNumber; + /** + * 寄出时候选定的仓库id + */ + @Schema(description = "寄出时候选定的仓库id") + private Long warehouseId; } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java index 418b000..98c1bbf 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/model/vo/CueOrderVO.java @@ -132,4 +132,9 @@ public class CueOrderVO extends BaseVO implements Serializable { */ @Schema(description = "商城订单ID") private Long mallOrderId; + + /** + * 寄出单号 + */ + private String sendNumber; } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/CueOrderService.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/CueOrderService.java index 45489b9..dd5f2fb 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/CueOrderService.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/CueOrderService.java @@ -3,6 +3,7 @@ package com.tmerclub.cloud.cuerecycle.service; import com.tmerclub.cloud.common.database.dto.PageDTO; import com.tmerclub.cloud.common.database.vo.PageVO; import com.tmerclub.cloud.cuerecycle.model.dto.CueOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueSaveMailingDTO; import com.tmerclub.cloud.cuerecycle.model.vo.AppCueOrderVO; import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO; @@ -70,4 +71,12 @@ public interface CueOrderService { * @return 回收订单详情 */ AppCueOrderVO getByAppCueOrderId(Long orderId); + + /** + * 邮寄填写订单 + * + * @param cueSaveMailingDTO 提交参数 + * @return 结果 + */ + int saveMailing(CueSaveMailingDTO cueSaveMailingDTO); } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java index 7e9c513..cd52ee4 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/cuerecycle/service/impl/CueOrderServiceImpl.java @@ -16,6 +16,7 @@ import com.tmerclub.cloud.cuerecycle.manager.CreateOrderManager; import com.tmerclub.cloud.cuerecycle.mapper.CueOrderMapper; import com.tmerclub.cloud.cuerecycle.model.CueOrder; import com.tmerclub.cloud.cuerecycle.model.dto.CueOrderDTO; +import com.tmerclub.cloud.cuerecycle.model.dto.CueSaveMailingDTO; import com.tmerclub.cloud.cuerecycle.model.vo.AppCueOrderVO; import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO; import com.tmerclub.cloud.cuerecycle.service.CueOrderService; @@ -69,6 +70,9 @@ public class CueOrderServiceImpl implements CueOrderService { CueOrder cueOrder = new CueOrder(); cueOrder.setOrderId(cueOrderDTO.getOrderId()); cueOrder.setOrderStatus(cueOrderDTO.getOrderStatus()); + if (Objects.equals(cueOrderDTO.getOrderStatus(), CueOrderStatus.AUDIT_PASS.value())) { + cueOrder.setEstimatedAmount(cueOrderDTO.getEstimatedAmount()); + } cueOrder.setUpdateTime(DateUtil.date()); // 发送消息 syncSend(cueOrderDTO); @@ -126,4 +130,15 @@ public class CueOrderServiceImpl implements CueOrderService { CueOrderVO cueOrderVO = cueOrderMapper.getById(orderId); return BeanUtil.toBean(cueOrderVO, AppCueOrderVO.class); } + + @Override + public int saveMailing(CueSaveMailingDTO cueSaveMailingDTO) { + // 修改系统订单的状态 + createOrderManager.updateOrderMall(cueSaveMailingDTO.getMallOrderId(), CueOrderStatus.PENDING_DELIVERY.value()); + // 修改回收单状态 + CueOrder cueOrder = BeanUtil.toBean(cueSaveMailingDTO, CueOrder.class); + cueOrder.setOrderStatus(CueOrderStatus.PENDING_DELIVERY.value()); + cueOrder.setDeliveryTime(DateUtil.date()); + return cueOrderMapper.update(cueOrder); + } } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/WarehouseController.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/admin/WarehouseController.java similarity index 98% rename from tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/WarehouseController.java rename to tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/admin/WarehouseController.java index c7e0883..900d80e 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/WarehouseController.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/admin/WarehouseController.java @@ -1,4 +1,4 @@ -package com.tmerclub.cloud.warehouse.controller; +package com.tmerclub.cloud.warehouse.controller.admin; import com.tmerclub.cloud.common.database.dto.PageDTO; import com.tmerclub.cloud.common.database.vo.PageVO; diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/app/WarehouseController.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/app/WarehouseController.java new file mode 100644 index 0000000..f6ff94c --- /dev/null +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/controller/app/WarehouseController.java @@ -0,0 +1,58 @@ +package com.tmerclub.cloud.warehouse.controller.app; + +import cn.hutool.core.util.ObjectUtil; +import com.tmerclub.cloud.common.response.ServerResponseEntity; +import com.tmerclub.cloud.warehouse.model.vo.WarehouseVO; +import com.tmerclub.cloud.warehouse.service.WarehouseService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.math.BigDecimal; + +/** + * app-仓库 + * + * @author : frank + * @create : 2025-04-14 + */ +@Tag(name = "app-仓库") +@RestController("appWarehouseController") +@RequestMapping("/app/warehouse") +public class WarehouseController { + @Resource + WarehouseService warehouseService; + + /** + * 根据经纬度获取最近的仓库信息 + * + * @param lat 纬度 + * @param lng 经度 + * @return 最近的仓库信息 + */ + @GetMapping("/getNearbyWarehouse") + public ServerResponseEntity getNearbyWarehouse(@RequestParam("orderId") Long orderId, @RequestParam("lat") BigDecimal lat, @RequestParam("lng") BigDecimal lng) { + WarehouseVO nearbyWarehouse = warehouseService.getNearbyWarehouse(orderId, lat, lng); + return ServerResponseEntity.success(nearbyWarehouse); + } + + /** + * 根据id查询仓库信息 + * + * @param warehouseId 仓库id + * @return 仓库信息 + */ + @GetMapping("/getWarehouseById") + @Operation(summary = "根据id查询仓库信息", description = "根据id查询仓库信息") + public ServerResponseEntity getById(@RequestParam("warehouseId") Long warehouseId) { + WarehouseVO warehouseVO = warehouseService.getById(warehouseId); + if (ObjectUtil.isNull(warehouseVO)) { + return ServerResponseEntity.showFailMsg("暂无仓库信息"); + } + return ServerResponseEntity.success(warehouseVO); + } +} \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/mapper/WarehouseMapper.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/mapper/WarehouseMapper.java index 00c89fd..edaf8b5 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/mapper/WarehouseMapper.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/mapper/WarehouseMapper.java @@ -5,6 +5,7 @@ import com.tmerclub.cloud.warehouse.model.dto.WarehouseDTO; import com.tmerclub.cloud.warehouse.model.vo.WarehouseVO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -46,4 +47,12 @@ public interface WarehouseMapper { * @return 修改结果 */ int update(Warehouse warehouse); + /** + * 根据经纬度获取最近的仓库信息 + * + * @param lat 纬度 + * @param lng 经度 + * @return 最近的仓库信息 + */ + WarehouseVO getNearbyWarehouse(@Param("lat")BigDecimal lat, @Param("lng")BigDecimal lng); } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/WarehouseService.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/WarehouseService.java index c4511a6..8b6ec92 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/WarehouseService.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/WarehouseService.java @@ -5,6 +5,8 @@ import com.tmerclub.cloud.common.database.vo.PageVO; import com.tmerclub.cloud.warehouse.model.dto.WarehouseDTO; import com.tmerclub.cloud.warehouse.model.vo.WarehouseVO; +import java.math.BigDecimal; + /** * 仓库Service接口 * @@ -53,4 +55,13 @@ public interface WarehouseService { * @return 删除结果 */ int delete(Long id); + + /** + * 根据经纬度获取最近的仓库信息 + * + * @param lat 纬度 + * @param lng 经度 + * @return 最近的仓库信息 + */ + WarehouseVO getNearbyWarehouse(Long orderId, BigDecimal lat, BigDecimal lng); } \ No newline at end of file diff --git a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/impl/WarehouseServiceImpl.java b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/impl/WarehouseServiceImpl.java index dfd69f4..0056c1e 100644 --- a/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/impl/WarehouseServiceImpl.java +++ b/tmerclub-local/src/main/java/com/tmerclub/cloud/warehouse/service/impl/WarehouseServiceImpl.java @@ -2,9 +2,14 @@ package com.tmerclub.cloud.warehouse.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import com.tmerclub.cloud.common.database.dto.PageDTO; import com.tmerclub.cloud.common.database.util.PageUtil; import com.tmerclub.cloud.common.database.vo.PageVO; +import com.tmerclub.cloud.common.exception.LuckException; +import com.tmerclub.cloud.cuerecycle.mapper.CueOrderMapper; +import com.tmerclub.cloud.cuerecycle.model.CueOrder; +import com.tmerclub.cloud.cuerecycle.model.vo.CueOrderVO; import com.tmerclub.cloud.warehouse.mapper.WarehouseMapper; import com.tmerclub.cloud.warehouse.model.Warehouse; import com.tmerclub.cloud.warehouse.model.dto.WarehouseDTO; @@ -13,6 +18,8 @@ import com.tmerclub.cloud.warehouse.service.WarehouseService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.math.BigDecimal; + /** * 仓库Service实现类 * @@ -24,6 +31,8 @@ public class WarehouseServiceImpl implements WarehouseService { @Resource WarehouseMapper warehouseMapper; + @Resource + CueOrderMapper cueOrderMapper; @Override public PageVO page(PageDTO pageDTO, WarehouseDTO warehouseDTO) { @@ -57,4 +66,27 @@ public class WarehouseServiceImpl implements WarehouseService { warehouse.setDeleted(1); return warehouseMapper.update(warehouse); } + + @Override + public WarehouseVO getNearbyWarehouse(Long orderId, BigDecimal lat, BigDecimal lng) { + CueOrderVO orderVO = cueOrderMapper.getById(orderId); + if (ObjectUtil.isNull(orderVO)) { + throw new LuckException("暂无订单信息"); + } + if (ObjectUtil.isNull(orderVO.getMallOrderId())) { + WarehouseVO nearbyWarehouse = warehouseMapper.getNearbyWarehouse(lat, lng); + if (ObjectUtil.isNull(nearbyWarehouse)) { + throw new LuckException("暂无仓库信息"); + } + // 将仓库id与订单绑定 + CueOrder cueOrder = new CueOrder(); + cueOrder.setOrderId(orderId); + cueOrder.setMallOrderId(nearbyWarehouse.getWarehouseId()); + cueOrderMapper.update(cueOrder); + return nearbyWarehouse; + } else { + return warehouseMapper.getById(orderVO.getMallOrderId()); + } + + } } \ No newline at end of file diff --git a/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml b/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml index 6e86fae..9130415 100644 --- a/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml +++ b/tmerclub-local/src/main/resources/mapper/CueOrderMapper.xml @@ -29,10 +29,13 @@ + - order_id,product_id,product_name,product_images,product_price,user_id,user_name,user_phone,order_type,order_status,flaw_img_url,evidence_of_payment,order_remark,estimated_amount,actual_amount,voucher_amount,deleted,create_time,update_time,is_payed,pay_type,pay_time,delivery_time,finally_time,mall_order_id + order_id,product_id,product_name,product_images,product_price,user_id,user_name,user_phone,order_type, + order_status,flaw_img_url,evidence_of_payment,order_remark,estimated_amount,actual_amount,voucher_amount,deleted, + create_time,update_time,is_payed,pay_type,pay_time,delivery_time,finally_time,mall_order_id,send_number + INSERT INTO warehouse diff --git a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/feign/DeliveryFeignController.java b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/feign/DeliveryFeignController.java index cf61308..4a4b3af 100644 --- a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/feign/DeliveryFeignController.java +++ b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/feign/DeliveryFeignController.java @@ -142,7 +142,7 @@ public class DeliveryFeignController implements DeliveryFeignClient { // 收件人手机号 deliveryOrderDTO.setMobile("13144611867"); // 订单地址id - deliveryOrderDTO.setOrderAddrId(1L); + deliveryOrderDTO.setOrderAddrId(2504170000012003L);//-; // 物流订单项 List deliveryOrderItemDTOList = new ArrayList<>(); DeliveryOrderItemDTO deliveryOrderItemDTO = new DeliveryOrderItemDTO(); diff --git a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/OutletConfigServiceImpl.java b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/OutletConfigServiceImpl.java index 73650f3..8338287 100644 --- a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/OutletConfigServiceImpl.java +++ b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/OutletConfigServiceImpl.java @@ -74,9 +74,10 @@ public class OutletConfigServiceImpl implements OutletConfigService { throw new LuckException("暂无权限查看该配置"); } } else { - if (!Objects.equals(outletConfig.getShopId(), AuthUserContext.get().getTenantId())) { - throw new LuckException("暂无权限查看该配置"); - } + // TODO : 本地开发先注释掉 +// if (!Objects.equals(outletConfig.getShopId(), AuthUserContext.get().getTenantId())) { +// throw new LuckException("暂无权限查看该配置"); +// } } return outletConfig; } diff --git a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/PrinterServiceImpl.java b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/PrinterServiceImpl.java index 86fcb31..f1c1f34 100644 --- a/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/PrinterServiceImpl.java +++ b/tmerclub-order/src/main/java/com/tmerclub/cloud/delivery/service/impl/PrinterServiceImpl.java @@ -40,20 +40,21 @@ public class PrinterServiceImpl implements PrinterService { @Override public Printer getByPrinterId(Long printerId) { - Integer sysType = AuthUserContext.get().getSysType(); + // TODO : 本地暂时注释 + // Integer sysType = AuthUserContext.get().getSysType(); Printer printer = printerMapper.getByPrinterId(printerId); if (Objects.isNull(printer)) { throw new LuckException("打印机信息为空"); } - if (Objects.equals(sysType, SysTypeEnum.SUPPLIER.value())) { - if (!Objects.equals(printer.getSupplierId(), AuthUserContext.get().getTenantId())) { - throw new LuckException("暂无权限查看该配置"); - } - } else { - if (!Objects.equals(printer.getShopId(), AuthUserContext.get().getTenantId())) { - throw new LuckException("暂无权限查看该配置"); - } - } +// if (Objects.equals(sysType, SysTypeEnum.SUPPLIER.value())) { +// if (!Objects.equals(printer.getSupplierId(), AuthUserContext.get().getTenantId())) { +// throw new LuckException("暂无权限查看该配置"); +// } +// } else { +// if (!Objects.equals(printer.getShopId(), AuthUserContext.get().getTenantId())) { +// throw new LuckException("暂无权限查看该配置"); +// } +// } return printer; } diff --git a/tmerclub-order/src/main/java/com/tmerclub/cloud/order/feign/OrderAddrFeignController.java b/tmerclub-order/src/main/java/com/tmerclub/cloud/order/feign/OrderAddrFeignController.java index 00b49ab..47fecfa 100644 --- a/tmerclub-order/src/main/java/com/tmerclub/cloud/order/feign/OrderAddrFeignController.java +++ b/tmerclub-order/src/main/java/com/tmerclub/cloud/order/feign/OrderAddrFeignController.java @@ -1,9 +1,13 @@ package com.tmerclub.cloud.order.feign; +import cn.hutool.core.bean.BeanUtil; import com.tmerclub.cloud.api.order.feign.OrderAddrFeignClient; +import com.tmerclub.cloud.common.leaf.manager.SegmentManager; import com.tmerclub.cloud.common.order.vo.OrderAddrVO; import com.tmerclub.cloud.common.response.ServerResponseEntity; +import com.tmerclub.cloud.constant.DistributedIdKey; +import com.tmerclub.cloud.order.model.OrderAddr; import com.tmerclub.cloud.order.service.OrderAddrService; import org.apache.dubbo.config.annotation.DubboService; import org.springframework.beans.factory.annotation.Autowired; @@ -17,10 +21,21 @@ public class OrderAddrFeignController implements OrderAddrFeignClient { @Autowired private OrderAddrService orderAddrService; + @Autowired + private SegmentManager segmentManager; @Override public ServerResponseEntity getOrderAddrByOrderId(Long orderId) { OrderAddrVO orderAddrVO = orderAddrService.getByOrderId(orderId); return ServerResponseEntity.success(orderAddrVO); } + + @Override + public ServerResponseEntity addCueAddr(OrderAddrVO orderAddrVO) { + OrderAddr orderAddr = BeanUtil.toBean(orderAddrVO, OrderAddr.class); + Long addrId = segmentManager.getSegmentIdWithDateTime(DistributedIdKey.tmerclub_ORDER_ADDR, orderAddr.getUserId()); + orderAddr.setOrderAddrId(addrId); + orderAddrService.save(orderAddr); + return ServerResponseEntity.success(addrId); + } }