- 添加退货详情
This commit is contained in:
parent
a5a51b9cdb
commit
983f00ab40
@ -85,7 +85,7 @@ public class OrderController {
|
|||||||
remark, HttpUtil.getIp(request),
|
remark, HttpUtil.getIp(request),
|
||||||
cartItems, couponCardId);
|
cartItems, couponCardId);
|
||||||
// 创建订单
|
// 创建订单
|
||||||
CommonResult<OrderCreateBO> createResult= orderService.createOrder(orderCreateDTO);
|
CommonResult<OrderCreateBO> createResult = orderService.createOrder(orderCreateDTO);
|
||||||
if (createResult.isError()) {
|
if (createResult.isError()) {
|
||||||
return CommonResult.error(createResult);
|
return CommonResult.error(createResult);
|
||||||
}
|
}
|
||||||
@ -127,7 +127,7 @@ public class OrderController {
|
|||||||
CommonResult<OrderInfoBO> commonResult = orderService.info(userId, orderId);
|
CommonResult<OrderInfoBO> commonResult = orderService.info(userId, orderId);
|
||||||
|
|
||||||
OrderInfoBO orderInfoBO = commonResult.getData();
|
OrderInfoBO orderInfoBO = commonResult.getData();
|
||||||
if(orderInfoBO != null) {
|
if (orderInfoBO != null) {
|
||||||
CommonResult<DataDictBO> dictResult = dataDictService
|
CommonResult<DataDictBO> dictResult = dataDictService
|
||||||
.getDataDict(DictKeyConstants.ORDER_STATUS, orderInfoBO.getStatus());
|
.getDataDict(DictKeyConstants.ORDER_STATUS, orderInfoBO.getStatus());
|
||||||
orderInfoBO.setStatusText(dictResult.getData().getDisplayName());
|
orderInfoBO.setStatusText(dictResult.getData().getDisplayName());
|
||||||
|
@ -4,6 +4,7 @@ import cn.iocoder.common.framework.vo.CommonResult;
|
|||||||
import cn.iocoder.mall.admin.api.DataDictService;
|
import cn.iocoder.mall.admin.api.DataDictService;
|
||||||
import cn.iocoder.mall.admin.api.bo.DataDictBO;
|
import cn.iocoder.mall.admin.api.bo.DataDictBO;
|
||||||
import cn.iocoder.mall.order.api.OrderReturnService;
|
import cn.iocoder.mall.order.api.OrderReturnService;
|
||||||
|
import cn.iocoder.mall.order.api.bo.OrderReturnInfoBO;
|
||||||
import cn.iocoder.mall.order.api.constant.DictKeyConstants;
|
import cn.iocoder.mall.order.api.constant.DictKeyConstants;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
||||||
import cn.iocoder.mall.order.application.convert.OrderReturnConvert;
|
import cn.iocoder.mall.order.application.convert.OrderReturnConvert;
|
||||||
@ -41,4 +42,23 @@ public class OrderReturnController {
|
|||||||
OrderReturnApplyDTO applyDTO = OrderReturnConvert.INSTANCE.convert(orderReturnApplyPO);
|
OrderReturnApplyDTO applyDTO = OrderReturnConvert.INSTANCE.convert(orderReturnApplyPO);
|
||||||
return orderReturnService.orderReturnApply(applyDTO);
|
return orderReturnService.orderReturnApply(applyDTO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("info")
|
||||||
|
@ApiOperation("订单售后详细")
|
||||||
|
public CommonResult<OrderReturnInfoBO> orderApplyInfo(@RequestParam("orderId") Integer orderId) {
|
||||||
|
CommonResult<OrderReturnInfoBO> commonResult = orderReturnService.orderApplyInfo(orderId);
|
||||||
|
|
||||||
|
// 转换 字典值
|
||||||
|
if (commonResult.isSuccess()) {
|
||||||
|
CommonResult<DataDictBO> dataDictResult = dataDictService.getDataDict(
|
||||||
|
DictKeyConstants.ORDER_RETURN_SERVICE_TYPE,
|
||||||
|
commonResult.getData().getReturnInfo().getServiceType());
|
||||||
|
|
||||||
|
if (dataDictResult.isSuccess()) {
|
||||||
|
commonResult.getData().getReturnInfo().setServiceTypeText(dataDictResult.getData().getDisplayName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return commonResult;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,4 +32,11 @@ public interface OrderReturnService {
|
|||||||
*/
|
*/
|
||||||
String updateRefundSuccess(String orderId, Integer refundPrice);
|
String updateRefundSuccess(String orderId, Integer refundPrice);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单申请信息
|
||||||
|
*
|
||||||
|
* @param orderId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
CommonResult orderApplyInfo(Integer orderId);
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,15 @@ public class OrderInfoBO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private List<OrderItem> orderItems;
|
private List<OrderItem> orderItems;
|
||||||
|
|
||||||
|
|
||||||
|
///
|
||||||
|
/// 其他字段
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否退货
|
||||||
|
*/
|
||||||
|
private Integer hasOrderReturn;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public static class OrderItem {
|
public static class OrderItem {
|
||||||
|
@ -0,0 +1,133 @@
|
|||||||
|
package cn.iocoder.mall.order.api.bo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单退货 info
|
||||||
|
*
|
||||||
|
* @author Sin
|
||||||
|
* @time 2019-04-27 10:19
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class OrderReturnInfoBO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退货信息
|
||||||
|
*/
|
||||||
|
private ReturnInfo returnInfo;
|
||||||
|
/**
|
||||||
|
* 订单 item
|
||||||
|
*/
|
||||||
|
private List<OrderItem> orderItems;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class OrderItem {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品编号
|
||||||
|
*/
|
||||||
|
private Integer skuId;
|
||||||
|
/**
|
||||||
|
* 商品名称
|
||||||
|
*/
|
||||||
|
private String skuName;
|
||||||
|
/**
|
||||||
|
* 商品图片
|
||||||
|
*/
|
||||||
|
private String skuImage;
|
||||||
|
/**
|
||||||
|
* 数量
|
||||||
|
*/
|
||||||
|
private Integer quantity;
|
||||||
|
/**
|
||||||
|
* 最终总金额,单位:分。
|
||||||
|
*/
|
||||||
|
private Integer presentTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public static class ReturnInfo {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号自动增长
|
||||||
|
*/
|
||||||
|
private Integer id;
|
||||||
|
/**
|
||||||
|
* 服务号
|
||||||
|
*/
|
||||||
|
private String serviceNumber;
|
||||||
|
/**
|
||||||
|
* 订单编号
|
||||||
|
*/
|
||||||
|
private Integer orderId;
|
||||||
|
/**
|
||||||
|
* 订单号 (保存一个冗余)
|
||||||
|
*/
|
||||||
|
private String orderNo;
|
||||||
|
/**
|
||||||
|
* 物流id
|
||||||
|
*/
|
||||||
|
private Integer orderLogisticsId;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// 退货原因
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退货原因(字典值)
|
||||||
|
*/
|
||||||
|
private Integer reason;
|
||||||
|
/**
|
||||||
|
* 问题描述
|
||||||
|
*/
|
||||||
|
private String describe;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// 时间信息
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同意时间
|
||||||
|
*/
|
||||||
|
private Date approvalTime;
|
||||||
|
/**
|
||||||
|
* 物流时间(填写物流单号时间)
|
||||||
|
*/
|
||||||
|
private Date logisticsTime;
|
||||||
|
/**
|
||||||
|
* 收货时间
|
||||||
|
*/
|
||||||
|
private Date receiverTime;
|
||||||
|
/**
|
||||||
|
* 成交时间(确认时间)
|
||||||
|
*/
|
||||||
|
private Date closingTime;
|
||||||
|
/**
|
||||||
|
* 退款类型
|
||||||
|
*
|
||||||
|
* - 1、退货退款
|
||||||
|
* - 2、退款
|
||||||
|
*/
|
||||||
|
private Integer serviceType;
|
||||||
|
/**
|
||||||
|
* 退款类型 转换值
|
||||||
|
*/
|
||||||
|
private String serviceTypeText;
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*
|
||||||
|
* - 1、退货申请
|
||||||
|
* - 2、申请成功
|
||||||
|
* - 3、申请失败
|
||||||
|
* - 4、退货中
|
||||||
|
* - 5、退货成功
|
||||||
|
*/
|
||||||
|
private Integer status;
|
||||||
|
}
|
||||||
|
}
|
@ -20,4 +20,8 @@ public class DictKeyConstants {
|
|||||||
* 订单 - 退货原因
|
* 订单 - 退货原因
|
||||||
*/
|
*/
|
||||||
public static final String ORDER_RETURN_REASON = "order_return_reason";
|
public static final String ORDER_RETURN_REASON = "order_return_reason";
|
||||||
|
/**
|
||||||
|
* 订单退货 - 退货类型
|
||||||
|
*/
|
||||||
|
public static final String ORDER_RETURN_SERVICE_TYPE = "order_return_service_type";
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,8 @@ public enum OrderErrorCodeEnum {
|
|||||||
ORDER_ITEM_ONLY_ONE(1008000200, "订单Item只有一个!"),
|
ORDER_ITEM_ONLY_ONE(1008000200, "订单Item只有一个!"),
|
||||||
ORDER_ITEM_SOME_NOT_EXISTS(1008000201, "有不存在的商品!"),
|
ORDER_ITEM_SOME_NOT_EXISTS(1008000201, "有不存在的商品!"),
|
||||||
|
|
||||||
|
// 订单退货
|
||||||
|
ORDER_RETURN_NO_RETURN_APPLY(1008000400, "未退货申请"),
|
||||||
|
|
||||||
// ========== 购物车 ==========
|
// ========== 购物车 ==========
|
||||||
CARD_ITEM_NOT_FOUND(1008003000, "购物车项不存在"),
|
CARD_ITEM_NOT_FOUND(1008003000, "购物车项不存在"),
|
||||||
@ -41,6 +42,8 @@ public enum OrderErrorCodeEnum {
|
|||||||
|
|
||||||
// 工具类服务 1008004000
|
// 工具类服务 1008004000
|
||||||
DICT_SERVER_INVOKING_FAIL(1008004000, "字典服务调用失败!"),
|
DICT_SERVER_INVOKING_FAIL(1008004000, "字典服务调用失败!"),
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private final int code;
|
private final int code;
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package cn.iocoder.mall.order.api.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单退货 - returnType
|
||||||
|
*
|
||||||
|
* @author Sin
|
||||||
|
* @time 2019-04-27 11:53
|
||||||
|
*/
|
||||||
|
public enum OrderReturnReturnTypeEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态
|
||||||
|
*
|
||||||
|
* - 1、退货退款
|
||||||
|
* - 2、退款
|
||||||
|
*/
|
||||||
|
RETURN_REFUND(1, "退货退款"),
|
||||||
|
REFUND(2, "退款")
|
||||||
|
;
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
private final String name;
|
||||||
|
|
||||||
|
OrderReturnReturnTypeEnum(int value, String name) {
|
||||||
|
this.value = value;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
}
|
@ -1,12 +1,16 @@
|
|||||||
package cn.iocoder.mall.order.biz.convert;
|
package cn.iocoder.mall.order.biz.convert;
|
||||||
|
|
||||||
|
import cn.iocoder.mall.order.api.bo.OrderReturnInfoBO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderReturnCreateDTO;
|
import cn.iocoder.mall.order.api.dto.OrderReturnCreateDTO;
|
||||||
|
import cn.iocoder.mall.order.biz.dataobject.OrderItemDO;
|
||||||
import cn.iocoder.mall.order.biz.dataobject.OrderReturnDO;
|
import cn.iocoder.mall.order.biz.dataobject.OrderReturnDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mappings;
|
import org.mapstruct.Mappings;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单 return
|
* 订单 return
|
||||||
*
|
*
|
||||||
@ -23,4 +27,10 @@ public interface OrderReturnConvert {
|
|||||||
|
|
||||||
@Mappings({})
|
@Mappings({})
|
||||||
OrderReturnDO convert(OrderReturnApplyDTO orderReturnApplyDTO);
|
OrderReturnDO convert(OrderReturnApplyDTO orderReturnApplyDTO);
|
||||||
|
|
||||||
|
@Mappings({})
|
||||||
|
OrderReturnInfoBO.ReturnInfo convert(OrderReturnDO orderReturnDO);
|
||||||
|
|
||||||
|
@Mappings({})
|
||||||
|
List<OrderReturnInfoBO.OrderItem> convert(List<OrderItemDO> orderItemDOList);
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ import cn.iocoder.mall.order.biz.dataobject.OrderItemDO;
|
|||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import javax.validation.constraints.NotNull;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -79,7 +78,7 @@ public interface OrderItemMapper {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<OrderItemDO> selectByDeletedAndOrderId(
|
List<OrderItemDO> selectByDeletedAndOrderId(
|
||||||
@Param("orderId") Integer orderId,
|
@Param("deleted") Integer deleted,
|
||||||
@Param("deleted") @NotNull Integer deleted
|
@Param("orderId") Integer orderId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,10 @@ public class OrderReturnDO extends BaseDO {
|
|||||||
* 编号自动增长
|
* 编号自动增长
|
||||||
*/
|
*/
|
||||||
private Integer id;
|
private Integer id;
|
||||||
|
/**
|
||||||
|
* 服务号
|
||||||
|
*/
|
||||||
|
private String serviceNumber;
|
||||||
/**
|
/**
|
||||||
* 订单编号
|
* 订单编号
|
||||||
*/
|
*/
|
||||||
@ -68,12 +72,12 @@ public class OrderReturnDO extends BaseDO {
|
|||||||
*/
|
*/
|
||||||
private Date closingTime;
|
private Date closingTime;
|
||||||
/**
|
/**
|
||||||
* 退款类型
|
* 服务类型
|
||||||
*
|
*
|
||||||
* - 1、退货退款
|
* - 1、退货退款
|
||||||
* - 2、退款
|
* - 2、退款
|
||||||
*/
|
*/
|
||||||
private Integer returnType;
|
private Integer serviceType;
|
||||||
/**
|
/**
|
||||||
* 状态
|
* 状态
|
||||||
*
|
*
|
||||||
|
@ -59,7 +59,7 @@ public class OrderLogisticsServiceImpl implements OrderLogisticsService {
|
|||||||
|
|
||||||
// 获取订单所发货的订单 id
|
// 获取订单所发货的订单 id
|
||||||
List<OrderItemDO> orderItemDOList = orderItemMapper.selectByDeletedAndOrderId(
|
List<OrderItemDO> orderItemDOList = orderItemMapper.selectByDeletedAndOrderId(
|
||||||
orderId, DeletedStatusEnum.DELETED_NO.getValue());
|
DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
|
|
||||||
// 获取物流 信息
|
// 获取物流 信息
|
||||||
Set<Integer> orderLogisticsIds = orderItemDOList.stream()
|
Set<Integer> orderLogisticsIds = orderItemDOList.stream()
|
||||||
|
@ -1,20 +1,28 @@
|
|||||||
package cn.iocoder.mall.order.biz.service;
|
package cn.iocoder.mall.order.biz.service;
|
||||||
|
|
||||||
|
import cn.iocoder.common.framework.constant.DeletedStatusEnum;
|
||||||
|
import cn.iocoder.common.framework.exception.ServiceException;
|
||||||
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
import cn.iocoder.common.framework.util.ServiceExceptionUtil;
|
||||||
import cn.iocoder.common.framework.vo.CommonResult;
|
import cn.iocoder.common.framework.vo.CommonResult;
|
||||||
import cn.iocoder.mall.order.api.OrderReturnService;
|
import cn.iocoder.mall.order.api.OrderReturnService;
|
||||||
|
import cn.iocoder.mall.order.api.bo.OrderReturnInfoBO;
|
||||||
import cn.iocoder.mall.order.api.constant.OrderErrorCodeEnum;
|
import cn.iocoder.mall.order.api.constant.OrderErrorCodeEnum;
|
||||||
import cn.iocoder.mall.order.api.constant.OrderReturnStatusEnum;
|
import cn.iocoder.mall.order.api.constant.OrderReturnStatusEnum;
|
||||||
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
import cn.iocoder.mall.order.api.dto.OrderReturnApplyDTO;
|
||||||
import cn.iocoder.mall.order.biz.convert.OrderReturnConvert;
|
import cn.iocoder.mall.order.biz.convert.OrderReturnConvert;
|
||||||
|
import cn.iocoder.mall.order.biz.dao.OrderItemMapper;
|
||||||
import cn.iocoder.mall.order.biz.dao.OrderMapper;
|
import cn.iocoder.mall.order.biz.dao.OrderMapper;
|
||||||
import cn.iocoder.mall.order.biz.dao.OrderReturnMapper;
|
import cn.iocoder.mall.order.biz.dao.OrderReturnMapper;
|
||||||
import cn.iocoder.mall.order.biz.dataobject.OrderDO;
|
import cn.iocoder.mall.order.biz.dataobject.OrderDO;
|
||||||
|
import cn.iocoder.mall.order.biz.dataobject.OrderItemDO;
|
||||||
import cn.iocoder.mall.order.biz.dataobject.OrderReturnDO;
|
import cn.iocoder.mall.order.biz.dataobject.OrderReturnDO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单退货 service
|
* 订单退货 service
|
||||||
@ -29,6 +37,8 @@ public class OrderReturnServiceImpl implements OrderReturnService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private OrderMapper orderMapper;
|
private OrderMapper orderMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private OrderItemMapper orderItemMapper;
|
||||||
|
@Autowired
|
||||||
private OrderReturnMapper orderReturnMapper;
|
private OrderReturnMapper orderReturnMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -44,6 +54,8 @@ public class OrderReturnServiceImpl implements OrderReturnService {
|
|||||||
OrderReturnDO orderReturnDO = OrderReturnConvert.INSTANCE.convert(orderReturnDTO);
|
OrderReturnDO orderReturnDO = OrderReturnConvert.INSTANCE.convert(orderReturnDTO);
|
||||||
orderReturnDO
|
orderReturnDO
|
||||||
.setOrderId(checkOrder.getId())
|
.setOrderId(checkOrder.getId())
|
||||||
|
// TODO: 2019-04-27 Sin 服务号生成规则
|
||||||
|
.setServiceNumber(UUID.randomUUID().toString().replaceAll("-", "").substring(0, 16))
|
||||||
.setOrderNo(checkOrder.getOrderNo())
|
.setOrderNo(checkOrder.getOrderNo())
|
||||||
.setStatus(OrderReturnStatusEnum.RETURN_APPLICATION.getValue())
|
.setStatus(OrderReturnStatusEnum.RETURN_APPLICATION.getValue())
|
||||||
.setCreateTime(new Date());
|
.setCreateTime(new Date());
|
||||||
@ -57,4 +69,32 @@ public class OrderReturnServiceImpl implements OrderReturnService {
|
|||||||
public String updateRefundSuccess(String orderId, Integer refundPrice) {
|
public String updateRefundSuccess(String orderId, Integer refundPrice) {
|
||||||
return "success";
|
return "success";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommonResult orderApplyInfo(Integer orderId) {
|
||||||
|
|
||||||
|
// 检查订单是否退货
|
||||||
|
OrderReturnDO orderReturnDO = orderReturnMapper.selectByOrderId(orderId);
|
||||||
|
if (orderReturnDO == null) {
|
||||||
|
return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_RETURN_NO_RETURN_APPLY.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<OrderItemDO> orderItemDOList = orderItemMapper
|
||||||
|
.selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
|
|
||||||
|
// 订单不存在
|
||||||
|
if (CollectionUtils.isEmpty(orderItemDOList)) {
|
||||||
|
return ServiceExceptionUtil.error(OrderErrorCodeEnum.ORDER_NOT_EXISTENT.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换 returnInfo
|
||||||
|
OrderReturnInfoBO.ReturnInfo returnInfo = OrderReturnConvert.INSTANCE.convert(orderReturnDO);
|
||||||
|
List<OrderReturnInfoBO.OrderItem> itemList = OrderReturnConvert.INSTANCE.convert(orderItemDOList);
|
||||||
|
|
||||||
|
OrderReturnInfoBO orderReturnInfoBO = new OrderReturnInfoBO()
|
||||||
|
.setOrderItems(itemList)
|
||||||
|
.setReturnInfo(returnInfo);
|
||||||
|
|
||||||
|
return CommonResult.success(orderReturnInfoBO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<OrderItemDO> orderItemDOList = orderItemMapper
|
List<OrderItemDO> orderItemDOList = orderItemMapper
|
||||||
.selectByDeletedAndOrderId(orderId, DeletedStatusEnum.DELETED_NO.getValue());
|
.selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
|
|
||||||
List<OrderItemBO> orderItemBOList = OrderItemConvert.INSTANCE.convertOrderItemBO(orderItemDOList);
|
List<OrderItemBO> orderItemBOList = OrderItemConvert.INSTANCE.convertOrderItemBO(orderItemDOList);
|
||||||
return CommonResult.success(orderItemBOList);
|
return CommonResult.success(orderItemBOList);
|
||||||
@ -166,7 +166,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<OrderItemDO> itemDOList = orderItemMapper
|
List<OrderItemDO> itemDOList = orderItemMapper
|
||||||
.selectByDeletedAndOrderId(orderId, DeletedStatusEnum.DELETED_NO.getValue());
|
.selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
|
|
||||||
List<OrderInfoBO.OrderItem> orderItems
|
List<OrderInfoBO.OrderItem> orderItems
|
||||||
= OrderItemConvert.INSTANCE.convertOrderInfoWithOrderItem(itemDOList);
|
= OrderItemConvert.INSTANCE.convertOrderInfoWithOrderItem(itemDOList);
|
||||||
@ -187,6 +187,9 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
orderLogisticsDetailDO = orderLogisticsDetailMapper.selectLatest(orderLogisticsIds);
|
orderLogisticsDetailDO = orderLogisticsDetailMapper.selectLatest(orderLogisticsIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查是否申请退货
|
||||||
|
OrderReturnDO orderReturnDO = orderReturnMapper.selectByOrderId(orderId);
|
||||||
|
|
||||||
// convert 信息
|
// convert 信息
|
||||||
OrderInfoBO.LogisticsDetail logisticsDetail
|
OrderInfoBO.LogisticsDetail logisticsDetail
|
||||||
= OrderLogisticsDetailConvert.INSTANCE.convertLogisticsDetail(orderLogisticsDetailDO);
|
= OrderLogisticsDetailConvert.INSTANCE.convertLogisticsDetail(orderLogisticsDetailDO);
|
||||||
@ -196,6 +199,13 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
orderInfoBO.setRecipient(recipient);
|
orderInfoBO.setRecipient(recipient);
|
||||||
orderInfoBO.setOrderItems(orderItems);
|
orderInfoBO.setOrderItems(orderItems);
|
||||||
orderInfoBO.setLatestLogisticsDetail(logisticsDetail);
|
orderInfoBO.setLatestLogisticsDetail(logisticsDetail);
|
||||||
|
|
||||||
|
// 是否退货
|
||||||
|
if (orderReturnDO != null) {
|
||||||
|
orderInfoBO.setHasOrderReturn(orderReturnDO.getStatus());
|
||||||
|
} else {
|
||||||
|
orderInfoBO.setHasOrderReturn(-1);
|
||||||
|
}
|
||||||
return CommonResult.success(orderInfoBO);
|
return CommonResult.success(orderInfoBO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,7 +415,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
// 再重新计算订单金额
|
// 再重新计算订单金额
|
||||||
List<OrderItemDO> orderItemDOList = orderItemMapper
|
List<OrderItemDO> orderItemDOList = orderItemMapper
|
||||||
.selectByDeletedAndOrderId(orderId, DeletedStatusEnum.DELETED_NO.getValue());
|
.selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
// Integer price = orderCommon.calculatedPrice(orderItemDOList);
|
// Integer price = orderCommon.calculatedPrice(orderItemDOList);
|
||||||
// Integer amount = orderCommon.calculatedAmount(orderItemDOList);
|
// Integer amount = orderCommon.calculatedAmount(orderItemDOList);
|
||||||
Integer price = -1; // TODO 芋艿,这里要修改,价格
|
Integer price = -1; // TODO 芋艿,这里要修改,价格
|
||||||
@ -522,7 +532,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
|
|
||||||
// 获取当前有效的订单 item
|
// 获取当前有效的订单 item
|
||||||
List<OrderItemDO> orderItemDOList = orderItemMapper
|
List<OrderItemDO> orderItemDOList = orderItemMapper
|
||||||
.selectByDeletedAndOrderId(orderId, DeletedStatusEnum.DELETED_NO.getValue());
|
.selectByDeletedAndOrderId(DeletedStatusEnum.DELETED_NO.getValue(), orderId);
|
||||||
|
|
||||||
List<OrderItemDO> effectiveOrderItems = orderItemDOList.stream()
|
List<OrderItemDO> effectiveOrderItems = orderItemDOList.stream()
|
||||||
.filter(orderItemDO -> !orderItemIds.contains(orderItemDO.getId()))
|
.filter(orderItemDO -> !orderItemIds.contains(orderItemDO.getId()))
|
||||||
|
@ -147,10 +147,10 @@
|
|||||||
<select id="selectByDeletedAndOrderId" resultType="cn.iocoder.mall.order.biz.dataobject.OrderItemDO">
|
<select id="selectByDeletedAndOrderId" resultType="cn.iocoder.mall.order.biz.dataobject.OrderItemDO">
|
||||||
SELECT * FROM `order_item`
|
SELECT * FROM `order_item`
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
<if test="deleted">
|
<if test="deleted != null">
|
||||||
AND deleted = #{deleted}
|
AND deleted = #{deleted}
|
||||||
</if>
|
</if>
|
||||||
<if test="orderId">
|
<if test="orderId != null">
|
||||||
AND order_id = #{orderId}
|
AND order_id = #{orderId}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
<sql id="FIELDS">
|
<sql id="FIELDS">
|
||||||
id,
|
id,
|
||||||
|
service_number,
|
||||||
order_id,
|
order_id,
|
||||||
order_no,
|
order_no,
|
||||||
order_logistics_id,
|
order_logistics_id,
|
||||||
@ -13,7 +14,7 @@
|
|||||||
logistics_time,
|
logistics_time,
|
||||||
receiver_time,
|
receiver_time,
|
||||||
closing_time,
|
closing_time,
|
||||||
return_type,
|
service_type,
|
||||||
status,
|
status,
|
||||||
create_time,
|
create_time,
|
||||||
update_time
|
update_time
|
||||||
@ -24,16 +25,16 @@
|
|||||||
-->
|
-->
|
||||||
<insert id="insert" parameterType="OrderReturnDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
<insert id="insert" parameterType="OrderReturnDO" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
|
||||||
INSERT INTO `order_return` (
|
INSERT INTO `order_return` (
|
||||||
order_id, order_no, order_logistics_id,
|
service_number, order_id, order_no, order_logistics_id,
|
||||||
reason, `describe`,
|
reason, `describe`,
|
||||||
approval_time, logistics_time, receiver_time, closing_time,
|
approval_time, logistics_time, receiver_time, closing_time,
|
||||||
return_type, status,
|
service_type, status,
|
||||||
create_time, update_time)
|
create_time, update_time)
|
||||||
VALUES (
|
VALUES (
|
||||||
#{orderId}, #{orderNo}, #{orderLogisticsId},
|
#{serviceNumber}, #{orderId}, #{orderNo}, #{orderLogisticsId},
|
||||||
#{reason}, #{describe},
|
#{reason}, #{describe},
|
||||||
#{approvalTime}, #{logisticsTime}, #{receiverTime}, #{closingTime},
|
#{approvalTime}, #{logisticsTime}, #{receiverTime}, #{closingTime},
|
||||||
#{returnType}, #{status}, #{createTime}, #{updateTime})
|
#{serviceType}, #{status}, #{createTime}, #{updateTime})
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
@ -96,7 +97,8 @@
|
|||||||
SELECT
|
SELECT
|
||||||
<include refid="FIELDS"/>
|
<include refid="FIELDS"/>
|
||||||
FROM `order_return`
|
FROM `order_return`
|
||||||
WHERE id = #{id}
|
WHERE order_id = #{orderId}
|
||||||
|
LIMIT 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user