package iot import ( "context" "git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/logic/iot/simcardbatch/inbound" "git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model" "git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/service" "git.5iot.com/iotlcm-public/iotlcm-admin-svr/utility/iot_excelize" "github.com/gogf/gf/v2/errors/gerror" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "github.com/xuri/excelize/v2" ) type sIotTSimCardInbound struct{} func NewIotTSimCardInbound() *sIotTSimCardInbound { return &sIotTSimCardInbound{} } func init() { service.RegisterIotTSimCardInbound(NewIotTSimCardInbound()) } func (s *sIotTSimCardInbound) DownloadExcelTemplate(ctx context.Context) (err error) { f := excelize.NewFile() defer f.Close() headers := inbound.TemplateHeaders() if err := f.SetSheetRow("Sheet1", "A1", &headers); err != nil { return err } if err := iot_excelize.ApplyHeaderColumnsTextStyle(f); err != nil { return err } return iot_excelize.WriteHTTP(ctx, f, "sim_card_inbound") } func (s *sIotTSimCardInbound) SubmitExcel(ctx context.Context, in *model.TSimCardInboundExcelSubmitParam) (res *model.TSimCardInboundExcelSubmitRes, err error) { if in == nil { in = &model.TSimCardInboundExcelSubmitParam{} } file, err := s.getUploadFile(ctx) if err != nil { return nil, err } result, err := inbound.CreatePendingExcel(ctx, file, in) if err != nil { return nil, err } return &model.TSimCardInboundExcelSubmitRes{ BatchNo: result.BatchNo, BatchType: result.BatchType, }, nil } func (s *sIotTSimCardInbound) getUploadFile(ctx context.Context) (*ghttp.UploadFile, error) { r := g.RequestFromCtx(ctx) if r == nil { return nil, gerror.New("当前上下文不是HTTP请求") } file := r.GetUploadFile("file") if file == nil { return nil, gerror.New("请选择上传文件") } return file, nil } func (s *sIotTSimCardInbound) SubmitRange(ctx context.Context, in *model.TSimCardInboundRangeSubmitParam) (res *model.TSimCardInboundRangeSubmitRes, err error) { if in == nil { in = &model.TSimCardInboundRangeSubmitParam{} } result, err := inbound.CreatePendingRange(ctx, in) if err != nil { return nil, err } return &model.TSimCardInboundRangeSubmitRes{ BatchNo: result.BatchNo, BatchType: result.BatchType, }, nil } func (s *sIotTSimCardInbound) SubmitInput(ctx context.Context, in *model.TSimCardInboundInputSubmitParam) (res *model.TSimCardInboundInputSubmitRes, err error) { if in == nil { in = &model.TSimCardInboundInputSubmitParam{} } result, err := inbound.CreatePendingInput(ctx, in) if err != nil { return nil, err } return &model.TSimCardInboundInputSubmitRes{ BatchNo: result.BatchNo, BatchType: result.BatchType, }, nil }