/** * 系统配置管理控制器(客户端接口) * 提供客户端调用的配置相关接口 */ const Framework = require("../../framework/node-core-framework.js"); // sys_parameter 表直接存储字符串值,不需要类型转换 module.exports = { /** * @swagger * /api/config/get: * get: * summary: 获取配置 * description: 根据配置键获取配置值,支持单个或多个配置键 * tags: [前端-系统配置] * parameters: * - in: query * name: configKey * required: false * schema: * type: string * description: 配置键(单个,如:wx_num) * - in: query * name: configKeys * required: false * schema: * type: string * description: 配置键(多个,逗号分隔,如:wx_num,wx_img) * responses: * 200: * description: 获取成功 */ 'GET /config/get': async (ctx) => { try { const models = await Framework.getModels(); const { sys_parameter, op } = models; const { configKey, configKeys } = ctx.query; // 如果没有提供配置键,返回失败 if (!configKey && !configKeys) { return ctx.fail('请提供配置键'); } // 处理多个配置键 let keys = []; if (configKeys) { keys = configKeys.split(',').map(k => k.trim()).filter(k => k); } else if (configKey) { keys = [configKey]; } if (keys.length === 0) { return ctx.fail('配置键不能为空'); } // 临时写死测试数据 const mockData = { wx_num: 'test_wechat_123', wx_img: '/uploads/wechat_qrcode.png' }; // 如果只有一个配置键,返回单个配置值 if (keys.length === 1) { const key = keys[0]; return ctx.success({ [key]: mockData[key] || '' }); } // 多个配置键,返回对象 const result = {}; keys.forEach(key => { result[key] = mockData[key] || ''; }); return ctx.success(result); } catch (error) { console.error('获取配置失败:', error); return ctx.fail('获取配置失败: ' + error.message); } }, /** * @swagger * /api/config/pricing-plans: * get: * summary: 获取价格套餐列表 * description: 获取所有可用的价格套餐 * tags: [前端-系统配置] * responses: * 200: * description: 获取成功 */ 'GET /config/pricing-plans': async (ctx) => { try { // 写死4条价格套餐数据 // 价格计算规则:2小时 = 1天 const pricingPlans = [ { id: 1, name: '体验套餐', duration: '7天', days: 7, price: 28, originalPrice: 28, unit: '元', features: [ '7天使用权限', '全功能体验', '技术支持' ], featured: false }, { id: 2, name: '月度套餐', duration: '30天', days: 30, price: 99, originalPrice: 120, unit: '元', discount: '约8.3折', features: [ '30天使用权限', '全功能使用', '优先技术支持', '性价比最高' ], featured: true }, { id: 3, name: '季度套餐', duration: '90天', days: 90, price: 269, originalPrice: 360, unit: '元', discount: '7.5折', features: [ '90天使用权限', '全功能使用', '优先技术支持', '更优惠价格' ], featured: false }, { id: 4, name: '终生套餐', duration: '永久', days: -1, price: 888, originalPrice: null, unit: '元', discount: '超值', features: [ '永久使用权限', '全功能使用', '终身技术支持', '一次购买,终身使用', '最划算选择' ], featured: false } ]; return ctx.success(pricingPlans); } catch (error) { console.error('获取价格套餐失败:', error); return ctx.fail('获取价格套餐失败: ' + error.message); } } };