getList($post); $result = UtilService::getParam([ 'id', 'name', 'icon', 'description', 'sort', 'status', 'create_time', 'update_time', ], $data["list"]); return app('json')->success([ 'list' => $result, 'pageCount' => $data["totalCount"], 'pageSize' => $data["pageSize"], 'page' => $data["page"], ]); } /** * 荣誉添加/编辑 * @param Request $request * @return mixed */ public function save(Request $request) { $post = UtilService::getMore([ ['id', '0'], ['name', '', 'empty', '请输入荣誉名称'], ['icon', '', 'empty', '请上传荣誉图标'], ['description', ''], ['sort', '0'], ['status', '1'], ], $request); $id = $post["id"]; unset($post["id"]); $post["update_time"] = time(); $r = 0; if (empty($id) || $id == "0") { $post["create_time"] = time(); $r = (new HonorModel)->insert($post); } else { $r = (new HonorModel)->where("id", $id)->update($post); } if ($r) { return app('json')->success("数据保存成功"); } else { return app('json')->fail("数据保存失败"); } } /** * 荣誉删除 * @param Request $request * @return mixed */ public function del(Request $request) { [$id] = UtilService::getMore([ ['id', 0, 'empty', '参数错误'] ], $request, true); (new HonorModel)->where("id", $id)->delete(); return app('json')->success("荣誉删除成功"); } /** * 获取所有启用的荣誉列表(用于下拉选择) * @return mixed */ public function allEnabled() { $data = (new HonorModel)->getAllEnabled(); return app('json')->success($data); } /** * 修改用户荣誉标签 * @param Request $request * @return mixed */ public function userHonorSave(Request $request) { $post = UtilService::getMore([ ['uid', '', 'empty', '请输入用户UID'], ['honor', ''], ], $request, true); $uid = (int)$post["uid"]; if (empty($uid)) { return app('json')->fail("用户UID不能为空"); } // 检查用户是否存在 $userData = (new UserModel)->where("uid", $uid)->find(); if (empty($userData)) { return app('json')->fail("用户不存在,请输入正确的用户UID"); } // 处理荣誉ID字符串 $honor = $post["honor"]; if ($honor !== '') { // 清理格式:去除空格,过滤非数字和逗号字符 $honor = trim($honor); $honorAr = $honor ? explode(',', $honor) : []; $validIds = []; foreach ($honorAr as $hid) { $hid = trim($hid); if (is_numeric($hid) && (int)$hid > 0) { $validIds[] = (int)$hid; } } // 去重并排序 $validIds = array_unique($validIds); sort($validIds); $honor = implode(',', $validIds); // 验证明细Id是否存在 if (!empty($validIds)) { $existCount = (new HonorModel)->where("id", "in", $validIds)->where("status", 1)->count(); if ($existCount != count($validIds)) { return app('json')->fail("部分荣誉ID不存在或已禁用,请检查"); } } } $r = (new UserModel)->where("uid", $uid)->update([ "honor" => $honor ]); if ($r !== false) { return app('json')->success("用户荣誉标签修改成功"); } else { return app('json')->fail("用户荣誉标签修改失败"); } } /** * 获取用户荣誉详情 * @param Request $request * @return mixed */ public function getUserHonor(Request $request) { $post = UtilService::getMore([ ['uid', '', 'empty', '请输入用户UID'], ], $request, true); $uid = (int)$post["uid"]; if (empty($uid)) { return app('json')->fail("用户UID不能为空"); } $userData = (new UserModel)->where("uid", $uid)->find(); if (empty($userData)) { return app('json')->fail("用户不存在"); } $honorIds = $userData["honor"] ? explode(',', $userData["honor"]) : []; $honorList = []; if (!empty($honorIds)) { $honorList = (new HonorModel) ->field("id,name,icon,description") ->where("id", "in", $honorIds) ->where("status", 1) ->order("sort", "desc") ->select(); if (!empty($honorList)) { $honorList = $honorList->toArray(); } else { $honorList = []; } } return app('json')->success([ 'uid' => $uid, 'honor' => $userData["honor"], 'honor_list' => $honorList, ]); } }