Apply .gitignore rules

This commit is contained in:
皮蛋13361098506
2025-01-06 16:21:36 +08:00
parent 1b77f62820
commit ccd2c530cf
580 changed files with 69806 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
package securityUtil
import (
"crypto/hmac"
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"encoding/base64"
)
// Hmac-SHA1编码
// source编码原数据
// key编码密钥
// 返回值:编码结果
func HmacSha1(source, key string) (result []byte, err error) {
mac := hmac.New(sha1.New, []byte(key))
if _, err = mac.Write([]byte(source)); err != nil {
return
}
return mac.Sum(nil), nil
}
// Hmac-SHA1 Base64编码
// source编码原数据
// key编码密钥
// 返回值:编码结果
func Base64HmacSha1(source, key string) (result string, err error) {
mac := hmac.New(sha1.New, []byte(key))
if _, err = mac.Write([]byte(source)); err != nil {
return
}
bytes := mac.Sum(nil)
result = base64.StdEncoding.EncodeToString(bytes)
return
}
// Hmac-SHA256编码
// source编码原数据
// key编码密钥
// 返回值:编码结果
func HmacSha256(source, key string) (result []byte, err error) {
mac := hmac.New(sha256.New, []byte(key))
if _, err = mac.Write([]byte(source)); err != nil {
return
}
return mac.Sum(nil), nil
}
// Hmac-SHA512编码
// source编码原数据
// key编码密钥
// 返回值:编码结果
func HmacSha512(source, key string) (result []byte, err error) {
mac := hmac.New(sha512.New, []byte(key))
if _, err = mac.Write([]byte(source)); err != nil {
return
}
return mac.Sum(nil), nil
}

View File

@@ -0,0 +1,80 @@
package checkMgr
import (
"fmt"
"sync"
"time"
. "Framework/startMgr"
"goutil/logUtil"
)
var (
funcMap = make(map[string]*FuncItem)
mutex sync.Mutex
operateName = "Check"
)
// 注册方法(如果名称重复会panic)
// name:方法名称(唯一标识)
// moduleType:模块类型
// definition:方法定义
func Register(name string, moduleType ModuleType, definition func() error) {
mutex.Lock()
defer mutex.Unlock()
if _, exists := funcMap[name]; exists {
panic(fmt.Sprintf("%s已经存在请重新命名", name))
}
funcMap[name] = NewFuncItem(name, moduleType, definition)
}
// 调用所有方法
// 返回值:
// 错误列表
func CallAll() (errList []error) {
mutex.Lock()
defer mutex.Unlock()
startTime := time.Now()
defer func() {
logUtil.InfoLog("%s 执行总时间:%s", operateName, time.Since(startTime))
}()
for _, item := range funcMap {
// 调用方法
if err := item.Call2(operateName); err != nil {
errList = append(errList, err)
}
}
return
}
// 按照模块类型进行调用
// moduleType:模块类型
// 返回值:
// errList:错误列表
func CallType(moduleType ModuleType) (errList []error) {
mutex.Lock()
defer mutex.Unlock()
startTime := time.Now()
defer func() {
logUtil.InfoLog("%v %s 执行总时间:%s", moduleType, operateName, time.Since(startTime))
}()
for _, item := range funcMap {
if item.ModuleType != moduleType {
continue
}
// 调用方法
if err := item.Call2(operateName); err != nil {
errList = append(errList, err)
}
}
return
}

View File

@@ -0,0 +1,8 @@
package httpSender
// 请求
type Requester interface {
GetMethod() string
GetUrl() string
GetData() []byte
}

View File

@@ -0,0 +1,26 @@
package managecenterModel
type MCDataType int
const (
// 服务器
ServerData MCDataType = 1
// 服务器组
ServerGroupData MCDataType = 2
// 合作商
PartnerData MCDataType = 3
// 资源
ResourceVersionData MCDataType = 4
// 白名单
UserWhiteListData MCDataType = 5
// 公告
GameNoticeData MCDataType = 6
// 大区
AreaData MCDataType = 7
)

View File

@@ -0,0 +1,96 @@
package bytesSendUtil
import (
"fmt"
"goutil/webUtil"
)
// 实现 EnsureSender和sender接口
type httpSender struct {
// 需要实现的接口
EnsureSender
// 包含sender接口部分实现
*baseSender
// 数据目录
dataFolder string
// 发送地址
url string
// 用于sendLoop和resendLoop发送退出信号
closeSignal chan struct{}
}
// 创建一个http数据发送器
// 参数:
//
// _dataFolder 数据存放目录
// _url 发送地址
func NewHTTPSender(_dataFolder, _url string) (EnsureSender, error) {
this := &httpSender{
dataFolder: _dataFolder,
url: _url,
baseSender: newBaseSender(),
closeSignal: make(chan struct{}),
}
// 新开协程发送数据
go sendLoop(this, this.closeSignal)
// 定时重发
go resendLoop(this, _dataFolder, this.closeSignal)
return this, nil
}
// EnsureSender接口
// Write写入数据
func (this *httpSender) Write(data []byte) error {
item := newHTTPData(data)
this.waitingDataChan <- item
return nil
}
// EnsureSender接口
// Close关闭
func (this *httpSender) Close() error {
close(this.done)
// 等待sendLoop和resendLoop退出
<-this.closeSignal
<-this.closeSignal
// 保存数据
_, e1 := saveData(this.Cache(), this.dataFolder)
_, e2 := saveData(this.Data(), this.dataFolder)
if e2 != nil {
if e1 != nil {
return fmt.Errorf("%s %s", e1, e2)
}
return e2
} else {
return e1
}
}
// sender接口
// Send发送数据
func (this *httpSender) Send(item dataItem) error {
statusCode, _, err := webUtil.PostByteData2(this.url, item.Bytes(), nil, nil)
if err != nil || statusCode != 200 {
if err == nil {
err = fmt.Errorf("StatusCode is not 200")
}
// 发送失败时发送次数+1
item.SetCount(item.Count() + 1)
}
return err
}