取消订单

This commit is contained in:
bunny 2024-01-10 20:37:08 +08:00
parent 71bab8c82c
commit 9ae9e8df35
5 changed files with 69 additions and 0 deletions

View File

@ -94,4 +94,17 @@ public class OrderController {
OrderVO orderVO = orderService.detail(id);
return Result.success(orderVO);
}
/**
* 取消订单
*
* @param id 订单id
* @return Result<String>
*/
@ApiOperation("取消订单")
@PutMapping("/cancel/{id}")
public Result<String> cancel(@PathVariable("id") Long id) {
orderService.userCancelById(id);
return Result.success();
}
}

View File

@ -55,4 +55,12 @@ public interface OrderMapper {
* @return Page<Orders>
*/
Page<Orders> pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);
/**
* 根据id查询订单
*
* @param id 订单id
* @return Orders
*/
Orders useCancelById(Long id);
}

View File

@ -55,4 +55,11 @@ public interface OrderService {
* @return OrderVO
*/
OrderVO detail(Long id);
/**
* 取消订单
*
* @param id 订单id
*/
void userCancelById(Long id);
}

View File

@ -20,6 +20,7 @@ import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrderVO;
import com.sky.websocket.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -32,6 +33,7 @@ import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class OrderServiceImpl implements OrderService {
@Resource
private OrderMapper orderMapper;
@ -227,6 +229,38 @@ public class OrderServiceImpl implements OrderService {
orderVO.setOrderDetailList(orderDetailList);
return orderVO;
}
/**
* 取消订单
*
* @param id 订单id
*/
@Override
public void userCancelById(Long id) {
// 根据id查询订单
Orders ordersDB = orderMapper.getById(id);
// 如果查询到的订单为空
if (ordersDB == null) {
throw new OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);
}
// 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
if (ordersDB.getStatus() > 2) {
throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);
}
Orders orders = new Orders();
orders.setId(ordersDB.getId());
// 订单处于待接单状态下取消需要进行退款
if (ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED)) {
log.info("订单需要退款。。。。。。。");
orders.setPayStatus(Orders.REFUND);
}
// 更新订单状态取消原因取消时间
orders.setStatus(Orders.CANCELLED);
orders.setCancelReason("用户取消");
orders.setCancelTime(LocalDateTime.now());
orderMapper.update(orders);
}
}

View File

@ -95,4 +95,11 @@
</where>
order by order_time desc
</select>
<!-- 根据id查询订单 -->
<select id="useCancelById" resultType="com.sky.entity.Orders">
select *
from orders
where id = #{id};
</select>
</mapper>