admin/addon/giftcard/shop/controller/Order.php

110 lines
4.1 KiB
PHP

<?php
/**
* ThinkShop商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都云之牛科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.cdcloudshop.com
* =========================================================
*/
namespace addon\giftcard\shop\controller;
use addon\giftcard\model\card\Card as CardModel;
use addon\giftcard\model\order\GiftCardOrder;
/**
* 礼品卡订单控制器
*/
class Order extends Giftcard
{
public function __construct()
{
parent::__construct();
if (!request()->isAjax()) {
$this->forthMenu();
}
$this->replace = [
'GIFTCARD_CSS' => __ROOT__ . '/addon/giftcard/shop/view/public/css',
'GIFTCARD_JS' => __ROOT__ . '/addon/giftcard/shop/view/public/js',
'GIFTCARD_IMG' => __ROOT__ . '/addon/giftcard/shop/view/public/img',
'GIFTCARD_CSV' => __ROOT__ . '/addon/giftcard/shop/view/public/csv',
];
}
/**
* 订单列表
* @return mixed
*/
public function order()
{
$giftcard_id = input('giftcard_id', 0);
$order_model = new GiftCardOrder();
if (request()->isAjax()) {
$page = input('page', 1);
$page_size = input('page_size', PAGE_LIST_ROWS);
$status = input('status', 'all');
$start_time = input('start_time', '');
$end_time = input('end_time', '');
$nickname = input('nickname', '');
$order_no = input('order_no', '');
$card_right_type = input('card_right_type', '');
$condition = array (
[ 'o.site_id', '=', $this->site_id ],
[ 'o.is_delete', '=', 0 ],
[ 'o.order_status', '=', 'complete' ],
);
if ($giftcard_id > 0) {
$condition[] = [ 'o.giftcard_id', '=', $giftcard_id ];
}
if (!empty($nickname)) {
$condition[] = [ 'm.nickname', 'like', '%' . $nickname . '%' ];
}
if (!empty($card_right_type)) {
$condition[] = [ 'o.card_right_type', '=', $card_right_type ];
}
if (!empty($order_no)) {
$condition[] = [ 'o.order_no', '=', $order_no ];
}
//支付时间
if (!empty($start_time) && empty($end_time)) {
$condition[] = [ "o.pay_time", ">=", date_to_time($start_time) ];
} elseif (empty($start_time) && !empty($end_time)) {
$condition[] = [ "o.pay_time", "<=", date_to_time($end_time) ];
} elseif (!empty($start_time) && !empty($end_time)) {
$condition[] = [ 'o.pay_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
}
$order = 'o.create_time desc';
$field = 'o.*, m.nickname,m.headimg,m.mobile';
$join = [
[ 'member m', 'o.member_id = m.member_id', 'left' ]
];
$list = $order_model->getOrderDetailPageList($condition, $page, $page_size, $order, $field, 'o', $join);
return $list;
}
$this->assign('forth_menu', []);
$this->assign('giftcard_id', $giftcard_id);
return $this->fetch("order/order", [], $this->replace);
}
/**
* 详情
* @return mixed|void
*/
public function detail()
{
$order_id = input('order_id', '');
$order_model = new GiftCardOrder();
$order_detail = $order_model->getOrderDetail([ 'site_id' => $this->site_id, 'order_id' => $order_id ])[ 'data' ] ?? [];
$card_model = new CardModel();
$card_list = $card_model->getCardList([ [ 'site_id', '=', $this->site_id ], [ 'order_id', '=', $order_detail[ 'order_id' ] ] ])[ 'data' ];
foreach ($card_list as $k => $v) {
$card_list[ $k ] = $card_model->tran($v);
}
$this->assign('order_detail', $order_detail);
$this->assign('card_list', $card_list);
return $this->fetch("order/detail", [], $this->replace);
}
}