|
|
@@ -25,6 +25,8 @@ use common\models\Order;
|
|
|
use common\models\OrderDec;
|
|
|
use common\models\OrderGoods;
|
|
|
use common\models\OrderGoodsDec;
|
|
|
+use common\models\OrderStandard;
|
|
|
+use common\models\OrderStandardGoods;
|
|
|
use common\models\ReceiveAddress;
|
|
|
use common\models\Region;
|
|
|
use common\models\ShopGoods;
|
|
|
@@ -32,6 +34,8 @@ use common\models\User;
|
|
|
use common\models\UserBonus;
|
|
|
use common\models\UserWallet;
|
|
|
use Yii;
|
|
|
+use yii\data\Pagination;
|
|
|
+use yii\db\Query;
|
|
|
|
|
|
|
|
|
class ShopController extends BaseController {
|
|
|
@@ -273,23 +277,51 @@ class ShopController extends BaseController {
|
|
|
*/
|
|
|
public function actionOrderList() {
|
|
|
$uname = Info::getUserNameByUserId(\Yii::$app->user->id);
|
|
|
- $condition = " AND (USER_ID=:USER_ID OR CREATE_USER='$uname')";
|
|
|
+ $condition = " (USER_ID=:USER_ID OR CREATE_USER='$uname')";
|
|
|
$params[':USER_ID'] = \Yii::$app->user->id;
|
|
|
- $data = Order::lists($condition, $params, [
|
|
|
- 'select' => 'O.*,U.REAL_NAME,OG.*,SG.CATEGORY_TYPE',
|
|
|
- 'orderBy' => 'O.CREATED_AT DESC',
|
|
|
- 'from' => Order::tableName() . ' AS O',
|
|
|
- 'join' => [
|
|
|
- ['LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID'],
|
|
|
- ['LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN'],
|
|
|
- ['LEFT JOIN', ShopGoods::tableName() . ' AS SG', 'SG.ID=OG.GOODS_ID'],
|
|
|
- ],
|
|
|
- ]);
|
|
|
+ $orderQuery = Order::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($condition, $params)
|
|
|
+ ->select('O.*,U.REAL_NAME,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');
|
|
|
+
|
|
|
+ // 订单中间表只查询待支付和支付失败的订单
|
|
|
+ $params[':NOT_PAID'] = \Yii::$app->params['orderStatus']['notPaid']['value']; // 待支付
|
|
|
+ $params[':FAIL_PAID'] = \Yii::$app->params['orderStatus']['failPaid']['value']; // 支付失败
|
|
|
+ $orderStandardQuery = ApproachOrder::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($condition . ' AND (O.STATUS = :NOT_PAID OR O.STATUS = :FAIL_PAID)', $params)
|
|
|
+ ->select('O.*,U.REAL_NAME,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();
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'list' => $lists,
|
|
|
+ 'currentPage'=>$pagination->page,
|
|
|
+ 'totalPages'=>$pagination->pageCount,
|
|
|
+ 'startNum' => $pagination->page * $pagination->pageSize + 1,
|
|
|
+ 'totalCount' => $pagination->totalCount,
|
|
|
+ 'pageSize' => $pagination->pageSize,
|
|
|
+ ];
|
|
|
+
|
|
|
foreach ($data['list'] as $key => $value) {
|
|
|
$data['list'][$key]['PAY_AT'] = $value['PAY_AT'] ? Date::convert($value['PAY_AT'],'Y-m-d H:i:s') : '';
|
|
|
+ $data['list'][$key]['CREATED_AT'] = $value['CREATED_AT'] ? Date::convert($value['CREATED_AT'],'Y-m-d H:i:s') : '';
|
|
|
$data['list'][$key]['CATEGORY_TYPE'] = intval($value['CATEGORY_TYPE']);
|
|
|
$data['list'][$key]['PAY_TYPE'] = array_column(ShopGoods::SALE_TYPE, NULL, 'label')[$value['PAY_TYPE']]['name'] ?? '';
|
|
|
-// $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
|
|
|
+ $data['list'][$key]['STATUS'] = \Yii::$app->params['orderStatus'][$value['STATUS']]['label'] ?? '';
|
|
|
$data['list'][$key]['CATEGORY'] = array_column(ShopGoods::CATEGORY_TYPE, NULL, 'id')[$value['CATEGORY_TYPE']]['name'] ?? ShopGoods::CATEGORY_TYPE[0]['name'];
|
|
|
$data['list'][$key]['FULL_ADDRESS'] = $value['ADDRESS'];//.', '.$value['CITY_NAME'].', '.$value['LGA_NAME'];
|
|
|
if($value['CITY_NAME']){
|
|
|
@@ -309,6 +341,7 @@ class ShopController extends BaseController {
|
|
|
// }
|
|
|
$data['list'][$key]['TAX_AMOUNT'] = Tool::formatPrice(($value['REAL_PRICE'] - $value['REAL_PRICE'] / (1 + $value['TAX_RATE'] / 100)) * $value['BUY_NUMS']);
|
|
|
}
|
|
|
+
|
|
|
return static::notice($data);
|
|
|
}
|
|
|
|
|
|
@@ -415,15 +448,42 @@ class ShopController extends BaseController {
|
|
|
':SN' => $orderSn,
|
|
|
];
|
|
|
|
|
|
- $data = Order::lists($condition, $params, [
|
|
|
- 'select' => 'O.*,U.REAL_NAME,OG.*,OG.CATEGORY_TYPE',
|
|
|
- 'orderBy' => 'O.CREATED_AT DESC',
|
|
|
- 'from' => Order::tableName() . ' AS O',
|
|
|
- 'join' => [
|
|
|
- ['LEFT JOIN', User::tableName() . ' AS U', 'U.ID=O.USER_ID'],
|
|
|
- ['LEFT JOIN', OrderGoods::tableName() . ' AS OG', 'OG.ORDER_SN=O.SN'],
|
|
|
- ],
|
|
|
- ]);
|
|
|
+ $orderQuery = Order::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($condition, $params)
|
|
|
+ ->select('O.*,U.REAL_NAME,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');
|
|
|
+
|
|
|
+ // 订单中间表只查询待支付和支付失败的订单
|
|
|
+ $params[':NOT_PAID'] = \Yii::$app->params['orderStatus']['notPaid']['value']; // 待支付
|
|
|
+ $params[':FAIL_PAID'] = \Yii::$app->params['orderStatus']['failPaid']['value']; // 支付失败
|
|
|
+ $orderStandardQuery = ApproachOrder::find()
|
|
|
+ ->alias('O')
|
|
|
+ ->where($condition . ' AND (O.STATUS = :NOT_PAID OR O.STATUS = :FAIL_PAID)', $params)
|
|
|
+ ->select('O.*,U.REAL_NAME,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();
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'list' => $lists,
|
|
|
+ 'currentPage'=>$pagination->page,
|
|
|
+ 'totalPages'=>$pagination->pageCount,
|
|
|
+ 'startNum' => $pagination->page * $pagination->pageSize + 1,
|
|
|
+ 'totalCount' => $pagination->totalCount,
|
|
|
+ 'pageSize' => $pagination->pageSize,
|
|
|
+ ];
|
|
|
|
|
|
$userId = '';
|
|
|
$userName = '';
|