You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
5.9 KiB
214 lines
5.9 KiB
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)
|
|
}
|
|
|