package com.xcong.excoin.modules.otc.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.otc.dto.HasPayDto; import com.xcong.excoin.modules.otc.dto.OrderApealDto; import com.xcong.excoin.modules.otc.dto.OrderListDto; import com.xcong.excoin.modules.otc.dto.OtcOrderAddDto; import com.xcong.excoin.modules.otc.service.OtcOrderService; import com.xcong.excoin.modules.otc.vo.BuyOrderDetailVo; import com.xcong.excoin.modules.otc.vo.OrderListVo; import com.xcong.excoin.modules.otc.vo.SaleOrderDetailVo; import com.xcong.excoin.utils.RedisUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @Slf4j @Validated @RestController @RequestMapping(value = "/api/otcOrder") @RequiredArgsConstructor @Api(value = "OtcOrderController", tags = "otc用户订单接口类") public class OtcOrderController { private final OtcOrderService otcOrderService; @ApiOperation(value = "我要购买") @PostMapping(value = "/buy") public Result buy(@RequestBody OtcOrderAddDto orderAddDto) { return otcOrderService.buyOrder(orderAddDto); } @ApiOperation(value = "我要出售") @PostMapping(value = "/sale") public Result sale(@RequestBody OtcOrderAddDto orderAddDto) { return otcOrderService.saleOrder(orderAddDto); } @ApiOperation(value = "用户订单列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = OrderListVo.class) }) @PostMapping(value = "/orderList") public Result orderList(@RequestBody OrderListDto orderListDto) { IPage page = otcOrderService.findOrderListInPage(orderListDto); return Result.ok(page.getRecords()); } @ApiOperation(value = "买单 - 订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = BuyOrderDetailVo.class) }) @GetMapping(value = "/buyOrderDetail/{id}") public Result buyOrderDetail(@PathVariable("id") Long id) { return otcOrderService.findBuyOrderDetail(id); } @ApiOperation(value = "卖单 - 订单详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = SaleOrderDetailVo.class) }) @GetMapping(value = "/saleOrderDetail/{id}") public Result saleOrderDetail(@PathVariable("id") Long id) { return otcOrderService.findSaleOrderDetail(id); } @ApiOperation(value = "已付款,请放币") @PostMapping(value = "/hasPay") public Result hasPay(@RequestBody HasPayDto hasPayDto) { otcOrderService.hasPay(hasPayDto); return Result.ok("操作成功"); } @ApiOperation(value = "确认收款") @PostMapping(value = "/finishOrder/{id}") public Result finishOrder(@PathVariable("id") Long id) { otcOrderService.finishOrder(id); return Result.ok("操作成功"); } @ApiOperation(value = "取消订单") @PostMapping(value = "/cancelUserOrder/{id}") public Result cancelUserOrder(@PathVariable("id") Long id) { otcOrderService.cancelOrder(id); return Result.ok("操作成功"); } @ApiOperation(value = "申诉") @PostMapping(value = "/orderApeal") public Result orderApeal(@RequestBody OrderApealDto orderApealDto) { return otcOrderService.orderApeal(orderApealDto); } }