Rodger-Wang
|
48c47657ef
|
feat:用户反馈写入业务库,管理后台可按时间与用户查询
原先 user_feedback 收到内容后直接丢掉。现在落库 userfeedback,后台按应用列出并支持时间、用户和正文筛选。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2 weeks ago |
Rodger-Wang
|
8b06de5a47
|
清理:第 5 批,管理后台与 deploy 零碎
- admin:chipVendorLabel、auth 里无人读的 isSuperAdmin/isLoggedIn getter、device.vue 撤销上下文里
不再提交的 brandid、console.css 无页面使用的 .stat-card、tailwind 里不存在的 ./components 扫描路径、
meettemplates.vue 指向不存在文件的注释
- deploy:admin/env 下三份无脚本引用的旧模板(dev/local/prod.env.example)、.gitignore 里已改名目录的规则
- apps/proto/google/protobuf/any.proto(无 .proto import,protoc 自带)、apps/client/preview/yidong.html、
.vscode/settings.json(与本项目无关的 Java 设置)
验证:npm run build 通过。
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 38bb009a8b5d863d18fa35d4443392ba01ea7636)
|
2 weeks ago |
Rodger-Wang
|
c12651e79c
|
语音纪要:录音语言自动识别、转写不翻译、翻译只作用于总结;可选总结模型;详情加 PPT 页签(仅界面)
客户端
- 首页标题「语音记录助手」→「语音纪要」,去掉顶栏右侧的算力摘要
- 「生成」弹窗:去掉录音语言(传空,交给识别服务自动判断);「目标语言」改为「翻译」,
默认「默认」= 不翻译、总结跟随录音语言,选了语言 = 总结/概览用该语言输出;
新增「总结模型」一行(echomeet_getsummaryservices 拉列表,记住上次选择,summary_svc_id 带进 starttask/summary)
- 重新总结选「默认」时传 tolanguage=auto(该接口空串历来表示沿用上次语言)
- 纪要详情在思维导图右边加「PPT」页签:示意图 + 「生成 PPT」按钮,点了提示即将上线
服务端(echomeet)
- 转写不再翻译:TranslateProcess 只做 Translate=Original;StartTask 不再选翻译服务
- 总结输出语言由 summaryLanguageInstruction 追加在模板 system prompt 末尾(空=跟随转写语言)
- 模板解析 ResolveSummaryTemplate:有目标语言先找该语种版本,否则用客户端选中的那条
- formlanguage / tolanguage 的 "auto" 与空串同义;Azure 批量转写不指定语言时带候选语种自动识别,被拒退回 en-US
- console「会议配置 → 会议总结」:默认模型之外可勾选「供用户选择的模型」,勾了即打开应用级「允许客户端选择」
⚠️ 行为变化:服务端部署后老版本 App 也不再翻译转写(原「英文录音→中文」现在是英文转写 + 中文总结)。
验证:dart analyze 无 error;flutter test 224 全过;go build/vet 通过,echomeet/console 测试通过;
admin npm run build 通过。已部署测试服(app/console/admin),release 包装到 ALN-AL80。
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
2 weeks ago |
Rodger-Wang
|
d6892eb3d6
|
后台管理下载落地页;实名认证显隐与游客登录同一个口子
下载落地页(版本与分发页)
- 「下载与说明」区顶部新增「下载页」一行:编辑 / 保存 / 查看 + 地址输入框
- 编辑:CodeMirror 编辑线上 HTML,改动自动存浏览器草稿;保存才发布到分发桶
(服务端 PutObject,强制 text/html;charset=utf-8 + no-cache),地址写入 app_release.download_page
- 查看:右侧抽屉预览,可切「当前编辑内容 / 线上版本」、手机 / 电脑尺寸
- 地址只能改文件名,域名与 /<应用>/ 目录由服务端卡死(TestParseDistPageURL)
- 新接口 api_getdistpage / api_savedistpage;admin 新增 codemirror 依赖
实名认证显隐
- 能看到游客登录的那一版(送审版本)才显示实名认证并按实名限制功能;
其余版本实名整个隐藏,功能不受实名限制。不分 Android / iOS
- 服务端:comm.AppRelease.ShowIdVerify(= ShowTourists)→ DBChannelApp.idverify 下发
- 客户端:VersionUpdateService.showIdVerify → IdVerifyGuard 隐藏即放行;
「我的」页实名行、卡片「未认证」角标跟着显隐;老服务端无 idverify 时退回 tourists
- 后台「游客显隐控制」页说明改为同时控制游客登录与实名认证
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
3 weeks ago |
Rodger-Wang
|
06c01aa858
|
admin: 「版本控制」与「渠道分发」合成一页「版本与分发」(/appdist)
上半区发版配置、下半区渠道分发,顶部一个应用选择器共用。页面本体拆成
components/AppReleasePanel.vue 与 ChannelAppPanel.vue;/appversion、/channels
只留重定向。
⚠️ 合的是入口不是表。app_release 与 channel_app 维度不同,两块各读各的接口、
各自提交,绝不能做成一个大表单整包保存——app_release 那一行还被「游客显隐控制」
页共用,后端是「读整行→只覆盖本组→整行写回」,整包提交会在本页保存时清空游客
登录配置。
⚠️ 菜单 id 仍是 appversion(只改了 label 与 to):存量后台账号的 access 清单里存
的是这个串,改 id 等于让这些账号丢入口。只勾过旧 id channels 的账号由
auth.ts 的 hasAccess 兼容放行。
发版面板同步本次的新口径:线上版本按 Android / iOS 两栏、最低支持版本可留空
(= 线上版本)、判定预览可切平台;上传 APK 传完把直链填进「默认下载地址」输入框
并写进「渠道分发 → 官方渠道(100)」,下方面板随即重拉。
⚠️ savechannelapp 是整行覆盖,所以写官方渠道地址必须「读整行→只改 address→写回」;
getchannelapps 回的是 {items:[...]} 不是裸数组,当成数组取会永远走新建分支、
把官方渠道已有的上架状态/支付渠道清零且不报任何错。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
3 weeks ago |
Rodger-Wang
|
4753d37c69
|
版本更新判定改口径:按平台分版本、最低版本留空=线上版本、渠道未上架不推、地址回退链
判定仍全在服务端算好下发,客户端只拿结论。规则:
1. Android / iOS 各一套版本号:app_release 加 ios_version / ios_min_version
(启动 ALTER ... ADD COLUMN IF NOT EXISTS 幂等),原 version/min_version 只管
Android,平台由渠道号推导(只有 GlobalApple=101 是 iOS)。iOS 没填时**不回退
Android 的**——回退等于又回到共用一个版本号:Android 先发 1.0.3 而 iOS 商店还是
1.0.2 时,iOS 用户会被指向一个商店里没有的版本。
2. 最低支持版本留空 = 线上版本:勾上强更不填最低版本,就是「所有低版本都强更」;
填了则只强更低于它的,介于两者之间的仍是推荐。后台校验相应改成「至少填一个
平台的线上版本」。
3. 渠道行状态不是「已上架」(审核中/已下架)时不推送推荐更新——商店里还是旧包。
强更不受此限,它的地址会由回退链换成官方包。
4. 下载地址回退链:Android 渠道 = 本渠道(须已上架)→ 官方渠道(100) → 默认下载
地址;iOS / Google 只认本渠道,没有就空——那两处如今放的是 apk 直链。
5. 算不出任何地址时两种更新都不提示,强更也不例外:一个点了没反应又关不掉的
弹窗等于把用户锁死。
客户端三处配套:推荐更新的「稍后提醒」记住版本号,同一版本 24 小时内冷启动不再弹
(强更与手动检查不受影响);设置页手动检查绕过 10 分钟缓存;Android 上服务端地址
打不开时回退网页下载页(iOS 不兜底,那页给的是 apk)。
另修后台上传安装包报「必须先选择应用」:X-App-Id 头来自登录态的 currentAppId,
只有绑定了应用的运营/代理账号才有;超管在页面顶部选的应用只是个 app_name 字符串,
从不进请求头。现在 uploadFile 把它放进请求体,服务端没有 X-App-Id 时按 name /
app_name 反查注册表补作用域。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
3 weeks ago |
Rodger-Wang
|
5193b0e5e8
|
admin,console: 「会议模板」改成「会议配置」,一页管转写/总结/模板
后台恢复了会议转写段与总结段的配置入口——它们随「会议记录服务」页一起下线后,
只能直接改库(echomeet_orch),而那正是语音纪要整条流水线的服务选型来源。
- 路由 /meettemplates → /meetconfig,旧地址留重定向;**菜单 id 不变**:
存量后台账号的 access 清单里存的是这个串,改 id 等于让这些账号丢入口;
- 一页全展开不分标签页,顶部一个应用选择器三块共用——各拉各的会出现
「转写配的是 A、模板改的是 B」这种对不上的状态;
- 保存是声明式的,asr/llm 都是**指针**:缺哪个不动哪段。写成值类型的话
「保存会议总结」会带一个空的 asr 数组把转写编排整段清空;
- 翻译段(kind=2) 本页不编辑但保存时必须原样保留,跟着 reconcile 会让纪要
能转写、译文整体消失;
- 服务池查询是 app_name=? 不带 OR app_name='':作用域归一后没有全局默认层了,
照旧版写回退查询会让一个应用读到另一个应用的服务选型,且不报任何错。
段→服务类别的映射由 TestEchoKindSvcCats 钉住:类别编号是 comm / console / admin
三处同写的,漏改一处的表现是某一段的下拉空空如也且不报错。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
3 weeks ago |
Rodger-Wang
|
4d97c99528
|
services: 通话录音按左右声道分轨转写,说话人直接按音轨给
客户端录的通话音频是双声道 WAV(左=本端麦克风、右=对端),而 DashScope 录音文件识别
不传 channel_id 时只转第 0 轨 —— 语音纪要里只有机主自己说的话,对方一句都没有。
- 提交前先探一次 WAV 头(probeWavChannels),确认是多声道才传 channel_id=[0,1]:
每多一轨按一份音频计费,单声道文件不该白花钱;
- 多轨结果每轨一份 transcript,说话人直接按音轨定(0=本端 1=对端),
比让服务商去分离 speaker_id 可靠得多,再按时间轴合并成一条转写。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
3 weeks ago |
Rodger-Wang
|
461289b780
|
services,admin: 后台赠送只发 VIP 天数与算力;console 读系数走应用连接
- giftUserResource 入参改为 vipday + compute,后台不再按功能分桶发放分钟数
(那是 2026-09 停用的旧三桶模型);trademin/meetmin 保留为入参兼容,
老 admin 容器与历史脚本送上来的分钟数按当前系数折成算力,进同一个 addcompute。
代理余额只有 balance_vipday/trademin/meetmin 三列、没有算力列,这条路的边界在注释里写明。
- console 读换算系数改用按 X-App-Id 取出的连接(computeRatesOf)。
⚠️ console 是单例服务,InitSys 从不 mysql.OnInit,包级 comm.LoadComputeRates()
一调就 nil interface method call panic,被 gin.Recovery 兜成 HTTP 500,
前端只看得到状态码、拿不到任何业务错误;何况系数本来就按应用存在各自业务库。
新增 pkgdb_boundary_test.go 守这条边界。
- 后台上传 OTA 更新包放开 .upd 扩展名。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
4 weeks ago |
Rodger-Wang
|
e00b617025
|
services,admin,client: 服务配置按应用隔离、应用参数下线、客户端凭据走加密 v3
后台
- 服务配置去掉「全局默认」层,svc_config / svc_region_override / echomeet_orch
/ echomeet_orch_setting / echomeet_template 五张表统一按 app_name 隔离,
启动迁移 migrate_scope.go 幂等分配(首个应用原地改名保 id,其余拷贝);
写接口 app_name 必填(scope_check.go)。
- 类别落库 svc_category,可增删改;内置 11 个 id 不可改不可删,运行时语义仍只挂 comm.SvcCat*。
- 「应用参数」标签页下线:业务库 config 表不再随 user_getappconfig 下发,
migrate_appparams.go 把 AGENT_TYPE / MOBILE_ELF_* 迁到服务 llm_mobile_elf、
iapCustomerServiceQQ 迁到 app_params,COMPUTE_*/NEWUSER_GIFT_* 留在 config 表不下发,
无人读的音乐/公码/导航/COS_*/MeetServers 删除,其余键保留并在启动日志告警。
- 删除 console appcfg/* 与 api 模块的 get/add/update/delconfig、唤醒音四个接口(无调用方)。
- 修 getmcpservers 仍查全局层导致 MCP 类服务永远读不到。
客户端
- 凭据改走结构化通道:user_getappconfig_v3 整体 AES-CBC 加密(api_crypto.dart,
拦截器须排在 AuthInterceptor 之前),AppConfig.cred(svcId, field, envKey) 取值,
老键名只作兜底;lib 内 AppConfig.env( 已降到 0 处调用。
- 图片翻译的 ALIBABA_VL_MODEL / ENDPOINT 改挂 ast_alibaba。
启动日志
- 删除 sys/auth/firebase(google_auth 的重复实现,零调用方,且同一错误刷两行)。
- api 模块不再每次启动无条件插入默认超管(Duplicate entry 'admin')。
- sys/auth/* 五个包的 logger 名从复制来的 sys.tavily 各改各名;
google_auth 启动时即判断配置是否可用。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
4 weeks ago |
Rodger-Wang
|
268ce26bc9
|
services,admin: 凭据归一到 svc_config;后台服务配置菜单收敛;品牌商与公码下架
这一提交里有两条相对独立的线,落在同一批文件上(server.go / core.go / model.go /
CLAUDE.md 等被两边同时改到),按文件拆不开,故合并提交。
── 一、第三方凭据归一到 svc_config,后台「服务配置」从 11 项收敛到 6 项 ──
起因:凭据同时躺在两张扁平 key/value 表里——应用业务库的 config 与 console 库的
global_config,而合并下发时**全局那张赢**。同一个 AZURE_SPEECH_REGION /
OPENAI_API_KEY / VOLC_OPENSPEECH_APP_ID / XUNFEI 密钥在两边值不一样,运营在
「应用环境配置」里改半天没有任何效果,且不报错。global_config 还按区域整份复制
(14 区 × 31 键 = 473 行),实测其中 27 个键是各区同值。
- comm.SvcField 新增 EnvKey(后台字段表里的「下发键名」列):非空时该字段的明文值
同时以这个名字出现在 user_getappconfig 的 env 里。已发布的客户端只读 env,
靠它继续供货、无需发新包;新客户端直接读结构化的 thirdsvcs。
- env 覆盖层与 thirdsvcs 走同一份 VIP 过滤,否则 VIP 过期的用户虽拿不到 AST 条目,
却仍能从 env 里读出同一套通话翻译凭据,那道闸门就形同虚设。
- 同作用域内 env_key 不允许重名(checkSvcEnvKeys 在保存时拦):重名时下发结果取决于
服务 id 排序,表现为「凭据时对时不对」。
- 一次性迁移 migrate_envtosvc.go(console 每次启动跑、幂等):基础值取中国区现值,
只有与基础值不同的区域才写 svc_region_override,473 行收敛到几十行。
顺带修了两行填错列的历史数据(group 里是键名、key 里是值),正是它让
ALIBABA_BAILIAN_APP_ID/WORKSPACE_ID 恒为 null、客户端一直用代码里写死的兜底值。
不删 global_config 的行(不可逆的线上凭据,留作回退依据),确认跑稳后由人手工 DROP。
- 后台:「第三方服务配置」改名「服务与环境配置」,「应用环境配置」并为其第二个标签页;
「全局环境配置」下线只留重定向;Agent 配置、通话翻译配置、会议记录服务三页删除
(前两者对应的 agent_config、call_translate_rule 两表在测试机与正式机上都是 0 行)。
⚠️ 会议记录服务删的只是后台入口,echomeet_orch 的数据与运行时都还在(两台机各 4 行,
是语音纪要识别/翻译/总结的服务选型来源),要换服务商现在只能直接改库。
阿龙测试环境实测:迁移前后 env 逐键比对,48/54 键值完全一致,丢失的 8 个全部是预期
丢弃(ALIBABA_OSS_* 与 COMMENT_* 无人读取、两个填错列的垃圾键名),无一个值发生变化。
验证中发现并修掉四个都不报错的坑:空值不能下发成 env 键(Dart 的 ?? 只兜 null,
空串会把默认值顶掉)、区域覆盖里的空串会把基础值抹成空、服务 enable=false 等于凭据
一个都不下发、启动时的模板补字段会给实例加空的加密字段导致误报「缺凭据」且保存被拒。
── 二、品牌商(identity=3)与公码下架 ──
brand 表、公码 authcode 及其全部后台页面与接口移除;账号作用域不再有 brandId,
设备/结算的归属改由渠道商推导。这部分不是本次会话中由 Claude 编写的。
验证:go build ./... + go vet ./... 通过,comm/console/user/echomeet/api 各包测试全绿;
admin npm run build 通过。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
4 weeks ago |
Rodger-Wang
|
37817f2e96
|
会员与算力:VIP 管准入、算力管计量;补上线落地文档
VIP 与算力两层权益各管一件事,判定与记账统一走 comm/compute.go:
- VIP 管功能准入(无 VIP 时 user_translate / echomeet_starttask 返回 VipRequired);
自购记 user.vipexptime,设备赋予记在 device_mac 行上(激活日 + 天数),
两者在 ResolveUserVip 合并成有效值下发,库里仍只记自购——以前绑定礼把天数
累加进用户表,解绑时拆不开。
- 算力管用量计量,按后台系数折算,先扣设备赠送再扣用户余额。
三个旧额度桶停用,存量余额由 home 启动时一次性折进 computebalance。
- 闸门 COMPUTE_GATE 默认关:user_usages 是用完才上报、没有预扣,
现在开闸门形同虚设。
另含本次「阿龙测试服 → 正式服」上线落地文档(docs/),
以及 admin 侧商品/设备/产品/用户页的配套改动。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
Rodger-Wang
|
24e17b3434
|
收拢积压改动:恒玄 OTA、发版配置拆表、实名认证、芯片厂商/代工厂管理等
把工作区里积压的多轮改动一次性入库。主要几块:
客户端
- 恒玄 OTA 打通:新增 local_plugins/bes_ota_manager(自包含 BES SDK,
Android Java + iOS ObjC,SPP OTA 2.0),路由切到 BesOtaUpgradeView /
BesOtaUpgradeController,配套下载服务;杰理那套文件保留但已不挂路由。
- 通话翻译新增阿里 3.5 档(alibaba35_language_config.dart,
qwen3.5-livetranslate-flash-realtime + 实时声音复刻)。
- 实名认证接入、游客登录改走服务端 api_sgin 的 Tourists 分支、
功能闸门由 GuestGuard 改为 IdVerifyGuard。
- 41 个语种文案同步(OTA 新增 28 个 key 等)。
- 默认主题改为浅色,不跟随系统。
服务端
- 发版类配置拆表:app_release(版本控制 / 游客显隐,一应用一行)与
channel_app(渠道级下载地址 / 上架状态 / 支付渠道)分家,
新增 comm/apprelease.go 与 console/api_apprelease.go。
- 授权码字符串整体移除:删除 utils/license 包,新增 utils/devcode
(MAC 规范化与 PID 反解),配套迁移 SQL 在 docs/migrations/。
- console 新增芯片厂商、代工厂、用户管理接口与对应 admin 页面。
- 身份证实名核验(sys/idverify)与第三方服务的服务端专用类别。
其它
- .gitignore 补挡 apps/services/lego/sys/gin/log-*.log:gin 子系统跑起来
会按时间戳滚动生成日志(多为 0 字节),与 apps/services/comm/log 同一
性质,不进版本管理。已跟踪的 log-2026-08-20 那个仍在库里,未动。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
Rodger-Wang
|
90abb0ad42
|
身份证实名核验、翻译与新用户开户礼
本次会话开始前就已存在于工作区的改动,一并提交。主要是三块:
1) 身份证实名核验(sys/idverify + user 模块)
接入阿里云 Id2MetaVerify、腾讯云 IdCardVerification、创蓝三家 provider,
无状态工厂——配置在 svc_config 里按应用作用域存,调用时才解析。
客户端接口 user_idverify / user_getidverify。
凭据是云账号主 AK/SK,故新增服务端专用类别 comm.SvcCatIdVerify=11,
由 svcresolve.go 在下发口整条跳过,svcpool_serveronly_test.go 守着这条底线。
2) 翻译(sys/aliyun/translate + comm/lang.go)
语言码归一与阿里云翻译调用。
3) 新用户开户礼(newuser_gift.go)
配套 api_sgin 建号流程。
注:go test ./modules/user/ 里的 TestApiProbeAppConfigV3 会失败,但与本次改动无关
——那是打线上接口的联调探针,硬编码的域名 app-dev.voitrans.net 已废弃、JWT 也过期了,
该文件自 b2577e16 起未改动过。go test -short 会跳过它,其余全部通过。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
Rodger-Wang
|
db47e0f3f0
|
游客登录入口改为后台按版本控制
需求:后台一个开关控制游客登录按钮显隐,且只对指定版本号的客户端生效,
其余版本一律隐藏(应用商店送审场景:只给正在过审的那一版开)。
白名单语义(comm.ChannelApp.ShowTourists):
- tourists=false → 全部隐藏
- tourists=true 且 touristsversion 空 → 全部隐藏(没点名任何版本 = 谁都不放行)
- tourists=true 且 touristsversion=X → 只有版本号等于 X 的客户端可见
留空按"全隐藏"而非"全放行"是刻意选的失败方向:判宽的后果是不该露游客入口的版本
露了出去(过审风险、白嫖新用户开户礼),判严只是入口少显示。要全部隐藏就取消勾选,
后台 saveChannelApp 会拒绝"勾了开关却没填版本"这种等于没开的配置。
判定放在服务端,与 NeedForceUpdate/IsReviewing 同规矩:客户端在 user_getchannelapps
的请求里带 version,服务端把每条渠道配置的 tourists 换算成结论再下发。版本比较各端
各写一遍必然出现实现不一致,而这个开关直接关系到过审,判错代价高。
touristsversion 是 channel_app 的后加列,console 启动时用 ADD COLUMN IF NOT EXISTS
补上——CreateTable 对已存在的表跳过 AutoMigrate,不补就永远没这列。
注:db.proto / user_msg.proto / CLAUDE.md 里另有先于本次改动就存在的编辑,一并带上。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
liwei1dao
|
b2577e16fa
|
上传最新的平台代码
|
2 months ago |
liwei1dao
|
af05ff12ce
|
上传代码
|
2 months ago |
liwei1dao
|
1639cf35a0
|
上传代码
|
2 months ago |
liwei1dao
|
aca7204e57
|
上传代码
|
2 months ago |
liwei1dao
|
8924a3cd3b
|
上传服务后台代码
|
2 months ago |
liwei1dao
|
554a4ab501
|
上传最新的版本代码
|
2 months ago |
liwei1dao
|
948e368996
|
上传代码
|
2 months ago |
liwei1dao
|
59e54eb575
|
上传发布版本
|
2 months ago |
liwei1dao
|
6f7cfe3bb2
|
上传主版本
|
2 months ago |
liwei1dao
|
7660f33258
|
上传最新代码
|
2 months ago |
liwei1dao
|
97ecbf9df5
|
上传新版本的管理后台
|
2 months ago |
liwei1dao
|
e270cf89b6
|
上传新版本管理后台
|
2 months ago |
liwei1dao
|
6e5da54cf8
|
上传代码
|
3 months ago |
liwei1dao
|
a25b0c9fc0
|
上传最新的服务后台代码
|
3 months ago |
liwei1dao
|
040af15192
|
上传基础服务代码
|
3 months ago |
liwei1dao
|
197d544062
|
上传管理后台的系统升级和服务配置逻辑优化
|
3 months ago |
liwei1dao
|
1390f50144
|
优化邮件登陆服务
|
3 months ago |
liwei1dao
|
eaecd00d20
|
上传基本版本
|
3 months ago |
liwei1dao
|
603dc89073
|
上传优化节点部署代码
|
3 months ago |
liwei1dao
|
1d25322437
|
上传当前版本
|
3 months ago |
liwei1dao
|
b493d5b4b1
|
上传部署代码
|
3 months ago |
liwei1dao
|
ce15363123
|
上传服务端代码优化
|
4 months ago |
liwei1dao
|
188a0f5c55
|
上传版本服务服务集群代码和管理后台
|
4 months ago |
liwei1dao
|
d4daf15ae7
|
上传新版本服务框架代码
|
4 months ago |
liwei1dao
|
715f8e3818
|
上传厨师版本
|
4 months ago |