Commit e434b1d4 authored by haoyanbin's avatar haoyanbin

1

parent 4f1d5345
package mobile package mobile
import ( import (
"fmt"
"gin-vue-admin/global" "gin-vue-admin/global"
"gin-vue-admin/model" "gin-vue-admin/model"
"gin-vue-admin/model/request" "gin-vue-admin/model/request"
...@@ -45,6 +46,10 @@ func CreateSurveyUser(c *gin.Context) { ...@@ -45,6 +46,10 @@ func CreateSurveyUser(c *gin.Context) {
func CreateSurveyLog(c *gin.Context) { func CreateSurveyLog(c *gin.Context) {
var req model.SurveyLog var req model.SurveyLog
_ = c.ShouldBindJSON(&req) _ = c.ShouldBindJSON(&req)
ipData, _ := service.GetIpaddr(c.ClientIP())
fmt.Println(ipData)
req.CreateTime = utils.NowTime() req.CreateTime = utils.NowTime()
if err := service.CreateSurveyLog(req); err != nil { if err := service.CreateSurveyLog(req); err != nil {
global.GVA_LOG.Error("创建失败!", zap.Any("err", err)) global.GVA_LOG.Error("创建失败!", zap.Any("err", err))
......
...@@ -195,3 +195,8 @@ doctor_db: ...@@ -195,3 +195,8 @@ doctor_db:
account: "dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/hos_database?charset=utf8" account: "dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/hos_database?charset=utf8"
common: "dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/saas_common?charset=utf8" common: "dbc_saas:dbc_saas888888@tcp(rm-2zepcf8kag0aol0q48o.mysql.rds.aliyuncs.com:3306)/saas_common?charset=utf8"
ipaddr:
url: "https://ipaddquery.market.alicloudapi.com/ip/address-query"
appkey: "203818254"
appsecret: "Po6a0U5awkWFeXCBmfYyezJdhI7p7Xib"
appcode: "6d1da9eb15b540688a505c1814e0c25f"
\ No newline at end of file
...@@ -38,4 +38,5 @@ type Server struct { ...@@ -38,4 +38,5 @@ type Server struct {
DoctorPay DoctorPay `mapstructure:"doctor_pay" json:"doctor_pay" yaml:"doctor_pay"` DoctorPay DoctorPay `mapstructure:"doctor_pay" json:"doctor_pay" yaml:"doctor_pay"`
LisOcr LisOcr `mapstructure:"lis_ocr" json:"lis_ocr" yaml:"lis_ocr"` LisOcr LisOcr `mapstructure:"lis_ocr" json:"lis_ocr" yaml:"lis_ocr"`
DoctorDb DoctorDb `mapstructure:"doctor_db" json:"doctor_db" yaml:"doctor_db"` DoctorDb DoctorDb `mapstructure:"doctor_db" json:"doctor_db" yaml:"doctor_db"`
Ipaddr Ipaddr `mapstructure:"ipaddr" json:"ipaddr" yaml:"ipaddr"`
} }
package config
type Ipaddr struct {
Url string `mapstructure:"url" json:"url" yaml:"url"` // 存储区域
Appkey string `mapstructure:"appkey" json:"appkey" yaml:"appkey"` // 存储区域
Appsecret string `mapstructure:"appsecret" json:"appsecret" yaml:"appsecret"` // 存储区域
Appcode string `mapstructure:"appcode" json:"appcode" yaml:"appcode"` // 存储区域
}
package model
type Ipaddr struct {
Id int `gorm:"type:int(255)" json:"id"`
Ip string `gorm:"type:string(255)" json:"ip"`
Code int `gorm:"type:int(255)" json:"code"`
TaskNo string `gorm:"type:string(1000)" json:"taskNo"`
Data string `gorm:"type:string(1000)" json:"data"`
CreateTime string `gorm:"type:string(100)" json:"create_time"`
}
package service
import (
"fmt"
"gin-vue-admin/global"
"gin-vue-admin/model"
"gin-vue-admin/utils"
"time"
)
func GetIpaddr(ip string) (utils.IpData, string) {
if ip == "127.0.0.1" {
return utils.IpData{}, ""
}
var data model.Ipaddr
nowtime := time.Now()
d, _ := time.ParseDuration("-6h")
beforetime := nowtime.Add(d)
global.GVA_DB.Table("ipaddr").Where("ip = ? and code = ? and create_time > ", ip, 400, beforetime).First(&data)
if data.Id > 0 {
ipDataDb := new(utils.IpData)
utils.UnserislizeJson(data.Data, ipDataDb)
return *ipDataDb, ""
}
ipData := utils.GetIpaddr(ip)
IpaddrData := model.Ipaddr{
Ip: ip,
Code: ipData.Code,
TaskNo: ipData.TaskNo,
Data: string(utils.SerializeJson(ipData.Data)),
}
global.GVA_DB.Table("ipaddr").Create(&IpaddrData)
if ipData.Code == 200 {
return ipData.Data, ""
}
fmt.Println(ipData.Msg)
return utils.IpData{}, ipData.Msg
}
package utils
import (
"gin-vue-admin/global"
)
func GetIpaddr(ip string) GetIpaddrReply {
url := global.GVA_CONFIG.Ipaddr.Url
data := new(GetIpaddrReq)
data.Ip = ip
resp := GetIpaddrPost(url, data, global.GVA_CONFIG.Ipaddr.Appcode, 1)
reply := new(GetIpaddrReply)
UnserislizeJson(resp, reply)
return *reply
}
type GetIpaddrReq struct {
Ip string `json:"ip"`
}
type GetIpaddrReply struct {
Code int `json:"code"`
Msg string `json:"msg"`
TaskNo string `json:"taskNo"`
Data IpData `json:"data"`
}
type IpData struct {
Country string `json:"country"`
CountryID string `json:"country_id"`
Area string `json:"area"`
Region string `json:"region"`
RegionID string `json:"region_id"`
City string `json:"city"`
CityID string `json:"city_id"`
IP string `json:"ip"`
LongIP string `json:"long_ip"`
Isp string `json:"isp"`
}
...@@ -192,3 +192,43 @@ func PostWithFormData(method, url string, postData *map[string]string, token str ...@@ -192,3 +192,43 @@ func PostWithFormData(method, url string, postData *map[string]string, token str
fmt.Println("返回数据:" + string(data)) fmt.Println("返回数据:" + string(data))
return string(data) return string(data)
} }
func GetIpaddrPost(url string, data interface{}, token string, isPrt int) string {
// 超时时间:10秒
client := &http.Client{Timeout: 10 * time.Second}
if isPrt == 1 {
fmt.Println("请求地址:" + url)
}
jsonStr, _ := json.Marshal(data)
if isPrt == 1 {
fmt.Println("请求数据:" + string(jsonStr))
}
reqest, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
if token != "" {
reqest.Header.Add("Authorization", "APPCODE "+token)
//fmt.Println("token:" + token)
}
reqest.Header.Add("Content-Type", "application/json")
reqest.Header.Add("Connection", "keep-alive")
if err != nil {
fmt.Println(err)
return ""
}
resp, err := client.Do(reqest)
if err != nil {
fmt.Println(err)
return ""
}
defer resp.Body.Close()
result, _ := ioutil.ReadAll(resp.Body)
if isPrt == 1 {
fmt.Println("返回数据:" + string(result))
}
return string(result)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment