package maptostruct import ( "appPlatform/api/version1/customerform" "appPlatform/models/modelAppPlatform" "appPlatform/models/modelsschool" "appPlatform/overall" "appPlatform/overall/publicmethod" "crypto/md5" "encoding/json" "fmt" "strconv" "strings" "time" "github.com/gin-gonic/gin" "github.com/mozillazg/go-pinyin" "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) } type canshuzhi interface{} // 接收参数 func (A *ApiMethod) Canshu(c *gin.Context) { // var zhi canshuzhi zhi, _ := c.GetRawData() fmt.Printf("%T------------->%v\n", zhi, string(zhi)) } /* * @ 作者: 秦东 @ 时间: 2023-09-05 08:38:58 @ 功能: 模拟创建表单 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) CreateTable(c *gin.Context) { var requestData publicmethod.CommonId[int64] err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } var customerFormCont modelAppPlatform.CustomerFormView err = customerFormCont.GetCont(map[string]interface{}{"cfid": requestData.Id, "`status`": 1}) if err != nil { publicmethod.Result(107, err, c) return } var formJsonCont customerform.CustomerFormMaster json.Unmarshal([]byte(customerFormCont.MastesFormJson), &formJsonCont) mastSql, _ := formJsonCont.DisassembleForm() var formVersionCont modelAppPlatform.CustomerFormVersion formVersionCont.EiteCont(map[string]interface{}{"id": customerFormCont.Id}, map[string]interface{}{"table_structure": mastSql, "edit_time": time.Now().Unix()}) publicmethod.Result(0, mastSql, c) } /* * @ 作者: 秦东 @ 时间: 2023-09-08 09:24:00 @ 功能: 改革自定义表单列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) QianyiVersion(c *gin.Context) { var list []modelAppPlatform.CustomerForm err := overall.CONSTANT_DB_AppPlatform.Find(&list).Error if err != nil { return } for _, v := range list { var versionCont modelAppPlatform.CustomerFormVersion versionCont.TableKey = v.TableNames //default:'';not null;comment:表单标识符"` versionCont.Version = 1 //1;not null;comment:版本号"` versionCont.Status = 1 //not null;comment:显示状态(1:启用;2:禁用,3:删除)"` // versionCont.MastesForm = v.MastesForm //';comment:表单结构"` // versionCont.MastesFormJson = v.MastesFormJson //efault:'';comment:表单结构json"` // versionCont.Creater = v.Creater //ult:0;not null;comment:创建人"` versionCont.CreaterTime = v.CreaterTime //not null;comment:创建时间"` versionCont.EditTime = v.EditTime //efault:0;not null;comment:编辑时间"` // versionCont.TableStructure = v.TableStructure //;default:'';comment:字表结构"` // versionCont.Dict = v.Dict //字表结构"` overall.CONSTANT_DB_AppPlatform.Create(&versionCont) } } /* * @ 作者: 秦东 @ 时间: 2023-09-13 13:13:13 @ 功能: 查询表结构 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) LookTableStruct(c *gin.Context) { var requestData publicmethod.CommonId[int64] err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Id == 0 { publicmethod.Result(107, err, c) return } var versionCont modelAppPlatform.CustomerFormVersion err = versionCont.GetCont(map[string]interface{}{"`id`": requestData.Id}) if err != nil { publicmethod.Result(107, err, c) return } formStruct, err := customerform.ReadDatabaseForm(versionCont.TableKey) publicmethod.Result(107, formStruct, c) } /* * @ 作者: 秦东 @ 时间: 2023-09-26 11:34:53 @ 功能: 汉字转拼音 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) HanZiZhuanPinYin(c *gin.Context) { var requestData publicmethod.PublicName err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Name == "" { publicmethod.Result(107, err, c) return } pyObject := pinyin.NewArgs() // pyObject.Heteronym =true pyObject.Style = pinyin.Tone3 pyObject.Separator = "" str := pinyin.Slug(requestData.Name, pyObject) publicmethod.Result(0, str, c) } /* * @ 作者: 秦东 @ 时间: 2023-09-28 15:35:07 @ 功能: 测试表结构数值 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) TestTable(c *gin.Context) { var requestData publicmethod.PublicName err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Name == "" { requestData.Name = "shi_yang" } masterFormCont := publicmethod.MapOut[string]() err = overall.CONSTANT_DB_CustomerForm.Table(requestData.Name).Find(&masterFormCont).Error if err != nil { publicmethod.Result(107, err, c) return } for k, v := range masterFormCont { fmt.Printf("%v => %T\n", k, v) } }