diff --git a/pkg/service/cron/cron.go b/pkg/service/cron/cron.go index e713563..af3a03e 100644 --- a/pkg/service/cron/cron.go +++ b/pkg/service/cron/cron.go @@ -4,13 +4,13 @@ import ( "context" "errors" "fmt" + account "fonchain-fiee/api/accountFiee" "fonchain-fiee/api/cron" "fonchain-fiee/pkg/service" "fonchain-fiee/pkg/utils" "log" "os" "path/filepath" - "strconv" "strings" "time" @@ -251,12 +251,48 @@ func GetImportData(c *gin.Context) { service.Error(c, errors.New("请检查excel文件")) return } + res, err := service.AccountFieeProvider.UserList(context.Background(), &account.UserListRequest{ + Domain: "app", + }) + if err != nil { + service.Error(c, errors.New("用户查询失败")) + return + } + subNameFindExcelData := make(map[string]excelData, len(readExcelResult)) + for _, v := range subNameFindExcelData { + subNameFindExcelData[v.SubName] = v + } + subNameFindID := make(map[string]uint64, len(readExcelResult)) + result := make([]excelDataResult, len(readExcelResult)) + for _, v := range res.UserList { + subNameFindID[v.SubNum] = v.Id + //名称不一致的报错 + if data, exists := subNameFindExcelData[v.SubNum]; exists { + // 校验名称是否一致 + if data.Name != v.Name { + service.Error(c, errors.New(fmt.Sprintf("第 %d 行数据错误,请检查数据!", data.Line))) + return // 直接返回,停止后续执行 + } + } + } + for _, v := range readExcelResult { + result = append(result, excelDataResult{ + Id: subNameFindID[v.SubName], + Name: v.Name, + }) + } service.Success(c, readExcelResult) } type excelData struct { - Id int `json:"id"` + Line uint `json:"line"` + SubName string `json:"subName"` + Name string `json:"name"` +} + +type excelDataResult struct { + Id uint64 `json:"id"` Name string `json:"name"` } @@ -290,15 +326,12 @@ func readExcel(excelPath string) ([]excelData, error) { continue } - idStr := getCellValue(f, sheetName, i, 0) - id, err := strconv.Atoi(idStr) - if err != nil { - return nil, err - } + subName := getCellValue(f, sheetName, i, 0) name := getCellValue(f, sheetName, i, 1) data := excelData{ - Id: id, - Name: name, + Line: uint(i), + SubName: subName, + Name: name, } result = append(result, data) }