package maptostruct import ( "appPlatform/models/modelsschool" "appPlatform/overall" "appPlatform/overall/publicmethod" "crypto/md5" "encoding/json" "fmt" "strconv" "strings" "time" "github.com/gin-gonic/gin" "gorm.io/gorm/clause" ) /* * @ 作者: 秦东 @ 时间: 2023-08-08 14:16:31 @ 功能: 获取车场车位信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) CharParking(c *gin.Context) { var requestData SendParkCont c.ShouldBindJSON(&requestData) var charCont CharParkCont requestData.Data = charCont requestData.Ts = strconv.FormatInt(time.Now().Unix(), 10) jsonByte, err := json.Marshal(requestData.Data) signStrAll := fmt.Sprintf("%v%v%v%v", string(jsonByte), requestData.Ts, requestData.ParkId, requestData.AccessKey) // signStrAll := fmt.Sprintf("%v%v%v", requestData.Ts, requestData.ParkId, requestData.AccessKey) //计算签名 mdNew := md5.New() mdNew.Write([]byte(signStrAll)) signStrAllMd5 := fmt.Sprintf("%x", mdNew.Sum(nil)) signStrAllMd5Big := strings.ToUpper(signStrAllMd5) requestData.Sign = signStrAllMd5Big var toForData SendParkInfo toForData.Data = string(jsonByte) toForData.ParkId = requestData.ParkId toForData.Ts = requestData.Ts toForData.Sign = signStrAllMd5Big sendDate, _ := json.Marshal(toForData) callBackByte := publicmethod.CurlPostJosn("http://1.116.211.94:8002/parkservapi/api_GetParkPlace", sendDate) var toForDataIng SendParkInfoIng toForDataIng.Data = requestData.Data toForDataIng.ParkId = requestData.ParkId toForDataIng.Ts = requestData.Ts toForDataIng.Sign = signStrAllMd5Big sendDateing, _ := json.Marshal(toForDataIng) callBackByteIf := publicmethod.CurlPostJosn("http://1.116.211.94:8002/LPApi.asmx/api_GetGatesInfo", sendDateing) outData := publicmethod.MapOut[string]() outData["err"] = err outData["signStrAll"] = signStrAll outData["signStrAllMd5"] = signStrAllMd5 outData["signStrAllMd5Big"] = signStrAllMd5Big outData["requestData"] = requestData outData["sendDate"] = string(sendDate) outData["callBackByte"] = string(callBackByte) outData["toForData"] = toForData outData["callBackByteIf"] = string(callBackByteIf) // fmt.Printf("%v\n", outData) publicmethod.Result(0, outData, c) } /* * @ 作者: 秦东 @ 时间: 2023-08-16 16:39:13 @ 功能: 迁移试卷数据 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) TestPage(c *gin.Context) { var testPageList []int64 err := overall.CONSTANT_DB_Server.Model(&modelsschool.TestPaper{}).Select("tp_id").Find(&testPageList).Error if err != nil { publicmethod.Result(0, err, c) return } countPage := len(testPageList) fmt.Printf("余数---》%v\n", countPage) if len(testPageList) > 0 { var saveData []int64 jibuqi := 0 for i := 0; i < countPage; i++ { if i != 0 && i%1000 == 0 { saveData = append(saveData, testPageList[i]) jibuqi++ syncSeting.Add(1) // time.Sleep(20 * time.Millisecond) go dengdai(saveData, jibuqi) saveData = saveData[:0] // break } else { saveData = append(saveData, testPageList[i]) } } if len(saveData) > 0 { syncSeting.Add(1) go dengdai(saveData, jibuqi) fmt.Printf("余数---》%v\n", len(saveData)) } syncSeting.Wait() } // var countPages int64 // overall.CONSTANT_DB_Tidb.Model(&modelsschool.TestPaper{}).Select("tp_id").Count(&countPages) publicmethod.Result(0, countPage, c) } func dengdai(testPageList []int64, jibuqi int) { defer syncSeting.Done() // fmt.Printf("金晶科技了%v-------><---", jibuqi) var testPageListCont []modelsschool.TestPaper errEs := overall.CONSTANT_DB_Server.Model(&modelsschool.TestPaper{}).Where("tp_id IN ?", testPageList).Find(&testPageListCont).Error if errEs == nil { var saveCont []modelsschool.TestPaper for i := 0; i < len(testPageListCont); i++ { saveCont = append(saveCont, testPageListCont[i]) if i != 0 && i%10 == 0 { overall.CONSTANT_DB_Tidb.Clauses(clause.OnConflict{DoNothing: true}).Create(&saveCont) saveCont = saveCont[:0] } } if len(saveCont) > 0 { overall.CONSTANT_DB_Tidb.Clauses(clause.OnConflict{DoNothing: true}).Create(&saveCont) } // for _, v := range testPageListCont { // // var testPageCont modelsschool.TestPaper // // err := overall.CONSTANT_DB_Server.Where("tp_id = ?", v).First(&testPageCont).Error // // // fmt.Printf("金晶科技了%v---->%v\n", v, err) // // if err == nil { // overall.CONSTANT_DB_Tidb.Clauses(clause.OnConflict{DoNothing: true}).Create(&v) // // } // } } // var testPageListCont []modelsschool.TestPaper // err := overall.CONSTANT_DB_Server.Model(&modelsschool.TestPaper{}).Where("tp_id IN ?", testPageList).Find(&testPageListCont).Error // if err == nil { // // overall.CONSTANT_DB_Tidb.Create(&testPageListCont) // overall.CONSTANT_DB_Tidb.Clauses(clause.OnConflict{DoNothing: true}).Create(&testPageListCont) // } // time.Sleep(100 * time.Millisecond) } func TestPageTimeTask() { var testPageList []int64 err := overall.CONSTANT_DB_Server.Model(&modelsschool.TestPaper{}).Select("tp_id").Find(&testPageList).Error if err != nil { tadyTime := time.Now().Unix() fmt.Printf("没有数据%v--%v\n", err, publicmethod.UnixTimeToDay(tadyTime, 11)) return } countPage := len(testPageList) // fmt.Printf("余数---》%v\n", countPage) if len(testPageList) > 0 { var saveData []int64 jibuqi := 0 for i := 0; i < countPage; i++ { if i != 0 && i%1000 == 0 { saveData = append(saveData, testPageList[i]) jibuqi++ syncSeting.Add(1) // time.Sleep(20 * time.Millisecond) go dengdai(saveData, jibuqi) saveData = saveData[:0] // break } else { saveData = append(saveData, testPageList[i]) } } if len(saveData) > 0 { syncSeting.Add(1) go dengdai(saveData, jibuqi) // fmt.Printf("余数---》%v\n", len(saveData)) } syncSeting.Wait() } // var countPages int64 // overall.CONSTANT_DB_Tidb.Model(&modelsschool.TestPaper{}).Select("tp_id").Count(&countPages) }