Compare commits
3 Commits
4f19af093e
...
948ab55cd4
Author | SHA1 | Date |
---|---|---|
|
948ab55cd4 | |
|
9ae9e8df35 | |
|
71bab8c82c |
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue