//request json{ "data": [ { "shop_id": 410, "tiktok": "tiktok1,tiktok2,tiktok3,tiktok4,tiktok5,tiktok6,tiktok7,tiktok8,tiktok1" } ]}type SetTraceResult struct { ShopId int `json:"shop_id"` Result bool `json:"result"`}resCh := make(chan SetTraceResult, 1) //结果channel for _, info := range data.Data { go func(info TraceInfo) { record := models.GetShopSettingByShopId(info.ShopId, []string{"id", "shop_id"}) //查询店铺设置 res := SetTraceResult{ //默认的返回result ShopId: info.ShopId, Result: true, } if record.ID > 0 { var infoMap = make(map[string]interface{}) infoMap, err = utils.Struct2MapWithJson(info) if err != nil { res.Result = false //转义失败 resCh <- res return } } else { record := models.SailShopSetting{} utils.StructCopy(info, &record) err = models.CreateShopSetting(record) //增加表记录 if err != nil { res.Result = false } } // 自定义代码应用 if info.CustomGlobalScript != nil && *info.CustomGlobalScript != "" { appInfo := models.GetAppByName("customCode") installRecord := models.GetInstallationRecord(record.ShopId, appInfo.ID) customConfig := fmt.Sprintf(`{"customCode":"%s"}`, *info.CustomGlobalScript) if installRecord.ID > 0 { err = models.UpdateInstallationRecord(record.ShopId, appInfo.ID, "config", customConfig) } else { installRecode := models.SailShopInstalledApplications{ ShopID: record.ShopId, ApplicationID: appInfo.ID, AppType: appInfo.AppType, Config: customConfig, Status: 1, InstalledAt: time.Now(), Installed: 1, IsNew: 1, } err = models.CreateInstallationRecord(installRecode) } if err != nil { res.Result = false } } resCh <- res }(info) } var r []SetTraceResult for i := 0; i < len(data.Data); i++ { r = append(r, <-resCh) } app.Success(c, r)