Files
jiu/CHANGELOG-server.md
T
wangjia c6d95edf12
Deploy Server / release-deploy-server (push) Successful in 54s
chore: release server-v1.1.5
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 22:00:49 +08:00

15 KiB
Raw Blame History

Changelog — Server(后端)

后端服务(backend/jiu-server)的更新记录。tag 前缀 server-v*

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.1.5] - 2026-07-04

新功能

  • App → 网页免登录:新增一次性登录票据接口,从 App 打开官网链接(如查看套餐、 在线购买)自动登录,无需再输一遍账号密码。票据 60 秒单次有效、用后即焚; 兑换出的网页会话 12 小时自动过期、不占登录设备名额,可在设备管理中查看和下线

[1.1.4] - 2026-07-04

新功能

  • 手机 App 内购买 / 续费直接拉起支付宝 App 付款:下单时透传终端类型, 手机端进入 wap 收银台(此前恒进电脑扫码页,手机上无法完成支付)

修复

  • 修复「已达到登录设备上限」误锁:已过期未清理的旧会话不再占用设备名额 (此前旧设备退出不及时会把名额占满,正常登录被拒)
  • 同一台设备重复登录不再重复占用名额:重装 / 重登自动替换该设备的旧会话
  • 登录设备上限改为跟套餐档位一致(标准版 2 台 / 高级版 5 台同时在线; 试用期按 2 台),门店单独配置的额度不受影响

[1.1.3] - 2026-07-03

新功能

  • 新增「¥1 首月特惠」套餐(新店专享,30 天标准版全部功能),每个门店限购一次: 下单前服务端校验,已享受过的门店无法重复购买;并发或绕过前端产生的第二笔特惠单 也不会重复叠加时长(回调入账时二次校验兜底)。
  • 新增特惠资格查询接口,官网与 App 据此自动置灰已享受过的门店入口。

[1.1.2] - 2026-07-03

新功能

  • 在线购买/续费:管理员可在官网直接用支付宝购买或续费门店授权,支付成功即时到账续期 (时长在现有到期时间上叠加,不覆盖)。到账走签名校验+幂等+金额核对三重防护,并有 后台查单兜底,支付通知丢失也不会漏账。

[1.1.1] - 2026-07-03

修复

  • 财务页「应收/应付汇总」加载失败(v1.0.85 起全店受影响):多租户加固引入的数据库 预处理协议兼容问题,已修复并补充服务端错误日志。

新功能

  • 出库/入库统计接口新增草稿单数,供列表页「草稿」卡片使用。

[1.1.0] - 2026-07-03

定价数据模型里程碑版(内容与 1.0.86 相同,版本号升为 1.1.0)。

新功能

  • 出库单新增「总利润」:建单即计算入库,确认售价、确认进价(成本回填)后自动联动重算。
  • 成本与利润仅管理员可见:操作员查询出库单时,服务端自动隐藏成本价、成本小计与利润。

改进

  • 出入库价格字段口径统一:进价/成本、售价、各级小计与合计分列存储,彻底消除「单价×数量与金额对不上」的歧义(存量数据启动时自动迁移,旧客户端建单仍兼容)。

[1.0.85] - 2026-07-03

新功能

  • 入库 / 出库管理页顶部统计卡支持「近 30 天滚动」口径(本月/近30天双窗口,含环比)。

改进

  • 正式域名回归:服务经 https://jiu.51yanmei.com 提供(备案通过,443 加密访问, 安全响应头齐备);扫码标签、老版本客户端经域名自动恢复可用。

修复

  • 安全加固:单据引用的仓库 / 往来单位 / 商品新增归属校验,杜绝跨店脏引用; 关联数据查询全面收紧店铺隔离范围。

[1.0.84] - 2026-07-02

新功能

  • 财务管理新增「收支趋势」月度汇总接口(近 N 个月销售/采购金额),供财务页趋势柱状图使用。
  • 财务流水支持按日期区间筛选(本季 / 自定义时间范围)。

改进

  • 往来单位支持拼音 / 首字母搜索(存量数据启动时自动回填拼音)。
  • 商品档案关键词搜索支持商品编码与拼音 / 首字母。
  • 库存列表搜索合并为单一关键词(商品名 / 拼音 / 编码一个框搞定)。

修复

  • 出库 / 入库单按商品编码搜索:历史录入的单据(明细快照编码为空)现在也能搜到——搜索改为「商品主数据编码 + 明细快照编码」双路匹配;新建单据同时自动写入商品快照。
  • 运维:割接后 server 部署轨道切换为阿里机主轨(原 EC2 轨移除,避免误启已停用的旧后端)。

[1.0.83] - 2026-07-02

修复

  • 供应商 / 客户下拉修复:现在一次返回全部往来单位,不再被截断到 20 条(此前录单和筛选的下拉最多只显示 20 个)。

改进

  • 入库录单填写的「售价」现在会写入对应商品,作为该商品的建议售价,后续出库可直接带出。

[1.0.82] - 2026-07-02

新功能

  • 出入库列表新增顶部 KPI 汇总:本月笔数、本月金额、待审核单数(含较上月环比)。
  • 出库单新增「确认售价」:对「先出后定价」的已审核单据补填真实售价,系统据此结算应收并补一条应收流水(不影响成本/库存)。

改进

  • 列表可按「商品编码」搜索:搜索框关键词与详细搜索的「商品编码」字段均支持。
  • 详细搜索多条件改为「同一明细同时命中」,避免由不同明细各自凑齐条件造成的误召回;同时把多字段过滤合并为一次查询,更高效。
  • 搜索框关键词范围调整为「单号 / 酒名 / 商品编码」,不再按往来单位名匹配——供应商/客户改用工具栏的独立下拉筛选。

[1.0.81] - 2026-06-24

修复

  • 入库单 / 出库单按商品名搜索:历史导入的单据现在也能按商品名搜到(此前明细统一挂占位商品,搜索被占位名顶替,只能搜到新建单据)。

[1.0.80] - 2026-06-24

改进

  • 运维(不影响线上功能):修复迁移期 CI 影子部署链路——部署私钥写入时补齐结尾换行,解决阿里机 ed25519 部署密钥被判「invalid format」导致 Deploy → Ali 步骤每次失败的问题。

[1.0.79] - 2026-06-24

改进

  • 入库单 / 出库单列表的关键词搜索支持按「酒名(商品名)」模糊反查:除单号、往来单位外,输入商品名(含拼音/首字母)即可筛出含该商品的单据。

[1.0.78] - 2026-06-23

新功能

  • 入库单新增「确认进价」接口:以 0 价(暂估)入库并已审核/出库的调货单据,价格确定后可补填真实进价。系统在一个事务内前向补偿——回填库存批次成本与已出库明细的成本快照、按差额补一条对供应商的应付流水、重算入库单合计,售价与应收不受影响;仅管理员可操作,支持多次按差额修正。

[1.0.77] - 2026-06-22

新功能

  • 出库单列表支持按「商品编码」精确反查:可查出包含某个商品编码的所有出库单。同时为出库明细新增 (门店, 商品编码) 复合索引,在数万条明细下仍保持毫秒级查询,不影响写入。

[1.0.76] - 2026-06-22

修复

  • 修复「编辑入库单草稿后合计金额变成 0」的问题:此前每次编辑草稿会把单据合计金额错误清零(明细的单价/金额正常,仅单据头合计未重算),现已按明细正确重算。

[1.0.75] - 2026-06-22

新功能

  • 出库单新增「售价」字段:可按实际销售价录入,应收账款改为按「售价 × 数量」计算,更真实地反映销售额(此前应收按成本价计)。

修复

  • 修复出库单「添加商品」选择器只能看到一小部分商品的问题:库存查询接口的分页上限此前会把超额请求打回,导致选货时只显示约 20 条,现已放宽,可一次加载整仓商品。

[1.0.74] - 2026-06-21

新功能

  • 已审核的入库单/出库单支持「退单」:可整单退或按明细行退货。出库单退单的商品数量加回库存、入库单退单对应库存从库存删除,并自动冲减对应的应付/应收账款。权限:入库退单限管理员/超管;出库退单管理员/超管或本人。已被出库消耗的入库明细禁止退单。

修复

  • 库存导入改为按商品编号匹配商品、不再按名称合并,避免再次导入产生重复编号

[1.0.73] - 2026-06-21

改进

  • 撤回审核中单据的权限放宽:管理员/超管可撤回任意单据,普通操作员可撤回本人提交的单据(此前仅管理员)

[1.0.72] - 2026-06-21

新功能

  • 审核中(待审核)的入库单/出库单,管理员可「撤回」为草稿,修改后重新提交审核;已审核单据仍只读不可撤回

[1.0.71] - 2026-06-21

改进

  • 公开店铺商品页只展示「当前有库存」的商品,并返回每个商品的在库数量与商品编码(序列号),无货商品不再露出

[1.0.70] - 2026-06-21

改进

  • 商品名称/系列/规格选择接口支持关键词搜索(按名称或编码),为客户端选择器的服务端全量搜索提供支撑

[1.0.69] - 2026-06-21

改进

  • 入库录入改为「每行一个独立产品」:每条明细新建独立商品、发独立序列号(同名同规格录多次也各自独立),不再复用已有商品编号,符合"每个货品一个唯一编号"的管理方式

[1.0.68] - 2026-06-21

修复

  • 根治商品编码可能重复的问题:自动编码改为按现有最大序号递增生成(不再复用已删除商品占用过的编号、并发下也不会撞号),并在数据库层为「同门店 + 编码」加唯一约束,从此重复编码无法静默产生

[1.0.67] - 2026-06-20

修复

  • 历史导入单审核入库后,库存里商品显示为「历史导入占位」、按真实名搜不到的问题:审核生成库存时改用单据明细自带的真实商品名/编码/系列/规格,库存列表也不再显示已删除的占位商品名
  • 库存列表按真实商品名/编码即可搜到这些历史商品

新功能

  • 入库单 / 出库单列表支持关键词搜索:按单号或往来单位名称即时筛选

[1.0.66] - 2026-06-20

修复

  • 入库/出库单据列表改为按业务日期(入库/出库日期)倒序排列:从旧系统迁入的历史单据按真实日期归位到列表顶部,不再因录入时间晚、被排到末尾分页而在首页遗漏

[1.0.65] - 2026-06-20

修复

  • 单据列表状态筛选支持一次查询多种状态,配合客户端修复让「入库审核 / 出库审核」标签页完整列出全部待审核单据,不再因分页只显示部分

[1.0.64] - 2026-06-20

改进

  • 登录设备并发限制改为「按账号统计全部平台合计」:同一账号在桌面、移动、Web 各端加起来最多同时在线 5 台设备(原先各平台分别计数)
  • 达到设备上限时,新设备登录会被明确拒绝并提示「已达到登录设备上限,请提升额度或下线其他设备后重试」,不再静默把最早登录的设备顶下线——由用户自行决定下线哪台或提升额度

[1.0.63] - 2026-06-20

新功能

  • 入库/出库单据明细新增商品快照字段(商品编号、名称、系列、规格,出库另含批次号、生产日期)与单据制单人记录,便于完整展示从旧系统迁入、无商品主数据关联的历史进销存单据

[1.0.62] - 2026-06-19

新功能

  • 服务端新增多维限流防护:按客户端 IP、按门店分别限速,登录/注册/刷新令牌等敏感接口与公开查询接口各有独立速率上限,有效抵御恶意刷接口与流量冲击(DDoS),正常使用不受影响
  • 登录暴力破解加固:除按账号锁定外,新增按来源 IP 的失败次数限制,单一 IP 连续撞库多个账号会被整体拦截

改进

  • 在反向代理后正确识别真实客户端 IP,使限流与失败锁定按真实来源计数,避免误伤同一出口的正常用户
  • 门店可保存录入默认值(默认系列/规格等)等轻量配置,刷新页面后依然保留

[1.0.61] - 2026-06-19

改进

  • 平台侧兑换券生成工具随服务端一并发布并部署到服务器,可直接在服务器上批量生成激活码,无需每次本地编译上传;同步清理已退役的授权签名相关配置项

[1.0.60] - 2026-06-19

新功能

  • 激活码升级为「时长兑换券」:每张码代表一段时长(如 +1 年 / +6 个月),兑换后叠加到当前授权之后,可购买多张累计续期;过期后兑换则从兑换当天重新起算
  • 激活码改为简短易输入的形式(形如 JIUKU-XXXX-XXXX),告别此前需复制粘贴的超长字符串
  • 同一张激活码只能被成功兑换一次,重复或无效的码会明确提示

改进

  • 续费/兑换成功后授权状态即时刷新,无需退出重新登录
  • 新门店首次使用仍自动获得 30 天试用,开箱即用

新功能

  • 会话安全加固:刷新令牌每次续期自动轮换并具备盗用检测,旧令牌一旦被重放即吊销整条会话;新增失败登录记录便于审计风控

改进

  • 授权状态实时生效:续费、到期或授权被调整后约 30 秒内即对写操作生效,无需退出重新登录
  • 修改密码或停用账号后,该账号在所有设备上的登录会立即失效
  • 自动清理超过保留期的已撤销/过期会话与失败登录记录,避免数据无限增长

修复

  • 修复数据库瞬时异常时授权状态被误判为「无授权」、导致界面错误降级的问题

[1.0.58] - 2026-06-18

修复

  • 修复已登录用户授权长期停留在「未激活」的问题:此前仅全新登录才会自动发放 30 天试用,靠本地令牌自动续登的老用户始终拿不到,现在续登时也会补发

[1.0.57] - 2026-06-18

新功能

  • 未激活门店首次登录自动获得 30 天试用:此前手动建店或老数据无授权时既不提示也不限制,现在登录即开通试用,到期前会正常提醒并按阶段降级

[1.0.56] - 2026-06-17

新功能

  • 在线设备/会话管理:服务端记录每次登录会话,支持查看本店在线设备、按平台类(桌面端 / 移动端 / 网页端)分别限制并发登录数,管理员可强制将指定设备下线
  • 登录失败锁定:同一账号连续多次密码错误后自动锁定一段时间,防止暴力破解
  • 记录账号最近登录时间

修复

  • 修复被禁用账号仍能凭刷新令牌继续续期登录的安全漏洞:续期时校验账号状态与会话是否有效

[1.0.55] - 2026-06-17

新功能

  • 后端服务独立发版流水线启用(server-v*),与客户端、官网互不影响

修复

  • 库存导入改用更稳定的 Excel 解析库,按唯一编号自动去重,入库时间取自表格中的「入库日期」