应用集成平台服务端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1200 lines
31 KiB

package rongxin
import (
"appPlatform/models/modelshr"
1 year ago
personalitycolor "appPlatform/models/personalityColor"
"appPlatform/overall"
"appPlatform/overall/publicmethod"
"encoding/json"
1 year ago
"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 {
1 year ago
publicmethod.Result(100, requestData, c)
return
}
if requestData.Number == "" {
publicmethod.Result(1, err, c, "请输入工号!")
return
}
if requestData.Name == "" {
publicmethod.Result(1, err, c, "请输入姓名!")
return
}
1 year ago
// if requestData.Post == "" {
// publicmethod.Result(1, err, c, "请输入岗位!")
// return
// }
var userCont modelshr.PersonArchives
1 year ago
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
}
1 year ago
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 {
1 year ago
publicmethod.Result(1, err, c, "对不起,请检查输入是否正确!")
return
}
jiaMi, err := publicmethod.SM4Encrypt(string(jsonStr))
if err != nil {
1 year ago
publicmethod.Result(1, err, c, "对不起,请检查输入是否正确!")
return
}
sendInfo := publicmethod.MapOut[string]()
sendInfo["sign"] = jiaMi
publicmethod.Result(0, sendInfo, c)
}
1 year ago
/*
*
@ 作者: 秦东
@ 时间: 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)
}