You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
13 KiB
159 lines
13 KiB
package comm
|
|
|
|
import "yunyan/lego/core"
|
|
|
|
// 服务定义
|
|
const (
|
|
Service_Gateway = "gateway" //网关服务 可多开
|
|
Service_Home = "home" //大厅服务 运行一些公用接口
|
|
Service_Api = "api" //渠道接口服
|
|
Service_Migu = "migu" //移动灵犀聊天服务 独立部署 对外OpenAI兼容接口
|
|
Service_Console = "console" //后台控制面服务 独立部署 注册各应用 直连应用库 + 发配置事件
|
|
)
|
|
|
|
// 服务组件名称
|
|
const (
|
|
SC_ServiceHttpRouteComp core.S_Comps = "SC_HttpRouteComp" //服务组件 消息路由组件
|
|
)
|
|
|
|
// 模块名定义处
|
|
const (
|
|
ModuleGate core.M_Modules = "gateway" //gate模块 网关服务模块
|
|
ModuleApi core.M_Modules = "api" //gate模块 网关服务模块
|
|
ModuleUser core.M_Modules = "user" //gate模块 网关服务模块
|
|
ModuleAuth core.M_Modules = "auth" //gate模块 网关服务模块
|
|
ModuleChat core.M_Modules = "chat" //chat模块 聊天服务模块
|
|
ModuleAgents core.M_Modules = "agents" //agenfts模块 智能体模块
|
|
ModuleMcp core.M_Modules = "mcp" //gate模块 网关服务模块
|
|
ModuleMusic core.M_Modules = "music" //gate模块 网关服务模块
|
|
ModuleAitools core.M_Modules = "aitools" //gate模块 网关服务模块
|
|
ModuleEchomeet core.M_Modules = "echomeet" //会议记录模块
|
|
ModuleSvcCfg core.M_Modules = "svccfg" //服务配置管理模块(各业务服务装载,接收配置下发并重载本服务 sys 客户端)
|
|
ModulePay core.M_Modules = "pay" //gate模块 网关服务模块
|
|
ModuleTimer core.M_Modules = "timer" //gate模块 网关服务模块
|
|
ModuleAllhelp core.M_Modules = "allhelp" //万能助理模块 定时提醒任务 + 每日聊天总结
|
|
ModuleMemory core.M_Modules = "memory" //记忆中心(拾忆)模块 闹钟/待办/灵感/花销统一存储 + 周报月报
|
|
ModuleBailian core.M_Modules = "bailian" //百炼设备计量中转模块(半托管License)
|
|
ModuleMigu core.M_Modules = "migu" //移动灵犀聊天模块 对外OpenAI兼容接口 内部调咪咕灵犀
|
|
ModuleAnalyze core.M_Modules = "analyze" //埋点分析模块 业务侧经 GetModule 取用 上报统计事件
|
|
ModuleConsole core.M_Modules = "console" //后台控制面模块 注册各应用+按应用建连+发配置事件
|
|
)
|
|
|
|
const (
|
|
Rpc_GatewayHttpRoute core.Rpc_Key = "Rpc_GatewayHttpRoute" //Http网关路由
|
|
)
|
|
|
|
// 数据表名定义处
|
|
const (
|
|
TableUser = "user" //用户表
|
|
TableUserdevice = "userdevice" //用户设备列表
|
|
TableUserIdVerify = "useridverify" //用户实名认证记录(身份证号不落全文,只存掩码+加盐哈希)
|
|
TableUserIdVerifyLog = "useridverify_log" //实名绑定变更留痕(换人/注销),只存掩码+指纹,不存姓名
|
|
TableRecord = "record" //记录表
|
|
TableAgent = "agent" //智能体id
|
|
TableMcp = "mcp" //Mcp服务
|
|
TableAppConfig = "config" //App自有配置(音乐、OSS等)
|
|
TableGlobalConfig = "global_config" //【已下线 2026-09-12】旧「全局环境配置」,凭据已归一到 svc_config;仅 console 的一次性迁移(migrate_envtosvc.go)读它,确认无误后可手工 DROP
|
|
TableAppServiceConfig = "app_service_config" //应用×服务的基础设施/运行配置(DSN/Redis/NATS/COS…;启动 seed 自文件、后台可改),存 console 共享库
|
|
TableAppModuleConfig = "app_module_config" //应用业务功能配置(登录/短信/邮件/支付…),存"应用业务库"(随部署)、非公共库,密钥字段 AES 加密
|
|
// 按应用分离的「第三方服务配置 / Agent 配置」新表(app_name=''为全局默认,'X'为应用X覆盖)。
|
|
// 独立于老的 third_svc_config / agent 表,避免影响现有服务接口;均存 console 共享库(postgres)。
|
|
TableSvcConfig = "svc_config" //第三方服务配置(按应用;旧 third_svc_config 迁入其全局作用域)
|
|
TableSysServiceConfig = "sys_service_config" //平台系统服务配置(对象存储/邮件/翻译,平台自用,独立于面向客户端的 svc_config)
|
|
TableSvcRegionOverride = "svc_region_override" //第三方服务区域字段覆盖(按应用;旧 third_svc_region_override 迁入)
|
|
TableAgentConfig = "agent_config" //yunyan 自管 Agent 配置(按应用;旧 console agent 表迁入)
|
|
TableSvcHealth = "svc_health" //第三方服务巡检结果快照(每 app_name+svc_id+region 一行,巡检器覆盖写)
|
|
TableAdmin = "adnim" //后台用户表
|
|
TableEchomeetTemplate = "echomeet_template" //模板表
|
|
TableEchomeetRecord = "echomeet_record" //会议记录表
|
|
TableEchomeetOrch = "echomeet_orch" //会议记录服务编排(引用 svc_config 的服务,按 app_name+region 分层;存 console 共享库)
|
|
TableEchomeetOrchSetting = "echomeet_orch_setting" //会议记录编排的作用域级开关(每 app_name+region 一行;如客户端可否指定总结模型)
|
|
|
|
TableChannelApp = "channelapp" //【已废弃】旧渠道包表(各应用业务库 mysql,主键仅 channel),由 console 主库的 channel_app 取代
|
|
TableChipVendor = "chip_vendor" //芯片厂商档案表(原 pb.SolutionVendor 枚举转表;id 沿用枚举值 1杰里/2蓝汛/3恒玄/4博通,solution_provider.vendor 指向它)
|
|
TableOemFactory = "oem_factory" //代工厂/组装厂档案表(与品牌商并列的独立实体;注意不是遗留的无人引用的 factory 表)
|
|
TableSolutionProvider = "solution_provider" //方案商数据表(jieli/lanxun/henxuan)
|
|
TableBrand = "brand" //品牌商数据表(原厂家)
|
|
TableChannel = "channel" //渠道商数据表(挂在品牌商下,id=8位短码;生产/统计/结算的渠道维度)
|
|
TableSettlementMonth = "settlement_month" //月结算单表(每 结算月×品牌商×渠道商 一行;存 console 主库)
|
|
TableProduct = "product" //产品表
|
|
TableProductVersion = "product_version" //产品表版本管理
|
|
TableProductionBatch = "production_batch" //生产批次台账表(原出货单)
|
|
TableLicense = "license" //【已废弃】授权码分表前缀 license_<pid十六进制>,仅供 registry 迁移读取,业务代码一律用 TableDeviceMac
|
|
TableDeviceMac = "device_mac" //设备MAC表(全局一张,主键 code=MAC;productid 只是归属列,不再是查询键)
|
|
TableGoods = "goods" //支付商品表
|
|
TablePayOrder = "payorder" //支付订单表
|
|
TableUserUseLog = "useruselog" //用户日志
|
|
TableUserStatistics = "userstatistics" //用户统计表
|
|
|
|
// TableAuthCode = "authcode" //授权码表
|
|
// TableFactoryDevice = "factorydevice" //厂家设备表
|
|
|
|
TableUseRecordLog = "uselog" //用户使用统计日志
|
|
// app_stat_daily/monthly/yearly/global 四张「App 综合运营统计」表已移除:运营统计整体迁到
|
|
// 运营后台(analyze 模块把当日快照经 NATS 推到 console 主库 stats_global_day),app 服务不再产出。
|
|
TableConsoleLog = "console_log" //后台操作日志表
|
|
TableAdminResLog = "admin_resource_log" //后台账号资源流水(超管→管理员/代理/运营)
|
|
TableAllhelpTask = "allhelp_task" //用户定时提醒任务表
|
|
TableChatSummary = "chat_summary" //用户每日聊天总结表
|
|
TableMemoryItem = "memory_item" //记忆项表(拾忆:闹钟/待办/灵感/花销统一一张表)⚠️ 新表要同步登记进 user 模块 cancel() 的注销清理清单
|
|
TableMemoryReport = "memory_report" //记忆周期报告表(周报/月报)⚠️ 同上
|
|
TableStatsGlobalDay = "stats_global_day" //平台每日统计表(应用×产品×区域×日)
|
|
TableProductStat = "product_stat" //产品激活/绑定统计表(重建统计时全量扫描 userdevice 落库)
|
|
TableFactoryPublicCode = "factory_public_code" //【已下线 2026-09-12】厂家公码表。后台入口/接口/客户端调用已全删,console 启动时 DROP 掉这张表;常量只留给那句 DROP 用
|
|
TableAppProduct = "app_product" //应用/产品表(console 主库,SaaS 里一个应用名如 Voitrans,下挂多条区域部署=app_registry)
|
|
TableAppRegistry = "app_registry" //应用注册表(console 独立库,一行=一个区域部署;product_id 归属应用、status existing/pending)
|
|
TableAppEnvironment = "app_environment" //部署环境/区域表(console 主库,存 SSH 部署目标/镜像仓库/区域基础设施;密钥字段 AES-GCM 加密)
|
|
TableConsoleAccount = "console_account" //后台账号表(console 独立库,存账号/bcrypt密码/角色)
|
|
|
|
TableThirdSvcConfig = "third_svc_config" //第三方服务配置表(JSONB 字段定义 + 默认值,移植自 deep_server)
|
|
TableThirdSvcRegionOverride = "third_svc_region_override" //第三方服务区域字段覆盖表(每服务×区域一行,JSONB:值覆盖/区域专属字段/停用字段)
|
|
TableThirdSvcTemplate = "third_svc_template" //第三方服务商字段模板表(数据驱动,启动 seed 内置常见服务商)
|
|
TableSvcCategory = "svc_category" //第三方服务类别表(后台可增删改;内置 1~11 的 id 不可改不可删,运行时语义只挂在 comm.SvcCat* 那几个上)
|
|
TableCallTranslatePair = "call_translate_pair" //【已废弃】旧通话翻译语言对表(区域×单语言对×直接拼服务),由 call_translate_rule 取代,代码不再读写
|
|
TableCallTranslateRule = "call_translate_rule" //通话翻译规则表(区域×多源/多目标语言×优先级 → agent)
|
|
TableChannelAppCfg = "channel_app" //渠道分发配置表(console 主库,按 app_name+channel;下载地址/上架状态/支付渠道/跳过绑定)
|
|
TableAppRelease = "app_release" //应用发版与入口控制表(console 主库,按 app_name,一应用一行;版本/强更/更新日志/送审版本/游客显隐)
|
|
TableAppGoods = "app_goods" //应用内购商品配置表(console 主库,按 app_name 作用域;多语言名称/货币/价格存 localname JSON)
|
|
)
|
|
|
|
// NATS 管道 subject 与事件结构统一定义在 comm/nats.go(含 Nats_ConfigEventSubjectPrefix 等)。
|
|
|
|
// 对象池定义
|
|
const (
|
|
Pool_UserSession = "Pool_UserSession" //对象此 comm.UserSession
|
|
)
|
|
|
|
// 对象池定义
|
|
const (
|
|
Redis_Verification = "Verification" //验证码
|
|
)
|
|
|
|
// 缓存数据集名定义(实际 Redis key 经 redissys.RKey 加应用前缀)
|
|
const (
|
|
Cache_Product = "cache:product" //product 全量缓存(Redis Hash,field=id)
|
|
Cache_EchomeetTemplate = "cache:echomeet_template" //echomeet public 公共模板全量缓存(Redis Hash,field=id)
|
|
Cache_Brand = "cache:brand" //brand 品牌商全量缓存(Redis Hash,field=id;console 后台设备域引用数据)
|
|
Cache_ProductVersion = "cache:product_version" //product_version 全量缓存(Redis Hash,field=版本id;按 productid 内存过滤)
|
|
)
|
|
|
|
// RPC服务接口定义处
|
|
const ( //Rpc
|
|
Rpc_ModifyAppConifg core.Rpc_Key = "Rpc_ModifyAppConifg" //修改app配置
|
|
Rpc_ModifyEchomeetTemplate core.Rpc_Key = "Rpc_ModifyEchomeetTemplate" //修改echomeet公共模板
|
|
// 业务功能配置的集群内下发:由 api 服务(业务侧管理入口)扇出给各服务,各服务重载自己持有的 sys 客户端。
|
|
Rpc_ReloadModuleConfig core.Rpc_Key = "Rpc_ReloadModuleConfig" //重载本服务的业务功能配置
|
|
Rpc_ResetModuleConfig core.Rpc_Key = "Rpc_ResetModuleConfig" //还原某模块为配置文件初始值(仅属主 home 响应)
|
|
)
|
|
|
|
// ModuleConfigOwner 业务功能配置的「yaml 属主」服务名。
|
|
//
|
|
// yaml 是每服务一份(home.yaml / api.yaml 的 email 段可以不同),而 app_module_config 是应用级一份。
|
|
// 故 seed(首次播种) 与 reset(还原初始值) 必须只由一个服务执行,否则各服务会拿各自的 yaml 互相覆盖。
|
|
// 现状里也只有 home 在 seed,故属主定为 home;其余服务只「读库 + 热重载」。
|
|
const ModuleConfigOwner = "home"
|
|
|
|
// ModuleConfigServices 需要接收业务功能配置下发的服务名(= 真正持有业务凭据 sys 客户端的服务)。
|
|
// 当前 home 持有 email/sms/auth/pay,api 持有 email;gateway/mcp/timer 不持有,扇出给它们纯属噪音。
|
|
// 将来某服务开始持有凭据:装上 modules/svccfg + 在此加一行。
|
|
var ModuleConfigServices = []string{"home", "api"}
|
|
|