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)
|
||||
}
|
||||
|
||||
// 构建查询订单表的条件,排除未支付的订单
|
||||
// 构建子查询:查找在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{
|
||||
squirrel.Eq{
|
||||
"user_id": userID,
|
||||
@ -41,6 +49,15 @@ func (l *QueryListLogic) QueryList(req *types.QueryListReq) (resp *types.QueryLi
|
||||
squirrel.NotEq{
|
||||
"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.QueryState = queryInfo.QueryState
|
||||
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 {
|
||||
query.QueryState = "未创建"
|
||||
query.IsQueryCompleted = false
|
||||
}
|
||||
|
||||
// 获取授权状态
|
||||
authInfo, findAuthErr := l.svcCtx.AuthorizationModel.FindOneByOrderId(l.ctx, orderModel.Id)
|
||||
if findAuthErr == nil {
|
||||
// 授权存在
|
||||
query.IsAuthCompleted = authInfo.Status == model.AuthorizationStatusSuccess
|
||||
} else {
|
||||
query.IsAuthCompleted = false
|
||||
// 获取授权状态
|
||||
authInfo, findAuthErr := l.svcCtx.AuthorizationModel.FindOneByOrderId(l.ctx, orderModel.Id)
|
||||
if findAuthErr == nil {
|
||||
// 授权存在
|
||||
query.IsAuthCompleted = authInfo.Status == model.AuthorizationStatusSuccess
|
||||
} else {
|
||||
query.IsAuthCompleted = false
|
||||
}
|
||||
}
|
||||
|
||||
list = append(list, query)
|
||||
|
Loading…
Reference in New Issue
Block a user