request->param(); Db::name($this->table)->update(['id'=>$param['id'],'is_clean'=>$param['is_clean']]); } /** * 获取管理用户列表 */ public function index() { //判断当前用户是否为管理员 if (!MEMBER['is_manager']) { return send_http_status(414); } $_where = 'status =1'; $count = Db::name($this->table)->where($_where)->count(); $page = $this->request->param('page', 1); $pagesize = $this->request->param('pagesize', 10); $pages = ceil($count / $pagesize); //总页数 $_result = Db::name($this->table)->where($_where)->page($page, $pagesize)->order('id', "DESC")->select(); $_data['list'] = $_result; $_data['pages'] = $pages; self::formatData($_data['list']); return send_http_status(200, $_data); } /** * 绑定用户手机号 */ public function bindPhone() { $iv = $this->request->param('iv'); $encryptedData = $this->request->param('encryptedData'); $code = $this->request->param('code'); //获取小程序appid配置 $config = config('appid'); $crypt = \We::WeMiniCrypt($config); //通过code获取 opendi及session_key $_session = $crypt->session($code); if (is_array($_session)) { //解密用户数据 $_data = $crypt->decode($iv, $_session['session_key'], $encryptedData); if (isset($_data['phoneNumber']) && !empty($_data['phoneNumber'])) { //通过openid修改用户手机号 $affected = Db::name($this->table)->where('openid', $_session['openid'])->update(['phone' => $_data['phoneNumber']]); if ($affected > -1) { return send_http_status(200); } } } return send_http_status(51007); } /** * 用户资料修改 */ public function modify() { $_data = $this->request->post(); //添加房源数据 $_data = array_filter($_data); $safe_data['pay_info'] = !empty($_data['pay_info']) ? $_data['pay_info'] : ''; $safe_data['phone'] = $_data['phone']; $safe_data['qrcode'] = $_data['qrcode']; $safe_data['truename'] = $_data['truename']; $safe_data['card_number'] = $_data['card_number']; $safe_data['update_time'] = time(); $safe_data['id'] = USER_ID; $affected = Db::name($this->table)->strict(false)->update($safe_data); if ($affected) { $_member = Db::name($this->table)->find(USER_ID); if (!empty($_member['qrcode'])) { $_member['imgList'] = explode(',', $_member['qrcode']); } return send_http_status(200, $_member); } return send_http_status(413); } /** * 会员详情 * @param string $id 会员id * @return \type|void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function view($id = '') { if (!$id) { return; } //获取房源详情 $_data['member'] = Db::name($this->table)->find($id); if ($_data['member']) { //查询所有房源数据 $_data['house_count'] = Db::name($this->table_house)->where('is_del', 0)->where('user_id', $_data['member']['id'])->count(); $_data['room_count'] = Db::name($this->table_room)->where('is_del', 0)->where('user_id', $_data['member']['id'])->count(); $_data['vip_level'] = config('vip_level'); } self::formatViewData($_data['member']); return send_http_status(200, $_data); } /** * 获取用户信息 * @param string $id * @return \type * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getInfo($id = '') { //先查询openid是否存在 $_result = Db::name($this->table)->where('id', $id)->find(); if ($_result) { $_result['imgList'] = !empty($_result['qrcode']) ? explode(',', $_result['qrcode']) : ''; self::formatViewData($_result); return send_http_status(200, $_result); } } /** * 修改会员等级 * @param string $user_id 被修改的用户id * @param int $level 修改等级 * @return \type * @throws \think\Exception * @throws \think\exception\PDOException */ public function level($user_id = '', $level = 0) { if (!$user_id || !is_numeric($user_id) || !in_array($level, [0, 1, 2, 3])) { return send_http_status(51005); } //判断当前用户是否为管理员 if (!MEMBER['is_manager']) { return send_http_status(414); } $affected = Db::name($this->table)->where('id', $user_id)->update(['vip_level' => $level, 'vip_time' => time()]); return send_http_status(200); } /** * 修改会员状态 * @param string $user_id 被修改的用户id * @return \type * @throws \think\Exception * @throws \think\exception\PDOException */ public function del($id = '') { if (!$id || !is_numeric($id)) { return send_http_status(51003); } //判断当前用户是否为管理员 if (!MEMBER['is_manager']) { return send_http_status(414); } $affected = Db::name($this->table)->where('id', $id)->update(['status' => 0]); return send_http_status(200); } static private function formatData(&$data) { if (!$data) { return; } $vip_level = config('vip_level'); array_walk($data, function (&$v, &$k) use ($vip_level) { !empty($v['create_time']) ? $v['create_time'] = date('Y-m-d', $v['create_time']) : $v['create_time'] = ''; !empty($v['update_time']) ? $v['update_time'] = date('Y-m-d', $v['update_time']) : $v['update_time'] = ''; !empty($v['vip_time']) ? $v['vip_time'] = date('Y-m-d', $v['vip_time']) : $v['vip_time'] = ''; isset($v['sex']) ? $v['sex'] = config('sex')[$v['sex']] : ''; //列表封面 if (isset($v['vip_level'])) { $v['vip_level_color'] = $vip_level[$v['vip_level']]['color']; $v['vip_level'] = $vip_level[$v['vip_level']]['name']; } }); } static private function formatViewData(&$data) { !empty($data['create_time']) ? $data['create_time'] = date('Y-m-d', $data['create_time']) : $data['create_time'] = ''; !empty($data['update_time']) ? $data['update_time'] = date('Y-m-d', $data['update_time']) : $data['update_time'] = ''; !empty($data['vip_time']) ? $data['vip_time'] = date('Y-m-d', $data['vip_time']) : $data['vip_time'] = ''; !empty($data['vip_endtime']) ? $data['vip_endtime'] = date('Y-m-d', $data['vip_endtime']) : $data['vip_endtime'] = ''; $data['vip_level_str'] = config('vip_level')[$data['vip_level']]['name']; $data['vip_level_color'] = config('vip_level')[$data['vip_level']]['color']; } }