badge__set() 应用密钥鉴权,绝对设置/清除角标 * api/apps/badge/clear -> badge__clear() 当前用户 token 鉴权,清除自己的角标 */ class AppsController extends AbstractController { /** * @api {post} api/apps/badge/set 设置角标(应用密钥鉴权) * * @apiDescription 由插件服务端使用 APP_SECRET 调用,对 (appid, 菜单, 每个 userid) 绝对设置角标(幂等覆盖)。 * @apiVersion 1.0.0 * @apiGroup apps * @apiName badge__set * * @apiParam {String} appid 应用ID * @apiParam {String} secret 应用密钥(APP_SECRET) * @apiParam {Number|Number[]} userid 目标用户ID(单个或数组) * @apiParam {String} [menu_key] 菜单稳定标识;留空表示该应用第一个菜单 * @apiParam {Number} [count=0] 角标数字 * @apiParam {Boolean} [dot=false] 是否显示红点(count=0 且 dot=false 即清除) * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息 * @apiSuccess {Object} data 返回数据 */ public function badge__set() { return Base::retSuccess('success', Badge::set( trim(Request::input('appid', '')), trim(Request::input('secret', '')), Request::input('userid'), trim(Request::input('menu_key', '')), Request::input('count', 0), Request::input('dot', false) )); } /** * @api {post} api/apps/badge/clear 清除角标(当前用户 token 鉴权) * * @apiDescription 供前端在 badge_clear_on_open=true 的菜单打开时调用,清除当前用户在该应用该菜单的角标。 * @apiVersion 1.0.0 * @apiGroup apps * @apiName badge__clear * * @apiParam {String} appid 应用ID * @apiParam {String} [menu_key] 菜单稳定标识;留空表示该应用第一个菜单 * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息 * @apiSuccess {Object} data 返回数据 */ public function badge__clear() { $user = User::auth(); return Base::retSuccess('success', Badge::clearForUser( (int)$user->userid, trim(Request::input('appid', '')), trim(Request::input('menu_key', '')) )); } }