mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2025-12-13 12:39:58 +08:00
提交新项目
This commit is contained in:
42
jhmerchant/utils/encryption.go
Normal file
42
jhmerchant/utils/encryption.go
Normal 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
jhmerchant/utils/logs.go
Normal file
146
jhmerchant/utils/logs.go
Normal 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/jhmerchant/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
jhmerchant/utils/mysql.go
Normal file
44
jhmerchant/utils/mysql.go
Normal 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
|
||||
}
|
||||
34
jhmerchant/utils/send_messages.go
Normal file
34
jhmerchant/utils/send_messages.go
Normal 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/jhmerchant/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
|
||||
}
|
||||
Reference in New Issue
Block a user