|
@@ -8,6 +8,7 @@ use common\components\imgUtil;
|
|
|
use common\components\lakala\Lakala;
|
|
use common\components\lakala\Lakala;
|
|
|
use common\components\noticeUtil;
|
|
use common\components\noticeUtil;
|
|
|
use common\components\util;
|
|
use common\components\util;
|
|
|
|
|
+use yii\db\Expression;
|
|
|
|
|
|
|
|
class RechargeClass extends BaseClass
|
|
class RechargeClass extends BaseClass
|
|
|
{
|
|
{
|
|
@@ -30,4 +31,33 @@ class RechargeClass extends BaseClass
|
|
|
return $data;
|
|
return $data;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 一次聚合查出各状态充值单数量,供商城列表顶部 Tab 展示。
|
|
|
|
|
+ * 条件中不要带 status,否则会把其它 Tab 数量算成 0。
|
|
|
|
|
+ * status:0 待付款、1 已充值、2 已取消。
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param array $condition 与列表相同的业务范围(如 mainId、customId)
|
|
|
|
|
+ * @return array{all:int,waitPay:int,recharged:int,cancelled:int}
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function getStatusCounts($condition)
|
|
|
|
|
+ {
|
|
|
|
|
+ $model = self::getModel();
|
|
|
|
|
+ $row = $model->conditionQuery($condition)
|
|
|
|
|
+ ->select([
|
|
|
|
|
+ 'allCnt' => new Expression('COUNT(*)'),
|
|
|
|
|
+ 'waitPayCnt' => new Expression('SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END)'),
|
|
|
|
|
+ 'rechargedCnt' => new Expression('SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END)'),
|
|
|
|
|
+ 'cancelledCnt' => new Expression('SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END)'),
|
|
|
|
|
+ ])
|
|
|
|
|
+ ->asArray()
|
|
|
|
|
+ ->one();
|
|
|
|
|
+
|
|
|
|
|
+ return [
|
|
|
|
|
+ 'all' => (int)($row['allCnt'] ?? 0),
|
|
|
|
|
+ 'waitPay' => (int)($row['waitPayCnt'] ?? 0),
|
|
|
|
|
+ 'recharged' => (int)($row['rechargedCnt'] ?? 0),
|
|
|
|
|
+ 'cancelled' => (int)($row['cancelledCnt'] ?? 0),
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|