100], [['openid', 'wx_openid'], 'string', 'max' => 120], [['phone'], 'string', 'max' => 11], [['nickname'], 'string', 'max' => 100], [['headimgurl', 'country', 'province', 'city', 'user_area'], 'string', 'max' => 255], [['openid'], 'unique'], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'uid' => 'Uid', 'user_name' => 'User Name', 'openid' => 'Openid', 'phone' => 'Phone', 'nickname' => 'Nickname', 'headimgurl' => 'Headimgurl', 'sex' => 'Sex', 'country' => 'Country', 'province' => 'Province', 'city' => 'City', 'status' => 'Status', 'reg_time' => 'Reg Time', 'delete_flag' => 'Delete Flag', 'wx_openid' => 'Wx Openid', 'main_user_id' => 'Main User ID', 'change_price_power' => 'change_price_power', 'user_area' => 'user_area' ]; } /** * Function Description:验证是否已注册手机号 * Function Name: checkPhone * * @return array * * @author 娄梦宁 */ public function checkPhone() { $cookies = Yii::$app->request->cookies; $user_id = $cookies->getValue('user_id'); $phone = self::find()->select('phone') ->where(['uid' => $user_id]) ->one(); return $phone; } /** * Function Description:注册手机号 * Function Name: registerPhone * @param $phone * * @return bool * * @author 娄梦宁 */ public function registerPhone($phone) { $values = [ 'phone' => $phone ]; $base_one = self::findOne(['uid' => FxUtil::$uid, 'delete_flag' => 0]); $req = "/^.*[0-9a-zA-Z_\x{4e00}-\x{9fa5}].*$/u"; if (Util::checkPattern('', $base_one->nickname, $req) == false) {//如果用户名是空则用户名设置为手机号 $values['nickname'] = $phone; } $base_one->attributes = $values; $res = $base_one->update(); if ($res === false) { return false; } return true; } /** * Des:根据openid获取用户ID * Name: getUidByOpenid * @param $openid * @return mixed|string * @author 倪宗锋 */ public function getInfoByOpenid($openid) { $getUserInfo = self::find()->select(['uid', 'phone', 'status']) ->where(array('openid' => $openid)) ->asArray(true) ->one(); if ($getUserInfo == null) { return ''; } return $getUserInfo; } /** * Des:添加用户信息 * Name: addUserFromWeChat * @param $params * @return bool * @throws \Exception * @throws bool * @author 倪宗锋 */ public function addUserFromWeChat($params) { $this->setAttributes($params); $return = $this->insert(true); return $return; } /** * Des:获取用户信息 * Name: getUserInfoByUid * @param $uid * @return array|null|string|ActiveRecord * @author 倪宗锋 */ public function getUserInfoByUid($uid) { $userInfo = self::find() ->where(array('uid' => $uid)) ->asArray(true) ->one(); if ($userInfo == null) { return ''; } return $userInfo; } /** * Function Description:获取分销商列表 * Function Name: getUserList * @param $param * * @return array|\yii\db\ActiveRecord[] * * @author 娄梦宁 */ public function getUserList($param) { $where = ['and', ['!=', 'phone', '']]; if (empty($param['wechat_name']) == false) { $where[] = ['like', 'nickname', $param['wechat_name']]; } if (empty($param['fx_phone']) == false) { $where[] = ['like', 'phone', $param['fx_phone']]; } if (empty($param['start_reg_time']) == false) { $where[] = ['>=', 'reg_time', $param['start_reg_time']]; } if (empty($param['end_reg_time']) == false) { $where[] = ['<', 'reg_time', date('Y-m-d', strtotime("{$param['end_reg_time']} +1 day"))]; } if (empty($param['main_user_id']) == false) { $where[] = ['=', 'a.main_user_id', $param['main_user_id']]; } if (empty($param['user_area']) == false) { $where[] = ['=', 'a.user_area', $param['user_area']]; } //果运营主体非1或空,则读取自身对应的订单数据,如果运营主体为空,或者运营主体是1则读取订单运营主体是0或1的订单 $cookies = $_COOKIE; if (empty($cookies['user_main_corp']) == false && $cookies['user_main_corp'] != 1 && in_array(YII_ENV,['pro','dev'])) { $where[] = ['=', 'e.main_corp_id', $cookies['user_main_corp']]; } $offset = ($param['current_page'] - 1) * $param['page_size']; $select = [ 'a.uid as fx_uid', new Expression('FORMAT(b.remaining_sum,0) as remaining_sum'), 'a.nickname as wechat_name', "ifnull(a.user_name,'') user_name", 'a.phone as fx_phone', 'a.reg_time', 'b.status as fx_status_id', "if(b.status=1,'已启用','未启用') as fx_status", 'ifnull(b.total_commission,0) as total_commission', 'ifnull(b.closed_commission,0) as closed_commission', 'ifnull(b.available_commission,0) available_commission', 'change_price_power' => new Expression("SUBSTR(change_price_power FROM 1 FOR 1)"),//巴士自由行的改价权限 'change_price_power_hotel' => new Expression("SUBSTR(change_price_power FROM 2 FOR 1)"),//酒店的改价权限 'main_user_name' => new Expression("ifnull((SELECT user_name from main_corp_user WHERE id= a.main_user_id),'')"), 'main_corp_name' => new Expression("ifnull((SELECT main_corp_name from main_corp_user WHERE id= a.main_user_id),'')"), 'user_area' => new Expression("ifnull((SELECT GROUP_CONCAT(area_name SEPARATOR '
') from fx_user_area WHERE FIND_IN_SET(area_id,a.user_area)),'')") ]; $result = self::find()->select($select) ->from(self::tableName() . ' as a') ->innerJoin('fx_user_account as b', ' b.fx_uid=a.uid') ->leftJoin(MainCorpUser::tableName() . ' e', 'a.main_user_id = e.id') ->where($where) ->orderBy('a.reg_time desc') ->offset($offset) ->limit($param['page_size']) ->asArray() ->all(); $result1 = self::find()->select('count(1) as count') ->from(self::tableName() . ' as a') ->innerJoin('fx_user_account as b', ' b.fx_uid=a.uid') ->leftJoin(MainCorpUser::tableName() . ' e', 'a.main_user_id = e.id') ->asArray() ->where($where) ->one(); $result1 = $result1['count']; return ['list' => $result, 'count' => $result1 ]; } /* * 分销商审核列表 */ public function CheckFxUser($param) { $where = ['and', ['=', 'a.delete_flag', '0']]; if ($param['wechat_name'] != '') { $where[] = ['like', 'a.nickname', $param['wechat_name']]; } if ($param['fx_phone'] != '') { $where[] = ['like', 'a.phone', $param['fx_phone']]; } if ($param['start_reg_time'] != '') { $where[] = ['>=', 'a.reg_time', $param['start_reg_time']]; } if ($param['end_reg_time'] != '') { $where[] = ['<', 'a.reg_time', date('Y-m-d', strtotime("{$param['end_reg_time']} +1 day"))]; } if ($param['status'] != '') { $where[] = ['=', 'a.status', $param['status']]; } if (empty($param['main_user_id']) == false) { $where[] = ['=', 'a.main_user_id', $param['main_user_id']]; } if (empty($param['user_area']) == false) { $where[] = ['=', 'a.user_area', $param['user_area']]; } //果运营主体非1或空,则读取自身对应的订单数据,如果运营主体为空,或者运营主体是1则读取订单运营主体是0或1的订单 $cookies = $_COOKIE; if (empty($cookies['user_main_corp']) == false && !in_array($cookies['user_main_corp'], [1, 34])) { $where[] = ['=', 'e.main_corp_id', $cookies['user_main_corp']]; } $offset = ($param['current_page'] - 1) * $param['page_size']; $select = [ 'a.nickname', "ifnull(a.user_name,'') user_name", 'a.phone', 'a.reg_time', "if(a.status = 1,'审核未通过',if(a.status=2,'审核通过','待审核')) as status_type", 'a.uid as fx_uid', 'a.status', 'main_user_name' => new Expression("ifnull((SELECT user_name from main_corp_user WHERE id= a.main_user_id),'')"), 'main_corp_name' => new Expression("ifnull((SELECT main_corp_name from main_corp_user WHERE id= a.main_user_id),'')") ]; $result = self::find()->select($select) ->from(self::tableName() . ' a') ->leftJoin(MainCorpUser::tableName() . ' e', 'a.main_user_id = e.id') ->where($where) ->orderBy('a.reg_time desc') ->offset($offset) ->limit($param['page_size']) ->asArray() ->all(); $result1 = self::find()->select('count(1) as count') ->from(self::tableName() . ' a') ->leftJoin(MainCorpUser::tableName() . ' e', 'a.main_user_id = e.id') ->asArray() ->where($where) ->one(); $result1 = $result1['count']; return ['list' => $result, 'count' => $result1 ]; } /* * 分销商审核通过 */ public function ThroughFxUser($fx_uid, $status) { $count = self::updateAll(['status' => $status], ['=', 'uid', $fx_uid]); return $count; } /** * Des:修改用户名 * Name: updateUserName * @param $fx_uid * @param $user_name * @return int * @author 倪宗锋 */ public function updateUserName($fx_uid, $user_name) { $count = self::updateAll(['user_name' => $user_name], ['=', 'uid', $fx_uid]); return $count; } /** * Des:绑定运维负责人 * Name: updateUserName * @param $fx_uid * @param $main_user_id * @return int * @author 倪宗锋 */ public function bindMainCorp($fx_uid, $main_user_id) { $count = self::updateAll(['main_user_id' => $main_user_id], ['=', 'uid', $fx_uid]); return $count; } /** * Des:获取用户详细 * Name: getUserInfo * @param $fx_uid * @return array|null|ActiveRecord * @author 倪宗锋 */ public function getUserInfo($fx_uid) { $select = [ 'a.uid', 'a.nickname', 'a.phone', 'a.main_user_id', 'b.id', 'b.user_name', 'b.main_corp_id', 'b.main_corp_name', 'a.user_area' ]; $info = self::find()->select($select) ->from(static::tableName() . ' a') ->leftJoin(MainCorpUser::tableName() . ' b', 'a.main_user_id = b.id') ->where(['=', 'a.uid', $fx_uid]) ->asArray() ->one(); return $info; } /** * Function Description:修改用户改价权限 * Function Name: uptChangePricePower * @param $fx_uid * @param $change_price_power * @param $type * * @return bool * * @author 娄梦宁 */ public function uptChangePricePower($fx_uid, $change_price_power, $type) { // print_r([$type,$change_price_power,$change_price_power]);die; try { self::updateAll(['change_price_power' => new Expression("INSERT(change_price_power,$type,1,$change_price_power)")], ['=', 'uid', $fx_uid]); return true; } catch (Exception $e) { return false; } } /** * Des:修改用户名 * Name: updateUserName * @param $fx_uid * @param $userArea * @return int * @author 倪宗锋 */ public function updateUserArea($fx_uid, $userArea) { $count = self::updateAll(['user_area' => $userArea], ['=', 'uid', $fx_uid]); return $count; } }