chore: 并入 iotlcm-admin-svr 历史到 admin-svr/(原提交 49818c6)
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package renew
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/batchimport"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/batchinput/text"
|
||||
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
)
|
||||
|
||||
func ParseInputRows(ctx context.Context, input string) ([]batchimport.Row, error) {
|
||||
lines, err := text.ParseWhitespaceFields(ctx, input)
|
||||
if err != nil {
|
||||
if errors.Is(err, text.ErrEmptyInput) {
|
||||
return nil, gerror.New("批量输入续费数据为空")
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
renewRows := make([]*Row, 0, len(lines))
|
||||
for _, line := range lines {
|
||||
renewRows = append(renewRows, parseRenewInputLine(line))
|
||||
}
|
||||
|
||||
rows := make([]batchimport.Row, 0, len(renewRows))
|
||||
for _, row := range renewRows {
|
||||
rows = append(rows, row)
|
||||
}
|
||||
return rows, nil
|
||||
}
|
||||
|
||||
func parseRenewInputLine(line text.FieldLine) *Row {
|
||||
row := &Row{RowNo: line.RowNo}
|
||||
switch len(line.Fields) {
|
||||
case 1:
|
||||
row.InputCode = strings.TrimSpace(line.Fields[0])
|
||||
row.Iccid = row.InputCode
|
||||
case 3, 4:
|
||||
row.Iccid = strings.TrimSpace(line.Fields[0])
|
||||
row.Msisdn = strings.TrimSpace(line.Fields[1])
|
||||
row.Imsi = strings.TrimSpace(line.Fields[2])
|
||||
row.InputCode = firstNonEmpty(row.Iccid, row.Msisdn, row.Imsi)
|
||||
default:
|
||||
row.AddReason("格式错误,应为 ICCID/MSISDN/IMSI 任一号码,或 ICCID MSISDN IMSI")
|
||||
}
|
||||
return row
|
||||
}
|
||||
|
||||
func firstNonEmpty(values ...string) string {
|
||||
for _, value := range values {
|
||||
if strings.TrimSpace(value) != "" {
|
||||
return strings.TrimSpace(value)
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user