dddd
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.

107 lines
3.6 KiB

package callback
import (
"encoding/json"
"encoding/xml"
"fmt"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/utils/redishandel"
)
//相关事件处理
func GeographicalPosition(eventMsg []byte) { //进入应用上报地址位置
var msgContent GeographicalPositionType
err := xml.Unmarshal(eventMsg, &msgContent)
if nil != err {
fmt.Println("***********Unmarshal fail")
}
userAddress := commonus.MapOut()
userAddress["userid"] = msgContent.FromUsername //userID
userAddress["latitude"] = msgContent.Latitude //地理位置纬度
userAddress["longitude"] = msgContent.Longitude //地理位置经度
userAddress["precision"] = msgContent.Precision //地理位置精度
userAddress["time"] = time.Now().Unix()
marshal, err := json.Marshal(userAddress)
if err != nil {
marshal = []byte{}
}
redisPrefix := "Location:GeographicalPosition_" + global.GVA_CONFIG.RedisPrefix.PreFix + ":userId_" + msgContent.FromUsername //redis KEY
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(1)
// fmt.Printf("button===101===>%v\n", redisClient)
locationJson, locationErr := redisClient.Lindex(redisPrefix, 0)
// fmt.Printf("button===102===>%v===>%v\n", locationJson, locationErr)
if locationErr != nil {
redisClient.Lpush(redisPrefix, string(marshal))
// fmt.Printf("button===1===>%v\n", marshal)
} else {
var geographicalPositionRedis GeographicalPositionRedis
jsonErr := json.Unmarshal([]byte(locationJson), &geographicalPositionRedis)
// fmt.Printf("button===2111===>%v===>%v\n", jsonErr, geographicalPositionRedis)
if jsonErr != nil {
redisClient.Lpush(redisPrefix, string(marshal))
// fmt.Printf("button===2===>%v===>%v\n", jsonErr, locationJson)
} else {
timeVal := geographicalPositionRedis.Time
if time.Now().Unix()-timeVal >= 300 {
redisClient.Lpush(redisPrefix, string(marshal))
// fmt.Printf("button===4===>%v\n", marshal)
} else {
// fmt.Printf("button===412===>%v===>%v\n", timeVal, time.Now().Unix()-timeVal)
}
}
}
// longFloat, _ := strconv.ParseFloat(msgContent.Longitude, 64)
// latFloat, _ := strconv.ParseFloat(msgContent.Latitude, 64)
// long, latg := commonus.GCJ02toBD09(longFloat, latFloat)
// fmt.Printf("button======>%v======>%v======>%v\n", msgContent, long, latg)
}
//自建应用审批处理
func OpenApprovalChange(eventMsg []byte) {
var msgContent OpenApprovalChangeType
err := xml.Unmarshal(eventMsg, &msgContent)
if nil != err {
fmt.Println("***********Unmarshal fail")
}
// jsonstr, _ := json.Marshal(msgContent)
if msgContent.ApprovalInfo.ThirdNo != "" {
//审批状态
approvalStatus := 1
agree := 0
agreeCount := 0
for _, approvalNode := range msgContent.ApprovalInfo.ApprovalNodes.ApprovalNode {
agreeCount++
if approvalNode.NodeStatus == 2 {
agree++
}
if approvalNode.NodeStatus > 2 {
approvalStatus = int(approvalNode.NodeStatus)
}
}
if agree == agreeCount {
approvalStatus = 2
}
eiteCont := commonus.MapOut()
eiteCont["al_states"] = approvalStatus
eiteCont["al_eite_time"] = time.Now().Unix()
var assessLog assessmentmodel.AssessmentLog //考核记录
eiteErr := global.GVA_DB_Performanceappraisal.Model(&assessLog).Select("al_states", "al_eite_time").Where("`al_order_id` = ?", msgContent.ApprovalInfo.ThirdNo).Updates(eiteCont).Error
if eiteErr == nil {
}
// fmt.Printf("approvalStatus================>%v\n", approvalStatus)
}
// fmt.Printf("open================>%v\n", string(jsonstr))
}