Compare commits

...

3 Commits

Author SHA1 Message Date
bunny 948ab55cd4 用户下单-修改bug 2024-01-10 21:00:21 +08:00
bunny 9ae9e8df35 取消订单 2024-01-10 20:37:08 +08:00
bunny 71bab8c82c 查询订单详情 2024-01-10 20:12:52 +08:00
5 changed files with 123 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import com.sky.result.Result;
import com.sky.service.OrderService;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrderVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@ -80,4 +81,30 @@ public class OrderController {
PageResult pageResult = orderService.pageQuery4User(page, pageSize, status);
return Result.success(pageResult);
}
/**
* 查询订单详情
*
* @param id 查询订单id
* @return OrderVO
*/
@ApiOperation("查询订单详情")
@GetMapping("/orderDetail/{id}")
public Result<OrderVO> orderDetail(@PathVariable Long id) {
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

@ -5,6 +5,7 @@ import com.sky.dto.OrdersSubmitDTO;
import com.sky.result.PageResult;
import com.sky.vo.OrderPaymentVO;
import com.sky.vo.OrderSubmitVO;
import com.sky.vo.OrderVO;
public interface OrderService {
/**
@ -46,4 +47,19 @@ public interface OrderService {
* @return PageResult
*/
PageResult pageQuery4User(int pageNum, int pageSize, Integer status);
/**
* 查询订单详情
*
* @param id 查询订单id
* @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;
@ -75,15 +77,24 @@ public class OrderServiceImpl implements OrderService {
// 2. 向订单中插入1条数据
Orders orders = new Orders();
String address = addressBook.getProvinceName() + addressBook.getCityName() + addressBook.getDistrictName() + addressBook.getDetail();
BeanUtils.copyProperties(ordersSubmitDTO, orders);
orders.setOrderTime(LocalDateTime.now());
orders.setPayStatus(Orders.UN_PAID);
orders.setStatus(Orders.PENDING_PAYMENT);
orders.setNumber(String.valueOf(System.currentTimeMillis()));
orders.setPhone(addressBook.getConsignee());
orders.setPhone(addressBook.getPhone());
orders.setAddress(address);
orders.setUserName(addressBook.getConsignee());
orders.setUserId(currentId);
String sex = addressBook.getSex();// 性别
String consignee = addressBook.getConsignee().substring(0, 1);//
if (sex.equals("1")) {
orders.setConsignee(consignee + "女士");
} else {
orders.setConsignee(consignee + "先生");
}
orderMapper.insert(orders);
ArrayList<OrderDetail> orderDetailArrayList = new ArrayList<>();
// 3. 向订单数据插入n条数据
for (ShoppingCart cart : shoppingCartList) {
@ -207,6 +218,58 @@ public class OrderServiceImpl implements OrderService {
assert page != null;
return new PageResult(page.getTotal(), list);
}
/**
* 查询订单详情
*
* @param id 查询订单id
* @return OrderVO
*/
@Override
public OrderVO detail(Long id) {
// 根据id查询订单
Orders orders = orderMapper.getById(id);
// 查询该订单对应的菜品/套餐明细
List<OrderDetail> orderDetailList = orderDetailMapper.getByOrderId(orders.getId());
// 将该订单及其详情封装到OrderVO并返回
OrderVO orderVO = new OrderVO();
BeanUtils.copyProperties(orders, orderVO);
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>