mirror of
https://github.com/kongyuebin1/dongfeng-pay.git
synced 2025-10-30 01:57:32 +08:00
由gopath形式改为module
This commit is contained in:
40
merchant/utils/date_time.go
Normal file
40
merchant/utils/date_time.go
Normal file
@@ -0,0 +1,40 @@
|
||||
/***************************************************
|
||||
** @Desc : This file for ...
|
||||
** @Time : 2019/8/21 10:21
|
||||
** @Author : yuebin
|
||||
** @File : date_time
|
||||
** @Last Modified by : yuebin
|
||||
** @Last Modified time: 2019/8/21 10:21
|
||||
** @Software: GoLand
|
||||
****************************************************/
|
||||
package utils
|
||||
|
||||
import "time"
|
||||
|
||||
func GetDateTimeNot() string {
|
||||
return time.Now().Format("2006010215:04:05")
|
||||
}
|
||||
|
||||
func GetDate() string {
|
||||
return time.Now().Format("2006-01-02")
|
||||
}
|
||||
|
||||
func GetBasicDateTime() string {
|
||||
return time.Now().Format("2006-01-02 15:04:05")
|
||||
}
|
||||
|
||||
func GetNowTimesTamp() string {
|
||||
return time.Now().Format("20060102150405")
|
||||
}
|
||||
|
||||
func GetDateTimeBeforeHours(hour int) string {
|
||||
return time.Now().Add(-time.Hour * time.Duration(hour)).Format("2006-01-02 15:04:05")
|
||||
}
|
||||
|
||||
func GetDateBeforeDays(days int) string {
|
||||
return time.Now().Add(-time.Hour * time.Duration(days) * 24).Format("2006-01-02")
|
||||
}
|
||||
|
||||
func GetDateTimeBeforeDays(days int) string {
|
||||
return time.Now().Add(-time.Hour * time.Duration(days) * 24).Format("2006-01-02 15:04:05")
|
||||
}
|
||||
42
merchant/utils/encryption.go
Normal file
42
merchant/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)
|
||||
}
|
||||
147
merchant/utils/logs.go
Normal file
147
merchant/utils/logs.go
Normal file
@@ -0,0 +1,147 @@
|
||||
/***************************************************
|
||||
** @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 (
|
||||
"github.com/beego/beego/v2/core/logs"
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
"merchant/sys"
|
||||
"strings"
|
||||
|
||||
)
|
||||
|
||||
// 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 的大小
|
||||
s, _ := beego.AppConfig.String("runmode")
|
||||
runmode = strings.TrimSpace(strings.ToLower(s))
|
||||
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
merchant/utils/mysql.go
Normal file
44
merchant/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/beego/beego/v2/client/orm"
|
||||
beego "github.com/beego/beego/v2/server/web"
|
||||
_ "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)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
34
merchant/utils/send_messages.go
Normal file
34
merchant/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"
|
||||
"merchant/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