fix(backend): ImportProducts 改用 parseUploadedExcel 修复导入截断 100 条问题
旧代码直接调用 excelize.GetRows() 有内部 100 行限制;
其他 7 个导入函数在 50b139c 已修复,唯独 ImportProducts 漏网。
统一改用 parseUploadedExcel() 辅助函数,支持 .xls/.xlsx 且无行数截断。
This commit is contained in:
@@ -33,27 +33,7 @@ func NewImportHandler(db *gorm.DB) *ImportHandler {
|
|||||||
func (h *ImportHandler) ImportProducts(c *gin.Context) {
|
func (h *ImportHandler) ImportProducts(c *gin.Context) {
|
||||||
shopID := middleware.GetShopID(c)
|
shopID := middleware.GetShopID(c)
|
||||||
|
|
||||||
file, err := c.FormFile("file")
|
rows, err := parseUploadedExcel(c)
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "file required"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
f, err := file.Open()
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
|
|
||||||
xl, err := excelize.OpenReader(f)
|
|
||||||
if err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid excel file: " + err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
sheetName := xl.GetSheetName(0)
|
|
||||||
rows, err := xl.GetRows(sheetName)
|
|
||||||
if err != nil || len(rows) < 2 {
|
if err != nil || len(rows) < 2 {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "empty or invalid sheet"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "empty or invalid sheet"})
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user