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; } /** * 获取小程序在职展示列表 * @return type */ public function getApiWorkerList($post) { $post["pageSize"] = $post["pageSize"] > 50 ? 50 : (int)$post["pageSize"]; $post["page"] = $post["page"] <= 0 ? 1 : (int)$post["page"]; $where = []; $where[] = ["u.work_type_id", ">", 0]; $where[] = ["u.status", "=", 1]; if (!empty($post['work_type_id'])) { $where[] = ["u.work_type_id", "=", $post['work_type_id']]; } $totalCount = $this->alias("u")->where($where)->count(); $data = null; if ($totalCount > 0) { $data = $this ->alias("u") ->field("u.uid,ut.show_template_id,a.ancestral_place,a.status as is_type_audit") ->leftJoin("info_audit a", "u.uid=a.uid") ->leftJoin("user_show_template ut", "ut.uid = u.uid and ut.is_default = 1")//默认模板 ->where($where) ->order("u.show_temp_seq", "desc") ->order("u.uid", "desc") ->page($post["page"], $post["pageSize"]) ->select(); if (!empty($data)) { $data = $data->toArray(); } $infoAuditDb = new InfoAudit(); foreach ($data as $k => $v) { $item = [ "name" => "", "avatar" => "", "age" => "", "service_project_ar" => [], "user_work_type_title" => "", "service_area_all" => [], "birthday" => "" ]; $infoData = $infoAuditDb->getItem(["status" => 1, "uid" => $v["uid"]]); if (!empty($infoData)) { foreach ($item as $k2 => $v2) { $item[$k2] = $infoData[$k2]; } } $data[$k] = array_merge($v, $item); } } // $datatwo = []; // foreach($data as $v){ // if($v['is_show'] == 1){ // $datatwo[] = $v; // } // } $data = empty($data) ? [] : $data; return ["list" => $data, "pageSize" => $post["pageSize"], "page" => $post["page"], "totalCount" => $totalCount]; } /** * 获取小程序在职展示列表 * @return type */ public function getGoodApiWorkerList($post) { $post["pageSize"] = $post["pageSize"] > 50 ? 50 : (int)$post["pageSize"]; $post["page"] = $post["page"] <= 0 ? 1 : (int)$post["page"]; $where = []; $where[] = ["u.work_type_id", ">", 0]; $where[] = ["u.show_temp_seq", ">", 0]; $where[] = ["u.status", "=", 1]; if (!empty($post['work_type_id'])) { $where[] = ["u.work_type_id", "=", $post['work_type_id']]; } if ($post['servicePrice'] > 0) { $where[] = ["a.service_min_price", "<=", $post['servicePrice']]; } if ($post['is_china'] != '') { $where[] = ["a.is_china", '=', $post['is_china']]; } if (!empty($post['timetype'])) { $where[] = ["a.service_type", "=", $post['timetype']]; } $cityModel = new CityModel(); $totalModel = $this->alias("u")->leftJoin("info_audit a", "u.uid=a.uid")->where($where); if (!empty($post["service_area"]) && is_array($post["service_area"])) { $totalModel->where(function ($query) use ($post, $cityModel) { foreach ($post["service_area"] as $v) { $stc = str_replace(['省', '市', '区', '县'], ['', '', '', ''], $v); $str = str_replace(['辖'], ['市辖'], $stc); $arr = explode(",", $str); $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[1] . "," . $arr[2])->value('id'); if (!$city_id) $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[0] . "," . $arr[1])->value('id'); $query->whereOr('find_in_set(' . $city_id . ',a.service_area)'); } }); } $totalCount = $totalModel->count(); $data = null; if ($totalCount > 0) { $dataModel = $this ->alias("u") ->field("u.uid,ut.show_template_id,a.ancestral_place,a.status as is_type_audit") ->leftJoin("info_audit a", "u.uid=a.uid") ->leftJoin("user_show_template ut", "ut.uid = u.uid and ut.is_default = 1")//默认模板 ->where($where); if (!empty($post["service_area"]) && is_array($post["service_area"])) { $dataModel->where(function ($query) use ($post, $cityModel) { foreach ($post["service_area"] as $v) { $stc = str_replace(['省', '市', '区', '县'], ['', '', '', ''], $v); $str = str_replace(['辖'], ['市辖'], $stc); $arr = explode(",", $str); $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[1] . "," . $arr[2])->value('id'); if (!$city_id) $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[0] . "," . $arr[1])->value('id'); $query->whereOr('find_in_set(' . $city_id . ',a.service_area)'); } }); } $data = $dataModel->order("u.show_temp_seq", "desc") ->order("u.uid", "desc") ->page($post["page"], $post["pageSize"]) ->select(); if (!empty($data)) { $data = $data->toArray(); } $infoAuditDb = new InfoAudit(); foreach ($data as $k => $v) { $item = [ "name" => "", "avatar" => "", "age" => "", "service_project_ar" => [], "user_work_type_title" => "", "service_area_all" => [], "birthday" => "" ]; $infoData = $infoAuditDb->getItem(["status" => 1, "uid" => $v["uid"]]); if (!empty($infoData)) { foreach ($item as $k2 => $v2) { $item[$k2] = $infoData[$k2]; } } $data[$k] = array_merge($v, $item); } } // $datatwo = []; // foreach($data as $v){ // if($v['is_show'] == 1){ // $datatwo[] = $v; // } // } $data = empty($data) ? [] : $data; return ["list" => $data, "pageSize" => $post["pageSize"], "page" => $post["page"], "totalCount" => $totalCount]; } /** * 获取小程序在职展示列表 * @return type */ public function getNewApiWorkerList($post) { $post["pageSize"] = $post["pageSize"] > 50 ? 50 : (int)$post["pageSize"]; $post["page"] = $post["page"] <= 0 ? 1 : (int)$post["page"]; $where = []; $where[] = ["u.work_type_id", ">", 0]; $where[] = ["u.status", "=", 1]; if (!empty($post['work_type_id'])) { $where[] = ["u.work_type_id", "=", $post['work_type_id']]; } if ($post['servicePrice'] > 0) { $where[] = ["a.service_min_price", "<=", $post['servicePrice']]; } if (!empty($post['timetype'])) { $where[] = ["a.service_type", "=", $post['timetype']]; } if ($post['is_china'] != '') { $where[] = ["a.is_china", '=', $post['is_china']]; } $cityModel = new CityModel(); $totalModel = $this->alias("u")->leftJoin("info_audit a", "u.uid=a.uid")->where($where); if (!empty($post["service_area"]) && is_array($post["service_area"])) { $totalModel->where(function ($query) use ($post, $cityModel) { foreach ($post["service_area"] as $v) { $stc = str_replace(['省', '市', '区', '县'], ['', '', '', ''], $v); $str = str_replace(['辖'], ['市辖'], $stc); $arr = explode(",", $str); $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[1] . "," . $arr[2])->value('id'); if (!$city_id) $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[0] . "," . $arr[1])->value('id'); $query->whereOr('find_in_set(' . $city_id . ',a.service_area)'); } }); } $totalCount = $totalModel->count(); $data = null; if ($totalCount > 0) { $dataModel = $this ->alias("u") ->field("u.uid,ut.show_template_id,a.ancestral_place,a.status as is_type_audit") ->leftJoin("info_audit a", "u.uid=a.uid") ->leftJoin("user_show_template ut", "ut.uid = u.uid and ut.is_default = 1")//默认模板 ->where($where); if (!empty($post["service_area"]) && is_array($post["service_area"])) { $dataModel->where(function ($query) use ($post, $cityModel) { foreach ($post["service_area"] as $v) { $stc = str_replace(['省', '市', '区', '县'], ['', '', '', ''], $v); $str = str_replace(['辖'], ['市辖'], $stc); $arr = explode(",", $str); $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[1] . "," . $arr[2])->value('id'); if (!$city_id) $city_id = $cityModel->where('merger_name', 'like', "%" . $arr[0] . "," . $arr[1])->value('id'); $query->whereOr('find_in_set(' . $city_id . ',a.service_area)'); } }); } $data = $dataModel->order("u.uid", "desc") ->page($post["page"], $post["pageSize"]) ->select(); if (!empty($data)) { $data = $data->toArray(); } $infoAuditDb = new InfoAudit(); foreach ($data as $k => $v) { $item = [ "name" => "", "avatar" => "", "age" => "", "service_project_ar" => [], "user_work_type_title" => "", "service_area_all" => [], "birthday" => "" ]; $infoData = $infoAuditDb->getItem(["status" => 1, "uid" => $v["uid"]]); if (!empty($infoData)) { foreach ($item as $k2 => $v2) { $item[$k2] = $infoData[$k2]; } } $data[$k] = array_merge($v, $item); } } // $datatwo = []; // foreach($data as $v){ // if($v['is_show'] == 1){ // $datatwo[] = $v; // } // } $data = empty($data) ? [] : $data; return ["list" => $data, "pageSize" => $post["pageSize"], "page" => $post["page"], "totalCount" => $totalCount]; } /** * 获取从业人员列表 * @param type $post * @param type $field * @param type $is_admin */ public function getWorkerList($post, $field = "*", $is_admin = 0) { $post["pageSize"] = $post["pageSize"] > 50 ? 50 : (int)$post["pageSize"]; $post["page"] = $post["page"] <= 0 ? 1 : (int)$post["page"]; $where = []; $where[] = ["u.work_type_id", ">", 0]; //用户uid if (!empty($post['uid'])) { $where[] = ["u.uid", "=", $post['uid']]; } if (!empty($post['work_type_id'])) { $where[] = ["u.work_type_id", "=", $post['work_type_id']]; } //手机号码 if (!empty($post["mobile"])) { $where[] = ["u.mobile", "=", $post["mobile"]]; } //状态 if (isset($post["status"]) && in_array((string)$post["status"], ["0", "1", "-1"])) { $where[] = ["u.status", "=", (int)$post["status"]]; } //父级uid if (!empty($post["parent_uid"])) { $where[] = ["u.parent_uid", "=", $post["parent_uid"]]; } // if ($is_admin == 1) { $field = "u.*" . ",ut.show_template_id" . ",(select is_show from table_info_audit where uid = u.uid and status = 1 limit 1 ) as is_show" . ",p.nickname as p_nickname,p.mobile as p_mobile" . ",wt.title as work_type_title" . ",(select count(*) from table_user_show_template where uid = u.uid) as showTempCount" . ",(select count(*) from table_info_audit where uid = u.uid and status = 1) as is_info_audit" . ",(select count(*) from table_type_audit where uid = u.uid and status = 1) as is_type_audit" . ",(select count(*) from table_user where parent_uid = u.uid) as branchCount"; } $totalCount = $this->alias("u")->where($where)->count(); $data = null; if ($totalCount > 0) { $data = $this ->alias("u") ->field($field) ->leftJoin("user p", "p.uid = u.parent_uid") ->leftJoin("user_work_type wt", "wt.id = u.work_type_id")//职称 ->leftJoin("user_show_template ut", "ut.uid = u.uid and ut.is_default = 1")//职称 ->where($where) ->order("u.show_temp_seq", "desc") ->order("u.uid", "desc") ->page($post["page"], $post["pageSize"]) ->select(); // var_dump($this->getLastSql()); if (!empty($data)) { $data = $data->toArray(); } } $data = empty($data) ? [] : $data; $ShowTemplateDb = new ShowTemplate(); foreach ($data as $k => $v) { if (!empty($v["regtime"])) { $data[$k]["regtime"] = date("Y-m-d H:i:s", $v["regtime"]); } if (!empty($v["parent_time"])) { $data[$k]["parent_time"] = date("Y-m-d H:i:s", $v["parent_time"]); } } // $datatwo = []; // foreach($data as $v){ // if($v['is_show'] == 1){ // $datatwo[] = $v; // } // } return ["list" => $data, "pageSize" => $post["pageSize"], "page" => $post["page"], "totalCount" => $totalCount]; } /** * 前端获取用户列表 * @param type $post * @param type $field * @return type */ public function getDataList($post, $field = "*", $is_admin = 0) { $post["pageSize"] = $post["pageSize"] > 50 ? 50 : (int)$post["pageSize"]; $post["page"] = $post["page"] <= 0 ? 1 : (int)$post["page"]; $where = []; //用户uid if (!empty($post['uid'])) { $where[] = ["u.uid", "=", $post['uid']]; } //状态 if (isset($post["status"]) && in_array((string)$post["status"], ["0", "1", "-1"])) { $where[] = ["u.status", "=", (int)$post["status"]]; } //昵称 if (!empty($post["nickname"])) { $where[] = ["u.nickname", "like", "%{$post["nickname"]}%"]; } //手机号码 if (!empty($post["mobile"])) { $where[] = ["u.mobile", "=", $post["mobile"]]; } //父级uid if (!empty($post["parent_uid"])) { $where[] = ["u.parent_uid", "=", $post["parent_uid"]]; } //注册时间 if (!empty($post['time']) && !empty($post['time'][0]) && !empty($post['time'][1])) { $startTime = strtotime($post['time'][0]); $endTime = strtotime($post['time'][1]); $where[] = ["u.regtime", "between", "{$startTime},{$endTime}"]; } if ($is_admin == 1) { $field = "u.*" . ",p.nickname as p_nickname,p.mobile as p_mobile" . ",wt.title as work_type_title" . ",(select count(*) from table_user_show_template where uid = u.uid) as showTempCount" . ",(select count(*) from table_info_audit where uid = u.uid and status = 1) as is_info_audit" . ",(select count(*) from table_type_audit where uid = u.uid and status = 1) as is_type_audit" . ",(select count(*) from table_user where parent_uid = u.uid) as branchCount"; } $totalCount = $this->alias("u")->where($where)->count(); $data = null; if ($totalCount > 0) { $data = $this ->alias("u") ->field($field) ->leftJoin("user p", "p.uid = u.parent_uid") ->leftJoin("user_work_type wt", "wt.id = u.work_type_id")//职称 ->where($where) ->order("u.uid", "desc") ->page($post["page"], $post["pageSize"]) ->select(); if (!empty($data)) { $data = $data->toArray(); } } $data = empty($data) ? [] : $data; foreach ($data as $k => $v) { if (!empty($v["regtime"])) { $data[$k]["regtime"] = date("Y-m-d H:i:s", $v["regtime"]); } if (!empty($v["parent_time"])) { $data[$k]["parent_time"] = date("Y-m-d H:i:s", $v["parent_time"]); } } return ["list" => $data, "pageSize" => $post["pageSize"], "page" => $post["page"], "totalCount" => $totalCount]; } }