go-common/app/interface/main/app-wall/http/ip.go
2019-04-22 18:49:16 +08:00

82 lines
2.0 KiB
Go

package http
import (
"encoding/base64"
"strconv"
"time"
"go-common/app/interface/main/app-wall/model"
"go-common/library/ecode"
log "go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/metadata"
)
func userOperatorIP(c *bm.Context) {
res := map[string]interface{}{}
params := c.Request.Form
usermob := params.Get("usermob")
operator := params.Get("operator")
mobiApp := params.Get("mobi_app")
buildStr := params.Get("build")
build, _ := strconv.Atoi(buildStr)
if operator == "" {
c.JSON(nil, ecode.RequestErr)
return
}
ipStr := metadata.String(c, metadata.RemoteIP)
ip := model.InetAtoN(ipStr)
switch operator {
case "unicom":
res["data"] = unicomSvc.UserUnciomIP(ip, ipStr, usermob, mobiApp, build, time.Now())
case "mobile":
res["data"] = mobileSvc.IsMobileIP(ip, ipStr, usermob)
default:
c.JSON(nil, ecode.RequestErr)
return
}
returnDataJSON(c, res, nil)
}
func mOperatorIP(c *bm.Context) {
res := map[string]interface{}{}
params := c.Request.Form
usermob := params.Get("usermob")
operator := params.Get("operator")
ipStr := params.Get("ip")
ip := model.InetAtoN(ipStr)
switch operator {
case "unicom":
var usermobStr string
if usermob != "" {
var (
_aesKey = []byte("9ed226d9")
)
bs, err := base64.StdEncoding.DecodeString(usermob)
if err != nil {
log.Error("base64.StdEncoding.DecodeString(%s) error(%v)", usermob, err)
c.JSON(nil, ecode.RequestErr)
return
}
bs, err = unicomSvc.DesDecrypt(bs, _aesKey)
if err != nil {
log.Error("unicomSvc.DesDecrypt error(%v)", err)
c.JSON(nil, ecode.RequestErr)
return
}
if len(bs) > 32 {
usermobStr = string(bs[:32])
} else {
usermobStr = string(bs)
}
}
res["data"] = unicomSvc.UserUnciomIP(ip, ipStr, usermobStr, "missevan", 0, time.Now())
case "mobile":
res["data"] = mobileSvc.IsMobileIP(ip, ipStr, usermob)
default:
c.JSON(nil, ecode.RequestErr)
return
}
returnDataJSON(c, res, nil)
}