'楼盘搜索列表-降价通知', // 1 => '楼盘搜索列表-立即咨询', // 2 => '楼盘搜索列表-帮你找房', // 3 => '新房-预约看房', // 4 => '区域新房页-降价通知', // 5 => '区域新房页-专业帮您找房', // 6 => '资讯详情-资讯订阅', // 7 => '楼盘首页-动态提醒', // 8 => '楼盘首页-降价通知', // 9 => '楼盘首页-专业帮您找房', // 10 => '楼盘首页-公共降价通知', // 11 => '城市团购详情-降价通知', // 12 => '城市团购详情-我要看房', // 13 => '团购详情页-我要参团', // 14 => '团购详情页-我要看房', // 15 => '楼盘首页-报名看房', // 16 => '楼盘首页-楼盘动态', // 17 => '楼盘首页-楼盘户型', // 18 => '楼盘首页-楼盘信息', // 19 => '楼盘首页-楼盘相册', // 20 => '列表-有新房通知我', // 21 => '新房-有新房通知我', // 22 => '首页-查看房源', // 23 => '首页-购房需求', // 24 => '首页-房价动态提醒', // 25 => '区域介绍-立即咨询', // 26 => '区域介绍-降价通知', // 27 => '奇葩说详情-立即阅', // 28 => '列表页-获取优惠' // ]; // // //移动端 模板来源 // public $sourceMrr = [ // 0 => '楼盘首页-优惠获取', // 1 => '楼盘首页-看房定制', // 2 => '楼盘首页-立即了解', // 3 => '团购-立即报名', // 4 => '团购详情-立即报名', // 5 =>' 团购详情-报名看房', // 6 => '视频播放页-了解项目', // 7 => '资讯详情-立即订阅', // 8 => '资讯详情-报名看房', // 9 => '首页-报名看房', // 10 => '首页-看房专车', // 11 => '楼盘首页-报名看房', // 12 => '楼盘首页-降价通知', // 13 => '楼盘首页-开盘通知我', // 14 => '底部导航-看房定制', // 15 => '奇葩说详情-报名看房' // ]; public $stateArr = [ 1 => '失败', 2 => '成功', ]; public $equipmentArr = [ 1 => '移动端', 2 => 'PC', ]; public function rules() { return [ [['mobile', 'name', 'intention_house', 'intention_city', 'budget', 'intention_housetype', 'hid', 'source', 'equipment'], 'trim'], ['mobile', 'match', 'pattern' => '/^1[23456789]\d{9}$/', 'message' => '请输入正确的手机号码'], ['name', 'string', 'max' => 5, 'min' => 2], [['intention_house', 'intention_city', 'budget', 'intention_housetype'], 'string', 'max' => 100], ['equipment', 'in', 'range' => [1, 2], 'message' => '设备来源错误'], ['hid', 'number'], ['hid', 'default', 'value' => 0], ['send_email', 'string'], ['ip', 'default', 'value' => \Yii::$app->request->userIP], ['source', 'in', 'range' => array_flip((new \common\models\EnrollSource())->TypeColumn(2)), 'on' => 'pcadd'], ['source', 'in', 'range' => array_flip((new \common\models\EnrollSource())->TypeColumn(1)), 'on' => 'madd'], ]; } public function attributeLabels() { return [ 'mobile' => '手机号码', 'intention_house' => '意向楼盘', 'intention_city' => '意向区域', 'intention_housetype' => '意向户型', 'budget' => '预算', 'name' => '姓名', 'equipment' => '设备', 'source' => '来源', ]; } public function Authenticator($input) { $this->load($input, ''); if ($this->validate()) return $this; return $this->errors; } public function FindById($id) { return self::findOne($id); } public function FindByIds() { $query = self::find(); $query->select(['pfg_enroll.*', 'pfg_house.name as house_name', 'pfg_category_city.city_name', 'pfg_email.email']); $query->andwhere(['pfg_enroll.id' => $this->id]); $query->andwhere(['pfg_enroll.del' => $this->setDel]); $query->leftJoin('pfg_house', 'pfg_enroll.hid = pfg_house.id'); $query->leftJoin('pfg_category_city', 'pfg_house.city = pfg_category_city.id or pfg_enroll.b_city = pfg_category_city.id'); $query->leftJoin('pfg_email', 'pfg_house.city = pfg_email.city'); return $query->asArray()->one(); } public function getList($page) { $query = self::find(); $query->select(['pfg_enroll.*', 'pfg_house.name as house_name', 'pfg_category_city.city_name', 'pfg_house.city as house_city']); $query->andwhere(['pfg_enroll.del' => $this->setDel]); if (!empty($page['equipment'])) { $query->andWhere(['pfg_enroll.equipment' => $page['equipment']]); } if (!empty($page['hid'])) { $query->andWhere(['pfg_enroll.id' => $page['hid']]); } if (!empty($page['state'])) { $query->andWhere(['pfg_enroll.state' => $page['state']]); } if (isset($page['source_id']) && !empty($page['source_id'])) { $sou = explode('-', $page['source_id']); $query->andWhere(['pfg_enroll.equipment' => $sou[1]]); $query->andWhere(['pfg_enroll.source' => $sou[0]]); } if (isset($page['source_mobile']) && !empty($page['source_mobile'])) { $sou = explode('-', $page['source_mobile']); $query->andWhere(['pfg_enroll.equipment' => $sou[1]]); $query->andWhere(['pfg_enroll.source' => $sou[0]]); } if (!empty($page['start_time'])) { $start_time = strtotime($page['start_time'] . ' 00:00:00'); if (!empty($page['end_time'])) { $end_time = strtotime($page['end_time'] . ' 23:59:59'); } else { $end_time = $_SERVER['REQUEST_TIME']; } $query->andWhere(['>=', 'pfg_enroll.create_at', $start_time]); $query->andWhere(['<=', 'pfg_enroll.create_at', $end_time]); } $query->leftJoin('pfg_house', 'pfg_enroll.hid = pfg_house.id'); $query->leftJoin('pfg_category_city', 'pfg_house.city = pfg_category_city.id or pfg_enroll.b_city = pfg_category_city.id'); // $query->leftJoin('pfg_email', 'pfg_house.city = pfg_email.city'); $arr = []; if (!empty($page['accurate']) && $page['accurate'] == 1) { $query->groupBy(['pfg_enroll.mobile']); } if (!empty($page['page'])) { $count = clone $query; $arr['total'] = $count->count(); $query->offset = ($page['page'] - 1) * $page['limit']; $query->limit = $page['limit']; } else { $query->limit = 20; } $arr['data'] = $query->orderBy(['pfg_enroll.create_at' => SORT_DESC])->asArray()->all(); return $arr; } public function Total($page) { $query = self::find(); $query->where(['pfg_enroll.del' => $this->setDel]); if (!empty($page['equipment'])) { $query->andWhere(['pfg_enroll.equipment' => $page['equipment']]); } if (isset($page['source_id']) && !empty($page['source_id'])) { $sou = explode('-', $page['source_id']); $query->andWhere(['pfg_enroll.equipment' => $sou[1]]); $query->andWhere(['pfg_enroll.source' => $sou[0]]); } if (!empty($page['start_time'])) { $start_time = strtotime($page['start_time'] . ' 00:00:00'); if (!empty($page['end_time'])) { $end_time = strtotime($page['end_time'] . ' 23:59:59'); } else { $end_time = $_SERVER['REQUEST_TIME']; } $query->andWhere(['>=', 'pfg_enroll.create_at', $start_time]); $query->andWhere(['<=', 'pfg_enroll.create_at', $end_time]); } $query->leftJoin('pfg_house', 'pfg_enroll.hid = pfg_house.id and pfg_enroll.hid != 0'); $query->leftJoin('pfg_category_city', 'pfg_house.city = pfg_category_city.id and pfg_enroll.hid != 0'); // $query->leftJoin('pfg_email', 'pfg_house.city = pfg_email.city and pfg_enroll.hid != 0'); return $query->count(); } public function SendEmail($page) { $query = self::find(); $query->select(['pfg_enroll.*', 'pfg_house.name as house_name', 'pfg_category_city.city_name', 'pfg_email.email']); $query->andWhere(['pfg_enroll.del' => $this->setDel]); if (!empty($page['id'])) { $query->andWhere(['IN', 'pfg_enroll.id', $page['id']]); } $query->leftJoin('pfg_house', 'pfg_enroll.hid = pfg_house.id'); $query->leftJoin('pfg_category_city', 'pfg_house.city = pfg_category_city.id or pfg_enroll.b_city = pfg_category_city.id'); $query->leftJoin('pfg_email', 'pfg_house.city = pfg_email.city'); $query->orderBy(['pfg_enroll.create_at' => SORT_DESC]); return $query->asArray()->all(); } }