123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- <?php
- /**
- * Created by PhpStorm.
- * User: xiaofeng
- * Date: 2018/3/4
- * Time: 上午9:25
- * 报名
- */
- namespace common\models;
- class Enroll extends Common
- {
- //PC端 模板来源
- // public $sourceArr = [
- // 0 => '楼盘搜索列表-降价通知',
- // 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();
- }
- }
|