买家订单模块—订单详情和取消订单api改进
方法一:
在service层添加:BuyerService和BuyerServiceImpl
BuyerService
package com.hdc.sell.service;
import com.hdc.sell.dto.OrderDTO;
public interface BuyerService {
//查询订单
OrderDTO findOrderOne(String openid,String orderId);
//取消订单
OrderDTO cancelOrder(String openid,String orderId);
}
BuyerServiceImpl
package com.hdc.sell.service.impl;
import com.hdc.sell.dto.OrderDTO;
import com.hdc.sell.enums.ResultEnum;
import com.hdc.sell.exception.SellException;
import com.hdc.sell.service.BuyerService;
import com.hdc.sell.service.OrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class BuyerServiceImpl implements BuyerService {
@Autowired
private OrderService orderService;
@Override
public OrderDTO findOrderOne(String openid, String orderId) {
OrderDTO orderDTO=checkOrderOwner(openid,orderId);
return orderDTO;
}
private OrderDTO checkOrderOwner(String openid, String orderId) {
OrderDTO orderDTO = orderService.findOne(orderId);
if(orderDTO == null){
return null;
}
if(!orderDTO.getBuyerOpenid().equalsIgnoreCase(openid)){
log.error("[查询订单]订单的openid不一致,openid={},orderDTO={}",openid,orderDTO);
throw new SellException(ResultEnum.ORDER_OWNER_ERROR);
}
return orderDTO;
}
@Override
public OrderDTO cancelOrder(String openid, String orderId) {
OrderDTO orderDTO=checkOrderOwner(openid,orderId);
if (orderDTO==null){
log.error("[取消订单]查不到该订单,orderId={}",openid);
throw new SellException(ResultEnum.ORDER_NOT_EXIST);
}
return orderService.cancel(orderDTO);
}
}
BuyerOrderController
//3.查询订单详情api:/buyer/order/detail
@GetMapping("/detail")
public ResultVO<OrderDTO> detail(@RequestParam("openid") String openid,
@RequestParam("orderId") String orderId){
OrderDTO orderDTO=buyerService.findOrderOne(openid,orderId);
return ResultVOUtil.success(orderDTO);
}
//4.取消订单api:/buyer/order/cancel
@PostMapping("cancel")
public ResultVO cancel(@RequestParam("openid") String openid,
@RequestParam("orderId") String orderId){
//根据orderid查询订单对象
// OrderDTO orderDTO=orderService.findOne(orderId);
//取消订单
buyerService.cancelOrder(openid,orderId);
return ResultVOUtil.success();
}
开头加上buyerService容器注解
ResultEnum 中写入