修复购买数量低于限制的问题

This commit is contained in:
2026-05-11 14:11:56 +08:00
parent 65f8ee360b
commit d273731e31
3 changed files with 9 additions and 3 deletions

View File

@@ -1,10 +1,12 @@
## TODO
- 解决提取成功率问题
- 提交代理端口配置后,并非同步将节点标记为占用状态,导致后续提取请求仍然会选中该节点,直到下一个提取请求才会发现该节点已满,导致提取失败?
- otel 没有正确记录接口失败信息
- 购买数低于最小限制
创建 channel 时以 defer 的思路执行 fallback 函数,确保执行幂等性
筛选和关联展示功能扩展
channel 管理逻辑优化,需要携带 proxy 信息,考虑到 channel 没有成功创建的情况,或者保证创建操作的原子性
错误提示增强,展示整链路信息

View File

@@ -372,7 +372,7 @@ func (s *channelBaiyinProvider) ClearExpiredChannels(proxyId int32) (int, error)
// 排除未过期通道
var batchQueried []struct{ BatchNo string }
err = q.Channel.Debug().
err = q.Channel.
Select(q.Channel.BatchNo).
Where(
q.Channel.BatchNo.In(batchList...),

View File

@@ -160,6 +160,10 @@ func (s *resourceService) CalcPrice(skuCode string, count int32, user *m.User, c
return nil, nil, nil, decimal.Zero, decimal.Zero, decimal.Zero, core.NewBizErr("产品不可用", err)
}
if count < sku.CountMin {
return nil, nil, nil, decimal.Zero, decimal.Zero, decimal.Zero, core.NewBizErr(fmt.Sprintf("购买数量不能少于 %d", sku.CountMin))
}
// 原价
amountMin := sku.PriceMin.Mul(decimal.NewFromInt32(count))
amount := sku.Price.Mul(decimal.NewFromInt32(count))