套餐查询返回类型信息
This commit is contained in:
24
README.md
24
README.md
@@ -1,32 +1,16 @@
|
||||
## TODO
|
||||
|
||||
提取代理:
|
||||
- 网关修改问题
|
||||
- 在提取流程中如果网关被修改,有可能导致数据不一致
|
||||
- 提供读写锁,在提取流程中获取读锁,在修改网关时获取写锁
|
||||
- 端口悬空问题
|
||||
- 在提取流程中如果发生异常,可能导致端口被占用但通道信息没有被写入数据库,配置以及端口将无法解除
|
||||
- 提交删除任务时,带上配置信息,无需再查数据库且接口总是会被正确清理
|
||||
- 异常情况下,将只清理网关端口,而无法解除节点连接,这个问题需要额外处理
|
||||
- 数据库并发保存会导致失败,从而触发端口悬空,但是配置已经成功提交到网关,导致无法清理
|
||||
|
||||
redis 中没有记录 edge 信息,无法断开
|
||||
|
||||
---
|
||||
|
||||
- otel 没有正确记录接口失败信息
|
||||
|
||||
筛选和关联展示功能扩展
|
||||
用反射实现环境变量解析,以简化函数签名
|
||||
|
||||
错误提示增强,展示整链路信息
|
||||
|
||||
ip 提取频率限制,在 ensure 函数加逻辑,通过 redis 或者 pg 计算分钟内提取次数,只允许每分钟提取 30 次
|
||||
|
||||
proxy 的删除和更新,锁粒度应该有问题
|
||||
|
||||
交易信息持久化
|
||||
|
||||
用反射实现环境变量解析,以简化函数签名
|
||||
订单关闭问题,在前端关闭窗口后直接调用了全部订单接口,应改成先确认再关闭
|
||||
- 取消订单接口改成只允许管理员调用
|
||||
- 新增关闭订单接口,关闭订单的逻辑是先尝试完成,如果订单未支付则取消订单
|
||||
|
||||
---
|
||||
|
||||
|
||||
2
go.mod
2
go.mod
@@ -26,6 +26,7 @@ require (
|
||||
go.opentelemetry.io/otel v1.43.0
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0
|
||||
go.opentelemetry.io/otel/sdk v1.43.0
|
||||
go.opentelemetry.io/otel/trace v1.43.0
|
||||
golang.org/x/crypto v0.49.0
|
||||
golang.org/x/sync v0.20.0
|
||||
gorm.io/datatypes v1.2.7
|
||||
@@ -88,7 +89,6 @@ require (
|
||||
go.opentelemetry.io/contrib v1.38.0 // indirect
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.43.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.43.0 // indirect
|
||||
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
|
||||
golang.org/x/mod v0.33.0 // indirect
|
||||
golang.org/x/net v0.52.0 // indirect
|
||||
|
||||
@@ -107,6 +107,7 @@ func PageBatchByAdmin(c *fiber.Ctx) error {
|
||||
q.User.As("User").Phone.As("User__phone"),
|
||||
q.User.As("User").Name.As("User__name"),
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
).
|
||||
Where(do).
|
||||
Order(q.LogsUserUsage.Time.Desc()).
|
||||
@@ -174,6 +175,7 @@ func PageBatchOfUserByAdmin(ctx *fiber.Ctx) error {
|
||||
q.User.As("User").Phone.As("User__phone"),
|
||||
q.User.As("User").Name.As("User__name"),
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
).
|
||||
Where(do).
|
||||
Order(q.LogsUserUsage.Time.Desc()).
|
||||
|
||||
@@ -69,6 +69,7 @@ func PageBillByAdmin(c *fiber.Ctx) error {
|
||||
q.Trade.As("Trade").InnerNo.As("Trade__inner_no"),
|
||||
q.Trade.As("Trade").Acquirer.As("Trade__acquirer"),
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
).
|
||||
Where(do).
|
||||
Order(q.Bill.CreatedAt.Desc()).
|
||||
@@ -151,6 +152,7 @@ func PageBillOfUserByAdmin(c *fiber.Ctx) error {
|
||||
q.Trade.As("Trade").InnerNo.As("Trade__inner_no"),
|
||||
q.Trade.As("Trade").Acquirer.As("Trade__acquirer"),
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
).
|
||||
Where(do).
|
||||
Order(q.Bill.CreatedAt.Desc()).
|
||||
|
||||
@@ -243,6 +243,7 @@ func PageChannelByAdmin(c *fiber.Ctx) error {
|
||||
Select(
|
||||
q.Channel.ALL,
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
q.User.As("User").Phone.As("User__phone"),
|
||||
q.User.As("User").Name.As("User__name"),
|
||||
).
|
||||
@@ -316,6 +317,7 @@ func PageChannelOfUserByAdmin(c *fiber.Ctx) error {
|
||||
Select(
|
||||
q.Channel.ALL,
|
||||
q.Resource.As("Resource").ResourceNo.As("Resource__resource_no"),
|
||||
q.Resource.As("Resource").Type.As("Resource__type"),
|
||||
q.User.As("User").Phone.As("User__phone"),
|
||||
q.User.As("User").Name.As("User__name"),
|
||||
).
|
||||
|
||||
@@ -422,7 +422,7 @@ func PageResourceShortOfUserByAdmin(c *fiber.Ctx) error {
|
||||
do = do.Where(q.Resource.CreatedAt.Lte(req.CreatedAtEnd.UTC()))
|
||||
}
|
||||
|
||||
list, total, err := q.Resource.
|
||||
list, total, err := q.Resource.Debug().
|
||||
Joins(q.Resource.User, q.Resource.Short, q.Resource.Short.Sku).
|
||||
Select(
|
||||
q.Resource.ALL,
|
||||
|
||||
Reference in New Issue
Block a user