绩效考核
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.
 
 
 

126 lines
4.1 KiB

package userhandle
import (
"encoding/json"
"strconv"
"strings"
"gin_server_admin/api/wechatapp/callback"
"gin_server_admin/commonus"
"gin_server_admin/global"
"gin_server_admin/model/common/response"
"gin_server_admin/utils/redishandel"
"github.com/gin-gonic/gin"
)
// 入口
func (g *GeographyUnknown) Index(c *gin.Context) {
outPut := commonus.MapOut()
response.Result(0, outPut, "公共API入口获取成功", c)
}
// 获取地理位置上报人员信息
func (g *GeographyUnknown) LocationUserList(c *gin.Context) {
var requestData GetLocLocationUserPage
err := c.ShouldBindJSON(&requestData)
if err != nil {
// response.Result(101, err, "参数错误!请重新提交!", c)
// return
}
if requestData.PageSize == 0 {
requestData.PageSize = 20
}
// if requestData.Page <= 0 {
// requestData.Page = 1
// }
offSetPage := commonus.CalculatePages(requestData.Page, requestData.PageSize)
redisPrefix := "Location:GeographicalPosition_" + global.GVA_CONFIG.RedisPrefix.PreFix + ":userId_*" //redis KEY
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(1)
keys, cursores, errRedis := redisClient.Scan(uint64(offSetPage), redisPrefix, int64(requestData.PageSize))
output := commonus.MapOut()
output["keys"] = keys
output["cursores"] = cursores
output["errRedis"] = errRedis
output["offSetPage"] = uint64(offSetPage)
output["PageSize"] = int64(requestData.PageSize)
output["Page"] = requestData.Page
response.Result(101, output, "参数错误!请重新提交!", c)
}
// 获取所有地理位置上报人员信息
func (g *GeographyUnknown) LocationUserListAll(c *gin.Context) {
redisPrefix := "Location:GeographicalPosition_" + global.GVA_CONFIG.RedisPrefix.PreFix + ":userId_*" //redis KEY
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(1)
keys, errRedis := redisClient.Keys(redisPrefix)
if errRedis != nil {
response.Result(101, errRedis, "没有上报人员!", c)
return
}
var userIdMap []commonus.PublicUserCont
for _, val := range keys {
oenKey := strings.Split(val, "userId_")
if len(oenKey) == 2 {
for t_index, t_val := range oenKey {
if t_index == 1 {
userErr, userInfo := commonus.GetUesrContForWechatID(t_val)
if userErr == true {
userIdMap = append(userIdMap, userInfo)
}
// commonus.GetUesrContForWechatID(t_val)
}
}
}
}
output := commonus.MapOut()
output["keys"] = keys
output["errRedis"] = errRedis
output["userIdMap"] = userIdMap
response.Result(0, output, "数据获取成功!", c)
}
// 获取人员上报地址点位
func (g *GeographyUnknown) GetLocationUserAddress(c *gin.Context) {
var requestData GetWechatWorkId
err := c.ShouldBindJSON(&requestData)
if err != nil {
response.Result(101, err, "参数错误!请重新提交!", c)
return
}
if requestData.Id == "" {
response.Result(102, err, "参数错误!请重新提交!", c)
return
}
redisPrefix := "Location:GeographicalPosition_" + global.GVA_CONFIG.RedisPrefix.PreFix + ":userId_" + requestData.Id //redis KEY
redisClient := redishandel.RunRedis()
redisClient.SetRedisDb(1)
addressMap, addressErr := redisClient.Lrange(redisPrefix, 0, -1)
if addressErr != nil {
response.Result(103, err, "没有上报地理点位!", c)
return
}
var redisToJsonAddressMap []callback.GeographicalPositionRedis
for _, val := range addressMap {
var redisToJsonAddress callback.GeographicalPositionRedis
jsonErr := json.Unmarshal([]byte(val), &redisToJsonAddress)
if jsonErr == nil {
longFloat, _ := strconv.ParseFloat(redisToJsonAddress.Longitude, 64)
latFloat, _ := strconv.ParseFloat(redisToJsonAddress.Latitude, 64)
long, latg := commonus.GCJ02toBD09(longFloat, latFloat)
redisToJsonAddress.LongitudeBaiDu = long
redisToJsonAddress.LatitudeBaiDu = latg
redisToJsonAddressMap = append(redisToJsonAddressMap, redisToJsonAddress)
}
}
output := commonus.MapOut()
output["addressMap"] = addressMap
output["redisToJsonAddressMap"] = redisToJsonAddressMap
if len(addressMap) <= 0 {
response.Result(100, output, "数据获取失败!", c)
return
}
response.Result(0, output, "数据获取成功!", c)
}