提交新项目

This commit is contained in:
kongyuebin
2019-12-19 14:47:58 +08:00
parent 7ba20ac1b9
commit f29066a984
609 changed files with 238892 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
/***************************************************
** @Desc : This file for 加密、解密方法
** @Time : 2018.12.28 14:10
** @Author : Joker
** @File : encryption
** @Last Modified by : Joker
** @Last Modified time: 2019-11-30 10:19:33
** @Software: GoLand
****************************************************/
package utils
import (
"crypto/md5"
"encoding/base64"
"encoding/hex"
"strings"
)
type Encrypt struct{}
//将字符串加密成 md5
func (*Encrypt) EncodeMd5(buf []byte) string {
hash := md5.New()
hash.Write(buf)
return hex.EncodeToString(hash.Sum(nil))
}
//base64编码
func (*Encrypt) Base64Encode(raw []byte) string {
t := base64.StdEncoding.EncodeToString(raw)
t = strings.TrimSpace(t)
t = strings.Replace(t, "\r", "", -1)
t = strings.Replace(t, "\n", "", -1)
t = strings.Replace(t, "\n\r", "", -1)
t = strings.Replace(t, "\r\n", "", -1)
return t
}
//base64解码
func (*Encrypt) Base64Decode(raw string) ([]byte, error) {
return base64.StdEncoding.DecodeString(raw)
}

146
jhagent/utils/logs.go Normal file
View File

@@ -0,0 +1,146 @@
/***************************************************
** @Desc : This file for ...日志信息
** @Time : 2018-12-22 17:34:38
** @Author : Joker
** @File : DefaultTest.go
** @Last Modified by : Joker
** @Last Modified time: 2019-11-29 10:54:13
** @Software: GoLand
****************************************************/
package utils
import (
"juhe/jhagent/sys"
"strings"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
)
// consoleLogs开发模式下日志
var consoleLogs *logs.BeeLogger
// fileLogs 生产环境下日志
var fileLogs *logs.BeeLogger
//运行方式
var runmode string
var pubMethod = sys.PublicMethod{}
func InitLogs() {
//日志输出调用的文件名和文件行号
logs.EnableFuncCallDepth(true)
beego.SetLogFuncCall(true)
consoleLogs = logs.NewLogger(1)
_ = consoleLogs.SetLogger(logs.AdapterConsole)
consoleLogs.Async() //异步
fileLogs = logs.NewLogger(10000)
//读取配置信息
filepath := beego.AppConfig.String("logs::filepath")
level := beego.AppConfig.String("logs::level")
separate := beego.AppConfig.String("logs::separate")
maxdays := beego.AppConfig.String("logs::maxdays")
config := `{"filename":"` + filepath + `",
"separate":` + separate + `,
"level":` + level + `,
"daily":true,
"maxdays":` + maxdays + `}`
_ = fileLogs.SetLogger(logs.AdapterMultiFile, config)
fileLogs.Async(1e3) //异步,设置缓冲 chan 的大小
runmode = strings.TrimSpace(strings.ToLower(beego.AppConfig.String("runmode")))
if runmode == "" {
runmode = "dev"
}
LogNotice("代理商日志初始化成功!")
}
//根据错误/异常打印不同日志
func LogEmergency(v ...interface{}) {
log("emergency", v)
}
func LogAlert(v ...interface{}) {
log("alert", v)
}
func LogCritical(v ...interface{}) {
log("critical", v)
}
func LogError(v ...interface{}) {
log("error", v)
}
func LogWarning(v ...interface{}) {
log("warning", v)
}
func LogNotice(v ...interface{}) {
log("notice", v)
}
func LogInfo(v ...interface{}) {
log("info", v)
}
func LogDebug(v ...interface{}) {
log("debug", v)
}
func LogTrace(v ...interface{}) {
log("trace", v)
}
//Log 输出日志
func log(level string, v ...interface{}) {
format := "%s"
if level == "" {
level = "debug"
}
//若是开发者模式,则将日志同时输出到控制台
if runmode == "dev" {
switch level {
case "emergency":
consoleLogs.Emergency(format, v...)
case "alert":
consoleLogs.Alert(format, v...)
case "critical":
consoleLogs.Critical(format, v...)
case "warning":
consoleLogs.Warning(format, v...)
case "error":
consoleLogs.Error(format, v...)
case "notice":
consoleLogs.Notice(format, v...)
case "info":
consoleLogs.Info(format, v...)
case "debug":
consoleLogs.Debug(format, v...)
case "trace":
consoleLogs.Trace(format, v...)
default:
consoleLogs.Debug(format, v...)
}
}
switch level {
case "emergency":
fileLogs.Emergency(format, v...)
case "alert":
fileLogs.Alert(format, v...)
case "critical":
fileLogs.Critical(format, v...)
case "error":
fileLogs.Error(format, v...)
case "warning":
fileLogs.Warning(format, v...)
case "notice":
fileLogs.Notice(format, v...)
case "info":
fileLogs.Info(format, v...)
case "debug":
fileLogs.Debug(format, v...)
case "trace":
fileLogs.Trace(format, v...)
default:
fileLogs.Debug(format, v...)
}
}

44
jhagent/utils/mysql.go Normal file
View File

@@ -0,0 +1,44 @@
/***************************************************
** @Desc : This file for 配置数据库连接
** @Time : 2018-12-22 13:55:26
** @Author : Joker
** @File : init_database.go
** @Last Modified by : Joker
** @Last Modified time:2018-12-22 13:55:26
** @Software: GoLand
****************************************************/
package utils
import (
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
//初始化数据连接
func InitDatabase() bool {
//读取配置文件,设置数据库参数
dbType := beego.AppConfig.String("db_type")
dbAlias := beego.AppConfig.String(dbType + "::db_alias")
dbName := beego.AppConfig.String(dbType + "::db_name")
dbUser := beego.AppConfig.String(dbType + "::db_user")
dbPwd := beego.AppConfig.String(dbType + "::db_pwd")
dbHost := beego.AppConfig.String(dbType + "::db_host")
dbPort := beego.AppConfig.String(dbType + "::db_port")
var err error
switch dbType {
case "sqlite3":
err = orm.RegisterDataBase(dbAlias, dbType, dbName)
case "mysql":
dbCharset := beego.AppConfig.String(dbType + "::db_charset")
err = orm.RegisterDriver(dbType, orm.DRMySQL)
err = orm.RegisterDataBase(dbAlias, dbType, dbUser+":"+dbPwd+"@tcp("+dbHost+":"+
dbPort+")/"+dbName+"?charset="+dbCharset, 30)
}
if err != nil {
return false
}
return true
}

View File

@@ -0,0 +1,34 @@
/***************************************************
** @Desc : This file for 发送短信验证码
** @Time : 2019.04.04 9:37
** @Author : Joker
** @File : send_messages
** @Last Modified by : Joker
** @Last Modified time: 2019-11-29 11:05:41
** @Software: GoLand
****************************************************/
package utils
import (
"fmt"
"juhe/jhagent/sys/enum"
"net/http"
"net/url"
)
// 发送提现通知
func SendSmsForPay(mobile, code string) bool {
tplValue := url.Values{"#code#": {code}}.Encode()
dataTplSms := url.Values{
"apikey": {enum.ApiKey},
"mobile": {mobile},
"tpl_id": {fmt.Sprintf("%d", enum.TPL1)},
"tpl_value": {tplValue}}
_, err := http.PostForm(enum.SendSmsUrl, dataTplSms)
if err != nil {
LogError("sms send fail,err:", err)
return false
}
LogInfo(fmt.Sprintf("sms send to %s is success", mobile))
return true
}