package com.boco.nbd.wios.manage.controller;

import cn.hutool.core.lang.Assert;
import com.boco.nbd.wios.manage.entity.settlement.po.Invoice;
import com.boco.nbd.wios.manage.service.impl.OrderInvoiceService;
import com.ihidea.component.api.v2.BaseResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;

/**
 * 订单发票信息接口
 * 
 * @author licheng
 */

@RestController
@RequestMapping("api")
@ApiIgnore
@Api(tags = "订单发票信息接口")
public class OrderInvoiceController {
    @Autowired
    private OrderInvoiceService orderInvoiceService;

    /**
     * 批量更新开票信息
     * @param invoiceJson
     * @return
     */
    @PostMapping(value = "orderInvoice/batchUpdate")
    @ApiOperation(value = "批量更新开票信息",notes = "")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "invoiceJson", value = "json数据", dataType = "String", paramType = "query", required = true),})
    public BaseResponse<Object> batchUpdate(String invoiceJson) {
        Assert.notEmpty(invoiceJson, "缺少参数");
        orderInvoiceService.batchUpdate(invoiceJson);
        return new BaseResponse<>();
    }

    /**
     * 查询订单开票详情
     *
     * @param orderId
     * @return
     */
    @GetMapping(value = "orderInvoice/detail")
    @ApiOperation(value = "查询订单开票详情")
    @ApiImplicitParam(paramType = "query", name = "orderId", value = "订单id", required = true, dataType = "String")
    public BaseResponse<Invoice> get(String orderId) {
        Assert.notNull(orderId, "orderId不能为空");
        Invoice invoice = orderInvoiceService.getByOrderId(orderId);
        return new BaseResponse<>(invoice);
    }

}