AuctionOrderController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.izouma.nineth.web;
  2. import com.izouma.nineth.domain.AuctionOrder;
  3. import com.izouma.nineth.domain.GiftOrder;
  4. import com.izouma.nineth.dto.PageQuery;
  5. import com.izouma.nineth.enums.AuctionPaymentType;
  6. import com.izouma.nineth.exception.BusinessException;
  7. import com.izouma.nineth.repo.AuctionOrderRepo;
  8. import com.izouma.nineth.service.AuctionOrderService;
  9. import com.izouma.nineth.utils.ObjUtils;
  10. import com.izouma.nineth.utils.excel.ExcelUtils;
  11. import io.swagger.annotations.ApiModelProperty;
  12. import io.swagger.annotations.ApiOperation;
  13. import lombok.AllArgsConstructor;
  14. import org.springframework.data.domain.Page;
  15. import org.springframework.web.bind.annotation.*;
  16. import javax.servlet.http.HttpServletResponse;
  17. import java.io.IOException;
  18. import java.math.BigDecimal;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. @RestController
  23. @RequestMapping("/auctionOrder")
  24. @AllArgsConstructor
  25. public class AuctionOrderController extends BaseController {
  26. private AuctionOrderService auctionOrderService;
  27. private AuctionOrderRepo auctionOrderRepo;
  28. //@PreAuthorize("hasRole('ADMIN')")
  29. @PostMapping("/save")
  30. public AuctionOrder save(@RequestBody AuctionOrder record) {
  31. if (record.getId() != null) {
  32. AuctionOrder orig = auctionOrderRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
  33. ObjUtils.merge(orig, record);
  34. return auctionOrderRepo.save(orig);
  35. }
  36. return auctionOrderRepo.save(record);
  37. }
  38. @PostMapping("/create")
  39. @ApiModelProperty(value = "创建拍卖订单(支付)")
  40. public AuctionOrder create(Long userId, @RequestParam(required = false) Long auctionId,
  41. Long addressId, Long auctionRecordId, AuctionPaymentType type) {
  42. return auctionOrderService.create(userId, auctionId, addressId, auctionRecordId, type, null);
  43. }
  44. @PostMapping("/createFixPrice")
  45. @ApiModelProperty(value = "创建拍卖订单(一口价)")
  46. public AuctionOrder createFixPrice(Long userId, @RequestParam(required = false) Long auctionId,
  47. Long addressId, AuctionPaymentType type) {
  48. // AuctionActivity auctionActivity = auctionActivityRepo.findById(auctionId)
  49. // .orElseThrow(new BusinessException("暂无"));
  50. // AuctionRecord auctionRecord = AuctionRecord.builder()
  51. // .auctionId(auctionId)
  52. // .type(AuctionRecordType.FIXEDPRICE)
  53. // .bidderPrice(auctionActivity.getFixedPrice())
  54. // .auctionPic(null)
  55. // .userId(SecurityUtils.getAuthenticatedUser().getId())
  56. // .avatar(SecurityUtils.getAuthenticatedUser().getAvatar())
  57. // .name(auctionActivity.getName())
  58. // .purchased(false)
  59. // .build();
  60. // AuctionRecord record = auctionRecordRepo.save(auctionRecord);
  61. return auctionOrderService.create(userId, auctionId, addressId, null, type, null);
  62. }
  63. @PostMapping("/createDeposit")
  64. @ApiModelProperty(value = "创建拍卖订单(保证金)")
  65. public AuctionOrder createDeposit(Long userId, @RequestParam(required = false) Long auctionId,
  66. Long addressId, AuctionPaymentType type, BigDecimal amount) {
  67. // AuctionActivity auctionActivity = auctionActivityRepo.findById(auctionId)
  68. // .orElseThrow(new BusinessException("暂无"));
  69. // AuctionRecord auctionRecord = AuctionRecord.builder()
  70. // .auctionId(auctionId)
  71. // .type(AuctionRecordType.DEPOSIT)
  72. // .bidderPrice(auctionActivity.getDeposit())
  73. // .auctionPic(null)
  74. // .userId(SecurityUtils.getAuthenticatedUser().getId())
  75. // .avatar(SecurityUtils.getAuthenticatedUser().getAvatar())
  76. // .name(auctionActivity.getName())
  77. // .purchased(false)
  78. // .build();
  79. // AuctionRecord record = auctionRecordRepo.save(auctionRecord);
  80. return auctionOrderService.create(userId, auctionId, addressId, null, type, amount);
  81. }
  82. //@PreAuthorize("hasRole('ADMIN')")
  83. @PostMapping("/all")
  84. public Page<AuctionOrder> all(@RequestBody PageQuery pageQuery) {
  85. return auctionOrderService.all(pageQuery);
  86. }
  87. @GetMapping("/get/{id}")
  88. public AuctionOrder get(@PathVariable Long id) {
  89. return auctionOrderRepo.findById(id).orElseThrow(new BusinessException("无记录"));
  90. }
  91. @GetMapping("/{id}/status")
  92. public Map<String, Object> status(@PathVariable Long id) {
  93. AuctionOrder order = auctionOrderRepo.findById(id).orElseThrow(new BusinessException("订单不存在"));
  94. return new HashMap<>() {{
  95. put("status", order.getStatus());
  96. }};
  97. }
  98. @PostMapping("/del/{id}")
  99. public void del(@PathVariable Long id) {
  100. auctionOrderRepo.softDelete(id);
  101. }
  102. @GetMapping("/excel")
  103. @ResponseBody
  104. public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
  105. List<AuctionOrder> data = all(pageQuery).getContent();
  106. ExcelUtils.export(response, data);
  107. }
  108. @ApiOperation("订单完成")
  109. @GetMapping("/finish/{id}")
  110. public void finish(@PathVariable Long id) {
  111. auctionOrderService.finish(id);
  112. }
  113. @ApiOperation("订单发货")
  114. @GetMapping("/delivery")
  115. public void delivery(@RequestParam Long id, @RequestParam String courierId) {
  116. auctionOrderService.dispatch(id, courierId);
  117. }
  118. }