51.com遭遇盈利困境:调转方向 骨干员工流失

面对盈利压力,51.com放弃原有业务,转向网页游戏。这一调整伴随着人员流失和转型风险,反映出投资人对收入增长和盈利目标的压力。

作者:林丰蕾|出处:搜狐IT|2009-11-24 7:28:31

从11月开始,遭遇到巨大盈利压力的51.com开始尝试抛弃原有的业务路线,调头疾驶向更为光明的方向。相关消息人士称,51.com并没有实现投资人期望的收入持续增长、尽快实现盈利的情况,而是在如何扩大收入、不断调转方向的泥潭中蹒跚前行。

  【搜狐IT消息】从11月开始,遭遇到巨大盈利压力的51.com开始尝试抛弃原有的业务路线,调头疾驶向更为光明的方向。但与之相随,51.com也要承受转型所带来的人员流失阵痛,以及转型失利的风险。

  调转方向

  在得知自己被转到网页游戏组之后,小Y决定向51.com提出辞呈。

  与此同时,数位和他相同遭遇的同事也选择了离开51.com.

  “研发大型网游是我的特长和兴趣所在,现在公司让我转去做网页游戏,那我还不如去其他大公司做了,大公司能够提供的际遇也更好。”小Y称。

  实际上,小Y只是51.com业务转型的一个小小的缩影。从11月开始,庞升东和51.com其他的董事们,决定对51.com进行一次大手术,砍掉开放平台和大型游戏、游戏平台的研发项目,将公司重点转向赚钱更为靠谱的网页游戏。

  “这就好像是开车,此前一年,51.com四五百号人踩着油门向开放平台和游戏驶去,但最终,大家却发现,这两项业务却并不赚钱。所以,管理者们决定在撞车之前赶紧调头,向更为明朗的金光大道奔去。”51.com内部人士表示。

  根据51.com方面确认,从11月开始,51.com放弃了原来的开放平台模式,删除了平台上80%以上的插件。51.com市场总监龙振威此前在接受搜狐IT采访时称,51.com将会与规模较大、较为优秀的团队合作,联合运营游戏。

  另据消息人士披露,51.com也于近期暂停了内部大型游戏和休闲游戏平台的开发,除了保留必要的维护人员外,令其他研发人员转而从事网页游戏的研发。而在此之前,从08年至今,大型游戏和休闲游戏平台一直是51.com的重点业务,51.com也从其他大型游戏公司“挖角”了不少人才。

  针对上述消息,51.com方面相关公关负责人称,51.com确实在进行一些调整,调整过程中也确实有个别员工因为不适应而离职。

  投资人重压

  种种说法表明,51.com遭遇到了来自投资人方面的压力。

  相关消息人士称,51.com并没有实现投资人期望的收入持续增长、尽快实现盈利的情况,而是在如何扩大收入、不断调转方向的泥潭中蹒跚前行。

  此前,庞升东对对外表示,盈利是51.com面临的一大难题。今年5月,庞升东在接受搜狐IT采访时表示,51.com期望在今年年底前实现盈利。而时至11月,51.com相关高管仍然称,51.com尚处于盈亏边缘。

  早在2008年,51.com就并未实现收入和盈利的目标。今年初,在一封公司内部邮件中,51.com管理团队承认,2008年的业绩不尽如人意,除了宏观经济环境和竞争格局的影响外,主要责任还是出在管理团队身上。

  另外,51.com本来预订的2010年上市计划已基本泡汤,这也是令投资人不满之处。2008年7月,巨人网络以5100万美元收购51.com 25%的股份。当时,巨人网络CEO史玉柱曾公开表示,51.com将于2010年上市。

  时至今日,相关投资界知情人士称,51.com明年上市基本已无可能,实现盈利才是当务之急。

  而现在的某些迹象表明,巨人网络似乎对51.com并不是很满意。日前,有消息称11月20日下午消息,曾投资SNS社区51.COM的巨人网络另起炉灶,推出社区产品趣乐社区(qule.com),巨人网络通行证用户可以直接使用通行证及密码登陆。

  去年,曾有消息称,在巨人投资51.com之时,史玉柱曾与庞升东签订了对赌协议:如果庞升东带领的51.com能够在三年之内顺利上市,那么巨人将作为51.com的战略投资者存在;反之,巨人公司将以第一大股东的身份入主51.com,而庞升东将失去对公司的控制权,甚至有可能就此被扫地出门。

  尽管上述对赌协议并未被证实,但分析人士称,51.com的转变,很重要的一点便是对投资人有所交代。

  丛林法则

  中国从来都不乏“抄袭”成功的互联网公司,但前提是,这种抄袭必须有所创新,也必须在丛林中优胜劣汰地胜出。

  51.com就是一个算得上“成功抄袭”的互联网公司,它也曾经因为亦步亦趋地模仿腾讯而遭到了各种质疑。但拥有了可观的用户只是一个成功的开始,如何把用户、流量变现则是对管理团队的一大挑战。

  “同样作为SNS网站,51.com因为品牌美誉度不强,所以难以吸引很多广告主,这也造成了51.com的广告价值难以很好实现。另外,51.com尽管在做游戏,但效果并不好,并没有促进其收入的大幅增长。”知情人士称。

  据观察,与QQ游戏客户端相比,51.com的游戏平台用户则少得可怜,在上午时段,每个游戏同时在线人数仅为几百人到千人,并不能为51.com贡献规模收入。而51.com虽然一直在尝试提升品牌美誉度,但效果并不佳。

  “如何操纵好51.com,对于掌舵者庞升东而言也是一个巨大的挑战。”熟悉庞升东的人评价称。

  尽管庞升东有能力将一个草根公司做大,但如何将一个创业公司带上市,这却是一个未知数。据51.com内部人士称,近期来,庞升东已经不再注重公司细致末节的发展,而更多地将注意力放于思考和把控方向上,另一位创始人张剑福实际上履行CEO的职责。这也许是庞升东改变的开始。

  另外,51.com还在遭受到来自于其他大公司的竞争压力。“上海是网游研发人才争夺最激烈之处,51.com的游戏人才也是多家知名公司挖角的对象,在福利和收入处于劣势的情况下,人才很容易流失。”知情人士称。

  在弱肉强食的商业社会里,创业公司必须要保持快速地反应能力,随时针对市场做出改变。51.com在改变,只是,这种改变最终效果如何,还需拭目以待。(林丰蕾)

现有代码:{ "pages": [ "pages/welcome/welcome", "pages/phone-login/index", "pages/index/index", "pages/login/login", "pages/login/index", "pages/protocols/account-service", "pages/protocols/user-agreement", "pages/protocols/privacy-policy", "pages/phone-login/phone-login", "pages/home/home", "pages/auto-service/index", "pages/product-mall/index", "pages/finance-circle/index", "pages/my/index", "components/service-card/service-card", "components/promo-banner/promo-banner", "pages/auto-service/warranty/index" ], "subPackages": [ { "root": "subpackages/oa-system", "name": "oa", "pages": [ "pages/index/index", "pages/attendance/index", "pages/agent/index", "pages/finance/index" ] }, { "root": "subpackages/application", "name": "application", "pages": [ "pages/car-loan-apply/index", "pages/house-loan-apply/index", "pages/enterprise-loan-apply/index", "pages/personal-loan-apply/index", "pages/warranty-apply/index" ] }, { "root": "subpackages/data-visual", "name": "data", "pages": [ "pages/index/index" ] }, { "root": "subpackages/personal-center", "name": "personal", "pages": [ "pages/my-loans/index", "pages/my-contracts/index", "pages/my-credit/index", "pages/my-assets/index", "pages/my-income/index" ] } ], "tabBar": { "color": "#999", "selectedColor": "#ff9800", "list": [ { "pagePath": "pages/home/home", "text": "首页", "iconPath": "images/tabbar/home.png", "selectedIconPath": "images/tabbar/home-active.png" }, { "pagePath": "pages/auto-service/index", "text": "汽车企服", "iconPath": "images/tabbar/car.png", "selectedIconPath": "images/tabbar/car-active.png" }, { "pagePath": "pages/product-mall/index", "text": "产品大全", "iconPath": "images/tabbar/product.png", "selectedIconPath": "images/tabbar/product-active.png" }, { "pagePath": "pages/finance-circle/index", "text": "易融圈", "iconPath": "images/tabbar/finance.png", "selectedIconPath": "images/tabbar/finance-active.png" }, { "pagePath": "pages/my/index", "text": "我的", "iconPath": "images/tabbar/my.png", "selectedIconPath": "images/tabbar/my-active.png" } ] }, "window": { "navigationBarBackgroundColor": "#ff9800", "navigationBarTitleText": "亮叶企服", "navigationBarTextStyle": "white", "backgroundColor": "#f8f8f8", "backgroundTextStyle": "dark" }, "permission": { "scope.userLocation": { "desc": "你的位置信息将用于定位服务" } }, "style": "v2", "sitemapLocation": "sitemap.json", "entryPagePath": "pages/welcome/welcome" }与需要修复的代码:// app.json { "pages": [ "pages/login/index", "pages/index/index", "pages/home/home", "pages/profile/index", "pages/settings/index" ], "tabBar": { "color": "#7A7E83", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [ { "pagePath": "pages/index/index", "iconPath": "static/images/home.png", "selectedIconPath": "static/images/home-active.png", "text": "首页" }, { "pagePath": "pages/home/home", "iconPath": "static/images/user.png", "selectedIconPath": "static/images/user-active.png", "text": "我的" } ] }, "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "我的小程序", "navigationBarTextStyle": "black" } } 融合后给我完整代码,以此解决调转问题。2.app.js现代码:// app.js App({ // 全局数据对象 globalData: { isDev: false, // 是否是开发环境 debugMode: false, // 手动调试模式标志 userInfo: null, // 用户信息 token: null, // 用户认证token systemInfo: null, // 系统信息 apiBaseUrl: 'https://api.lyqf.com', // API基础URL envConfig: { develop: { apiBaseUrl: 'https://dev-api.lyqf.com', skipLogin: true }, trial: { apiBaseUrl: 'https://test-api.lyqf.com', skipLogin: false }, release: { apiBaseUrl: 'https://api.lyqf.com', skipLogin: false } } }, // 小程序初始化完成时触发(全局只触发一次) onLaunch(options) { console.log('小程序初始化完成', options); // 1. 获取系统信息 this.getSystemInfo(); // 2. 检测运行环境 this.checkEnvironment(); // 3. 检查登录状态 this.checkLoginStatus(); // 4. 初始化全局事件监听 this.initGlobalEvents(); // 5. 开发环境自动跳转 this.handleDevRedirect(); }, // 获取系统信息 getSystemInfo() { try { const systemInfo = wx.getSystemInfoSync(); this.globalData.systemInfo = systemInfo; console.log('系统信息:', systemInfo); } catch (e) { console.error('获取系统信息失败:', e); } }, // 检测运行环境 checkEnvironment() { try { // 获取小程序版本信息 const accountInfo = wx.getAccountInfoSync(); const envVersion = accountInfo.miniProgram.envVersion || 'release'; // 设置全局环境标志 this.globalData.isDev = envVersion === 'develop'; // 应用环境配置 const envConfig = this.globalData.envConfig[envVersion] || {}; this.globalData.apiBaseUrl = envConfig.apiBaseUrl || this.globalData.apiBaseUrl; console.log(`当前环境: ${envVersion}, API地址: ${this.globalData.apiBaseUrl}`); // 检查URL参数中的调试标志 if (options && options.query && options.query.debug === 'true') { this.enableDebugMode(); } // 检查本地存储中的调试标志 const debugStorage = wx.getStorageSync('debugMode'); if (debugStorage === 'true') { this.enableDebugMode(); } } catch (e) { console.error('环境检测失败:', e); } }, // 检查登录状态 checkLoginStatus() { try { const token = wx.getStorageSync('token'); const userInfo = wx.getStorageSync('userInfo'); if (token && userInfo) { this.globalData.token = token; this.globalData.userInfo = userInfo; console.log('检测到已登录用户:', userInfo); } else { console.log('用户未登录'); } } catch (e) { console.error('登录状态检查失败:', e); } }, // 初始化全局事件监听 initGlobalEvents() { // 监听网络状态变化 wx.onNetworkStatusChange((res) => { console.log('网络状态变化:', res); this.globalData.networkStatus = res; if (!res.isConnected) { wx.showToast({ title: '网络已断开', icon: 'none' }); } }); // 监听小程序切前台 wx.onAppShow((res) => { console.log('小程序切前台', res); // 每次回到前台时检查token是否过期 this.checkTokenExpiration(); }); // 监听小程序切后台 wx.onAppHide(() => { console.log('小程序切后台'); }); }, // 开发环境自动跳转处理 handleDevRedirect() { if (this.globalData.isDev || this.globalData.debugMode) { console.log('开发环境自动跳转至首页'); // 延迟执行以确保页面栈准备就绪 setTimeout(() => { wx.switchTab({ url: '/pages/index/index', success: () => { console.log('自动跳转成功'); }, fail: (err) => { console.error('自动跳转失败:', err); wx.showToast({ title: '自动跳转失败,请手动返回', icon: 'none' }); } }); }, 500); } }, // 启用调试模式 enableDebugMode() { console.log('启用调试模式'); this.globalData.debugMode = true; wx.setStorageSync('debugMode', 'true'); // 调试模式也进行自动跳转 this.handleDevRedirect(); }, // 禁用调试模式 disableDebugMode() { console.log('禁用调试模式'); this.globalData.debugMode = false; wx.setStorageSync('debugMode', 'false'); }, // 切换调试模式 toggleDebugMode() { const newMode = !this.globalData.debugMode; this.globalData.debugMode = newMode; wx.setStorageSync('debugMode', newMode.toString()); wx.showToast({ title: newMode ? '调试模式已开启' : '调试模式已关闭', icon: 'none' }); if (newMode) { this.handleDevRedirect(); } }, // 检查token过期 checkTokenExpiration() { if (!this.globalData.token) return; // 实际项目中应调用API验证token有效性 // 这里简化为检查本地存储的过期时间 const tokenExpire = wx.getStorageSync('tokenExpire'); if (tokenExpire && tokenExpire < Date.now()) { console.log('token已过期'); this.logout(); wx.showToast({ title: '登录已过期,请重新登录', icon: 'none' }); } }, // 用户登录方法 login(loginData, callback) { wx.showLoading({ title: '登录中...', mask: true }); wx.request({ url: `${this.globalData.apiBaseUrl}/auth/login`, method: 'POST', data: loginData, success: (res) => { wx.hideLoading(); if (res.data.code === 0) { // 登录成功 const token = res.data.token; const userInfo = res.data.userInfo; // 保存到全局数据和本地存储 this.globalData.token = token; this.globalData.userInfo = userInfo; wx.setStorageSync('token', token); wx.setStorageSync('userInfo', userInfo); // 保存token过期时间(假设有效期为7天) const expireTime = Date.now() + 7 * 24 * 60 * 60 * 1000; wx.setStorageSync('tokenExpire', expireTime); console.log('登录成功', userInfo); wx.showToast({ title: '登录成功', icon: 'success' }); // 执行回调 if (callback && typeof callback === 'function') { callback(true); } } else { wx.showToast({ title: res.data.msg || '登录失败', icon: 'none' }); if (callback && typeof callback === 'function') { callback(false, res.data.msg); } } }, fail: (err) => { wx.hideLoading(); wx.showToast({ title: '网络错误,请重试', icon: 'none' }); if (callback && typeof callback === 'function') { callback(false, '网络错误'); } } }); }, // 用户登出方法 logout() { // 清除全局数据 this.globalData.token = null; this.globalData.userInfo = null; // 清除本地存储 wx.removeStorageSync('token'); wx.removeStorageSync('userInfo'); wx.removeStorageSync('tokenExpire'); console.log('用户已登出'); // 跳转到登录页面 wx.reLaunch({ url: '/pages/login/index' }); }, // 封装的请求方法 request(options) { // 添加token到请求头 const header = options.header || {}; if (this.globalData.token) { header['Authorization'] = `Bearer ${this.globalData.token}`; } // 合并配置 const mergedOptions = { url: `${this.globalData.apiBaseUrl}${options.url}`, method: options.method || 'GET', data: options.data || {}, header: header, success: (res) => { // 统一处理token过期 if (res.data.code === 401) { this.logout(); wx.showToast({ title: '登录已过期,请重新登录', icon: 'none' }); return; } if (options.success) { options.success(res); } }, fail: (err) => { if (options.fail) { options.fail(err); } else { wx.showToast({ title: '网络错误,请重试', icon: 'none' }); } }, complete: options.complete }; // 发送请求 wx.request(mergedOptions); }, // 检查用户权限 checkPermission(permission) { if (!this.globalData.userInfo || !this.globalData.userInfo.permissions) { return false; } return this.globalData.userInfo.permissions.includes(permission); } }); 如需修复,请给我修复之后的完整代码。
06-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值