服务功能注释补充

zhy_branch
Artyom 2 months ago
parent fe615c339e
commit e8bdbe57ba

@ -50,20 +50,22 @@ public class OrderServiceImpl implements OrderService {
private UserMapper userMapper;
@Autowired
private WebSocketServer webSocketServer;
/*
*
* */
@Transactional
@Override
public OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO) {
//1.处理各种业务异常(地址薄为空,购物车数据为空)
/**
*
* @param ordersSubmitDTO
* @return
*/
@Transactional // 开启事务管理
public OrderSubmitVO submit(OrdersSubmitDTO ordersSubmitDTO) {
//1.处理各种业务异常(地址簿为空、购物车数据为空)
AddressBook addressBook = addressBookMapper.getById(ordersSubmitDTO.getAddressBookId());
if(addressBook == null){
//抛出业务异常
throw new AddressBookBusinessException(MessageConstant.ADDRESS_BOOK_IS_NULL);
}
//查询当前用户购物车数据
//查询当前用户购物车数据
Long userId = BaseContext.getCurrentId();
ShoppingCart shoppingCart = new ShoppingCart();
shoppingCart.setUserId(userId);
@ -83,23 +85,21 @@ public class OrderServiceImpl implements OrderService {
orders.setConsignee(addressBook.getConsignee());
orders.setUserId(userId);
orderMapper.insert(orders);
List<OrderDetail> orderDetailList = new ArrayList<>();
//3.向订单明细表插入n条数据
List<OrderDetail> orderDetailList = new ArrayList<>();
for (ShoppingCart cart : shoppingCartList) {
OrderDetail orderDetail = new OrderDetail();
BeanUtils.copyProperties(cart,orderDetail);
orderDetail.setOrderId(orders.getId());//设置当前订单明细的orderId
orderDetailList.add(orderDetail);
}
orderDetailMapper.insertBatch(orderDetailList);
orderMapper.insertBatch(orderDetailList);
//4.清空购物车数据
shoppingCartMapper.deleteByUserId(userId);
//5.封装VO返回结果
//5.封装返回结果
OrderSubmitVO orderSubmitVO = OrderSubmitVO.builder()
.id(orders.getId())
.orderTime(orders.getOrderTime())
.orderNumber(orders.getNumber())
.orderAmount(orders.getAmount())
.build();
return orderSubmitVO;
@ -107,23 +107,23 @@ public class OrderServiceImpl implements OrderService {
/**
*
*
* @param ordersPaymentDTO
* @return
* @param ordersPaymentDTO
* @return
* @throws Exception
*/
public OrderPaymentVO payment(OrdersPaymentDTO ordersPaymentDTO) throws Exception {
// 当前登录用户id
Long userId = BaseContext.getCurrentId();
User user = userMapper.getById(userId);
//调用微信支付接口,生成预支付交易单
/*调用微信接口,生成预支付交易单*/
/* JSONObject jsonObject = weChatPayUtil.pay(
ordersPaymentDTO.getOrderNumber(), //商户订单号
new BigDecimal(0.01), //支付金额,单位
ordersPaymentDTO.getOrdersId(), //商户订单号
new BigDecimal(0.01), //支付金额,单位
"苍穹外卖订单", //商品描述
user.getOpenid() //微信用户的openid
);*/
JSONObject jsonObject = new JSONObject();
JSONObject jsonObject = new JSONObject(); // 模拟微信支付返回的数据
if (jsonObject.getString("code") != null && jsonObject.getString("code").equals("ORDERPAID")) {
throw new OrderBusinessException("该订单已支付");
@ -137,72 +137,81 @@ public class OrderServiceImpl implements OrderService {
/**
*
*
* @param outTradeNo
* @param outTradeNo
*/
public void paySuccess(String outTradeNo) {
// 根据订单号查询订单
Orders ordersDB = orderMapper.getByNumber(outTradeNo);
// 根据订单id更新订单的状态、支付方式、支付状态、结账时间
// 根据订单id更新订单的状态、支付状态、结账时间
Orders orders = Orders.builder()
.id(ordersDB.getId())
.status(Orders.TO_BE_CONFIRMED)
.payStatus(Orders.PAID)
.checkoutTime(LocalDateTime.now())
.build();
orderMapper.update(orders);
//通过websocket向客户端浏览器推送消息 type orderId content
Map map = new HashMap<>();
map.put("type",1);//1表示来单提醒 2表示客户催单
map.put("orderId",ordersDB.getId());
map.put("content","订单号:" + outTradeNo);
//通过websocket向客户端浏览器推送消息 type=1表示来单提醒 2表示客户催单
Map<String, Object> map = new HashMap<>();
map.put("type", 1); //1表示来单提醒 2表示客户催单
map.put("orderId", ordersDB.getId());
map.put("content", "订单号:" + outTradeNo);
String json = JSON.toJSONString(map);
webSocketServer.sendToAllClient(json);
}
/**
*
* @param pageNum
* @param pageSize
* @param status
* @return
*/
@Override
public PageResult historyQueryPage(int pageNum, int pageSize, Integer status) {
PageHelper.startPage(pageNum,pageSize);
OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO();
Long userId = BaseContext.getCurrentId();
ordersPageQueryDTO.setUserId(userId);
ordersPageQueryDTO.setStatus(status);
PageHelper.startPage(pageNum, pageSize); // 开始分页查询
OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO(); // 创建订单分页查询数据传输对象
Long userId = BaseContext.getCurrentId(); // 获取当前用户id
ordersPageQueryDTO.setUserId(userId); // 设置用户id到查询条件中
ordersPageQueryDTO.setStatus(status); // 设置订单状态到查询条件中
//分页查询条件
// 分页查询条件设置完成,执行分页查询操作
Page<Orders> page = orderMapper.pageQuery(ordersPageQueryDTO);
List<OrderVO> list = new ArrayList<>();
if(page != null && page.getTotal() > 0){
for (Orders orders : page) {
Long orderId = orders.getId();
List<OrderDetail> orderDetails = orderDetailMapper.getByOrderId(orderId);
OrderVO orderVO = new OrderVO();
BeanUtils.copyProperties(orders,orderVO);
orderVO.setOrderDetailList(orderDetails);
list.add(orderVO);
List<OrderVO> list = new ArrayList<>(); // 初始化订单视图对象列表
if (page != null && page.getTotal() > 0) { // 如果查询结果不为空且总记录数大于0则进行数据处理
for (Orders orders : page) { // 遍历查询结果中的每个订单对象
Long orderId = orders.getId(); // 获取订单id
List<OrderDetail> orderDetails = orderDetailMapper.getByOrderId(orderId); // 根据订单id查询订单明细列表
OrderVO orderVO = new OrderVO(); // 创建订单视图对象
BeanUtils.copyProperties(orders, orderVO); // 将订单对象的属性复制到订单视图对象中
orderVO.setOrderDetailList(orderDetails); // 设置订单明细列表到订单视图对象中
list.add(orderVO); // 将订单视图对象添加到列表中
}
}
return new PageResult(page.getTotal(),list);
return new PageResult(page.getTotal(), list); // 返回分页结果对象,包含总记录数和订单视图对象列表
}
/**
* id
* @param id id
* @return
*/
@Override
public OrderVO showDetails(Long id) {
//根据id查询订单
Orders orders = orderMapper.getById(id);
List<OrderDetail> orderDetails = orderDetailMapper.getByOrderId(orders.getId());
OrderVO orderVO = new OrderVO();
BeanUtils.copyProperties(orders,orderVO);
orderVO.setOrderDetailList(orderDetails);
return orderVO;
List<OrderDetail> orderDetails = orderDetailMapper.getByOrderId(orders.getId()); // 根据订单id查询订单明细列表
OrderVO orderVO = new OrderVO(); // 创建订单视图对象
BeanUtils.copyProperties(orders, orderVO); // 将订单对象的属性复制到订单视图对象中
orderVO.setOrderDetailList(orderDetails); // 设置订单明细列表到订单视图对象中
return orderVO; // 返回订单视图对象
}
}
@Transactional
@Transactional
@Override
public void cancel(Long id) {
Orders orders = orderMapper.getById(id);

Loading…
Cancel
Save