package com.doumee.api.web;
|
|
import com.doumee.core.annotation.LoginRequired;
|
import com.doumee.core.annotation.trace.Trace;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.dao.business.model.InvoiceRecord;
|
import com.doumee.dao.dto.ApplyInvoiceDTO;
|
import com.doumee.dao.dto.SendInvoiceEmailDTO;
|
import com.doumee.service.business.InvoiceRecordService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.validation.Valid;
|
|
/**
|
* 订单发票
|
*
|
* @Author : Rk
|
* @create 2026/5/18 9:42
|
*/
|
@Api(tags = "订单发票")
|
@Trace(exclude = true)
|
@RestController
|
@RequestMapping("/web/invoice")
|
@Slf4j
|
public class InvoiceApi extends ApiController {
|
|
@Autowired
|
private InvoiceRecordService invoiceRecordService;
|
|
@LoginRequired
|
@ApiOperation("开票申请")
|
@PostMapping("/apply")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
|
})
|
public ApiResponse<String> apply(@RequestBody @Valid ApplyInvoiceDTO dto) {
|
invoiceRecordService.applyInvoice(dto, getMemberId());
|
return ApiResponse.success("申请成功");
|
}
|
|
@LoginRequired
|
@ApiOperation("开票记录分页")
|
@PostMapping("/page")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
|
})
|
public ApiResponse<PageData<InvoiceRecord>> page(@RequestBody @Validated PageWrap<InvoiceRecord> pageWrap) {
|
return ApiResponse.success("查询成功", invoiceRecordService.findMemberInvoicePage(pageWrap, getMemberId()));
|
}
|
|
@LoginRequired
|
@ApiOperation("发送发票邮件")
|
@PostMapping("/sendEmail")
|
@ApiImplicitParams({
|
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
|
})
|
public ApiResponse<String> sendEmail(@RequestBody @Valid SendInvoiceEmailDTO dto) {
|
invoiceRecordService.sendInvoiceEmail(getMemberId(), dto.getInvoiceRecordId(), dto.getEmail());
|
return ApiResponse.success("发送成功");
|
}
|
}
|