package com.starcharge.wios.controller;

import com.ihidea.component.api.v2.BaseResponse;
import com.ihidea.core.support.exception.ServiceException;
import com.starcharge.base.util.Assert;
import com.starcharge.wios.bo.SupplierBo;
import com.starcharge.wios.dao.entity.Invoice;
import com.starcharge.wios.service.InvoiceService;
import com.starcharge.wios.service.OrderInvoiceService;
import com.starcharge.wios.service.SupplierService;
import com.starcharge.wios.vo.OrderInstallVo;
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.util.StringUtils;
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;

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

@RestController
@RequestMapping("api")
@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>(invoice);
    }

}