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
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)
|
|
}
|
|
|