/** * 获取用户某个时间段购买某个商品的数量 * * @param string $goodsId * @param string $timeStart * @param string $timeEnd * @return integer */ public function getOrderGoodsCount($goodsId, $timeStart = null, $timeEnd = null) { $sql = 'SELECT sum(t0.count) FROM ' . OrderGoods::tableName() . ' AS t0 LEFT JOIN ' . Order::tableName() . ' AS t1 ON t0.order_id = t1.id WHERE t1.user_id=:user_id AND t0.goods_id=:goods_id'; $params = [':user_id' => $this->id, ':goods_id' => $goodsId]; if ($timeStart !== null) { $sql .= ' AND t1.created_at >= :time_start'; $params[':time_start'] = $timeStart; } if ($timeEnd !== null) { $sql .= ' AND t1.created_at < :time_end'; $params[':time_end'] = $timeEnd; } $count = Yii::$app->db->createCommand($sql, $params)->queryScalar(); return (int) $count; }