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.
417 lines
10 KiB
417 lines
10 KiB
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)
|
|
}
|
|
}
|
|
|