ListController.class.php 2.51 KB
<?php
/**
 * 发票列表接口
 * User: liyifei2012it
 * Date: 18/3/5
 * Time: 14:12
 */
namespace Apicp\Controller\Invoice;

use Com\PackageValidate;
use Common\Common\Constant;
use Common\Common\Invoice;

class ListController extends AbstractController
{
    /**
     * List
     * @author liyifei
     * @desc 发票列表接口
     * @param Int page:1 页码
     * @param Int limit:20 每页记录数
     * @param String invoStartTime 开始时间
     * @param String invoEndTime 终止时间
     * @param Int invoInvoiceStatus 审核状态(1=待审核;2=已通过;3=未通过;4=已发货;5=已完成;6=已取消)
     * @return array 发票信息
        array(
            'page' => 1, // 页码
            'limit' => 5, // 每页记录数
            'total' => 20, // 记录总数
            'list' => array(
                array(
                    'invoId' => 'F20180111', // 发票ID
                    'invoTime' => '1515340800000', // 开票时间
                    'invoAmount' => 1000, // 开票金额(单位:分)
                    'invoType' => 1, // 发票类型(1=增值税普通发票;2=增值税专业发票)
                    'invoInvoiceStatus' => 1, // 审核状态(1=待审核;2=已通过;3=未通过;4=已发货;5=已完成;6=已取消)
                    'invoLogisticsCompany' => '京东', // 物流公司
                    'invoWaybillNum' => '2018011112345', // 物流单号
                ),
            ),
        )
     */
    public function Index_post()
    {
        // 验证规则
        $rules = [
            'page' => 'integer',
            'limit' => 'integer',
            'invoStartTime' => 'integer',
            'invoEndTime' => 'integer',
            'invoInvoiceStatus' => 'integer|in:1,2,3,4,5,6',
        ];

        // 验证数据
        $validate = new PackageValidate($rules, [], array_keys($rules));
        $postData = $validate->postData;

        // 分页默认值
        $page = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE;
        $limit = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT;
        unset($postData['page'], $postData['limit']);

        $invoiceServ = &Invoice::instance();
        $result = $invoiceServ->fetchInvoiceList($postData, $page, $limit, ['invoCreated' => 'DESC']);

        $this->_result = [
            'page' => $page,
            'limit' => $limit,
            'total' => $result['total'],
            'list' => $result['list'],
        ];
    }
}