This commit is contained in:
邹宗楠
2023-06-15 09:08:54 +08:00
parent d37bb62403
commit 65976332fc
749 changed files with 41278 additions and 14 deletions

View File

@@ -0,0 +1,22 @@
package util
type FileItem struct {
FileName string
Content []byte
}
func (s *FileItem) SetFileName(v string) *FileItem {
s.FileName = v
return s
}
func (s *FileItem) SetContent(v []byte) *FileItem {
s.Content = v
return s
}
func NewFileItem(fileName string, content []byte) *FileItem {
return &FileItem{FileName: fileName,Content: content}
}

View File

@@ -0,0 +1,35 @@
package util
import "fmt"
type TopApiRequestError struct {
/*
System code
*/
TopCode int `json:"code,omitempty" `
/*
System error message
*/
Msg string `json:"msg,omitempty" `
/*
System sub code
*/
SubCode string `json:"sub_code,omitempty" `
/*
System sub message
*/
SubMsg string `json:"sub_msg,omitempty" `
/*
System request id
*/
RequestId string `json:"request_id,omitempty" `
}
func (e *TopApiRequestError) Error() string {
return fmt.Sprintf("code: %d, msg: %s, sub_code: %s, sub_msg: %s ,request_id: %s", e.TopCode, e.Msg, e.SubCode, e.SubMsg, e.RequestId)
}

View File

@@ -0,0 +1,115 @@
package util
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"encoding/json"
"fmt"
"sort"
"strings"
"time"
)
type LocalTime time.Time
const (
TimeFormat = "2006-01-02 15:04:05"
)
func (t *LocalTime) UnmarshalJSON(data []byte) (err error) {
// 空值不进行解析
if len(data) == 2 {
*t = LocalTime(time.Time{})
return
}
now, err := time.ParseInLocation(`"`+TimeFormat+`"`, string(data), time.Local)
*t = LocalTime(now)
return
}
func (t LocalTime) MarshalJSON() ([]byte, error) {
b := make([]byte, 0, len(TimeFormat)+2)
b = append(b, '"')
b = time.Time(t).AppendFormat(b, TimeFormat)
b = append(b, '"')
return b, nil
}
func (t LocalTime) String() string {
return time.Time(t).Format(TimeFormat)
}
func UnmarshalJSON(data []byte,v interface{})(err error){
return json.Unmarshal(data, v)
}
func ConvertStructList(data interface{}) string {
if(data == nil) {
return "[]"
}
jsonStr, _ := json.Marshal(data)
return string(jsonStr)
}
func ConvertStruct(data interface{}) string {
if(data == nil) {
return "{}"
}
jsonStr, _ := json.Marshal(data)
return string(jsonStr)
}
func ConvertBasicList(data interface{}) string {
if(data == nil) {
return "[]"
}
return strings.Replace(strings.Trim(fmt.Sprint(data), "[]"), " ", ",", -1)
}
func HandleJsonResponse(jsonStr string,v interface{})(err error) {
if(strings.Contains(jsonStr[0:20],"error_response")){
err := &TopApiRequestError{}
jsonStr = jsonStr[18:len(jsonStr)-1]
err2 := json.Unmarshal([]byte(jsonStr), err)
if err2 != nil {
return err2
}
return err
}
return json.Unmarshal([]byte(jsonStr), v)
}
func GetSign(publicParam map[string]interface{},data map[string]interface{},secret string) string {
var allParamMap = make(map[string]interface{})
for k,v := range data {
allParamMap[k] = v
}
for k,v := range publicParam {
allParamMap[k] = v
}
var keyList []string
for k := range allParamMap {
keyList = append(keyList, k)
}
sort.Strings(keyList)
var signStr = ""
for _ , key := range keyList {
value := allParamMap[key]
signStr = signStr + fmt.Sprintf("%v%v", key, value)
//if(value != ""){
// signStr = signStr + fmt.Sprintf("%v%v", key, value)
//}
}
fmt.Println(signStr)
sign := strings.ToUpper(HmacSha256(signStr,secret))
return sign
}
func HmacSha256(data string, secret string) string {
h := hmac.New(sha256.New, []byte(secret))
h.Write([]byte(data))
return hex.EncodeToString(h.Sum(nil))
}