修复开放接口 wallet/package-orders 支持 IMEI 下单
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m48s

This commit is contained in:
2026-06-23 11:36:51 +09:00
parent c0b9604515
commit c5871b59a1
2 changed files with 15 additions and 10 deletions

View File

@@ -320,15 +320,18 @@ func (s *Service) CreateWalletPackageOrders(ctx context.Context, req *dto.AgentO
resp.FailedCards = append(resp.FailedCards, buildFailedCard(rawCardNo, errors.New(errors.CodeInvalidParam, "卡标识不能为空")))
continue
}
card, err := s.resolveOpenAPICard(ctx, cardNo)
if err != nil {
resp.FailedCards = append(resp.FailedCards, buildFailedCard(cardNo, err))
continue
}
// 卡已绑定设备时,自动转为设备维度购买
identifier := card.ICCID
if !card.IsStandalone {
var identifier string
card, cardErr := s.resolveOpenAPICard(ctx, cardNo)
if cardErr != nil {
// 兜底:尝试解析为设备标识(支持 IMEI/虚拟号)
device, devErr := s.resolveOpenAPIDevice(ctx, cardNo)
if devErr != nil {
resp.FailedCards = append(resp.FailedCards, buildFailedCard(cardNo, cardErr))
continue
}
identifier = device.VirtualNo
} else if !card.IsStandalone {
// 卡已绑定设备时,自动转为设备维度购买
binding, bindErr := s.deviceSimBindingStore.GetActiveBindingByCardID(ctx, card.ID)
if bindErr != nil {
resp.FailedCards = append(resp.FailedCards, buildFailedCard(cardNo, errors.Wrap(errors.CodeInternalError, bindErr, "查询卡绑定设备失败")))
@@ -340,6 +343,8 @@ func (s *Service) CreateWalletPackageOrders(ctx context.Context, req *dto.AgentO
continue
}
identifier = device.VirtualNo
} else {
identifier = card.ICCID
}
orderResp, err := s.orderService.CreateAdminOrder(ctx, &dto.CreateAdminOrderRequest{