alias("m") ->field("m.*,u.nickname as i_nickname,u.uuid as i_uuid,t.name as i_tname,t.tuuid as i_tuuid,s.day_surplus_talk,s.day_surplus_video,s.time as surplus_time" . ",(select count(*) from table_user_friends as p where p.uid = m.uid) as friendsCount"//朋友数 . ",(select count(*) from table_user_attention as a where a.uid = m.uid) as attentionCount"//关注数 . ",(select count(*) from table_user_attention as f where f.i_uid = m.uid) as fasCount"//粉丝数 . ",(select count(*) from table_user_visitors as v where v.uid = m.uid) as visitorsCount"//访客数 . "") ->leftJoin("user u","u.uid = m.i_uid") ->leftJoin("user_surplus s","s.uid = m.uid and s.time = {$today}") ->leftJoin("tuser t","t.tuid = m.i_tuid") ->when(!empty($where), function ($query) use ($where) { if (!empty($where['mobile'])) { $query->where('m.mobile', $where['mobile']); } if (!empty($where['nickname'])) { $query->whereLike('m.nickname', "%{$where['nickname']}%"); } if (is_numeric($where['levelid']) && in_array(strval($where['levelid']),['0','1','2'])) { $query->where('m.levelid', intval($where['levelid'])); } if (is_numeric($where['is_certification']) && in_array(strval($where['is_certification']),['0','1','2'])) { $query->where('m.is_certification', intval($where['is_certification'])); } if (is_numeric($where['is_goddess']) && in_array(strval($where['is_goddess']),['0','1','2'])) { $query->where('m.is_goddess', intval($where['is_goddess'])); } if (!empty($where['address'])) { $query->whereLike('m.address', "%{$where['address']}%"); } if (!empty($where['now_address'])) { $query->whereLike('m.now_address', "%{$where['now_address']}%"); } if (!empty($where['i_uid'])) { $query->where('m.i_uid', $where['i_uid']); } if (!empty($where['i_tuid'])) { $query->where('m.i_tuid', $where['i_tuid']); } if (is_numeric($where["sex"]) && in_array(strval($where["sex"]),["0","1","2"])) { $query->where('m.sex', $where["sex"]); } if (is_numeric($where["is_im"]) && in_array(strval($where["is_im"]),["0","1"])) { $query->where('m.is_im', $where["is_im"]); } if (is_numeric($where["is_online"]) && in_array(strval($where["is_online"]),["0","1"])) { $query->where('m.is_online', $where["is_online"]); } if (is_numeric($where["status"]) && in_array(strval($where["status"]),["0","1","-1"])) { $query->where('m.status', $where["status"]); } if (!empty($where['uid'])) { $query->where('m.uid', $where['uid']); } if (!empty($where['uuid'])) { $query->where('m.uuid', $where['uuid']); } //注册时间 $startTime = ""; $endTime = ""; if(!empty($where['time']) && !empty($where['time'][0]) && !empty($where['time'][1])) { $startTime = strtotime($where['time'][0]); $endTime = strtotime($where['time'][1]); } if (!empty($startTime) && !empty($endTime)) { $query->whereBetween("m.regtime","{$startTime},{$endTime}"); } }) ->order($desc) ->paginate(['list_rows' => $pageCount, 'page' => $page]) ->toArray(); return [$data['total'], $data['data']]; } /** * 保存数据 * @param $data * @param $admin_id * @return array */ public function saveUpdate($data, $admin_id) { try { self::beginTrans(); if(!is_numeric($data["levelid"]) || !in_array(strval($data["levelid"]),["0","1","2"])){ unset($data["levelid"]); } if(empty($data["mobile"])){ unset($data["mobile"]); }else{ if(!isMobile($data["mobile"])){ return [0, '请输入正确的手机号码']; } } if(empty($data["nickname"])){ unset($data["nickname"]); } if(empty($data["address"])){ unset($data["address"]); } if(empty($data["now_address"])){ unset($data["now_address"]); } if(!is_numeric($data["status"]) || !in_array(strval($data["status"]),["0","1","-1"])){ unset($data["status"]); } if(!is_numeric($data["is_shield"]) || !in_array(strval($data["is_shield"]),["0","1"])){ unset($data["is_shield"]); } //密码 if (!empty($data['password'])) { $data['password'] = md5($data['password']); }else{ unset($data["password"]); } if(empty($data["avatar"])){ unset($data["avatar"]); } if(!is_numeric($data["sex"]) || !in_array(strval($data["sex"]),["0","1","2"])){ unset($data["sex"]); } //特殊设置 if(empty($data["msg_price"]) || !is_numeric($data["msg_price"])){ unset($data["msg_price"]); } if(empty($data["video_price"]) || !is_numeric($data["video_price"])){ unset($data["video_price"]); } if(empty($data["audio_price"]) || !is_numeric($data["audio_price"])){ unset($data["audio_price"]); } if(empty($data["phone_price"]) || !is_numeric($data["phone_price"])){ unset($data["phone_price"]); } if(empty($data["wx_price"]) || !is_numeric($data["wx_price"])){ unset($data["wx_price"]); } if(empty($data["qq_price"]) || !is_numeric($data["qq_price"])){ unset($data["qq_price"]); } //开关设置 if(!is_numeric($data["is_rank"]) || !in_array(strval($data["is_rank"]),["0","1"])){ unset($data["is_rank"]); } if(!is_numeric($data["is_gift"]) || !in_array(strval($data["is_gift"]),["0","1"])){ unset($data["is_gift"]); } if(!is_numeric($data["is_msg"]) || !in_array(strval($data["is_msg"]),["0","1"])){ unset($data["is_msg"]); } if(!is_numeric($data["is_video"]) || !in_array(strval($data["is_video"]),["0","1"])){ unset($data["is_video"]); } if(!is_numeric($data["is_audio"]) || !in_array(strval($data["is_audio"]),["0","1"])){ unset($data["is_audio"]); } //uid if (!empty($data['uid'])) { $uData = $this->where('uid', $data['uid'])->find()->toArray(); if (empty($uData)) { return [0, '会员不存在']; } if(!empty($data["mobile"])){ //判断手机是否重复 $count = $this ->where('mobile', $data['mobile']) ->where('uid', '<>', $data['uid']) ->count(); if ($count > 0) { return [0, '手机号码已经存在']; } } } else { $data['regtime'] = time(); } $this->saveModel($data); self::commitTrans(); return [1, '']; } catch (DbException $db) { self::rollbackTrans(); return [0, '操作失败1']; } catch (\Exception $e) { self::rollbackTrans(); return [0, '操作失败2']; } return [0, '操作失败']; } /** * 获取列表数据 * @param $page * @param $where * @param $pageCount * @param $desc */ public function getItem($uid) { $data = $this ->field("m.*,(select mobile from table_user where uid = m.i_uid) as i_name") ->alias("m") ->where('uid', $uid) ->select(); return $data; } }