package com.ruoyi.order.controller.inner;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.order.service.IOrderService;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
import com.ruoyi.system.api.domain.vo.OrderVO;
import java.util.Collection;
import java.util.List;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
*
* 订单表 前端控制器
*
*
* @author mitao
* @since 2024-05-16
*/
@Slf4j
@RestController
@RequestMapping("/order")
@RequiredArgsConstructor
public class OrderController {
private final IOrderService orderService;
@PostMapping("/saveOrderOne")
@ResponseBody
@InnerAuth
public R saveOrderOne(@RequestBody OrderDTO OrderDTO) {
orderService.saveOrderOne(OrderDTO);
return R.ok();
}
/**
* 获取某个商品的已购会员数
*
* @param id 秒杀商品id
* @return 已购会员数
*/
@InnerAuth
@GetMapping("/seckill-members/{id}")
R getSeckillMembers(@PathVariable("id") Long id) {
return R.ok(orderService.getSeckillMembers(id));
}
/**
* 获取团购商品已购数量
*
* @param id 团购商品id
* @return 团购商品已购数量
*/
@InnerAuth
@GetMapping("/group-purchase-num/{id}")
R getGroupPurchasesGoodsNum(@PathVariable("id") Long id) {
return R.ok(orderService.getGroupPurchasesGoodsNum(id));
}
/**
* 获取团购商品已购订单列表
*
* @param id 团购商品id
* @return List 订单列表
*/
@InnerAuth
@GetMapping("/group-purchase-id/{id}")
R> getOrderByGroupPurchaseId(@PathVariable("id") Long id) {
return R.ok(orderService.getOrderByGroupPurchaseId(id));
}
@InnerAuth
@ResponseBody
@PostMapping("/getOrderByGroupPurchaseMemberId")
R getOrderByGroupPurchaseMemberId(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO){
return R.ok(orderService.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO));
}
@InnerAuth
@ResponseBody
@PostMapping("/getOrderByGroupPurchaseMemberList")
R> getOrderByGroupPurchaseMemberList(@RequestBody HomeGoodsSkuDTO homeGoodsSkuDTO){
return R.ok(orderService.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO));
}
/**
* 批量更新订单状态
*
* @param orderUpdDTOS 订单更新数据传输对象列表
*/
@PutMapping("/upd-batch")
R> updateOrderList(@RequestBody List orderUpdDTOS) {
List orders = BeanUtils.copyList(orderUpdDTOS, Order.class);
orderService.updateBatchById(orders);
return R.ok();
}
/**
* 根据优惠券id集合查询订单列表
*
* @param couponIds 优惠券id集合
* @return List
*/
@PostMapping("/order/list-by-coupon")
R> getOrderByCouponIds(@RequestBody Collection couponIds) {
return R.ok(orderService.getOrderByCouponIds(couponIds));
}
}