getint('page', 1); $pageSize = $post->getint('pageSize', 15); $offset = ($page - 1) * $pageSize; // 构建查询条件(通过 ciy\sql 的构造参数指定字段) $csql = new \ciy\sql('lab_user', 'id, name, mobile, usertitle, stpstatus, sex, education, email, avatar, addtimes'); $csql->limit($offset, $pageSize); // 分页:偏移量、每页条数 $csql->order('addtimes DESC'); // 核心修改:使用 db.php 的 get 方法($rowcount=-1 自动查总数) $rowcount = -1; $list = $db->get($csql, $rowcount); // 处理查询失败 if ($list === false) { return self::err('获取列表失败:' . $db->error); } // 格式化返回数据 $retList = []; foreach ($list as $item) { $retList[] = [ 'id' => intval($item['id']), 'name' => $item['name'] ?? '', 'mobile' => $item['mobile'] ?? '', 'usertitle' => intval($item['usertitle']), 'stpstatus' => intval($item['stpstatus']), 'sex' => intval($item['sex']), 'education' => intval($item['education'] ?? 50), 'email' => $item['email'] ?? '', 'avatar' => $item['avatar'] ?? '/static/avatar-default.png', 'addtimes' => intval($item['addtimes']) ]; } echo json_encode([ 'code' => 1, 'list' => $retList, 'total' => $rowcount, 'page' => $page, 'pageSize' => $pageSize ], JSON_UNESCAPED_UNICODE); } // 2. 新增成员(适配当前 db.php) public static function json_add() { global $db; $post = new \ciy\post(); // 获取表单数据 $name = trim($post->get('name', '')); $mobile = trim($post->get('mobile', '')); $usertitle = $post->getint('usertitle', 10); $stpstatus = $post->getint('stpstatus', 30); $sex = $post->getint('sex', 90); $education = $post->getint('education', 50); $email = trim($post->get('email', '')); $password = trim($post->get('password', '')); // 基础验证 if (empty($name)) return self::err('请输入姓名'); if (empty($mobile)) return self::err('请输入手机号'); if (!preg_match('/^1[3-9]\d{9}$/', $mobile)) return self::err('手机号格式错误'); if (empty($password)) return self::err('请设置密码'); if (strlen($password) < 6) return self::err('密码长度不少于6位'); // 检查手机号是否已注册 $csql = new \ciy\sql('lab_user', 'id'); $csql->where('mobile', $mobile); $exist = $db->getone($csql); if (is_array($exist)) return self::err('该手机号已注册:' . $mobile); // 组装数据 $data = [ 'name' => $name, 'mobile' => $mobile, 'usertitle' => $usertitle, 'stpstatus' => $stpstatus, 'sex' => $sex, 'education' => $education, 'email' => $email, 'password' => $password, 'userlevel' => 10, 'trytime' => 0, 'logintimes' => self::tostamp(), 'addtimes' => self::tostamp(), 'ip' => self::getip(), 'laborgid' => 1, 'sn' => 'LAB-' . date('Ymd') . '-' . rand(1000, 9999), 'totalpnt' => 0, 'dvotecnt' => 0, 'updatetime' => self::tostamp() ]; // 插入数据 $csql = new \ciy\sql('lab_user'); $insertId = $db->insert($csql, $data); if ($insertId === false) { return self::err('新增失败:' . $db->error); } echo json_encode([ 'code' => 1, 'msg' => '新增成功', 'id' => $insertId ], JSON_UNESCAPED_UNICODE); } // 3. 编辑成员(适配当前 db.php) public static function json_edit() { global $db; $post = new \ciy\post(); $id = $post->getint('id'); $name = trim($post->get('name', '')); $usertitle = $post->getint('usertitle', 10); $stpstatus = $post->getint('stpstatus', 30); $sex = $post->getint('sex', 90); $education = $post->getint('education', 50); $email = trim($post->get('email', '')); // 参数验证 if (empty($id)) return self::err('参数错误:缺少成员ID'); if (empty($name)) return self::err('请输入姓名'); // 组装更新数据 $data = [ 'name' => $name, 'usertitle' => $usertitle, 'stpstatus' => $stpstatus, 'sex' => $sex, 'education' => $education, 'email' => $email, 'updatetime' => self::tostamp() ]; // 更新数据 $csql = new \ciy\sql('lab_user'); $csql->where('id', $id); $result = $db->update($csql, $data); if ($result === false) { return self::err('修改失败:' . $db->error); } echo json_encode([ 'code' => 1, 'msg' => '修改成功' ], JSON_UNESCAPED_UNICODE); } // 4. 获取成员详情(适配当前 db.php) public static function json_detail() { global $db; $post = new \ciy\post(); $id = $post->getint('id'); if (empty($id)) return self::err('参数错误:缺少成员ID'); // 查询详情(通过 ciy\sql 构造参数指定字段) $csql = new \ciy\sql('lab_user', 'id, name, mobile, usertitle, stpstatus, sex, education, email'); $csql->where('id', $id); $item = $db->getone($csql); if (!is_array($item)) return self::err('成员不存在或已删除'); // 格式化返回数据 $data = [ 'id' => intval($item['id']), 'name' => $item['name'] ?? '', 'mobile' => $item['mobile'] ?? '', 'usertitle' => intval($item['usertitle']), 'stpstatus' => intval($item['stpstatus']), 'sex' => intval($item['sex']), 'education' => intval($item['education'] ?? 50), 'email' => $item['email'] ?? '' ]; echo json_encode([ 'code' => 1, 'data' => $data ], JSON_UNESCAPED_UNICODE); } // 5. 删除成员(适配当前 db.php) public static function json_del() { global $db; $post = new \ciy\post(); $id = $post->getint('id'); if (empty($id)) return self::err('参数错误:缺少成员ID'); // 物理删除 $csql = new \ciy\sql('lab_user'); $csql->where('id', $id); $result = $db->delete($csql); if ($result === false) { return self::err('删除失败:' . $db->error); } echo json_encode([ 'code' => 1, 'msg' => '删除成功' ], JSON_UNESCAPED_UNICODE); } // 6. 审核成员(适配当前 db.php) public static function json_audit() { global $db; $post = new \ciy\post(); $id = $post->getint('id'); $status = $post->getint('status'); if (empty($id)) return self::err('参数错误:缺少成员ID'); if (!in_array($status, [10,20,30,40,50])) return self::err('无效的状态值'); $data = ['stpstatus' => $status]; $csql = new \ciy\sql('lab_user'); $csql->where('id', $id); $result = $db->update($csql, $data); if ($result === false) { return self::err('审核失败:' . $db->error); } echo json_encode([ 'code' => 1, 'msg' => '审核成功' ], JSON_UNESCAPED_UNICODE); } // 通用错误返回 private static function err($msg) { echo json_encode([ 'code' => 0, 'errmsg' => $msg ], JSON_UNESCAPED_UNICODE); exit; } // 兼容tostamp函数 private static function tostamp() { return isset($GLOBALS['tostamp']) ? $GLOBALS['tostamp']() : time() * 1000; } // 兼容getip函数 private static function getip() { if (isset($_SERVER['HTTP_X_REAL_IP'])) { return $_SERVER['HTTP_X_REAL_IP']; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } else { return $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1'; } } } // 执行入口 member::index(); ?>