Browse Source

修改AppBug

li_v1
超级管理员 1 year ago
parent
commit
1cddfad861
  1. 5
      .vscode/extensions.json
  2. 1099
      api/personalityTest/rongXin/controller.go
  3. 442
      api/personalityTest/rongXin/downLoad.go
  4. 88
      api/personalityTest/rongXin/type.go
  5. 4
      api/shiyan/maptostruct/shiyan.go
  6. 97
      api/version1/customerApp/appControll.go
  7. 1
      api/version1/customerform/codeFormGroup.go
  8. 152
      api/version1/customerform/formTable.go
  9. 2
      api/version1/workWechat/wechat.go
  10. 12
      apirouter/personalityAssessment/rongxin.go
  11. 2
      apirouter/v1/customerformrouter/router.go
  12. 4
      config/configDatabase/database.go
  13. 10
      go.mod
  14. 56
      go.sum
  15. 14
      initialization/databaseinit/mysql.go
  16. 2
      models/modelAppPlatform/userInfoDownTemplate.go
  17. 23
      models/modelshr/administrative_organization.go
  18. 52
      models/personalityColor/charcolortest.go
  19. 3
      overall/appConfig.go
  20. 11
      overall/publicmethod/sm4.go
  21. 41
      overall/publicmethod/technique.go

5
.vscode/extensions.json

@ -0,0 +1,5 @@
{
"recommendations": [
"MarsCode.marscode-extension"
]
}

1099
api/personalityTest/rongXin/controller.go

File diff suppressed because it is too large

442
api/personalityTest/rongXin/downLoad.go

@ -0,0 +1,442 @@
package rongxin
import (
"appPlatform/models/modelshr"
personalitycolor "appPlatform/models/personalityColor"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/csv"
"encoding/json"
"fmt"
"net/url"
"sort"
"strconv"
"strings"
"github.com/gin-gonic/gin"
)
/*
*
@ 作者: 秦东
@ 时间: 2024-09-13 08:55:14
@ 功能:下载九型人格测试结果
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) DownLoadNineTestPage(c *gin.Context) {
keywords := c.Query("keywords")
adminorg := c.Query("adminorg")
emptype := c.Query("emptype")
var peopleList []modelshr.PersonArchives
goormDb := overall.CONSTANT_DB_HrInside.Model(&modelshr.PersonArchives{}).Select("`number`,`name`,`admin_org`").Where("`emp_type` BETWEEN 1 AND 10")
if keywords != "undefined" && keywords != "" {
goormDb = goormDb.Where("`name` LIKE ?", "%"+keywords+"%")
}
if adminorg != "undefined" && adminorg != "" {
adminorgInt, _ := strconv.ParseInt(adminorg, 10, 64)
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(adminorgInt)
sunOrg.Id = append(sunOrg.Id, adminorgInt)
if len(sunOrg.Id) > 0 {
goormDb = goormDb.Where("`admin_org` IN ?", sunOrg.Id)
}
}
var empInt []int
json.Unmarshal([]byte(emptype), &empInt)
if len(empInt) > 0 {
goormDb = goormDb.Where("`emp_type` IN ?", empInt)
}
err := goormDb.Find(&peopleList).Error
if err != nil || len(peopleList) < 1 {
c.String(c.Writer.Status(), "没有查询到数据")
return
}
// fmt.Printf("%v-%v-%v-%v\n", keywords, adminorg, emptype, peopleList)
testPageList := GetPeopleNineData(peopleList)
// fmt.Printf("testPageList->%v\n", testPageList)
var builder strings.Builder
builder.WriteString("\xEF\xBB\xBF") //写入UTF-8 BOM 防止乱码
writer := csv.NewWriter(&builder)
writer.Write([]string{"团队角色盘点"})
writer.Write([]string{"序号", "工号", "姓名", "行政组织", "第一角色", "第二角色", "第三角色", "第四角色"})
for i, v := range testPageList {
var scvBody []string
xuHao := strconv.Itoa(i + 1)
scvBody = append(scvBody, xuHao)
scvBody = append(scvBody, v...)
writer.Write(scvBody)
}
writer.Flush()
fileName := fmt.Sprintf("团队角色盘点_%v.csv", publicmethod.GetUUid(1))
c.Writer.Header().Add("Content-type", "application/octet-stream")
c.Header("Content-Type", "application/vnd.ms-excel;charset=utf8")
c.Header("Content-Disposition", "attachment; filename="+url.PathEscape(fileName))
// c.Header("Content-Disposition", "attachment; filename=团队角色盘点.csv")
c.Header("Content-Transfer-Encoding", "binary")
c.Writer.Write([]byte(builder.String()))
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-13 10:30:19
@ 功能: 获取人员九型性格数据
*/
func GetPeopleNineData(user []modelshr.PersonArchives) (list [][]string) {
if len(user) < 1 {
return
}
var numAry []string
for _, v := range user {
numAry = append(numAry, v.Number)
}
var xgAry []personalitycolor.Charcolortest
overall.CONSTANT_DB_Color.Model(&personalitycolor.Charcolortest{}).Where("`c_class` = ? AND `c_number` IN ?", 10000003, numAry).Find(&xgAry)
for i := 0; i < len(xgAry); i++ {
if xgAry[i].TestJson != "" {
var testPage JieShouDaaning
err := json.Unmarshal([]byte(xgAry[i].TestJson), &testPage)
if err == nil {
scoreForEachItem := CalculateScoresForEachItem(testPage)
sort.Slice(scoreForEachItem, func(i, j int) bool {
return scoreForEachItem[i].Value > scoreForEachItem[j].Value
})
var itemList []string
number, name, org := GetUserName(xgAry[i].Number, user)
itemList = append(itemList, number)
itemList = append(itemList, name)
itemList = append(itemList, org)
for j := 0; j < 4; j++ {
itemList = append(itemList, scoreForEachItem[j].Attribute)
}
list = append(list, itemList)
}
}
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-13 11:17:14
@ 功能: 获取人员姓名
*/
func GetUserName(num string, user []modelshr.PersonArchives) (number, name, org string) {
for _, v := range user {
if v.Number == num {
number = num
name = v.Name
org = GetOrgInfo(v.AdminOrg)
return
}
}
return
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-14 10:31:36
@ 功能: 获取行政组织
*/
func GetOrgInfo(orgId int64) string {
var fatherOrg publicmethod.GetOrgAllParent
fatherOrg.GetOrgAllFatherId(orgId, 4)
var orgName []string
orgIdLen := len(fatherOrg.Id)
if orgIdLen > 0 {
for i := orgIdLen - 1; i >= 0; i-- {
if fatherOrg.Id[i] != 0 {
var orgInfo modelshr.AdministrativeOrganization
orgInfo.GetCont(map[string]interface{}{"`id`": fatherOrg.Id[i]}, "`name`")
if orgInfo.Name != "" {
orgName = append(orgName, orgInfo.Name)
}
}
}
}
if len(orgName) > 0 {
return strings.Join(orgName, "/")
}
return ""
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-13 10:49:43
@ 功能: 计算各项得分
*/
func CalculateScoresForEachItem(testPage JieShouDaaning) (ScoreForEachItem []Character) {
PL := 0
RI := 0
CO := 0
SH := 0
ME := 0
TW := 0
IM := 0
CF := 0
SP := 0
DR := 0
for _, v := range testPage.List {
for _, av := range v.Answer {
// fmt.Printf("PL:%v\n", av.Attribute)
switch av.Attribute {
case "PL":
// fmt.Printf("PL:%v\n", av.Value)
PL = PL + av.Value
case "RI":
RI = RI + av.Value
case "CO":
CO = CO + av.Value
case "SH":
SH = SH + av.Value
case "ME":
ME = ME + av.Value
case "TW":
TW = TW + av.Value
case "IM":
IM = IM + av.Value
case "CF":
CF = CF + av.Value
case "SP":
SP = SP + av.Value
case "DR":
DR = DR + av.Value
default:
}
}
}
var itemScorePL Character
itemScorePL.Title = "PL"
itemScorePL.Attribute = "创新智多星"
itemScorePL.Value = PL
ScoreForEachItem = append(ScoreForEachItem, itemScorePL)
var itemScoreRI Character
itemScoreRI.Title = "RI"
itemScoreRI.Attribute = "资源调查员"
itemScoreRI.Value = RI
ScoreForEachItem = append(ScoreForEachItem, itemScoreRI)
var itemScoreCO Character
itemScoreCO.Title = "CO"
itemScoreCO.Attribute = "协调者"
itemScoreCO.Value = CO
ScoreForEachItem = append(ScoreForEachItem, itemScoreCO)
var itemScoreSH Character
itemScoreSH.Title = "SH"
itemScoreSH.Attribute = "鞭策者"
itemScoreSH.Value = SH
ScoreForEachItem = append(ScoreForEachItem, itemScoreSH)
var itemScoreME Character
itemScoreME.Title = "ME"
itemScoreME.Attribute = "监督评论员"
itemScoreME.Value = ME
ScoreForEachItem = append(ScoreForEachItem, itemScoreME)
var itemScoreTW Character
itemScoreTW.Title = "TW"
itemScoreTW.Attribute = "凝聚者"
itemScoreTW.Value = TW
ScoreForEachItem = append(ScoreForEachItem, itemScoreTW)
var itemScoreIM Character
itemScoreIM.Title = "IM"
itemScoreIM.Attribute = "实干家"
itemScoreIM.Value = IM
ScoreForEachItem = append(ScoreForEachItem, itemScoreIM)
var itemScoreCF Character
itemScoreCF.Title = "CF"
itemScoreCF.Attribute = "善始善终者"
itemScoreCF.Value = CF
ScoreForEachItem = append(ScoreForEachItem, itemScoreCF)
var itemScoreSP Character
itemScoreSP.Title = "SP"
itemScoreSP.Attribute = "专家"
itemScoreSP.Value = SP
ScoreForEachItem = append(ScoreForEachItem, itemScoreSP)
var itemScoreDR Character
itemScoreDR.Title = "DR"
itemScoreDR.Attribute = "DR"
itemScoreDR.Value = DR
ScoreForEachItem = append(ScoreForEachItem, itemScoreDR)
return
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-19 14:17:00
@ 功能: 下载人格测试状态
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) StatisticsPersonality(c *gin.Context) {
var requestData CharacterStatis
c.ShouldBindJSON(&requestData)
if requestData.Typekey == "" {
requestData.Typekey = "10000001"
}
keywords := c.Query("keywords")
adminorg := c.Query("org")
typekey := c.Query("typekey")
types := c.Query("types")
typesInt, _ := strconv.Atoi(types)
var xgNumber []string
overall.CONSTANT_DB_Color.Model(&personalitycolor.Charcolortest{}).Distinct("`c_number`").Where("`c_class` = ?", typekey).Find(&xgNumber)
var peopleList []modelshr.PersonArchives
goormDb := overall.CONSTANT_DB_HrInside.Model(&modelshr.PersonArchives{}).Select("`number`,`name`,`company`,`maindeparment`,`admin_org`").Where("`emp_type` BETWEEN 1 AND 10")
if keywords != "undefined" && keywords != "" {
goormDb = goormDb.Where("`name` LIKE ? OR `number` LIKE ?", "%"+keywords+"%", "%"+keywords+"%")
}
if adminorg != "undefined" && adminorg != "0" && adminorg != "" {
adminorgInt, _ := strconv.ParseInt(adminorg, 10, 64)
var sunOrg publicmethod.GetOrgAllParent
sunOrg.GetOrgSun(adminorgInt)
sunOrg.Id = append(sunOrg.Id, adminorgInt)
if len(sunOrg.Id) > 0 {
goormDb = goormDb.Where("`admin_org` IN ?", sunOrg.Id)
}
}
err := goormDb.Find(&peopleList).Error
if err != nil || len(peopleList) < 1 {
c.String(c.Writer.Status(), "没有查询到数据")
return
}
// return
var builder strings.Builder
builder.WriteString("\xEF\xBB\xBF") //写入UTF-8 BOM 防止乱码
writer := csv.NewWriter(&builder)
if typesInt == 2 {
writer.Write([]string{"已完成测试人员名单"})
} else {
writer.Write([]string{"未完成测试人员名单"})
}
writer.Write([]string{"序号", "工号", "姓名", "行政组织"})
jibuqi := 0
for _, v := range peopleList {
if typesInt == 2 {
if publicmethod.IsInTrue[string](v.Number, xgNumber) {
var scvBody []string
jibuqi++
xuHao := strconv.Itoa(jibuqi)
scvBody = append(scvBody, xuHao)
scvBody = append(scvBody, v.Number)
scvBody = append(scvBody, v.Name)
scvBody = append(scvBody, jisuanOrg(v.Company, v.MainDeparment, v.AdminOrg))
writer.Write(scvBody)
}
} else {
if !publicmethod.IsInTrue[string](v.Number, xgNumber) {
var scvBody []string
jibuqi++
xuHao := strconv.Itoa(jibuqi)
scvBody = append(scvBody, xuHao)
scvBody = append(scvBody, v.Number)
scvBody = append(scvBody, v.Name)
scvBody = append(scvBody, jisuanOrg(v.Company, v.MainDeparment, v.AdminOrg))
writer.Write(scvBody)
}
}
}
writer.Flush()
fileName := fmt.Sprintf("未完成测试人员名单_%v.csv", publicmethod.GetUUid(1))
if typesInt == 2 {
fileName = fmt.Sprintf("已完成测试人员名单_%v.csv", publicmethod.GetUUid(1))
}
c.Writer.Header().Add("Content-type", "application/octet-stream")
c.Header("Content-Type", "application/vnd.ms-excel;charset=utf8")
c.Header("Content-Disposition", "attachment; filename="+url.PathEscape(fileName))
// c.Header("Content-Disposition", "attachment; filename=团队角色盘点.csv")
c.Header("Content-Transfer-Encoding", "binary")
c.Writer.Write([]byte(builder.String()))
// for _, v := range peopleList {
// }
// org = GetOrgInfo(v.AdminOrg)
// publicmethod.Result(0, xgNumber, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-19 15:20:31
@ 功能: 计算行政组织关系
*/
func jisuanOrg(company, deparment, org int64) string {
var orgList []string
if company != 0 {
var com modelshr.AdministrativeOrganization
// err := com.GetCont(map[string]interface{}{"`id`": company}, "`name`")
err := com.RedisCont(company)
if err == nil {
orgList = append(orgList, com.Name)
}
}
if deparment != 0 && deparment != company {
var depam modelshr.AdministrativeOrganization
// err := depam.GetCont(map[string]interface{}{"`id`": deparment}, "`name`")
err := depam.RedisCont(deparment)
if err == nil {
orgList = append(orgList, depam.Name)
}
}
if org != 0 && org != deparment && org != company {
var orgInfo modelshr.AdministrativeOrganization
// err := orgInfo.GetCont(map[string]interface{}{"`id`": org}, "`name`")
err := orgInfo.RedisCont(org)
if err == nil {
orgList = append(orgList, orgInfo.Name)
}
}
if len(orgList) > 0 {
return strings.Join(orgList, "/")
}
return ""
}

88
api/personalityTest/rongXin/type.go

@ -24,6 +24,92 @@ type PersonalityTestIn struct {
} }
type PersonalityTestOut struct { type PersonalityTestOut struct {
Tel string `json:"tel"` Tel string `json:"tel"`
Name string `json:"name"` MyName string `json:"myName"`
Address string `json:"address"` Address string `json:"address"`
} }
// 退出登录
type OutLogin struct {
PersonalityTestIn
PersonalityTestOut
}
// 试题提交
type RongXinTestPage struct {
}
// 接收答案
type JieShouDaan struct {
List []TestPageInfo `json:"list"`
}
// 试题内容
type TestPageInfo struct {
Problem string `json:"problem"` //题目
Answer []AnswerInfo `json:"answer"` //答案项
Pick string `json:"pick"` //题目
}
// 答案列表
type AnswerInfo struct {
Sort int `json:"sort"`
Title string `json:"title"`
Attribute string `json:"attribute"`
Value int `json:"value"`
}
// 性格色彩人员信息
type UserColorInfo struct {
Numbers string `json:"sort"` //300274,
Name string `json:"name"` //郗传文,
Group string `json:"group"` //3,
Fenchang string `json:"fenchang"` //化产分厂,
Gongduan string `json:"gongduan"` //中控,
Zhiwu string `json:"zhiwu"` //值长,
Banzu string `json:"banzu"` //甲班,
Watchekey string `json:"watchekey"` //TianJingYunSheng,
Iconurl string `json:"iconurl"` //http string ``
Iconsmailurl string `json:"iconsmailurl"` //http string ``
Workbranch string `json:"workbranch"` //
Gangwei string `json:"gangwei"` //值长
}
type Indicator struct {
Text string `json:"text"` //
Max int `json:"max"` //
}
// 接收答案
type JieShouDaaning struct {
Code int64 `json:"code"` //
List []TestPageInfos `json:"list"`
}
// 试题内容
type TestPageInfos struct {
Problem string `json:"problem"` //题目
Answer []AnswerInfo `json:"answer"` //答案项
Pick bool `json:"pick"` //题目
}
// 搜索人员信息
type SearchPeopleList struct {
KeyWords string `json:"keywords"` //题目
AdminOrg int `json:"adminorg"` //题目
EmpType []string `json:"emptype"` //题目
}
// 计算性格分数
type Character struct {
Title string `json:"title"`
Attribute string `json:"attribute"`
Value int `json:"value"`
}
// 下载性格统计参数
type CharacterStatis struct {
Types int `json:"types"`
Org string `json:"org"`
Keywords string `json:"keywords"`
Typekey string `json:"typekey"`
}

4
api/shiyan/maptostruct/shiyan.go

@ -766,10 +766,10 @@ func (a *ApiMethod) AppSm4(c *gin.Context) {
sendInfo["jiaMi"] = jiaMi sendInfo["jiaMi"] = jiaMi
sendInfo["jiaMiErr"] = err sendInfo["jiaMiErr"] = err
jieMi, err := publicmethod.SM4Decrypt(jiaMi) jieMi, err := publicmethod.SM4Decrypt(jiaMi)
sendInfo["jieMi"] = jieMi sendInfo["jieMi"] = string(jieMi)
sendInfo["jieMiErr"] = err sendInfo["jieMiErr"] = err
var jsonInfo PersonalityTestIn var jsonInfo PersonalityTestIn
json.Unmarshal([]byte(jieMi), &jsonInfo) json.Unmarshal(jieMi, &jsonInfo)
sendInfo["jsonInfo"] = jsonInfo sendInfo["jsonInfo"] = jsonInfo
publicmethod.Result(0, sendInfo, c) publicmethod.Result(0, sendInfo, c)
} }

97
api/version1/customerApp/appControll.go

@ -1127,7 +1127,7 @@ func (a *ApiMethod) EditAppPageInfo(c *gin.Context) {
return return
} }
var customerFormCont modelAppPlatform.CustomerForm var customerFormCont modelAppPlatform.CustomerForm
err = customerFormCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`tablename`", "`signCode`") err = customerFormCont.GetCont(map[string]interface{}{"`id`": requestData.Id}, "`tablename`", "`signCode`", "`classify`", "`listjson`")
if err != nil { if err != nil {
publicmethod.Result(107, err, c) publicmethod.Result(107, err, c)
return return
@ -1145,6 +1145,14 @@ func (a *ApiMethod) EditAppPageInfo(c *gin.Context) {
} }
groupId, _ := strconv.ParseInt(formJsonCont.Config.GroupKey, 10, 64) groupId, _ := strconv.ParseInt(formJsonCont.Config.GroupKey, 10, 64)
mainData["`groupid`"] = groupId mainData["`groupid`"] = groupId
if customerFormCont.Classify == 4 && customerFormCont.ListJson != "" {
listjson, isTrue := ListFields(customerFormCont.ListJson, formJsonCont.List)
if isTrue {
mainData["`listjson`"] = listjson
}
// fmt.Printf("searchMap-->%v\n", searchMap)
}
customerFormCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, mainData) customerFormCont.EiteCont(map[string]interface{}{"`id`": requestData.Id}, mainData)
versionData := publicmethod.MapOut[string]() versionData := publicmethod.MapOut[string]()
versionData["`mastesform`"] = requestData.Data versionData["`mastesform`"] = requestData.Data
@ -1163,6 +1171,93 @@ func (a *ApiMethod) EditAppPageInfo(c *gin.Context) {
publicmethod.Result(0, err, c) publicmethod.Result(0, err, c)
} }
/*
*
@ 作者: 秦东
@ 时间: 2024-09-14 08:33:50
@ 功能: 处理列表字段名称变更
*/
func ListFields(list string, ComponentList []customerform.MasterStruct) (listString string, isTrue bool) {
if list == "" {
isTrue = false
return
}
var searchMap map[string]interface{}
json.Unmarshal([]byte(list), &searchMap)
if searchData, isOk := searchMap["searchData"]; isOk {
if searchDataAry, isOk := searchData.([]interface{}); isOk {
var fileAry []interface{}
for _, v := range searchDataAry {
// WordToFile(v,ComponentList)
fileAry = append(fileAry, WordToFile(v, ComponentList))
}
searchMap["searchData"] = fileAry
}
}
if tableData, isOk := searchMap["tableData"]; isOk {
if tableMap, isOk := tableData.(map[string]interface{}); isOk {
tableMapInfo := publicmethod.MapOut[string]()
if columns, isOk := tableMap["columns"]; isOk {
fmt.Printf("搜索列表字段-1->%T-->%v\n", columns, columns)
if columnsAry, isOk := columns.([]interface{}); isOk {
var fileTableAry []interface{}
for _, v := range columnsAry {
fileTableAry = append(fileTableAry, WordToFile(v, ComponentList))
}
tableMapInfo["columns"] = fileTableAry
}
}
if config, isOk := tableMap["config"]; isOk {
tableMapInfo["config"] = config
}
if controlBtn, isOk := tableMap["controlBtn"]; isOk {
tableMapInfo["controlBtn"] = controlBtn
}
if operateBtn, isOk := tableMap["operateBtn"]; isOk {
tableMapInfo["operateBtn"] = operateBtn
}
searchMap["tableData"] = tableMapInfo
}
}
fileAryJson, _ := json.Marshal(searchMap)
fmt.Printf("搜索列表字段-7->%T-->%v\n", fileAryJson, string(fileAryJson))
listString = string(fileAryJson)
isTrue = true
return
}
/*
*
@ 作者: 秦东
@ 时间: 2024-09-14 08:46:39
@ 功能: 字段比对
*/
func WordToFile(filedInfo interface{}, ComponentList []customerform.MasterStruct) interface{} {
// var fileName string
// filedMap := publicmethod.MapOut[string]()
if filedMap, isOk := filedInfo.(map[string]interface{}); isOk {
if fileNames, isok := filedMap["id"]; isok {
if fliedString, isOk := fileNames.(string); isOk {
// fileName = fliedString
// fmt.Printf("搜索列表字段-4->%T-->%v\n", fileName, fileName)
for _, v := range ComponentList {
if v.Name == fliedString {
// fmt.Printf("搜索列表字段-5->%T-->%v\n", v.Item.Label, v.Item.Label)
filedMap["label"] = v.Item.Label
}
}
// fmt.Printf("搜索列表字段-6->%T-->%v\n", filedMap, filedMap)
return filedMap
}
}
}
return filedInfo
}
/* /*
* *
@ 作者: 秦东 @ 作者: 秦东

1
api/version1/customerform/codeFormGroup.go

@ -166,6 +166,7 @@ func (a *ApiMethod) CustomerFormGroupList(c *gin.Context) {
sort.Slice(groupList, func(i, j int) bool { sort.Slice(groupList, func(i, j int) bool {
return groupList[i].Sort < groupList[j].Sort return groupList[i].Sort < groupList[j].Sort
}) })
// publicmethod.Result(0, groupList, c) // publicmethod.Result(0, groupList, c)
publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(groupList)), groupList, c) publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(groupList)), groupList, c)
} }

152
api/version1/customerform/formTable.go

@ -1925,3 +1925,155 @@ func (a *ApiMethod) GainListTableField(c *gin.Context) {
publicmethod.Result(0, sendTableList, c) publicmethod.Result(0, sendTableList, c)
} }
/*
*
@ 作者: 秦东
@ 时间: 2024-09-13 14:18:47
@ 功能: 根据版本Id获取相应的表单结构
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func (a *ApiMethod) GainTableVersionField(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(1, err, c, "未知表单!无法获取字段!")
return
}
var version modelAppPlatform.CustomerFormVersion
version.GetCont(map[string]interface{}{"`id`": requestData.Id})
sendTableList := publicmethod.MapOut[string]()
var tableMaster modelAppPlatform.CustomerForm
tableMaster.GetCont(map[string]interface{}{"`tablename`": version.TableKey}, "`name`")
sendTableList["masterTableName"] = tableMaster.Name
masterTable, _ := GainFormTableField(version.TableKey)
if version.MastesFormJson != "" {
var unitCont map[string]interface{}
json.Unmarshal([]byte(version.MastesFormJson), &unitCont)
var formFieldAry FormJsonFieldInfo
if list, ok := unitCont["list"]; ok {
if listAry, ok := list.([]interface{}); ok {
formFieldAry.AnalyzingFormJson("", listAry)
}
}
if len(formFieldAry.MasterInfo) > 0 {
sendTableList["masterTable"] = TableFieldCompareForm(masterTable, formFieldAry.MasterInfo)
} else {
sendTableList["masterTablesss"] = masterTable
}
} else {
sendTableList["masterTablesss"] = masterTable
}
if version.TableStructure != "" {
var sunTable map[string]interface{}
err = json.Unmarshal([]byte(version.TableStructure), &sunTable)
if err == nil {
sunTableMap := publicmethod.MapOut[string]()
for _, v := range sunTable { //遍历子表单名称
if vStr, ok := v.(string); ok {
sunTableMap[vStr], err = GainFormTableField(vStr)
}
}
sendTableList["sunTable"] = sunTableMap
}
}
publicmethod.Result(0, sendTableList, c)
}
/*
*
@ 作者: 秦东
@ 时间: 2024-03-25 09:01:12
@ 功能: 表单数据对照
@ 参数
#
@ 返回值
#
@ 方法原型
#
*/
func TableFieldCompareForm(tableFieldList []Result, jsonFieldList []FormFieldInfo) (fieldList []Result) {
tableFieldListsdf, _ := json.Marshal(tableFieldList)
jsonFieldListsdf, _ := json.Marshal(jsonFieldList)
fmt.Printf("\n======================1===============================\n")
fmt.Printf("tableFieldListsdf:%v\n", string(tableFieldListsdf))
fmt.Printf("jsonFieldListsdf:%v\n", string(jsonFieldListsdf))
fmt.Printf("\n======================1===============================\n")
if len(tableFieldList) > 0 {
for _, v := range tableFieldList {
// if v.Field == "_lableTitle" {
// fieldList = append(fieldList, v)
// } else {
// }
switch v.Field {
case "_lableTitle":
fieldList = append(fieldList, v)
case "id":
fieldList = append(fieldList, v)
case "masters_key":
fieldList = append(fieldList, v)
case "creater":
fieldList = append(fieldList, v)
case "creater_time":
fieldList = append(fieldList, v)
case "edit_time":
fieldList = append(fieldList, v)
case "flow_id":
fieldList = append(fieldList, v)
case "states":
fieldList = append(fieldList, v)
case "flowIsOpen":
fieldList = append(fieldList, v)
default:
formKey := TableFormAttributeForm(v, jsonFieldList)
if formKey.Field != "" {
fieldList = append(fieldList, formKey)
}
}
}
} else {
fieldList = tableFieldList
}
return
}
func TableFormAttributeForm(formField Result, tableFieldList []FormFieldInfo) (fieldInfo Result) {
fmt.Printf("formField.Field--->%v\n", formField.Field)
for _, v := range tableFieldList {
fmt.Printf("v.Field--->%v\n", v.Id)
if v.Id == formField.Field {
fieldInfo = formField
return
}
}
return
}

2
api/version1/workWechat/wechat.go

@ -159,7 +159,7 @@ func (a *ApiMethod) LookOnePeopleArchives(c *gin.Context) {
var orgList []string var orgList []string
sendData.Purview, _, orgList, sendData.Level = user.GetUserPower("appsystem", surverManInfo.Position, roleList) sendData.Purview, _, orgList, sendData.Level = user.GetUserPower("appsystem", surverManInfo.Position, roleList)
fmt.Printf("人员信息--->Purview:%v--->orgList:%v--->Level:%v\n", sendData.Purview, orgList, sendData.Level) // fmt.Printf("人员信息--->Purview:%v--->orgList:%v--->Level:%v\n", sendData.Purview, orgList, sendData.Level)
if publicmethod.IsInTrue[string]("210700510225772544", sendData.Purview) { if publicmethod.IsInTrue[string]("210700510225772544", sendData.Purview) {
//获取被查看人行政组织 //获取被查看人行政组织

12
apirouter/personalityAssessment/rongxin.go

@ -15,5 +15,17 @@ func (a *ApiRouter) RouterGroup(router *gin.RouterGroup) {
apiRouter.POST("login", methodBinding.Login) //登录(内部人员) apiRouter.POST("login", methodBinding.Login) //登录(内部人员)
apiRouter.POST("loginExternal", methodBinding.LoginExternal) //登录(内部人员) apiRouter.POST("loginExternal", methodBinding.LoginExternal) //登录(内部人员)
apiRouter.POST("loginOut", methodBinding.LoginOut) //退出
apiRouter.POST("submitDataRongXin", methodBinding.SubmitDataRongXin) //获取提交测试答案
apiRouter.POST("doesItExist", methodBinding.DoesItExist) //判断是否已经提交过试卷
apiRouter.POST("getUserDISCTest", methodBinding.GetUserDISCTest) //计算三次雷达图数
apiRouter.POST("getUserDISCTestSign", methodBinding.GetUserDISCTestSign) //计算三次雷达图数
apiRouter.POST("getManTest", methodBinding.GetManTest) //获取人物基础信息
apiRouter.POST("submitTestPageAnswer", methodBinding.SubmitTestPageAnswer) //提交性格答案
apiRouter.POST("nineResult", methodBinding.NineResult) //九型人格测试结果
apiRouter.POST("nineResultToken", methodBinding.NineResultToken) //九型人格测试结果
apiRouter.POST("downLoadNineTestPage", methodBinding.DownLoadNineTestPage) //下载九型人格测试结果
apiRouter.GET("downLoadNineTestPage", methodBinding.DownLoadNineTestPage) //下载九型人格测试结果
apiRouter.GET("statisticsPersonality", methodBinding.StatisticsPersonality) //下载人格测试状态
} }
} }

2
apirouter/v1/customerformrouter/router.go

@ -45,6 +45,8 @@ func (a *ApiRouter) RouterGroupPc(router *gin.RouterGroup) {
apiRouter.POST("gainFormTableField", methodBinding.GainFormTableField) //获取表格字段 apiRouter.POST("gainFormTableField", methodBinding.GainFormTableField) //获取表格字段
apiRouter.POST("gainTableField", methodBinding.GainTableField) //获取数据库表字段 apiRouter.POST("gainTableField", methodBinding.GainTableField) //获取数据库表字段
apiRouter.POST("gainTableVersionField", methodBinding.GainTableVersionField) //根据版本Id获取相应的表单结构
apiRouter.POST("editCustomerFormList", methodBinding.EditCustomerFormList) //编辑自定义表单列表数据 apiRouter.POST("editCustomerFormList", methodBinding.EditCustomerFormList) //编辑自定义表单列表数据
apiRouter.POST("gainFormListCont", methodBinding.GainFormListCont) //获取表单列表数据 apiRouter.POST("gainFormListCont", methodBinding.GainFormListCont) //获取表单列表数据

4
config/configDatabase/database.go

@ -32,7 +32,9 @@ type MysqlSetUp struct {
TidbrMaster MasterMysqlSetUp `mapstructure:"tidbrmaster" json:"tidbrmaster" yaml:"tidbrmaster"` //仓储系统数据库 TidbrMaster MasterMysqlSetUp `mapstructure:"tidbrmaster" json:"tidbrmaster" yaml:"tidbrmaster"` //仓储系统数据库
CustomerForm MasterMysqlSetUp `mapstructure:"customerFormDatabase" json:"customerFormDatabase" yaml:"customerFormDatabase"` //自定义表单数据库 CustomerForm MasterMysqlSetUp `mapstructure:"customerFormDatabase" json:"customerFormDatabase" yaml:"customerFormDatabase"` //自定义表单数据库
FlowLogDatabase MasterMysqlSetUp `mapstructure:"flowLogDatabase" json:"flowLogDatabase" yaml:"flowLogDatabase"` //工作流记录 FlowLogDatabase MasterMysqlSetUp `mapstructure:"flowLogDatabase" json:"flowLogDatabase" yaml:"flowLogDatabase"` //工作流记录
ReviseFormData MasterMysqlSetUp `mapstructure:"reviseFormData" json:"reviseFormData" yaml:"reviseFormData"` //工作流记录 ReviseFormData MasterMysqlSetUp `mapstructure:"reviseFormData" json:"reviseFormData" yaml:"reviseFormData"`
PersonalityColor MasterMysqlSetUp `mapstructure:"charactercolor" json:"charactercolor" yaml:"charactercolor"` //性格色彩
HrDatabaseInside MasterMysqlSetUp `mapstructure:"hrdatabaseinside" json:"hrdatabaseinside" yaml:"hrdatabaseinside"` //内网Hr数据库
} }
type MasterMysqlSetUp struct { type MasterMysqlSetUp struct {

10
go.mod

@ -7,8 +7,6 @@ require (
github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425 github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425
github.com/fsnotify/fsnotify v1.7.0 github.com/fsnotify/fsnotify v1.7.0
github.com/gin-gonic/gin v1.9.1 github.com/gin-gonic/gin v1.9.1
github.com/golang-module/carbon v1.7.3
github.com/google/uuid v1.4.0
github.com/gorilla/websocket v1.5.3 github.com/gorilla/websocket v1.5.3
github.com/mitchellh/mapstructure v1.5.0 github.com/mitchellh/mapstructure v1.5.0
github.com/mozillazg/go-pinyin v0.20.0 github.com/mozillazg/go-pinyin v0.20.0
@ -16,6 +14,7 @@ require (
github.com/robfig/cron/v3 v3.0.1 github.com/robfig/cron/v3 v3.0.1
github.com/sirupsen/logrus v1.9.3 github.com/sirupsen/logrus v1.9.3
github.com/spf13/viper v1.16.0 github.com/spf13/viper v1.16.0
github.com/tjfoc/gmsm v1.4.1
gopkg.in/ini.v1 v1.67.0 gopkg.in/ini.v1 v1.67.0
gorm.io/driver/mysql v1.5.2 gorm.io/driver/mysql v1.5.2
gorm.io/gorm v1.25.5 gorm.io/gorm v1.25.5
@ -32,14 +31,10 @@ require (
github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.14.0 // indirect github.com/go-playground/validator/v10 v10.14.0 // indirect
github.com/go-sql-driver/mysql v1.7.1 // indirect github.com/go-sql-driver/mysql v1.7.1 // indirect
github.com/gobuffalo/envy v1.7.0 // indirect
github.com/gobuffalo/packd v0.3.0 // indirect
github.com/gobuffalo/packr v1.30.1 // indirect
github.com/goccy/go-json v0.10.2 // indirect github.com/goccy/go-json v0.10.2 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jinzhu/now v1.1.5 // indirect github.com/jinzhu/now v1.1.5 // indirect
github.com/joho/godotenv v1.3.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/leodido/go-urn v1.2.4 // indirect github.com/leodido/go-urn v1.2.4 // indirect
@ -48,18 +43,15 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/rogpeppe/go-internal v1.11.0 // indirect
github.com/spf13/afero v1.11.0 // indirect github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.6.0 // indirect github.com/spf13/cast v1.6.0 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.6.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect
github.com/tjfoc/gmsm v1.4.1 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect github.com/ugorji/go/codec v1.2.11 // indirect
golang.org/x/arch v0.3.0 // indirect golang.org/x/arch v0.3.0 // indirect
golang.org/x/crypto v0.16.0 // indirect golang.org/x/crypto v0.16.0 // indirect
golang.org/x/mod v0.9.0 // indirect
golang.org/x/net v0.19.0 // indirect golang.org/x/net v0.19.0 // indirect
golang.org/x/sys v0.15.0 // indirect golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect golang.org/x/text v0.14.0 // indirect

56
go.sum

@ -1,6 +1,5 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
@ -14,10 +13,6 @@ github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhD
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@ -31,7 +26,6 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425 h1:XTvBOk+EFcon1fL8gzFRN2N7jGvc2QGZMqWF+evZT10= github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425 h1:XTvBOk+EFcon1fL8gzFRN2N7jGvc2QGZMqWF+evZT10=
github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425/go.mod h1:zsseaaJleMl86IDc9evuQx6gJYfdG0kW67+MTVxwTAU= github.com/flipped-aurora/gin-vue-admin/server v0.0.0-20231212025023-e0a8e9370425/go.mod h1:zsseaaJleMl86IDc9evuQx6gJYfdG0kW67+MTVxwTAU=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
@ -50,18 +44,8 @@ github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QX
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI= github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU=
github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=
github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs=
github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4=
github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q=
github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg=
github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk=
github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw=
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
github.com/golang-module/carbon v1.7.3 h1:p5mUZj7Tg62MblrkF7XEoxVPvhVs20N/kimqsZOQ+/U=
github.com/golang-module/carbon v1.7.3/go.mod h1:nUMnXq90Rv8a7h2+YOo2BGKS77Y0w/hMPm4/a8h19N8=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@ -81,41 +65,27 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -125,7 +95,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mozillazg/go-pinyin v0.20.0 h1:BtR3DsxpApHfKReaPO1fCqF4pThRwH9uwvXzm+GnMFQ= github.com/mozillazg/go-pinyin v0.20.0 h1:BtR3DsxpApHfKReaPO1fCqF4pThRwH9uwvXzm+GnMFQ=
github.com/mozillazg/go-pinyin v0.20.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc= github.com/mozillazg/go-pinyin v0.20.0/go.mod h1:iR4EnMMRXkfpFVV5FMi4FNB6wGq9NV6uDWbUuPhP4Yc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@ -135,32 +104,20 @@ github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0
github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=
github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
@ -178,16 +135,12 @@ github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE= github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
@ -196,8 +149,6 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@ -211,11 +162,8 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@ -231,7 +179,6 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
@ -251,13 +198,10 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

14
initialization/databaseinit/mysql.go

@ -161,4 +161,18 @@ func LoadDatabase() {
} else { } else {
fmt.Printf("%v:数据库开启成功!服务器\n", sqlConfig.ReviseFormData.Name) fmt.Printf("%v:数据库开启成功!服务器\n", sqlConfig.ReviseFormData.Name)
} }
//性格色彩
overall.CONSTANT_DB_Color = sqlConfig.PersonalityColor.OpenSql()
if overall.CONSTANT_DB_Color == nil {
fmt.Printf("%v:数据库开启失败!服务器\n", sqlConfig.PersonalityColor.Name)
} else {
fmt.Printf("%v:数据库开启成功!服务器\n", sqlConfig.PersonalityColor.Name)
}
//内网hr数据库
overall.CONSTANT_DB_HrInside = sqlConfig.HrDatabaseInside.OpenSql()
if overall.CONSTANT_DB_HrInside == nil {
fmt.Printf("%v:数据库开启失败!服务器\n", sqlConfig.HrDatabaseInside.Name)
} else {
fmt.Printf("%v:数据库开启成功!服务器\n", sqlConfig.HrDatabaseInside.Name)
}
} }

2
models/modelAppPlatform/userInfoDownTemplate.go

@ -33,7 +33,7 @@ type UserInfoDownTemplate struct {
} }
func (UserInfoDownTemplate *UserInfoDownTemplate) TableName() string { func (UserInfoDownTemplate *UserInfoDownTemplate) TableName() string {
return "UserInfoDownTemplate" return "userInfoDownTemplate"
} }
// 编辑内容 // 编辑内容

23
models/modelshr/administrative_organization.go

@ -1,7 +1,10 @@
package modelshr package modelshr
import ( import (
"appPlatform/middleware/grocerystore"
"appPlatform/overall" "appPlatform/overall"
"encoding/json"
"fmt"
"strings" "strings"
) )
@ -61,3 +64,23 @@ func (cont *AdministrativeOrganization) ContMap(whereMap interface{}, field ...s
gormDb.Where(whereMap).Find(&countAry) gormDb.Where(whereMap).Find(&countAry)
return return
} }
// 根据ID获取行政组织内容
func (cont *AdministrativeOrganization) RedisCont(orgId int64) (err error) {
redisFileKey := fmt.Sprintf("org:Info:%v_%v", orgId, overall.CONSTANT_CONFIG.RedisPrefixStr.Alias)
redisClient := grocerystore.RunRedis(overall.CONSTANT_REDIS4) //设定redis库
isTrue, tokens := redisClient.Get(redisFileKey)
if isTrue && tokens != "" {
err = json.Unmarshal([]byte(tokens), &cont)
return
} else {
var jsonStr []byte
err = overall.CONSTANT_DB_HR.Model(&cont).Where("`id` = ?", orgId).First(&cont).Error
if err == nil {
redisClient.SetRedisTime(0)
jsonStr, err = json.Marshal(cont)
redisClient.Set(redisFileKey, string(jsonStr))
}
}
return
}

52
models/personalityColor/charcolortest.go

@ -0,0 +1,52 @@
package personalitycolor
import (
"appPlatform/overall"
"strings"
)
// 授权账户
type Charcolortest struct {
Id int64 `json:"id" gorm:"primaryKey;column:c_id;type:bigint(20) unsigned;not null;comment:Id;index"`
Class int64 `json:"class" gorm:"column:c_class;type:bigint(20) unsigned;default:0;not null;comment:测试试卷类型"`
Types int `json:"types" gorm:"column:c_type;type:int(1) unsigned;default:1;not null;comment:1:内部测试;2:外部测试"`
Number string `json:"number" gorm:"column:c_number;type:varchar(10) unsigned;not null;comment:工号"`
Name string `json:"name" gorm:"column:c_name;type:varchar(50) unsigned;not null;comment:姓名"`
Department string `json:"department" gorm:"column:c_department;type:varchar(255) unsigned;not null;comment:部门"`
Tel string `json:"tel" gorm:"column:c_tel;type:varchar(50) unsigned;not null;comment:联系电话"`
Address string `json:"address" gorm:"column:c_address;type:varchar(255) unsigned;not null;comment:联系地址"`
UserJson string `json:"userJson" gorm:"column:c_user_json;type:text unsigned;comment:内部员工详细信息"`
TestJson string `json:"testJson" gorm:"column:c_test_json;type:mediumtext unsigned;comment:试卷答案"`
Time int64 `json:"addtime" gorm:"column:c_add_time;type:bigint(20) unsigned;default:0;not null;comment:写入时间"`
EiteTime int64 `json:"eitetime" gorm:"column:c_eite_time;type:bigint(20) unsigned;default:0;not null;comment:编辑时间"`
State int `json:"c_states" gorm:"column:c_states;type:int(1) unsigned;default:1;not null;comment:1:有效;2:无效"`
BranchName string `json:"branchName" gorm:"column:c_branch_name;type:varchar(255) unsigned;not null;comment:部门"`
}
func (Position *Charcolortest) TableName() string {
return "charcolortest"
}
// 编辑职务分类内容
func (cont *Charcolortest) EiteCont(whereMap interface{}, saveData map[string]interface{}) (err error) {
err = overall.CONSTANT_DB_Color.Model(&cont).Where(whereMap).Updates(saveData).Error
return
}
// 获取行政组织内容
func (cont *Charcolortest) GetCont(whereMap interface{}, field ...string) (err error) {
gormDb := overall.CONSTANT_DB_Color.Model(&cont)
if len(field) > 0 {
fieldStr := strings.Join(field, ",")
gormDb = gormDb.Select(fieldStr)
}
gormDb = gormDb.Where(whereMap)
err = gormDb.First(&cont).Error
return
}
// 根据条件获取总数
func (cont *Charcolortest) CountCont(whereMap interface{}) (countId int64) {
overall.CONSTANT_DB_Color.Model(&cont).Where(whereMap).Count(&countId)
return
}

3
overall/appConfig.go

@ -49,6 +49,9 @@ var (
CONSTANT_DB_Server *gorm.DB //线上数据库 CONSTANT_DB_Server *gorm.DB //线上数据库
CONSTANT_DB_Tidb *gorm.DB //私有云数据库 CONSTANT_DB_Tidb *gorm.DB //私有云数据库
CONSTANT_DB_Color *gorm.DB //私有云数据库
CONSTANT_DB_HrInside *gorm.DB //内网HR
//Redis //Redis
CONSTANT_REDIS0 *redis.Client CONSTANT_REDIS0 *redis.Client
CONSTANT_REDIS1 *redis.Client CONSTANT_REDIS1 *redis.Client

11
overall/publicmethod/sm4.go

@ -5,7 +5,6 @@ import (
"bytes" "bytes"
"crypto/cipher" "crypto/cipher"
"encoding/hex" "encoding/hex"
"fmt"
"strings" "strings"
"github.com/tjfoc/gmsm/sm4" "github.com/tjfoc/gmsm/sm4"
@ -44,7 +43,7 @@ func SM4Encrypt(data string, key ...string) (string, error) {
keySm4 := []byte(SM4Key) keySm4 := []byte(SM4Key)
//实例化sm4加密对象 //实例化sm4加密对象
block, err := sm4.NewCipher(keySm4) block, err := sm4.NewCipher(keySm4)
fmt.Printf("block:%v=====>%v\n", err, string(keySm4)) // fmt.Printf("block:%v=====>%v\n", err, string(keySm4))
if err != nil { if err != nil {
return "1", err return "1", err
} }
@ -101,7 +100,7 @@ func unPaddingLastGroup(plainText []byte) []byte {
# #
*/ */
func SM4Decrypt(data string, key ...string) (string, error) { func SM4Decrypt(data string, key ...string) ([]byte, error) {
SM4Key := overall.CONSTANT_CONFIG.Appsetup.AppKey SM4Key := overall.CONSTANT_CONFIG.Appsetup.AppKey
if len(key) > 0 { if len(key) > 0 {
SM4Key = strings.Join(key, "-") SM4Key = strings.Join(key, "-")
@ -112,12 +111,12 @@ func SM4Decrypt(data string, key ...string) (string, error) {
keySm4 := []byte(SM4Key) keySm4 := []byte(SM4Key)
block, err := sm4.NewCipher(keySm4) block, err := sm4.NewCipher(keySm4)
if err != nil { if err != nil {
return "", err return []byte(""), err
} }
//使用hex解码 //使用hex解码
decodeString, err := hex.DecodeString(data) decodeString, err := hex.DecodeString(data)
if err != nil { if err != nil {
return "", err return []byte(""), err
} }
//CBC模式 优点:具有较好的安全性,能够隐藏明文的模式和重复性。 缺点:加密过程是串行的,不适合并行处理。 //CBC模式 优点:具有较好的安全性,能够隐藏明文的模式和重复性。 缺点:加密过程是串行的,不适合并行处理。
blockMode := cipher.NewCBCDecrypter(block, iv) blockMode := cipher.NewCBCDecrypter(block, iv)
@ -126,7 +125,7 @@ func SM4Decrypt(data string, key ...string) (string, error) {
//去掉明文后面的填充数据 //去掉明文后面的填充数据
plainText := unPaddingLastGroup(decodeString) plainText := unPaddingLastGroup(decodeString)
return string(plainText), nil return plainText, nil
} }
// 判断字符串长度,多余的删除,不足的补充 // 判断字符串长度,多余的删除,不足的补充

41
overall/publicmethod/technique.go

@ -2864,3 +2864,44 @@ func RemoveReservedWordTime(val string) bool {
reservedWord := []string{"datetimerange", "daterange", "monthrange"} reservedWord := []string{"datetimerange", "daterange", "monthrange"}
return IsInTrue[string](val, reservedWord) return IsInTrue[string](val, reservedWord)
} }
/*
*
@ 作者: 秦东
@ 时间: 2024-08-30 08:49:43
@ 功能: 输出班组
*/
func TeamidName(val int64) string {
switch val {
case 1:
return "长白班"
case 2:
return "甲班"
case 3:
return "乙班"
case 4:
return "丙班"
case 5:
return "丁班"
default:
return "未知"
}
return "未知"
}
func TeamidNameInt(val string) int64 {
switch val {
case "长白班":
return 1
case "甲班":
return 2
case "乙班":
return 3
case "丙班":
return 4
case "丁班":
return 5
default:
return 0
}
return 0
}

Loading…
Cancel
Save