应用集成平台服务端
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.

846 lines
20 KiB

2 years ago
package maptostruct
import (
"appPlatform/api/version1/customerform"
"appPlatform/api/version1/taskplatform/taskflow"
1 year ago
"appPlatform/api/version1/workWechat"
"appPlatform/models/modelAppPlatform"
"appPlatform/models/modelshr"
2 years ago
"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"
2 years ago
"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 db *gorm.DB
// err := db.QueryFields
// overall.CONSTANT_DB_AppPlatform.Take.Title
// // 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]()
var masterFormCont []map[string]interface{}
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 => %v\n", k, v, v)
}
// fmt.Printf("%v => %T\n", masterFormCont, masterFormCont)
}
/*
*
@ 作者: 秦东
@ 时间: 2023-10-17 16:42:55
@ 功能: 加密实验
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) JiaMiShiYan(c *gin.Context) {
// var requestData JiaMi
// err := c.ShouldBindQuery(&requestData)
// if err != nil {
// publicmethod.Result(100, err, c)
// return
// }
singStr := fmt.Sprintf("%v%v%v", c.Query("userkey"), c.Query("usertoken"), c.Query("time"))
var singCodeMd5 publicmethod.Md5Encryption
singCodeMd5.Md5EncryptionInit(singStr)
signCodeRedisKey := singCodeMd5.Md5EncryptionAlgorithm()
sendData := publicmethod.MapOut[string]()
sendData["signCodeRedisKey"] = signCodeRedisKey
sendData["userkey"] = c.Query("userkey")
sendData["usertoken"] = c.Query("usertoken")
sendData["time"] = c.Query("time")
sendData["singStr"] = singStr
publicmethod.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2023-11-08 16:04:39
@ 功能: 根据身份证号获取生日和年龄
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) GenJuIdNumber(c *gin.Context) {
var requestData publicmethod.PublicName
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
shengti := publicmethod.GetBirthday(requestData.Name)
var myAge publicmethod.BirthdayAge
myAge.GetAgeByBirthday(requestData.Name)
sendData := publicmethod.MapOut[string]()
sendData["shengti"] = shengti
sendData["myAge"] = myAge
publicmethod.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2023-11-15 15:26:47
@ 功能: 实验流程图生成
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) CreateFlowChart(c *gin.Context) {
var requestData CreatFlowView
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(10001, err, c)
return
}
if requestData.Id == "" {
publicmethod.Result(10001, err, c, "未知表单")
return
}
var flowInfo modelAppPlatform.FlowVersion
err = flowInfo.GetCont(map[string]interface{}{"`id`": requestData.Id})
if err != nil && flowInfo.Content == "" {
publicmethod.Result(106, err, c)
return
}
var flowVersionCont taskflow.FlowMainBody
err = json.Unmarshal([]byte(flowInfo.Content), &flowVersionCont)
if err != nil {
publicmethod.Result(104, err, c)
return
}
context, _ := c.Get(overall.MyContJwt)
var userCont modelshr.ManCont
userCont.GetLoginCont(context)
// workFlowInfo := flowVersionCont.GenerateFlow(userCont, 349)
workFlowInfo := flowVersionCont.NodeConfig.CircularParsing(1, userCont, 349, requestData.ConditionList, requestData.NodelPeople)
sendData := publicmethod.MapOut[string]()
// sendData["context"] = context
// sendData["userCont"] = userCont
// sendData["flowInfo"] = flowInfo
// sendData["flowVersionCont"] = flowVersionCont
sendData["workFlowInfo"] = workFlowInfo
publicmethod.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-03-08 10:47:40
@ 功能: 获取行政组织所有子类
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) GetAllOrgSun(c *gin.Context) {
var requestData publicmethod.CommonId[int64]
c.ShouldBindJSON(&requestData)
if requestData.Id == 0 {
requestData.Id = 309
}
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(requestData.Id)
publicmethod.Result(0, sunOrg.Id, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-04-18 15:20:02
@ 功能: 获取数据中台的数据
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) GainDateCenter(c *gin.Context) {
url := "http://172.20.5.86/prod-api/database/app/datasource/page?pageNum=1&pageSize=10&databaseName=&dataType="
jisguo := publicmethod.CurlGet(url)
var sendDara map[string]interface{}
json.Unmarshal(jisguo, &sendDara)
publicmethod.Result(0, sendDara, c)
}
func (a *ApiMethod) GainAppPageInfo(c *gin.Context) {
var requestData publicmethod.PublicId
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Id == "" {
publicmethod.Result(102, err, c)
return
}
// var appFormPage modelAppPlatform.CustomerFormView
// err = appFormPage.GetCont(map[string]interface{}{"`status`": 1, "`signCode`": requestData.Id})
var appFormMap map[string]interface{}
err = overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.CustomerFormView{}).Where("`status` = 1 AND `signCode` = ?", requestData.Id).Find(&appFormMap).Error
if err != nil {
publicmethod.Result(105, err, c)
return
}
for i := range appFormMap {
if i == "listjson" {
var listjson map[string]interface{}
if listVal, isOk := appFormMap[i].(string); isOk {
json.Unmarshal([]byte(listVal), &listjson)
appFormMap[i] = listjson
}
}
if i == "mastesform" {
var mastesform map[string]interface{}
if mastesformVal, isOk := appFormMap[i].(string); isOk {
err = json.Unmarshal([]byte(mastesformVal), &mastesform)
fmt.Printf("err-->%v\n", err)
appFormMap[i] = mastesform
}
}
if i == "mastesformjson" {
var mastesforms map[string]interface{}
if mastesformvals, isOk := appFormMap[i].(string); isOk {
json.Unmarshal([]byte(mastesformvals), &mastesforms)
appFormMap[i] = mastesforms
}
}
if i == "powerstr" {
var powerstr []map[string]interface{}
if powerstrval, isOk := appFormMap[i].(string); isOk {
json.Unmarshal([]byte(powerstrval), &powerstr)
appFormMap[i] = powerstr
}
}
}
sendData := publicmethod.MapOut[string]()
sendData["appFormMap"] = appFormMap
// sendData["appForm"] = appFormPage
// sendData["versionId"] = strconv.FormatInt(appFormPage.Id, 10)
// sendData["flowkey"] = strconv.FormatInt(appFormPage.Flowkey, 10)
// sendData["groupid"] = strconv.FormatInt(appFormPage.Groupid, 10)
// sendData["signCode"] = strconv.FormatInt(appFormPage.SignCode, 10)
// if appFormPage.MastesForm == "" && appFormPage.MastesFormJson == "" {
// sendData["page"] = false
// } else {
// sendData["page"] = true
// }
// if appFormPage.ListJson == "" {
// sendData["pageList"] = false
// } else {
// sendData["pageList"] = true
// }
// sendData["appFlow"] = false
// if appFormPage.FlowIsOpen == 1 {
// var appFormFlow modelAppPlatform.FlowVersion
// err = appFormFlow.GetCont(map[string]interface{}{"`state`": 1, "`key`": appFormPage.Flowkey}, "`content`")
// if err != nil {
// sendData["workFlow"] = ""
// } else {
// var flowInfor interface{}
// err = json.Unmarshal([]byte(appFormFlow.Content), &flowInfor)
// if err != nil {
// sendData["workFlow"] = ""
// } else {
// sendData["workFlow"] = flowInfor
// sendData["appFlow"] = true
// }
// }
// } else {
// sendData["workFlow"] = ""
// }
// var fieldList []string
// if appFormPage.TableKey != "" {
// masterFieldAry, mastErr := customerform.ReadDatabaseForm(appFormPage.TableKey)
// if mastErr == nil {
// for _, v := range masterFieldAry {
// if !publicmethod.IsInTrue[string](v.Field, fieldList) {
// fieldList = append(fieldList, v.Field)
// }
// }
// }
// }
// if appFormPage.TableStructure != "" {
// var sunTable map[string]string
// err = json.Unmarshal([]byte(appFormPage.TableStructure), &sunTable)
// if err == nil {
// for _, v := range sunTable {
// sonFieldAry, sunErr := customerform.ReadDatabaseForm(v)
// if sunErr == nil {
// for _, v := range sonFieldAry {
// if !publicmethod.IsInTrue[string](v.Field, fieldList) {
// fieldList = append(fieldList, v.Field)
// }
// }
// }
// }
// }
// }
// sendData["formField"] = fieldList
publicmethod.Result(0, sendData, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-08-28 13:52:07
@ 功能: 测试过密加解密(SM4)
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) AppSm4(c *gin.Context) {
var requestData PersonalityTestIn
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Number == "" {
publicmethod.Result(1, err, c, "请输入工号!")
return
}
if requestData.Name == "" {
publicmethod.Result(1, err, c, "请输入姓名!")
return
}
if requestData.Post == "" {
publicmethod.Result(1, err, c, "请输入岗位!")
return
}
sendInfo := publicmethod.MapOut[string]()
jsonStr, _ := json.Marshal(requestData)
fmt.Printf("jsonStr:%v\n", string(jsonStr))
jiaMi, err := publicmethod.SM4Encrypt(string(jsonStr))
sendInfo["jiaMi"] = jiaMi
sendInfo["jiaMiErr"] = err
jieMi, err := publicmethod.SM4Decrypt(jiaMi)
1 year ago
sendInfo["jieMi"] = string(jieMi)
sendInfo["jieMiErr"] = err
var jsonInfo PersonalityTestIn
1 year ago
json.Unmarshal(jieMi, &jsonInfo)
sendInfo["jsonInfo"] = jsonInfo
publicmethod.Result(0, sendInfo, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-08-28 14:26:33
@ 功能: 删除转现题库内容
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) DelZhuanXiang(c *gin.Context) {
var requestData publicmethod.CommonId[string]
err := c.ShouldBindJSON(&requestData)
if err != nil {
publicmethod.Result(100, err, c)
return
}
if requestData.Id == "" {
publicmethod.Result(102, err, c)
return
}
var delKey []int64
err = overall.CONSTANT_DB_Master.Model(&modelsschool.Subject{}).Select("`s_key`").Where("`s_one_exam` = ?", requestData.Id).Find(&delKey).Error
if err != nil {
publicmethod.Result(0, delKey, c)
return
}
if len(delKey) > 0 {
overall.CONSTANT_DB_KPI.Where("`s_one_exam` = ?", requestData.Id).Delete(&modelsschool.Subject{})
overall.CONSTANT_DB_KPI.Where("`a_key` IN ?", delKey).Delete(&modelsschool.Answer{})
}
publicmethod.Result(0, delKey, c)
}
1 year ago
/*
*
@ 作者: 秦东
@ 时间: 2024-10-23 16:51:30
@ 功能: 测试通过企业微信获取人员
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) SetUpWorkWatch(c *gin.Context) {
wechatCont, err := workWechat.SetUpWechatInfo("KaiXinGuo")
send := publicmethod.MapOut[string]()
send["err"] = err
send["wechatCont"] = wechatCont
publicmethod.Result(0, send, c)
}