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;
import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.CopyrightOrderDto;
import com.fzm.common.entity.dto.NftOrderDto;
/**
* @author wt
* @date 2022/5/23
*/
public interface CopyrightApplyOrderService {
public interface ApplyOrderService {
Order submitOrder(CopyrightOrderDto copyrightOrderDto);
Order updateOrder(CopyrightOrderDto copyrightOrderDto);
Order nftOrder(NftOrderDto nftOrderDto);
}
......@@ -4,9 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
import com.fzm.common.entity.Order;
import com.fzm.common.entity.dto.CopyrightDTO;
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.service.CopyrightApplyOrderService;
import com.fzm.common.service.ApplyOrderService;
import com.fzm.common.service.CopyrightApplyService;
import com.fzm.common.service.NftService;
import com.fzm.common.service.OrderService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -19,8 +21,9 @@ import org.springframework.transaction.annotation.Transactional;
*/
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CopyrightApplyOrderServiceImpl implements CopyrightApplyOrderService {
public class ApplyOrderServiceImpl implements ApplyOrderService {
private final CopyrightApplyService copyrightApplyService;
private final NftService nftService;
private final OrderService orderService;
@Override
......@@ -42,4 +45,13 @@ public class CopyrightApplyOrderServiceImpl implements CopyrightApplyOrderServic
orderDto.setProductId(productId);
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;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Order;
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.model.ResponseModel;
import com.fzm.common.service.CopyrightApplyOrderService;
import com.fzm.common.service.ApplyOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
......@@ -13,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
......@@ -21,26 +21,33 @@ import org.springframework.web.bind.annotation.RestController;
* @date 2022/5/23
*/
@RestController
@Api(tags = "版权申请")
@RequestMapping("/copyright/apply")
@Api(tags = "版权/NFT申请并下单")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class CopyrightApplyOrderController {
public class ApplyOrderController {
private final CopyrightApplyOrderService copyrightApplyOrderService;
private final ApplyOrderService applyOrderService;
@Authentication
@PostMapping("/submit-order")
@ApiOperation("/提交申请并下单")
public ResponseModel<OrderVo> submitOrder(@Validated @RequestBody CopyrightOrderDto copyrightDTO) {
Order order = copyrightApplyOrderService.submitOrder(copyrightDTO);
@PostMapping("/copyright/apply/submit-order")
@ApiOperation("提交申请并下单")
public ResponseModel<OrderVo> submitOrder(@Validated @RequestBody CopyrightOrderDto orderDto) {
Order order = applyOrderService.submitOrder(orderDto);
return ResponseModel.success(new OrderVo(order));
}
@Authentication
@PostMapping(value = "/update-order")
@PostMapping(value = "/copyright/apply/update-order")
@ApiOperation(value = "编辑并下单")
public ResponseModel<OrderVo> updateOrder(@RequestBody CopyrightOrderDto copyrightDTO) {
Order order = copyrightApplyOrderService.updateOrder(copyrightDTO);
public ResponseModel<OrderVo> updateOrder(@Validated @RequestBody CopyrightOrderDto orderDto) {
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));
}
}
......@@ -32,7 +32,7 @@ public class WxPayController {
@Authentication
@PostMapping("/pay/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));
}
......
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