Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,265 @@
|
||||
package typeUtil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
// KeyValue数据集合
|
||||
type MapData map[string]interface{}
|
||||
|
||||
// 创建新的MapData
|
||||
// mapData:原有的map数据
|
||||
// 返回
|
||||
// 新的Map对象
|
||||
func NewMapData(mapData map[string]interface{}) MapData {
|
||||
return MapData(mapData)
|
||||
}
|
||||
|
||||
// 类型转换为byte
|
||||
// 返回值:
|
||||
// byte:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Byte(key string) (value byte, err error) {
|
||||
return this.Uint8(key)
|
||||
}
|
||||
|
||||
// 类型转换为int
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Int(key string) (value int, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Int(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为int8
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Int8(key string) (value int8, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Int8(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为int16
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Int16(key string) (value int16, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Int16(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为int32
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Int32(key string) (value int32, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Int32(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为int64
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Int64(key string) (value int64, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Int64(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为uint
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Uint(key string) (value uint, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Uint(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为uint8
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Uint8(key string) (value uint8, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Uint8(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为uint16
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Uint16(key string) (value uint16, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Uint16(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为uint32
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Uint32(key string) (value uint32, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Uint32(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为uint64
|
||||
// 返回值:
|
||||
// int:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Uint64(key string) (value uint64, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Uint64(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为float32
|
||||
// 返回值:
|
||||
// float64:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Float32(key string) (value float32, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Float32(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为float64
|
||||
// 返回值:
|
||||
// float64:结果
|
||||
// error:错误数据
|
||||
func (this MapData) Float64(key string) (value float64, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Float64(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为bool
|
||||
// 返回值:
|
||||
// bool:结果
|
||||
// error:错误信息
|
||||
func (this MapData) Bool(key string) (value bool, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = Bool(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 类型转换为字符串
|
||||
// 返回值:
|
||||
// string:结果
|
||||
// error:错误信息
|
||||
func (this MapData) String(key string) (value string, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = String(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 转换为时间格式,如果是字符串,则要求内容格式形如:2017-02-14 05:20:00
|
||||
// 返回值:
|
||||
// bool:结果
|
||||
// error:错误信息
|
||||
func (this MapData) DateTime(key string) (value time.Time, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value, err = DateTime(val)
|
||||
return
|
||||
}
|
||||
|
||||
// 获取指定的值
|
||||
// 返回值:
|
||||
// interface{}:结果
|
||||
// error:错误信息
|
||||
func (this MapData) Interface(key string) (value interface{}, err error) {
|
||||
val, exist := this[key]
|
||||
if exist == false || val == nil {
|
||||
err = fmt.Errorf("Target key: [%s] doesn't exist", key)
|
||||
return
|
||||
}
|
||||
|
||||
value = val
|
||||
return
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package shortUrlMgr
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"goutil/securityUtil"
|
||||
"goutil/stringUtil"
|
||||
"goutil/webUtil"
|
||||
)
|
||||
|
||||
var (
|
||||
ShortUrl_SERVICE_URL = "http://a.app366.com/get"
|
||||
)
|
||||
|
||||
// 服务器的响应对象
|
||||
type QueryResponse struct {
|
||||
// 响应结果的状态值
|
||||
ResultStatus string
|
||||
|
||||
// 响应结果的数据
|
||||
Data string
|
||||
}
|
||||
|
||||
// 获取短链
|
||||
// appId: 为应用分配的唯一标识
|
||||
// appSecret: 为应用分配的密钥
|
||||
// fullUrl: 完整的Url
|
||||
// timeout:超时时间(单位:秒)
|
||||
// 返回值:
|
||||
// ipInfoObj: IP地址信息对象
|
||||
// err: 错误对象
|
||||
func GetShortUrl(appId, appSecret, fullUrl string, timeout int) (shortUrl string, err error) {
|
||||
timeStamp := fmt.Sprintf("%d", time.Now().Unix())
|
||||
fullUrl = stringUtil.Base64Encode(fullUrl)
|
||||
rawString := fmt.Sprintf("AppId=%s&FullUrl=%s&Timestamp=%s&AppSecret=%s", appId, fullUrl, timeStamp, appSecret)
|
||||
sign := securityUtil.Md5String(rawString, true)
|
||||
|
||||
postData := make(map[string]string, 5)
|
||||
postData["AppId"] = appId
|
||||
postData["FullUrl"] = fullUrl
|
||||
postData["Timestamp"] = timeStamp
|
||||
postData["Sign"] = sign
|
||||
|
||||
header := webUtil.GetFormHeader()
|
||||
transport := webUtil.NewTransport()
|
||||
transport.DisableKeepAlives = true
|
||||
transport = webUtil.GetTimeoutTransport(transport, timeout)
|
||||
statusCode, result, err := webUtil.PostMapData(ShortUrl_SERVICE_URL, postData, header, transport)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if statusCode != 200 {
|
||||
err = fmt.Errorf("StatusCode:%d is wrong.", statusCode)
|
||||
return
|
||||
}
|
||||
|
||||
var queryResponseObj *QueryResponse
|
||||
err = json.Unmarshal(result, &queryResponseObj)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if queryResponseObj.ResultStatus != "" {
|
||||
err = fmt.Errorf("Query result:%s", queryResponseObj.ResultStatus)
|
||||
return
|
||||
}
|
||||
|
||||
shortUrl = queryResponseObj.Data
|
||||
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user