服务功能注释补充

zhy_branch
Artyom 2 months ago
parent fe615c339e
commit e8bdbe57ba

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

Loading…
Cancel
Save