package rongXinPage import ( "appPlatform/models/modelshr" personalitycolor "appPlatform/models/personalityColor" "appPlatform/overall" "appPlatform/overall/publicmethod" "encoding/json" "errors" "strconv" "strings" "time" "github.com/gin-gonic/gin" ) /* * @ 作者: 秦东 @ 时间: 2024-08-28 16:12:38 @ 功能: 登录(内部人员) @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) Login(c *gin.Context) { var requestData PersonalityTestIn err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, requestData, 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 // } var userCont modelshr.PersonArchives err = overall.CONSTANT_DB_HrInside.Model(&userCont).Select("`id`,`name`,`key`").Where("`number` = ?", requestData.Number).First(&userCont).Error // err = userCont.GetCont(map[string]interface{}{"`number`": requestData.Number}, "`id`", "`name`", "`key`") if err != nil || userCont.Id == 0 { publicmethod.Result(1, err, c, "对不起,数据库没有此工号的相关数据!请检查输入是否正确!") return } jsonStr, err := json.Marshal(requestData) if err != nil { publicmethod.Result(1, err, c, "对不起,数据库没有此工号的相关数据!请检查输入是否正确!") return } jiaMi, err := publicmethod.SM4Encrypt(string(jsonStr)) if err != nil { publicmethod.Result(1, err, c, "对不起,数据库没有此工号的相关数据!请检查输入是否正确!") return } sendInfo := publicmethod.MapOut[string]() sendInfo["sign"] = jiaMi publicmethod.Result(0, sendInfo, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-28 16:28:48 @ 功能: 外来人员性格测试 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) LoginExternal(c *gin.Context) { var requestData PersonalityTestOut err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Tel == "" { publicmethod.Result(1, err, c, "请输入联系电话!") return } if requestData.MyName == "" { publicmethod.Result(1, err, c, "请输入姓名!") return } if requestData.Address == "" { publicmethod.Result(1, err, c, "请输入联系地址!") return } jsonStr, err := json.Marshal(requestData) if err != nil { publicmethod.Result(1, err, c, "对不起,请检查输入是否正确!") return } jiaMi, err := publicmethod.SM4Encrypt(string(jsonStr)) if err != nil { publicmethod.Result(1, err, c, "对不起,请检查输入是否正确!") return } sendInfo := publicmethod.MapOut[string]() sendInfo["sign"] = jiaMi publicmethod.Result(0, sendInfo, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-29 11:08:43 @ 功能: 退出 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) LoginOut(c *gin.Context) { signCode := c.Request.Header.Get("sign") jiaMi, _ := publicmethod.SM4Decrypt(signCode) var singOut OutLogin json.Unmarshal(jiaMi, &singOut) publicmethod.Result(0, singOut, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-29 16:36:59 @ 功能: 获取提交测试答案 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) SubmitDataRongXin(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" && myCont.Tel == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number != "" { var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`number`": myCont.Number}, "`id`") if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } var colorInfo personalitycolor.Charcolortest colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": 10000002}, "`c_id`") if colorInfo.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } if myCont.Tel != "" { var colorInfoWai personalitycolor.Charcolortest colorInfoWai.GetCont(map[string]interface{}{"`c_tel`": myCont.Tel, "`c_class`": 10000002}, "`c_id`") if colorInfoWai.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } var requestData JieShouDaan c.ShouldBindJSON(&requestData) if len(requestData.List) < 1 { publicmethod.Result(1, requestData, c, "您未填写任何题目!不可提交") return } isTrue := true for _, v := range requestData.List { if v.Pick == "" { isTrue = false break } } if !isTrue { publicmethod.Result(1, err, c, "您还有未填写的题目!不可提交") return } creetTime := time.Now().Unix() var colorContent personalitycolor.Charcolortest colorContent.Class = 10000002 //测试试卷类型"` if myCont.Tel != "" { colorContent.Types = 2 //1:内部测试;2:外部测试` } else { colorContent.Types = 1 //1:内部测试;2:外部测试` } colorContent.Number = myCont.Number //工号"` colorContent.Name = myCont.Name //姓名"` colorContent.Department = myCont.Post //部门"` colorContent.Tel = myCont.Tel //联系电话"` colorContent.Address = myCont.Address //联系地址"` if myCont.Number != "" { colorContent.UserJson = UserContInfo(myCont) //内部员工详细信息"` } testPageJson, _ := json.Marshal(requestData) colorContent.TestJson = string(testPageJson) //试卷答案"` colorContent.Time = creetTime //写入时间"` colorContent.EiteTime = creetTime //编辑时间"` colorContent.State = 1 //状态(1:有效;2:无效)` colorContent.BranchName = myCont.Post //部门"` err = overall.CONSTANT_DB_Color.Create(&colorContent).Error if err != nil { publicmethod.Result(104, err, c) return } publicmethod.Result(0, err, c) } // 员工内部消息 func UserContInfo(myCont OutLogin) string { var userInfo modelshr.PersonArchives userInfo.GetCont(map[string]interface{}{"`number`": myCont.Number}) var usColor UserColorInfo usColor.Numbers = userInfo.Number // `json:"sort"` //300274, usColor.Name = userInfo.Name // `json:"name"` //郗传文, usColor.Group = strconv.FormatInt(userInfo.Company, 10) // `json:"group"` //3, if userInfo.MainDeparment != 0 { var fc modelshr.AdministrativeOrganization fc.GetCont(map[string]interface{}{"`id`": userInfo.MainDeparment}, "`name`") usColor.Fenchang = fc.Name // `json:"fenchang"` //, } if userInfo.AdminOrg != 0 { var gd modelshr.AdministrativeOrganization gd.GetCont(map[string]interface{}{"`id`": userInfo.AdminOrg}, "`name`") usColor.Gongduan = gd.Name // `json:"fenchang"` //, } if userInfo.Position != 0 { var gd modelshr.Position gd.GetCont(map[string]interface{}{"`id`": userInfo.Position}, "`name`") usColor.Zhiwu = gd.Name // `json:"fenchang"` //, } usColor.Banzu = publicmethod.TeamidName(userInfo.TeamId) // `json:"banzu"` //甲班, usColor.Watchekey = userInfo.Wechat // `json:"watchekey"` //TianJingYunSheng, if userInfo.WorkWechat != "" { usColor.Watchekey = userInfo.WorkWechat } usColor.Iconurl = userInfo.Icon // `json:"iconurl"` //http = // `` usColor.Iconsmailurl = userInfo.IconPhoto // `json:"iconsmailurl"` //http = // `` usColor.Workbranch = "" // `json:"workbranch"` // usColor.Gangwei = myCont.Post userJson, _ := json.Marshal(usColor) return string(userJson) } /* * @ 作者: 秦东 @ 时间: 2024-08-30 09:46:11 @ 功能: 判断是否已经提交过试卷 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) DoesItExist(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" && myCont.Tel == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number != "" { var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`number`": myCont.Number}, "`id`") if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } var colorInfo personalitycolor.Charcolortest colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": 10000002}, "`c_id`") if colorInfo.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } if myCont.Tel != "" { var colorInfoWai personalitycolor.Charcolortest colorInfoWai.GetCont(map[string]interface{}{"`c_tel`": myCont.Tel, "`c_class`": 10000002}, "`c_id`") if colorInfoWai.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-30 11:32:26 @ 功能: 计算三次雷达图数 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetUserDISCTest(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 myCont modelshr.PersonArchives err = myCont.GetCont(map[string]interface{}{"`number`": requestData.Id}, "`id`", "`name`", "`key`") if err != nil { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } var colorInfo personalitycolor.Charcolortest err = colorInfo.GetCont(map[string]interface{}{"`c_number`": requestData.Id, "`c_class`": 10000002}, "`c_test_json`") if err != nil { err = colorInfo.GetCont(map[string]interface{}{"`c_tel`": requestData.Id, "`c_class`": 10000002}, "`c_test_json`") if err != nil { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } } if colorInfo.TestJson == "" { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } var testPage JieShouDaan err = json.Unmarshal([]byte(colorInfo.TestJson), &testPage) if err != nil { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } d := 0 i := 0 s := 0 cVal := 0 for _, v := range testPage.List { switch v.Pick { case "D": d++ case "I": i++ case "S": s++ case "C": cVal++ default: } } // fmt.Printf("d:%v\ni:%v\ns:%v\nc:%v\n", d, i, s, cVal) disc := []string{"支配型", "影响型", "稳定型", "服从型"} discVal := []int{d, i, s, cVal} maxVal := 0 for _, mv := range discVal { if maxVal <= mv { maxVal = mv } } var cesiJieguo []string if d == maxVal { cesiJieguo = append(cesiJieguo, "D") } if i == maxVal { cesiJieguo = append(cesiJieguo, "I") } if s == maxVal { cesiJieguo = append(cesiJieguo, "S") } if cVal == maxVal { cesiJieguo = append(cesiJieguo, "C") } indMAx := maxVal + 5 var indAry []Indicator var dInd Indicator dInd.Text = "支配型" dInd.Max = indMAx indAry = append(indAry, dInd) var iInd Indicator iInd.Text = "影响型" iInd.Max = indMAx indAry = append(indAry, iInd) var sInd Indicator sInd.Text = "稳定型" sInd.Max = indMAx indAry = append(indAry, sInd) var cInd Indicator cInd.Text = "服从型" cInd.Max = indMAx indAry = append(indAry, cInd) saveInfo := publicmethod.MapOut[string]() saveInfo["CharacterColour"] = strings.Join(cesiJieguo, "、") //工作履历 saveInfo["ColourNameList"] = cesiJieguo //工作履历 saveInfo["RadarColour"] = discVal saveInfo["colourTitle"] = disc saveInfo["indicator"] = indAry publicmethod.Result(0, saveInfo, c) } /* * @ 作者: 秦东 @ 时间: 2024-08-30 11:32:26 @ 功能: 计算三次雷达图数 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetUserDISCTestSign(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" && myCont.Tel == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } var colorInfo personalitycolor.Charcolortest if myCont.Number != "" { var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`number`": myCont.Number}, "`id`") if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } err = colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": 10000002}, "`c_id`", "`c_test_json`") if err != nil { publicmethod.Result(0, err, c, "没有您的信息!") return } } if myCont.Tel != "" { err = colorInfo.GetCont(map[string]interface{}{"`c_tel`": myCont.Tel, "`c_class`": 10000002}, "`c_id`", "`c_test_json`") if err != nil { publicmethod.Result(0, err, c, "没有您的信息!!") return } } if colorInfo.TestJson == "" { publicmethod.Result(0, err, c, "您没有进行性格测试!") return } var testPage JieShouDaan err = json.Unmarshal([]byte(colorInfo.TestJson), &testPage) if err != nil { publicmethod.Result(0, err, c, "您没有进行性格测试!") return } d := 0 i := 0 s := 0 cVal := 0 for _, v := range testPage.List { switch v.Pick { case "D": d++ case "I": i++ case "S": s++ case "C": cVal++ default: } } // fmt.Printf("d:%v\ni:%v\ns:%v\nc:%v\n", d, i, s, cVal) disc := []string{"支配型", "影响型", "稳定型", "服从型"} discVal := []int{d, i, s, cVal} maxVal := 0 for _, mv := range discVal { if maxVal <= mv { maxVal = mv } } var cesiJieguo []string if d == maxVal { cesiJieguo = append(cesiJieguo, "D") } if i == maxVal { cesiJieguo = append(cesiJieguo, "I") } if s == maxVal { cesiJieguo = append(cesiJieguo, "S") } if cVal == maxVal { cesiJieguo = append(cesiJieguo, "C") } indMAx := maxVal + 5 var indAry []Indicator var dInd Indicator dInd.Text = "支配型" dInd.Max = indMAx indAry = append(indAry, dInd) var iInd Indicator iInd.Text = "影响型" iInd.Max = indMAx indAry = append(indAry, iInd) var sInd Indicator sInd.Text = "稳定型" sInd.Max = indMAx indAry = append(indAry, sInd) var cInd Indicator cInd.Text = "服从型" cInd.Max = indMAx indAry = append(indAry, cInd) saveInfo := publicmethod.MapOut[string]() saveInfo["CharacterColour"] = strings.Join(cesiJieguo, "、") //工作履历 saveInfo["ColourNameList"] = cesiJieguo //工作履历 saveInfo["RadarColour"] = discVal saveInfo["colourTitle"] = disc saveInfo["indicator"] = indAry publicmethod.Result(0, saveInfo, c) } /* * @ 作者: 秦东 @ 时间: 2024-09-10 16:29:40 @ 功能: 获取人物基础信息 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetManTest(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } var userCont modelshr.PersonArchives err = overall.CONSTANT_DB_HrInside.Model(&userCont).Where("`number` = ?", myCont.Number).First(&userCont).Error if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } sendData := publicmethod.MapOut[string]() sendData["number"] = userCont.Number sendData["name"] = userCont.Name sendData["icon"] = userCont.IconPhoto if userCont.Icon != "" { sendData["icon"] = userCont.Icon } sendData["org"] = "" var fatherOrg publicmethod.GetOrgAllParent fatherOrg.GetOrgAllFatherId(userCont.AdminOrg, 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) } } } } // for _, v := range fatherOrg.Id { // if v != 0 { // var orgInfo modelshr.AdministrativeOrganization // orgInfo.GetCont(map[string]interface{}{"`id`": v}, "`name`") // if orgInfo.Name != "" { // orgName = append(orgName, orgInfo.Name) // } // } // } if len(orgName) > 0 { sendData["org"] = strings.Join(orgName, "/") } sendData["testPage"] = 1 var colorInfo personalitycolor.Charcolortest err = colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": 10000003}, "`c_id`", "`c_test_json`") if err == nil && colorInfo.Id != 0 { sendData["testPage"] = 2 } publicmethod.Result(0, sendData, c) } /* * @ 作者: 秦东 @ 时间: 2024-09-11 13:35:52 @ 功能: 提交性格答案 */ func (a *ApiMethod) SubmitTestPageAnswer(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" && myCont.Tel == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } var requestData JieShouDaaning c.ShouldBindJSON(&requestData) if myCont.Number != "" { var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`number`": myCont.Number}, "`id`") if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } var colorInfo personalitycolor.Charcolortest colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": requestData.Code}, "`c_id`") if colorInfo.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } if myCont.Tel != "" { var colorInfoWai personalitycolor.Charcolortest colorInfoWai.GetCont(map[string]interface{}{"`c_tel`": myCont.Tel, "`c_class`": requestData.Code}, "`c_id`") if colorInfoWai.Id != 0 { publicmethod.Result(200, err, c, "您已经参加过此类测试!请不要重复测试!") return } } if len(requestData.List) < 1 { publicmethod.Result(1, requestData, c, "您未填写任何题目!不可提交") return } isTrue := true for _, v := range requestData.List { if v.Pick { isTrue = false break } } if !isTrue { publicmethod.Result(1, err, c, "您还有未填写的题目!不可提交") return } creetTime := time.Now().Unix() var colorContent personalitycolor.Charcolortest colorContent.Class = requestData.Code //测试试卷类型"` if myCont.Tel != "" { colorContent.Types = 2 //1:内部测试;2:外部测试` } else { colorContent.Types = 1 //1:内部测试;2:外部测试` } colorContent.Number = myCont.Number //工号"` colorContent.Name = myCont.Name //姓名"` colorContent.Department = myCont.Post //部门"` colorContent.Tel = myCont.Tel //联系电话"` colorContent.Address = myCont.Address //联系地址"` if myCont.Number != "" { colorContent.UserJson = UserContInfo(myCont) //内部员工详细信息"` } testPageJson, _ := json.Marshal(requestData) colorContent.TestJson = string(testPageJson) //试卷答案"` colorContent.Time = creetTime //写入时间"` colorContent.EiteTime = creetTime //编辑时间"` colorContent.State = 1 //状态(1:有效;2:无效)` colorContent.BranchName = myCont.Post //部门"` err = overall.CONSTANT_DB_Color.Create(&colorContent).Error if err != nil { publicmethod.Result(104, err, c) return } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2024-09-11 13:44:57 @ 功能: 九型人格测试结果 */ func (a *ApiMethod) NineResult(c *gin.Context) { signCode := c.Request.Header.Get("sign") err := errors.New("您的身份令牌已经失效!请重新登录!") if signCode == "" { publicmethod.Result(7, err, c) return } jiaMi, err := publicmethod.SM4Decrypt(signCode) if err != nil { publicmethod.Result(300, err, c, "您的身份令牌已经失效!请重新登录!") return } var myCont OutLogin err = json.Unmarshal(jiaMi, &myCont) if err != nil { publicmethod.Result(301, err, c, "您的身份令牌已经失效!请重新登录!") return } if myCont.Number == "" && myCont.Tel == "" { publicmethod.Result(302, err, c, "您的身份令牌已经失效!请重新登录!") return } var requestData publicmethod.PublicId c.ShouldBindJSON(&requestData) if requestData.Id == "" { requestData.Id = "10000003" } var colorInfo personalitycolor.Charcolortest if myCont.Number != "" { var userCont modelshr.PersonArchives err = userCont.GetCont(map[string]interface{}{"`number`": myCont.Number}, "`id`") if err != nil { publicmethod.Result(1, err, c, "您不是本公司员工!不可用员工渠道提交数据!") return } err = colorInfo.GetCont(map[string]interface{}{"`c_number`": myCont.Number, "`c_class`": requestData.Id}, "`c_id`", "`c_test_json`") if err != nil { publicmethod.Result(0, err, c, "没有您的信息!") return } } if myCont.Tel != "" { err = colorInfo.GetCont(map[string]interface{}{"`c_tel`": myCont.Tel, "`c_class`": requestData.Id}, "`c_id`", "`c_test_json`") if err != nil { publicmethod.Result(0, err, c, "没有您的信息!!") return } } if colorInfo.TestJson == "" { publicmethod.Result(0, err, c, "您没有进行性格测试!1") return } var testPage JieShouDaaning err = json.Unmarshal([]byte(colorInfo.TestJson), &testPage) if err != nil { publicmethod.Result(0, err, c, "您没有进行性格测试!2") return } 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: } } } colourTitle := []string{"PL", "RI", "CO", "SH", "ME", "TW", "IM", "CF", "SP", "DR"} RadarColour := []int{PL, RI, CO, SH, ME, TW, IM, CF, SP, DR} maxAryVal := 0 for _, v := range RadarColour { if maxAryVal <= v { maxAryVal = v } } var pickTest []string var indAry []Indicator var dIndPL Indicator dIndPL.Text = "PL(创新智多星)" dIndPL.Max = PL + 5 // dIndPL.Max = 20 if maxAryVal == PL { pickTest = append(pickTest, "PL") } indAry = append(indAry, dIndPL) var dIndRI Indicator dIndRI.Text = "RI(资源调查员)" dIndRI.Max = RI + 5 // dIndRI.Max = 20 if maxAryVal == RI { pickTest = append(pickTest, "RI") } indAry = append(indAry, dIndRI) var dIndCO Indicator dIndCO.Text = "CO(协调者)" dIndCO.Max = CO + 5 // dIndCO.Max = 20 if maxAryVal == CO { pickTest = append(pickTest, "CO") } indAry = append(indAry, dIndCO) var dIndSH Indicator dIndSH.Text = "SH(鞭策者)" dIndSH.Max = SH + 5 // dIndSH.Max = 20 if maxAryVal == SH { pickTest = append(pickTest, "SH") } indAry = append(indAry, dIndSH) var dIndME Indicator dIndME.Text = "ME(监督评论员)" dIndME.Max = ME + 5 // dIndME.Max = 20 if maxAryVal == ME { pickTest = append(pickTest, "ME") } indAry = append(indAry, dIndME) var dIndTW Indicator dIndTW.Text = "TW(凝聚者))" dIndTW.Max = TW + 5 // dIndTW.Max = 20 if maxAryVal == TW { pickTest = append(pickTest, "TW") } indAry = append(indAry, dIndTW) var dIndIM Indicator dIndIM.Text = "IM(实干家)" dIndIM.Max = IM + 5 // dIndIM.Max = 20 if maxAryVal == IM { pickTest = append(pickTest, "IM") } indAry = append(indAry, dIndIM) var dIndCF Indicator dIndCF.Text = "CF(善始善终者)" dIndCF.Max = CF + 5 // dIndCF.Max = 20 if maxAryVal == CF { pickTest = append(pickTest, "CF") } indAry = append(indAry, dIndCF) var dIndSP Indicator dIndSP.Text = "SP(专家)" dIndSP.Max = SP + 5 // dIndSP.Max = 20 if maxAryVal == SP { pickTest = append(pickTest, "SP") } indAry = append(indAry, dIndSP) var dIndDR Indicator dIndDR.Text = "DR" dIndDR.Max = DR + 5 // dIndDR.Max = 20 if maxAryVal == DR { pickTest = append(pickTest, "DR") } indAry = append(indAry, dIndDR) saveInfo := publicmethod.MapOut[string]() saveInfo["CharacterColour"] = strings.Join(pickTest, "、") //工作履历 saveInfo["ColourNameList"] = pickTest //工作履历 saveInfo["RadarColour"] = RadarColour saveInfo["colourTitle"] = colourTitle saveInfo["indicator"] = indAry publicmethod.Result(0, saveInfo, c) } /* * @ 作者: 秦东 @ 时间: 2024-09-12 16:37:46 @ 功能: */ func (a *ApiMethod) NineResultToken(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 myCont modelshr.PersonArchives err = myCont.GetCont(map[string]interface{}{"`number`": requestData.Id}, "`id`", "`name`", "`key`") if err != nil { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } var colorInfo personalitycolor.Charcolortest err = colorInfo.GetCont(map[string]interface{}{"`c_number`": requestData.Id, "`c_class`": 10000003}, "`c_test_json`") if err != nil { err = colorInfo.GetCont(map[string]interface{}{"`c_tel`": requestData.Id, "`c_class`": 10000003}, "`c_test_json`") if err != nil { publicmethod.Result(200, err, c, "您没有进行性格测试!") return } } if colorInfo.TestJson == "" { publicmethod.Result(0, err, c, "您没有进行性格测试!1") return } var testPage JieShouDaaning err = json.Unmarshal([]byte(colorInfo.TestJson), &testPage) if err != nil { publicmethod.Result(0, err, c, "您没有进行性格测试!2") return } 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: } } } colourTitle := []string{"PL", "RI", "CO", "SH", "ME", "TW", "IM", "CF", "SP", "DR"} RadarColour := []int{PL, RI, CO, SH, ME, TW, IM, CF, SP, DR} maxAryVal := 0 for _, v := range RadarColour { if maxAryVal <= v { maxAryVal = v } } var pickTest []string var indAry []Indicator var dIndPL Indicator dIndPL.Text = "PL(创新智多星)" dIndPL.Max = PL + 5 // dIndPL.Max = 20 if maxAryVal == PL { pickTest = append(pickTest, "PL") } indAry = append(indAry, dIndPL) var dIndRI Indicator dIndRI.Text = "RI(资源调查员)" dIndRI.Max = RI + 5 // dIndRI.Max = 20 if maxAryVal == RI { pickTest = append(pickTest, "RI") } indAry = append(indAry, dIndRI) var dIndCO Indicator dIndCO.Text = "CO(协调者)" dIndCO.Max = CO + 5 // dIndCO.Max = 20 if maxAryVal == CO { pickTest = append(pickTest, "CO") } indAry = append(indAry, dIndCO) var dIndSH Indicator dIndSH.Text = "SH(鞭策者)" dIndSH.Max = SH + 5 // dIndSH.Max = 20 if maxAryVal == SH { pickTest = append(pickTest, "SH") } indAry = append(indAry, dIndSH) var dIndME Indicator dIndME.Text = "ME(监督评论员)" dIndME.Max = ME + 5 // dIndME.Max = 20 if maxAryVal == ME { pickTest = append(pickTest, "ME") } indAry = append(indAry, dIndME) var dIndTW Indicator dIndTW.Text = "TW(凝聚者))" dIndTW.Max = TW + 5 // dIndTW.Max = 20 if maxAryVal == TW { pickTest = append(pickTest, "TW") } indAry = append(indAry, dIndTW) var dIndIM Indicator dIndIM.Text = "IM(实干家)" dIndIM.Max = IM + 5 // dIndIM.Max = 20 if maxAryVal == IM { pickTest = append(pickTest, "IM") } indAry = append(indAry, dIndIM) var dIndCF Indicator dIndCF.Text = "CF(善始善终者)" dIndCF.Max = CF + 5 // dIndCF.Max = 20 if maxAryVal == CF { pickTest = append(pickTest, "CF") } indAry = append(indAry, dIndCF) var dIndSP Indicator dIndSP.Text = "SP(专家)" dIndSP.Max = SP + 5 // dIndSP.Max = 20 if maxAryVal == SP { pickTest = append(pickTest, "SP") } indAry = append(indAry, dIndSP) var dIndDR Indicator dIndDR.Text = "DR" dIndDR.Max = DR + 5 // dIndDR.Max = 20 if maxAryVal == DR { pickTest = append(pickTest, "DR") } indAry = append(indAry, dIndDR) saveInfo := publicmethod.MapOut[string]() saveInfo["CharacterColour"] = strings.Join(pickTest, "、") //工作履历 saveInfo["ColourNameList"] = pickTest //工作履历 saveInfo["RadarColour"] = RadarColour saveInfo["colourTitle"] = colourTitle saveInfo["indicator"] = indAry publicmethod.Result(0, saveInfo, c) }