Commit a44a00e8 authored by 33's avatar 33

NFT申请并下单

parent 9223c3f0
package com.fzm.common.entity.dto;
import com.fzm.common.entity.Nft;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
/**
* @author tangtuo
* @date 2022/1/19 15:09
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class NftOrderDto extends Nft {
@NotNull(message = "订单金额不能为空")
@ApiModelProperty("订单价格")
private Long fee;
@NotNull(message = "支付场景不能为空")
@ApiModelProperty("支付场景 1-nft发行 2-版权申请")
private Integer payScene;
@ApiModelProperty("产品id nft的id或者copyright的id")
private Integer productId;
}
...@@ -2,14 +2,17 @@ package com.fzm.common.service; ...@@ -2,14 +2,17 @@ package com.fzm.common.service;
import com.fzm.common.entity.Order; import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.CopyrightOrderDto; import com.fzm.common.entity.dto.CopyrightOrderDto;
import com.fzm.common.entity.dto.NftOrderDto;
/** /**
* @author wt * @author wt
* @date 2022/5/23 * @date 2022/5/23
*/ */
public interface CopyrightApplyOrderService { public interface ApplyOrderService {
Order submitOrder(CopyrightOrderDto copyrightOrderDto); Order submitOrder(CopyrightOrderDto copyrightOrderDto);
Order updateOrder(CopyrightOrderDto copyrightOrderDto); Order updateOrder(CopyrightOrderDto copyrightOrderDto);
Order nftOrder(NftOrderDto nftOrderDto);
} }
...@@ -4,9 +4,11 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,9 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
import com.fzm.common.entity.Order; import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.CopyrightDTO; import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.dto.CopyrightOrderDto; import com.fzm.common.entity.dto.CopyrightOrderDto;
import com.fzm.common.entity.dto.NftOrderDto;
import com.fzm.common.entity.dto.OrderDto; import com.fzm.common.entity.dto.OrderDto;
import com.fzm.common.service.CopyrightApplyOrderService; import com.fzm.common.service.ApplyOrderService;
import com.fzm.common.service.CopyrightApplyService; import com.fzm.common.service.CopyrightApplyService;
import com.fzm.common.service.NftService;
import com.fzm.common.service.OrderService; import com.fzm.common.service.OrderService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -19,8 +21,9 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -19,8 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Service @Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CopyrightApplyOrderServiceImpl implements CopyrightApplyOrderService { public class ApplyOrderServiceImpl implements ApplyOrderService {
private final CopyrightApplyService copyrightApplyService; private final CopyrightApplyService copyrightApplyService;
private final NftService nftService;
private final OrderService orderService; private final OrderService orderService;
@Override @Override
...@@ -42,4 +45,13 @@ public class CopyrightApplyOrderServiceImpl implements CopyrightApplyOrderServic ...@@ -42,4 +45,13 @@ public class CopyrightApplyOrderServiceImpl implements CopyrightApplyOrderServic
orderDto.setProductId(productId); orderDto.setProductId(productId);
return orderService.createOrder(orderDto); return orderService.createOrder(orderDto);
} }
@Override
@Transactional(rollbackFor = Exception.class)
public Order nftOrder(NftOrderDto nftOrderDto) {
Integer nftId = nftService.saveNft(nftOrderDto);
OrderDto orderDto = BeanUtil.copyProperties(nftOrderDto, OrderDto.class);
orderDto.setProductId(nftId);
return orderService.createOrder(orderDto);
}
} }
...@@ -3,9 +3,10 @@ package com.fzm.portal.controller; ...@@ -3,9 +3,10 @@ package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication; import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Order; import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.CopyrightOrderDto; import com.fzm.common.entity.dto.CopyrightOrderDto;
import com.fzm.common.entity.dto.NftOrderDto;
import com.fzm.common.entity.vo.OrderVo; import com.fzm.common.entity.vo.OrderVo;
import com.fzm.common.model.ResponseModel; import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.CopyrightApplyOrderService; import com.fzm.common.service.ApplyOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -13,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -13,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
...@@ -21,26 +21,33 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -21,26 +21,33 @@ import org.springframework.web.bind.annotation.RestController;
* @date 2022/5/23 * @date 2022/5/23
*/ */
@RestController @RestController
@Api(tags = "版权申请") @Api(tags = "版权/NFT申请并下单")
@RequestMapping("/copyright/apply")
@RequiredArgsConstructor(onConstructor = @__(@Autowired)) @RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CopyrightApplyOrderController { public class ApplyOrderController {
private final CopyrightApplyOrderService copyrightApplyOrderService; private final ApplyOrderService applyOrderService;
@Authentication @Authentication
@PostMapping("/submit-order") @PostMapping("/copyright/apply/submit-order")
@ApiOperation("/提交申请并下单") @ApiOperation("提交申请并下单")
public ResponseModel<OrderVo> submitOrder(@Validated @RequestBody CopyrightOrderDto copyrightDTO) { public ResponseModel<OrderVo> submitOrder(@Validated @RequestBody CopyrightOrderDto orderDto) {
Order order = copyrightApplyOrderService.submitOrder(copyrightDTO); Order order = applyOrderService.submitOrder(orderDto);
return ResponseModel.success(new OrderVo(order)); return ResponseModel.success(new OrderVo(order));
} }
@Authentication @Authentication
@PostMapping(value = "/update-order") @PostMapping(value = "/copyright/apply/update-order")
@ApiOperation(value = "编辑并下单") @ApiOperation(value = "编辑并下单")
public ResponseModel<OrderVo> updateOrder(@RequestBody CopyrightOrderDto copyrightDTO) { public ResponseModel<OrderVo> updateOrder(@Validated @RequestBody CopyrightOrderDto orderDto) {
Order order = copyrightApplyOrderService.updateOrder(copyrightDTO); Order order = applyOrderService.updateOrder(orderDto);
return ResponseModel.success(new OrderVo(order));
}
@Authentication
@PostMapping(value = "/nft/apply/submit-order")
@ApiOperation(value = "nft申请并下单")
public ResponseModel<OrderVo> nftOrder(@Validated @RequestBody NftOrderDto orderDto) {
Order order = applyOrderService.nftOrder(orderDto);
return ResponseModel.success(new OrderVo(order)); return ResponseModel.success(new OrderVo(order));
} }
} }
...@@ -32,7 +32,7 @@ public class WxPayController { ...@@ -32,7 +32,7 @@ public class WxPayController {
@Authentication @Authentication
@PostMapping("/pay/jsapi") @PostMapping("/pay/jsapi")
@ApiOperation(value = "发起jsapi支付") @ApiOperation(value = "发起jsapi支付")
public ResponseModel<Map<String, Object>> payH5(@RequestBody JsapiPayDto jsapiPayDto) throws Exception { public ResponseModel<Map<String, Object>> payH5(@RequestBody JsapiPayDto jsapiPayDto) {
return ResponseModel.success(wxPayService.payJsapi(jsapiPayDto)); return ResponseModel.success(wxPayService.payJsapi(jsapiPayDto));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment