package com.xcong.excoin.modules.otc.controller;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.xcong.excoin.common.LoginUserUtils;
|
import com.xcong.excoin.common.response.Result;
|
import com.xcong.excoin.modules.member.dao.MemberDao;
|
import com.xcong.excoin.modules.member.entity.MemberEntity;
|
import com.xcong.excoin.modules.otc.dao.OtcReturnMoneyDao;
|
import com.xcong.excoin.modules.otc.dto.*;
|
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.modules.otc.vo.TeamVo;
|
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.*;
|
|
import java.math.BigDecimal;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@Slf4j
|
@Validated
|
@RestController
|
@RequestMapping(value = "/api/otcOrder")
|
@RequiredArgsConstructor
|
@Api(value = "OtcOrderController", tags = "otc用户订单接口类")
|
public class OtcOrderController {
|
|
private final OtcOrderService otcOrderService;
|
private final OtcReturnMoneyDao otcReturnMoneyDao;
|
|
@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<OrderListVo> 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);
|
}
|
|
@ApiOperation(value = "获取我的团队")
|
@PostMapping(value = "/findTeamList")
|
public Result teamList(@RequestBody TeamDto teamDto) {
|
Page<TeamVo> page = new Page<>(teamDto.getPageNum(), teamDto.getPageSize());
|
|
MemberEntity member = LoginUserUtils.getAppLoginUser();
|
IPage<TeamVo> data = otcReturnMoneyDao.selectMyTeamAmountInPage(member.getInviteId(), member.getId(), page);
|
BigDecimal totalAmount = otcReturnMoneyDao.selectTotalAmount(member.getId());
|
|
Map<String, Object> result = new HashMap<>();
|
result.put("totalCnt", data.getTotal());
|
result.put("totalAmount", totalAmount == null ? BigDecimal.ZERO : totalAmount.setScale(4, BigDecimal.ROUND_DOWN));
|
result.put("result", data.getRecords());
|
return Result.ok(result);
|
}
|
}
|