fix querylist
This commit is contained in:
parent
19c82817ba
commit
5a530c4679
@ -33,7 +33,15 @@ func (l *QueryListLogic) QueryList(req *types.QueryListReq) (resp *types.QueryLi
|
|||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "订单列表查询, 获取用户信息失败, %+v", getUidErr)
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "订单列表查询, 获取用户信息失败, %+v", getUidErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 构建查询订单表的条件,排除未支付的订单
|
// 构建子查询:查找在query表中有记录的order_id
|
||||||
|
querySubQuery := squirrel.Select("order_id").From("query")
|
||||||
|
|
||||||
|
// 构建子查询:查找在authorization表中状态为pending的order_id
|
||||||
|
authSubQuery := squirrel.Select("order_id").
|
||||||
|
From("authorization").
|
||||||
|
Where(squirrel.Eq{"status": model.AuthorizationStatusPending})
|
||||||
|
|
||||||
|
// 构建主查询条件
|
||||||
build := l.svcCtx.OrderModel.SelectBuilder().Where(squirrel.And{
|
build := l.svcCtx.OrderModel.SelectBuilder().Where(squirrel.And{
|
||||||
squirrel.Eq{
|
squirrel.Eq{
|
||||||
"user_id": userID,
|
"user_id": userID,
|
||||||
@ -41,6 +49,15 @@ func (l *QueryListLogic) QueryList(req *types.QueryListReq) (resp *types.QueryLi
|
|||||||
squirrel.NotEq{
|
squirrel.NotEq{
|
||||||
"status": model.OrderStatusPending,
|
"status": model.OrderStatusPending,
|
||||||
},
|
},
|
||||||
|
squirrel.Or{
|
||||||
|
// 在query表中有记录
|
||||||
|
squirrel.Expr("id IN (?)", querySubQuery),
|
||||||
|
// 或者在query表中没有记录,但在authorization表中状态为pending
|
||||||
|
squirrel.And{
|
||||||
|
squirrel.Expr("id NOT IN (?)", querySubQuery),
|
||||||
|
squirrel.Expr("id IN (?)", authSubQuery),
|
||||||
|
},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
// 从订单表分页查询
|
// 从订单表分页查询
|
||||||
@ -79,18 +96,31 @@ func (l *QueryListLogic) QueryList(req *types.QueryListReq) (resp *types.QueryLi
|
|||||||
query.Id = queryInfo.Id
|
query.Id = queryInfo.Id
|
||||||
query.QueryState = queryInfo.QueryState
|
query.QueryState = queryInfo.QueryState
|
||||||
query.IsQueryCompleted = queryInfo.QueryState == model.QueryStateSuccess
|
query.IsQueryCompleted = queryInfo.QueryState == model.QueryStateSuccess
|
||||||
|
|
||||||
|
// 获取授权状态
|
||||||
|
authInfo, findAuthErr := l.svcCtx.AuthorizationModel.FindOneByOrderId(l.ctx, orderModel.Id)
|
||||||
|
if findAuthErr != nil && !errors.Is(findAuthErr, model.ErrNotFound) {
|
||||||
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "订单列表查询, 获取授权信息失败, %+v", findAuthErr)
|
||||||
|
}
|
||||||
|
if errors.Is(findAuthErr, model.ErrNotFound) {
|
||||||
|
// 如果query存在但authorization不存在,说明已经授权完成
|
||||||
|
query.IsAuthCompleted = true
|
||||||
|
}
|
||||||
|
// 授权存在
|
||||||
|
query.IsAuthCompleted = authInfo.Status == model.AuthorizationStatusSuccess
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
query.QueryState = "未创建"
|
query.QueryState = "未创建"
|
||||||
query.IsQueryCompleted = false
|
query.IsQueryCompleted = false
|
||||||
}
|
|
||||||
|
|
||||||
// 获取授权状态
|
// 获取授权状态
|
||||||
authInfo, findAuthErr := l.svcCtx.AuthorizationModel.FindOneByOrderId(l.ctx, orderModel.Id)
|
authInfo, findAuthErr := l.svcCtx.AuthorizationModel.FindOneByOrderId(l.ctx, orderModel.Id)
|
||||||
if findAuthErr == nil {
|
if findAuthErr == nil {
|
||||||
// 授权存在
|
// 授权存在
|
||||||
query.IsAuthCompleted = authInfo.Status == model.AuthorizationStatusSuccess
|
query.IsAuthCompleted = authInfo.Status == model.AuthorizationStatusSuccess
|
||||||
} else {
|
} else {
|
||||||
query.IsAuthCompleted = false
|
query.IsAuthCompleted = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list = append(list, query)
|
list = append(list, query)
|
||||||
|
Loading…
Reference in New Issue
Block a user