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); } } $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"]]; } // . ",(select count(*) from table_info_audit where uid = u.uid ) as is_show" if($is_admin==1){ $field = "u.*" . ",ut.show_template_id" .",(select is_show form table_info_audit where uid = u.uid and status = 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(); 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"]); } } 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]; } }