| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- namespace app\modules\admin\models\q_and_a;
- use app\models\QAndAQa;
- use app\models\User;
- use yii\base\Model;
- use app\models\QAndAAdLog;
- class QALogForm extends Model
- {
- public $name;
- public $phone;
- public $user_id;
- public $store_id;
- public $dateTime;
- /**
- * @return array
- */
- public function rules()
- {
- return [
- [['phone', 'user_id'], 'integer'],
- [['name', 'dateTime'], 'string', 'max' => 255],
- ];
- }
- public function attributeLabels()
- {
- return [
- 'name' => '名称'
- ];
- }
- public function search()
- {
- $query = QAndAQa::find()->alias('qa')->where([
- 'qa.is_delete' => 0, 'qa.store_id' => $this->store_id
- ])->leftJoin(['u' => User::tableName()], 'qa.user_id = u.id')
- ->orderBy('qa.id DESC');
- if ($this->phone > 0) {
- $query->andWhere(['u.binding' => $this->phone]);
- }
- if ($this->name) {
- $query->andWhere(['like', 'u.nickname', $this->name]);
- }
- if ($this->dateTime) {
- $query->andWhere(['>=', 'qa.created_at', strtotime($this->dateTime[0])]);
- $query->andWhere(['<=', 'qa.created_at', strtotime($this->dateTime[1])]);
- }
- $query->groupBy('u.id');
- $query->select('qa.created_at,u.avatar_url, u.binding, u.id, u.nickname, sum(qa.use_integral) as sum_integral');
- $data = pagination_make($query);
- foreach ($data['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- }
- return [
- 'code' => 0,
- 'data' => [
- 'data' => $data['list'],
- 'pageNo' => $data['pageNo'],
- 'totalCount' => $data['totalCount']
- ],
- ];
- }
- public function search_q()
- {
- $query = QAndAQa::find()->where(['is_delete' => 0, 'store_id' => $this->store_id])->where(['user_id' => $this->user_id])->orderBy('id DESC');
- $data = pagination_make($query);
- foreach ($data['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- $item['answer_time'] = date('Y-m-d H:i:s', $item['answer_time']);
- }
- return [
- 'code' => 0,
- 'data' => [
- 'data' => $data['list'],
- 'pageNo' => $data['pageNo'],
- 'totalCount' => $data['totalCount']
- ],
- ];
- }
- public function search_ad_log()
- {
- $query = QAndAAdLog::find()->alias('qa')->where([
- 'qa.store_id' => $this->store_id
- ])->leftJoin(['u' => User::tableName()], 'qa.user_id = u.id')
- ->orderBy('qa.id DESC');
- if ($this->phone > 0) {
- $query->andWhere(['u.binding' => $this->phone]);
- }
- if ($this->name) {
- $query->andWhere(['like', 'u.nickname', $this->name]);
- }
- if ($this->dateTime) {
- $query->andWhere(['>=', 'qa.created_at', strtotime($this->dateTime[0])]);
- $query->andWhere(['<=', 'qa.created_at', strtotime($this->dateTime[1])]);
- }
- $query->select('qa.created_at,qa.integral,u.avatar_url, u.binding, u.id, u.nickname,');
- $data = pagination_make($query);
- foreach ($data['list'] as &$item) {
- $item['created_at'] = date('Y-m-d H:i:s', $item['created_at']);
- }
- return [
- 'code' => 0,
- 'data' => [
- 'data' => $data['list'],
- 'pageNo' => $data['pageNo'],
- 'totalCount' => $data['totalCount']
- ],
- ];
- }
- }
|