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.
1199 lines
31 KiB
1199 lines
31 KiB
package rongxin
|
|
|
|
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)
|
|
}
|
|
|