|
|
@@ -5,10 +5,15 @@ use common\helpers\Cache;
|
|
|
use common\helpers\Tool;
|
|
|
use common\helpers\user\Info;
|
|
|
use common\libs\dataList\DataListInterface;
|
|
|
+use common\models\ApproachOrder;
|
|
|
+use common\models\ApproachOrderGoods;
|
|
|
use common\models\Order;
|
|
|
use common\models\OrderGoods;
|
|
|
+use common\models\ShopGoods;
|
|
|
use common\models\User;
|
|
|
use common\libs\dataList\column\DateTime;
|
|
|
+use yii\data\Pagination;
|
|
|
+use yii\db\Query;
|
|
|
|
|
|
class OrderList extends \common\libs\dataList\DataList implements DataListInterface
|
|
|
{
|
|
|
@@ -25,17 +30,43 @@ class OrderList extends \common\libs\dataList\DataList implements DataListInterf
|
|
|
*/
|
|
|
public function dataHandle()
|
|
|
{
|
|
|
- $this->listData = Order::lists($this->condition, $this->params, [
|
|
|
- 'select' => 'O.*,U.REAL_NAME,U.DEC_ID,OG.*',
|
|
|
- 'orderBy' => 'O.CREATED_AT DESC, O.ID DESC',
|
|
|
- 'from' => Order::tableName() . ' AS O',
|
|
|
- 'join' => [
|
|
|
- ['LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN'],
|
|
|
- ['LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID'],
|
|
|
- ],
|
|
|
- 'page' => $this->page,
|
|
|
- 'pageSize' => $this->pageSize,
|
|
|
- ]);
|
|
|
+ $orderQuery = Order::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($this->condition, $this->params)
|
|
|
+ ->select('O.*,U.REAL_NAME,U.DEC_ID,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV')
|
|
|
+ ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
|
|
|
+ ->join('LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
|
|
|
+ ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
|
|
|
+ ->orderBy('O.CREATED_AT DESC');
|
|
|
+
|
|
|
+ // 订单中间表只查询待支付和支付失败的订单
|
|
|
+ $this->params[':NOT_PAID'] = \Yii::$app->params['orderStatus']['notPaid']['value']; // 待支付
|
|
|
+ $this->params[':FAIL_PAID'] = \Yii::$app->params['orderStatus']['failPaid']['value']; // 支付失败
|
|
|
+ $orderStandardQuery = ApproachOrder::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($this->condition . ' AND (O.STATUS = :NOT_PAID OR O.STATUS = :FAIL_PAID)', $this->params)
|
|
|
+ ->select('O.*,U.REAL_NAME,U.DEC_ID,SG.CATEGORY_TYPE,OG.REAL_PRICE,OG.TAX_RATE,OG.BUY_NUMS,OG.SKU_CODE,OG.GOODS_TITLE,OG.REAL_PV')
|
|
|
+ ->join('LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID')
|
|
|
+ ->join('LEFT JOIN', ApproachOrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN')
|
|
|
+ ->join('LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID')
|
|
|
+ ->orderBy('O.CREATED_AT DESC');
|
|
|
+
|
|
|
+ $queryAll = $orderQuery->union($orderStandardQuery, true);
|
|
|
+ $query = (new Query())->from(['Q' => $queryAll])->select('Q.*')->distinct()->orderBy(['CREATED_AT' => SORT_DESC]);
|
|
|
+
|
|
|
+ $totalCount = $query->count();
|
|
|
+ $pagination = new Pagination(['totalCount' => $totalCount, 'pageSize' => \Yii::$app->request->get('pageSize')]);
|
|
|
+ $lists = $query->offset($pagination->offset)->limit($pagination->limit)->all();
|
|
|
+
|
|
|
+ $this->listData = [
|
|
|
+ 'list' => $lists,
|
|
|
+ 'currentPage'=>$pagination->page,
|
|
|
+ 'totalPages'=>$pagination->pageCount,
|
|
|
+ 'startNum' => $pagination->page * $pagination->pageSize + 1,
|
|
|
+ 'totalCount' => $pagination->totalCount,
|
|
|
+ 'pageSize' => $pagination->pageSize,
|
|
|
+ ];
|
|
|
+
|
|
|
foreach ($this->listData['list'] as $key => $value) {
|
|
|
$CREATE_USER_ID = Info::getUserIdByUserName($value['CREATE_USER']);
|
|
|
$this->listData['list'][$key]['DEC_USER_NAME'] = Info::getUserNameByUserId($value['DEC_ID']);
|
|
|
@@ -327,6 +358,7 @@ class OrderList extends \common\libs\dataList\DataList implements DataListInterf
|
|
|
'MOBILE'=> ['name'=> 'Contact 1'],//联系方式1
|
|
|
'PERIOD_NUM'=> ['name'=> 'Number of periods'],//期数
|
|
|
'CREATED_AT'=> ['name'=> 'Creation time', 'other'=>'date'],//创建时间
|
|
|
+ 'STATUS'=> ['name'=> 'Order status'],
|
|
|
];
|
|
|
}
|
|
|
return $this->filterTypes;
|