commit
94682e39a5
@ -0,0 +1,8 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="Go" enabled="true" />
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/epur-pay.iml" filepath="$PROJECT_DIR$/.idea/epur-pay.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
@ -0,0 +1,71 @@
|
||||
package login
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/aliyun"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/redis"
|
||||
"errors"
|
||||
"fmt"
|
||||
redigo "github.com/gomodule/redigo/redis"
|
||||
)
|
||||
|
||||
type SsoSendSmsCodeParams struct {
|
||||
Mobile string `json:"mobile"`
|
||||
}
|
||||
|
||||
func SsoSendSmsCode(a *dapi.ApiBase, params *SsoSendSmsCodeParams) error {
|
||||
redisCodeKey := fmt.Sprintf("smscode:%s", params.Mobile)
|
||||
redisDailyKey := fmt.Sprintf("smscode_daily:%s", params.Mobile)
|
||||
|
||||
conn := redis.RPool.Get()
|
||||
defer func() {
|
||||
if err := conn.Close(); err != nil {
|
||||
logger.ErrorLogger.Infoln(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
code, err := conn.Do("GET", redisCodeKey)
|
||||
if err == nil && code != nil {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_sent_frequently"))
|
||||
}
|
||||
|
||||
dailyCount, err := redigo.Int(conn.Do("GET", redisDailyKey))
|
||||
if err != nil && !errors.Is(err, redigo.ErrNil) {
|
||||
logger.ErrorLogger.Errorln("获取验证码次数失败:", err.Error())
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_fetch_limit_failed"))
|
||||
}
|
||||
|
||||
if errors.Is(err, redigo.ErrNil) {
|
||||
dailyCount = 0
|
||||
}
|
||||
|
||||
if dailyCount >= 10 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_daily_limit"))
|
||||
}
|
||||
|
||||
captcha, err := aliyun.SendSmsLogin(params.Mobile)
|
||||
if err != nil {
|
||||
logger.ErrorLogger.Errorln("发送短信失败:", err.Error())
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_send_failed"))
|
||||
}
|
||||
|
||||
if _, err := conn.Do("SETEX", redisCodeKey, 300, captcha); err != nil {
|
||||
logger.ErrorLogger.Errorln("设置验证码60s时效失败:", err.Error())
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_cache_failed"))
|
||||
}
|
||||
|
||||
if dailyCount == 0 {
|
||||
if _, err := conn.Do("SETEX", redisDailyKey, 86400, 1); err != nil {
|
||||
logger.ErrorLogger.Errorln("设置一天最大发送验证码次数失败:", err.Error())
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_daily_record_failed"))
|
||||
}
|
||||
} else {
|
||||
if _, err := conn.Do("INCR", redisDailyKey); err != nil {
|
||||
logger.ErrorLogger.Errorln("验证码发送次数记录失败:", err.Error())
|
||||
return a.ReturnPublicErrorResponse(a.Translate("sms_code_daily_record_failed"))
|
||||
}
|
||||
}
|
||||
|
||||
return a.ReturnSuccessCustomResponse(a.NewSuccessResponseCommon())
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
package login
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/redis"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
redigo "github.com/gomodule/redigo/redis"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
"regexp"
|
||||
)
|
||||
|
||||
type SsoRegisterParams struct {
|
||||
Account string `json:"account"` // 注册账号
|
||||
Password string `json:"password"` // 密码
|
||||
Mobile string `json:"mobile"` // 手机号
|
||||
Email string `json:"email"` // 邮箱(可选)
|
||||
Invite string `json:"invite"` // 邀请码
|
||||
Captcha string `json:"captcha"` // 验证码
|
||||
}
|
||||
|
||||
type SsoRegisterResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
Token string `json:"token"`
|
||||
} `json:"data"`
|
||||
}
|
||||
|
||||
// SsoRegister 注册接口
|
||||
func SsoRegister(a *dapi.ApiBase, data *SsoRegisterParams) error {
|
||||
if len(data.Mobile) == 0 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("mobile_required"))
|
||||
}
|
||||
if len(data.Captcha) == 0 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("captcha_required"))
|
||||
}
|
||||
|
||||
mobileRegex := `^1[3-9]\d{9}$`
|
||||
matched, err := regexp.MatchString(mobileRegex, data.Mobile)
|
||||
if err != nil || !matched {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("invalid_mobile"))
|
||||
}
|
||||
|
||||
if len(data.Password) < 6 || len(data.Password) > 72 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("password_length_invalid"))
|
||||
}
|
||||
hasLetter := false
|
||||
hasNumber := false
|
||||
for _, char := range data.Password {
|
||||
if char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' {
|
||||
hasLetter = true
|
||||
}
|
||||
if char >= '0' && char <= '9' {
|
||||
hasNumber = true
|
||||
}
|
||||
}
|
||||
if !hasLetter || !hasNumber {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("password_complexity_invalid"))
|
||||
}
|
||||
|
||||
if len(data.Email) > 0 {
|
||||
emailRegex := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`
|
||||
matched, err := regexp.MatchString(emailRegex, data.Email)
|
||||
if err != nil || !matched {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("invalid_email"))
|
||||
}
|
||||
}
|
||||
|
||||
redisCodeKey := fmt.Sprintf("smscode:%s", data.Mobile)
|
||||
conn := redis.RPool.Get()
|
||||
defer func() {
|
||||
if err := conn.Close(); err != nil {
|
||||
logger.ErrorLogger.Infoln(err.Error())
|
||||
}
|
||||
}()
|
||||
|
||||
storedCaptcha, err := redigo.String(conn.Do("GET", redisCodeKey))
|
||||
if err != nil || storedCaptcha != data.Captcha {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("invalid_captcha"))
|
||||
}
|
||||
|
||||
//_, _ = conn.Do("DEL", redisCodeKey)
|
||||
|
||||
var count int64
|
||||
user := model.User{}
|
||||
err = a.Ts.Table(user.TableName()).Where("mobile", data.Mobile).Count(&count).Error
|
||||
if err != nil {
|
||||
utils.Error(err)
|
||||
}
|
||||
if count > 0 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("account_exists"))
|
||||
}
|
||||
|
||||
hashedPass, err := bcrypt.GenerateFromPassword([]byte(data.Password), bcrypt.DefaultCost)
|
||||
if err != nil {
|
||||
utils.Error(err)
|
||||
}
|
||||
|
||||
currentTime := utils.Time2StampSecond()
|
||||
clientIp := a.ClientIp()
|
||||
|
||||
newUser := model.User{
|
||||
Mobile: data.Mobile,
|
||||
Email: data.Email,
|
||||
Invite: data.Invite,
|
||||
Status: "0", // 状态 0-正常 1-拉黑
|
||||
Role: model.ArryString{},
|
||||
}
|
||||
|
||||
newUser.Detail = model.UserDetail{
|
||||
PassWord: string(hashedPass),
|
||||
CreateTime: currentTime,
|
||||
RegisterIp: clientIp,
|
||||
RegisterIpAddress: cache.GetIpAddress(clientIp),
|
||||
Nickname: data.Mobile, // 默认昵称与手机号一致
|
||||
}
|
||||
|
||||
err = a.Ts.Table(newUser.TableName()).Create(&newUser).Error
|
||||
if err != nil {
|
||||
utils.Error(err)
|
||||
}
|
||||
|
||||
token := dapi.EncryptToken(newUser.Uid)
|
||||
newUser.Detail.Token = token
|
||||
|
||||
err = a.Ts.Table(newUser.TableName()).Where("uid", newUser.Uid).
|
||||
Updates(map[string]interface{}{"detail": newUser.Detail}).Error
|
||||
if err != nil {
|
||||
utils.Error(err)
|
||||
}
|
||||
|
||||
response := SsoRegisterResponse{}
|
||||
response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
response.Data.Token = token
|
||||
|
||||
return a.ReturnSuccessCustomResponse(response)
|
||||
}
|
@ -0,0 +1,154 @@
|
||||
package login
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
type SsoLoginParams struct {
|
||||
Mobile string `json:"mobile"` // 登陆手机号
|
||||
Password string `json:"passWord"` // 密码
|
||||
//Captcha string `json:"captcha"` // 验证码
|
||||
}
|
||||
|
||||
type SsoLoginResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
Token string `json:"token"` //返回token
|
||||
} `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
/*
|
||||
登录
|
||||
*/
|
||||
|
||||
func SsoLogin(a *dapi.ApiBase, data *SsoLoginParams) error {
|
||||
Response := SsoLoginResponse{}
|
||||
|
||||
user := model.User{}
|
||||
utils.Error(a.Ts.Table(user.TableName()).Where("mobile", data.Mobile).Scan(&user).Error)
|
||||
|
||||
//if len(user.Role) <= 0 {
|
||||
// return a.ReturnPublicErrorResponse(a.Translate("user_role_invalid"))
|
||||
//}
|
||||
|
||||
if a.Log != nil {
|
||||
a.Log.Uid = user.Uid
|
||||
a.Log.Name = user.Mobile
|
||||
a.Log.Event = "登陆"
|
||||
}
|
||||
|
||||
lockNums := cache.Global.Caches.Config.GetInt64("lockNums")
|
||||
lockMins := cache.Global.Caches.Config.GetInt64("lockMins")
|
||||
|
||||
if lockNums > 0 && lockMins > 0 {
|
||||
currTime := utils.Time2StampSecond()
|
||||
if user.Detail.LoginErrorCount >= lockNums &&
|
||||
currTime-user.Detail.LoginErrorTime < lockMins*60 { //输入5次密码错误 锁5分钟
|
||||
|
||||
return a.ReturnPublicErrorResponse(fmt.Sprintf(a.Translate("pwd_error_lock"),
|
||||
lockNums, user.Detail.LoginErrorTime+lockMins*60-currTime)) //密码输入错误超过%d次,%d秒后可以继续操作
|
||||
}
|
||||
}
|
||||
|
||||
if err := bcrypt.CompareHashAndPassword([]byte(user.Detail.PassWord), []byte(data.Password)); err != nil {
|
||||
user.Detail.LoginErrorTime = utils.Time2StampSecond()
|
||||
user.Detail.LoginErrorCount += 1
|
||||
utils.DbErrSkipRecordNotFound(a.Ts.Table(user.TableName()).
|
||||
Where("uid", user.Uid).
|
||||
Updates(map[string]interface{}{"detail": user.Detail}).Error)
|
||||
return a.ReturnPublicErrorResponse(a.Translate("pwd_error"))
|
||||
}
|
||||
|
||||
if user.Status != "0" {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("user_blacklist"))
|
||||
}
|
||||
|
||||
user.Detail.Token = dapi.EncryptToken(user.Uid)
|
||||
user.Detail.LoginIp = a.ClientIp()
|
||||
user.Detail.LoginIpAddress = cache.GetIpAddress(user.Detail.LoginIp)
|
||||
user.Detail.LoginTime = utils.Time2StampSecond()
|
||||
user.Detail.LoginErrorCount = 0
|
||||
|
||||
utils.DbErrSkipRecordNotFound(a.Ts.Table(user.TableName()).
|
||||
Where("uid", user.Uid).
|
||||
Updates(map[string]interface{}{"detail": user.Detail}).Error)
|
||||
|
||||
a.AfterCallback = func() {
|
||||
// 这里需要刷新权限标识
|
||||
cache.Global.Caches.User.RefreshSelectRow(user.Uid)
|
||||
}
|
||||
|
||||
Response.Data.Token = user.Detail.Token
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
type UserInfoResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
Uid int64 `json:"uid"` // 会员ID
|
||||
Type string `json:"type"` // 用户类型 0-普通用户 1-体验用户
|
||||
Account string `json:"account"` // 登录账号
|
||||
Email string `json:"email"` // 绑定邮箱
|
||||
Mobile string `json:"mobile"` // 手机号 - 格式:+86 1234
|
||||
Invite string `json:"invite"` // 邀请码
|
||||
Auth string `json:"auth"` // 实名认证 0-未认证 1-审核中 2-已认证
|
||||
AdvancedStatus string `json:"advancedStatus"` // 高级认证状态 0-未认证 1-审核中 2-已认证 3-已拒绝
|
||||
Nickname string `json:"nickName"` // 用户名称
|
||||
Avatar string `json:"avatar"` // 用户头像
|
||||
ResourceId int64 `json:"resourceId"` // 头像资源文件
|
||||
Gender string `json:"gender"` // 0-男 1-女 2-未知
|
||||
Token string `json:"token"` // 登陆token
|
||||
Integral string `json:"integral"` // 信用积分
|
||||
IsGoogle string `json:"isGoogle"` // 是否绑定google验证 0-是 1-否
|
||||
GoogleCodeUrl string `json:"googleCodeUrl"` // google地址
|
||||
IsPayPwd string `json:"isPayPwd"` // 是否设置支付密码 0-是 1-否
|
||||
Role model.ArryString `json:"role"` // 角色
|
||||
LoginIp string `json:"loginIp"` // 登陆ip
|
||||
LoginIpAddress string `json:"loginIpAddress,omitempty"` // 登陆ip
|
||||
Date string `json:"date"`
|
||||
} `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
/*
|
||||
@Summary 用户详情
|
||||
@Router /user/info [post]
|
||||
*/
|
||||
|
||||
func UserInfo(a *dapi.ApiBase) error {
|
||||
|
||||
Response := UserInfoResponse{}
|
||||
|
||||
Response.Data.Uid = a.User.Uid
|
||||
Response.Data.Account = a.User.Account
|
||||
Response.Data.Email = a.User.Email
|
||||
Response.Data.Mobile = a.User.Mobile
|
||||
Response.Data.Invite = a.User.Invite
|
||||
Response.Data.Nickname = a.User.Detail.Nickname
|
||||
|
||||
Response.Data.Gender = a.User.Detail.Gender
|
||||
Response.Data.Token = a.User.Detail.Token
|
||||
Response.Data.LoginIp = a.User.Detail.LoginIp
|
||||
Response.Data.LoginIpAddress = a.User.Detail.LoginIpAddress
|
||||
|
||||
if len(Response.Data.LoginIpAddress) <= 0 {
|
||||
Response.Data.LoginIpAddress = cache.GetIpAddress(Response.Data.LoginIp)
|
||||
}
|
||||
|
||||
if len(a.User.Detail.PayPassWord) > 0 {
|
||||
Response.Data.IsPayPwd = "0"
|
||||
} else {
|
||||
Response.Data.IsPayPwd = "1"
|
||||
}
|
||||
|
||||
// 角色
|
||||
Response.Data.Role = a.User.Role
|
||||
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
@ -0,0 +1 @@
|
||||
package api
|
@ -0,0 +1,65 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/utils"
|
||||
)
|
||||
|
||||
type GetPayChannelResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data []model.PayChannel `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
func GetPayChannel(a *dapi.ApiBase) error {
|
||||
|
||||
Response := GetPayChannelResponse{
|
||||
ResponseCommon: a.NewSuccessResponseCommon(),
|
||||
}
|
||||
|
||||
query := a.Ts.Table(model.PayChannel{}.TableName())
|
||||
|
||||
query.Count(&Response.Count)
|
||||
|
||||
utils.Error(query.Limit(a.Limit).Offset(a.Offset).Scan(&Response.Data).Error)
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
type AddPayChannelParams struct {
|
||||
Name string `json:"name"` // 渠道名称
|
||||
Logo string `json:"logo"` // 渠道Logo
|
||||
Status bool `json:"status"` // 状态
|
||||
}
|
||||
|
||||
func AddPayChannel(a *dapi.ApiBase, data *AddPayChannelParams) error {
|
||||
|
||||
instance := model.PayChannel{
|
||||
Name: data.Name,
|
||||
Logo: data.Logo,
|
||||
Status: data.Status,
|
||||
CreateTime: utils.Time2StampSecond(),
|
||||
}
|
||||
utils.Error(a.Ts.Create(&instance).Error)
|
||||
|
||||
return a.ReturnSuccessResponse()
|
||||
}
|
||||
|
||||
type EditPayChannelParams struct {
|
||||
Id int64 `json:"id"` // ID
|
||||
Request model.PayRequests `json:"payRequests"` // 接入
|
||||
}
|
||||
|
||||
func EditPayChannel(a *dapi.ApiBase, data *EditPayChannelParams) error {
|
||||
|
||||
instance := model.PayChannel{}
|
||||
utils.Error(a.Ts.Table(instance.TableName()).Where("id = ?", data.Id).Scan(&instance).Error)
|
||||
if instance.Id <= 0 {
|
||||
return a.ReturnPublicErrorResponse("不存在")
|
||||
}
|
||||
|
||||
utils.DbErrSkipRecordNotFound(a.Ts.Table(instance.TableName()).
|
||||
Where("id", instance.Id).
|
||||
Updates(map[string]interface{}{"pay_requests": data.Request}).Error)
|
||||
|
||||
return a.ReturnSuccessResponse()
|
||||
}
|
@ -0,0 +1,178 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/utils"
|
||||
)
|
||||
|
||||
type MenuResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data []model.Menu `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
// @Summary 角色菜单列表
|
||||
func GetMenuList(a *dapi.ApiBase) error {
|
||||
// 查询菜单
|
||||
menu := []model.Menu{}
|
||||
utils.Error(a.Ts.Raw(`
|
||||
select DISTINCT m.id,m.pid,m.title,m.icon,m.path,m.component,m.target,m.permission,m.type,m.status,m.hide,m.note,m.sort
|
||||
from menu as m left join role_menu as rm on rm.menu_id = m.id
|
||||
left join user_role as ur on ur.role_id = rm.role_id
|
||||
where ur.uid = ? and m.type = 0 and m.status = 1 and m.is_delete = 0
|
||||
order by m.pid asc, m.sort asc`, a.User.Uid).Scan(&menu).Error)
|
||||
|
||||
Response := MenuResponse{}
|
||||
Response.Data = GetMenu(a.User.Detail.Token, menu, 0, nil)
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
// 重装结构方式
|
||||
func GetMenu(token string, menuList []model.Menu, pid int64, message map[string]int64) []model.Menu {
|
||||
treeList := []model.Menu{}
|
||||
for _, v := range menuList {
|
||||
if v.Pid == pid {
|
||||
child := GetMenu(token, menuList, v.Id, message)
|
||||
v.Children = child
|
||||
// 消息数量
|
||||
if message != nil {
|
||||
v.Meta.Badge = message[v.Permission]
|
||||
}
|
||||
treeList = append(treeList, v)
|
||||
}
|
||||
}
|
||||
return treeList
|
||||
}
|
||||
|
||||
type MenuPermissionList struct {
|
||||
Permission string `json:"permission"`
|
||||
}
|
||||
|
||||
type UserPermissionListResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
Id int64 `json:"id"` // 用户ID
|
||||
Nickname string `json:"nickname"` // 用户昵称
|
||||
RealName string `json:"realName"` // 别名
|
||||
Avatar string `json:"avatar"` // 头像
|
||||
PermissionList []string `json:"permissionList"`
|
||||
} `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
// @Summary 权限标识列表
|
||||
func GetPermissionList(a *dapi.ApiBase) error {
|
||||
Response := UserPermissionListResponse{}
|
||||
|
||||
permission := []MenuPermissionList{}
|
||||
utils.Error(a.Ts.Raw(`select m.permission from menu as m left join role_menu as rm on rm.menu_id = m.id
|
||||
left join user_role as ur on ur.role_id = rm.role_id
|
||||
where ur.uid = ? and m.type = 1 and m.status = 1 and m.is_delete = 0`,
|
||||
a.User.Uid).Scan(&permission).Error)
|
||||
|
||||
var permissionList []string
|
||||
for _, v := range permission {
|
||||
permissionList = append(permissionList, v.Permission)
|
||||
}
|
||||
|
||||
Response.Data.Id = a.User.Uid
|
||||
Response.Data.Nickname = a.User.Detail.Nickname
|
||||
Response.Data.RealName = a.User.Detail.Nickname
|
||||
//Response.Avatar = a.User.Detail.Avatar
|
||||
Response.Data.PermissionList = permissionList
|
||||
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
type GetPermissionMenuParams struct {
|
||||
MenuId int64 `json:"menuId"` //菜单集合
|
||||
}
|
||||
|
||||
type MenuAllResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data []model.Menu `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
// @Summary 获取所有菜单
|
||||
func GetAllMenuList(a *dapi.ApiBase) error {
|
||||
Response := MenuResponse{}
|
||||
|
||||
utils.Error(a.Ts.Raw(
|
||||
`select m.* from menu as m where m.is_delete = 0 order by m.pid asc, m.sort asc`).Scan(&Response.Data).Error)
|
||||
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
type EditMenuResponse struct {
|
||||
Id int64 `json:"id,omitempty"` //菜单ID
|
||||
Pid int64 `json:"pid"` //菜单父级ID
|
||||
Title string `json:"title"` //菜单名称
|
||||
Icon string `json:"icon"` //菜单图标
|
||||
Path string `json:"path"` //菜单路径
|
||||
Component string `json:"component"` //菜单组件
|
||||
Target int64 `json:"target"` //打开方式 0-组件 1-内链 2-外链
|
||||
Permission string `json:"permission"` //权限标识
|
||||
Type int `json:"type"` //类型 0-菜单 1-节点
|
||||
Status int `json:"status"` //状态 1-正常 2-禁用
|
||||
Hide int `json:"hide"` //类型 0-显示 1-隐藏
|
||||
Note string `json:"note"` //备注
|
||||
Sort int `json:"sort"` //排序
|
||||
}
|
||||
|
||||
// @Summary 编辑菜单
|
||||
func EditMenuInfo(a *dapi.ApiBase, data *EditMenuResponse) error {
|
||||
if data.Id > 0 {
|
||||
utils.Error(a.Ts.Model(&model.Menu{}).Where("id", data.Id).Updates(map[string]interface{}{
|
||||
"pid": data.Pid,
|
||||
"status": 1,
|
||||
"title": data.Title,
|
||||
"type": data.Type,
|
||||
"permission": data.Permission,
|
||||
"hide": data.Hide,
|
||||
"sort": data.Sort,
|
||||
"target": data.Target,
|
||||
"path": data.Path,
|
||||
"component": data.Component,
|
||||
"icon": data.Icon,
|
||||
}).Error)
|
||||
// 这里要刷新下权限
|
||||
cache.Global.Caches.RolePermission = cache.Global.Caches.RolePermission.Refresh()
|
||||
} else {
|
||||
menu := &model.Menu{}
|
||||
menu.Pid = data.Pid
|
||||
menu.Title = data.Title
|
||||
menu.Type = data.Type
|
||||
menu.Permission = data.Permission
|
||||
menu.Hide = data.Hide
|
||||
menu.Sort = data.Sort
|
||||
menu.Target = data.Target
|
||||
menu.Path = data.Path
|
||||
menu.Component = data.Component
|
||||
menu.Icon = data.Icon
|
||||
menu.Status = 1
|
||||
// 如果是菜单的时候, 需要判断菜单权限表示是否重复
|
||||
if data.Type == 0 {
|
||||
if len(data.Permission) <= 0 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("AT021"))
|
||||
}
|
||||
|
||||
var total int64
|
||||
utils.Error(a.Ts.Table(model.Menu{}.TableName()).Where(`permission = ?`, data.Permission).Count(&total).Error)
|
||||
if total > 0 {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("AT000"))
|
||||
}
|
||||
}
|
||||
|
||||
utils.Error(a.Ts.Create(&menu).Error)
|
||||
}
|
||||
|
||||
return a.ReturnSuccessResponse()
|
||||
}
|
||||
|
||||
type CommonIdsResponse struct {
|
||||
Id []interface{} `json:"id"`
|
||||
Status string `json:"status"`
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/logger"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
type TestParams struct {
|
||||
model.Http
|
||||
}
|
||||
|
||||
type TestResponse struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
RequestQuery interface{} `json:"requestQuery"`
|
||||
RequestBody interface{} `json:"requestBody"`
|
||||
Response interface{} `json:"response"`
|
||||
} `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
func Test(a *dapi.ApiBase, data *TestParams) error {
|
||||
|
||||
Response := TestResponse{
|
||||
ResponseCommon: a.NewSuccessResponseCommon(),
|
||||
}
|
||||
|
||||
//fmt.Println(utils.ToJson(data))
|
||||
if req, err := data.Do(); err != nil {
|
||||
return a.ReturnPublicErrorResponse(err.Error())
|
||||
} else {
|
||||
Response.Data.RequestQuery = req.QueryParams
|
||||
Response.Data.RequestBody = req.Body
|
||||
Response.Data.Response = string(req.Result)
|
||||
}
|
||||
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
type Test1Params struct {
|
||||
Amount decimal.Decimal `json:"amount"`
|
||||
OrderId string `json:"orderId"`
|
||||
}
|
||||
|
||||
type Test1Response struct {
|
||||
*dapi.ResponseCommon
|
||||
Data struct {
|
||||
Url string `json:"url"` // 支付连接
|
||||
Status string `json:"status"` // 支付状态 0-成功 1-失败
|
||||
} `json:"data"` //数据列表
|
||||
}
|
||||
|
||||
func Test1(a *dapi.ApiBase, data *Test1Params) error {
|
||||
|
||||
logger.AccessLogger.Infoln(a.C.Query("11"))
|
||||
|
||||
logger.AccessLogger.Infof("支付金额[%s] 订单号[%s]", data.Amount, data.OrderId)
|
||||
Response := Test1Response{}
|
||||
|
||||
Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
Response.Data.Url = "https://www.baidu.com"
|
||||
Response.Data.Status = "0"
|
||||
return a.ReturnSuccessCustomResponse(Response)
|
||||
}
|
||||
|
||||
//
|
||||
//type Test2Params struct {
|
||||
// model.Http
|
||||
//}
|
||||
//
|
||||
//func Test2(a *dapi.ApiBase, data *Test2Params) error {
|
||||
//
|
||||
// Response := TestResponse{}
|
||||
//
|
||||
// if req, err := data.Do(); err != nil {
|
||||
// return a.ReturnPublicErrorResponse(err.Error())
|
||||
// } else {
|
||||
// Response.ResponseCommon = a.NewSuccessResponseCommon()
|
||||
// Response.Data = string(req.Result)
|
||||
// }
|
||||
//
|
||||
// return a.ReturnSuccessCustomResponse(Response)
|
||||
//}
|
@ -0,0 +1,33 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type BlackList struct {
|
||||
Ip model.ArryString
|
||||
duplicate *BlackList
|
||||
}
|
||||
|
||||
func (p *BlackList) Refresh() *BlackList {
|
||||
p.duplicate = &BlackList{}
|
||||
|
||||
blackInfo := model.BlackList{}
|
||||
utils.Error(rds.DB.Raw(`select * from black_list where id = ?`, 1).Scan(&blackInfo).Error)
|
||||
|
||||
p.duplicate.Ip = blackInfo.Ip
|
||||
|
||||
return p.duplicate
|
||||
}
|
||||
|
||||
// 验证码ip
|
||||
func (p *BlackList) Check(ip string) bool {
|
||||
if len(strings.ReplaceAll(ip, " ", "")) <= 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
return p.Ip.Of(ip)
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Data sync.Map
|
||||
}
|
||||
|
||||
type configData struct {
|
||||
Code string `json:"code"` //key
|
||||
Comment string `json:"comment"` //comment
|
||||
}
|
||||
|
||||
func (p *Config) Refresh() *Config {
|
||||
data := []configData{}
|
||||
utils.Error(rds.DB.Raw(`select * from config where pid != 0`).Scan(&data).Error)
|
||||
|
||||
for _, v := range data {
|
||||
p.Data.Store(v.Code, v.Comment)
|
||||
}
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Config) RefreshRow(data *model.Config) {
|
||||
p.Data.Store(data.Code, data.Comment)
|
||||
}
|
||||
|
||||
func (p *Config) RefreshDel(data *model.Config) {
|
||||
p.Data.Delete(data.Code)
|
||||
}
|
||||
|
||||
func (p *Config) Get(key string) string {
|
||||
|
||||
if row, ok := p.Data.Load(key); ok {
|
||||
return row.(string)
|
||||
} else {
|
||||
logger.AccessLogger.Warnln("缓存不存在了,注意!", key)
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Config) GetByte(key string) []byte {
|
||||
|
||||
if row, ok := p.Data.Load(key); ok {
|
||||
return []byte(row.(string))
|
||||
} else {
|
||||
logger.AccessLogger.Warnln("缓存不存在了,注意!", key)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Config) GetJsonRaw(key string) (row json.RawMessage) {
|
||||
data := p.GetByte(key)
|
||||
if data != nil {
|
||||
_ = json.Unmarshal(data, &row)
|
||||
}
|
||||
return row
|
||||
}
|
||||
|
||||
func (p *Config) GetMap(key string) map[string]interface{} {
|
||||
data := p.GetByte(key)
|
||||
row := make(map[string]interface{})
|
||||
if data != nil {
|
||||
configJson := []model.ConfigJson{}
|
||||
_ = json.Unmarshal(data, &configJson)
|
||||
for _, v := range configJson {
|
||||
row[v.Key] = v.Value
|
||||
}
|
||||
}
|
||||
|
||||
return row
|
||||
}
|
||||
|
||||
func (p *Config) GetArrayString(key string) []string {
|
||||
row := []string{}
|
||||
data := p.Get(key)
|
||||
|
||||
if len(data) > 0 {
|
||||
row = strings.Split(p.Get(key), ",")
|
||||
}
|
||||
return row
|
||||
}
|
||||
|
||||
func (p *Config) GetInt64(key string) int64 {
|
||||
if row, ok := p.Data.Load(key); ok {
|
||||
r, _ := strconv.Atoi(row.(string))
|
||||
return int64(r)
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Language struct {
|
||||
List []model.SysLanguage
|
||||
Map *sync.Map
|
||||
TranslateMap *sync.Map
|
||||
DefaultLanguage string
|
||||
duplicate *Language
|
||||
}
|
||||
|
||||
func (p *Language) Refresh() *Language {
|
||||
|
||||
p.duplicate = &Language{}
|
||||
p.duplicate.Map = new(sync.Map)
|
||||
p.duplicate.TranslateMap = new(sync.Map)
|
||||
|
||||
utils.Error(rds.DB.Raw(`select * from sys_language order by sort`).Scan(&p.duplicate.List).Error)
|
||||
|
||||
for _, v := range p.duplicate.List {
|
||||
if v.IsDefault == "0" {
|
||||
p.duplicate.DefaultLanguage = v.Akey
|
||||
}
|
||||
}
|
||||
if len(p.duplicate.DefaultLanguage) <= 0 {
|
||||
p.duplicate.DefaultLanguage = "en_US"
|
||||
}
|
||||
|
||||
// 资源文件
|
||||
translate := []model.Translate{}
|
||||
utils.Error(rds.DB.Table(model.Translate{}.TableName()).Where(`type = ?`, 0).Order(`id asc`).Scan(&translate).Error)
|
||||
|
||||
for idx, v := range translate {
|
||||
p.duplicate.TranslateMap.Store(v.LanguageKey, translate[idx].To)
|
||||
}
|
||||
|
||||
return p.duplicate
|
||||
}
|
||||
|
||||
func (p *Language) GetLang(lang string, key string) string {
|
||||
|
||||
if trans, ok := p.TranslateMap.Load(key); ok {
|
||||
for _, v := range trans.(model.TranslateTos) {
|
||||
if v.GoogleKey == lang {
|
||||
return v.To
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ""
|
||||
}
|
||||
|
||||
func (p *Language) GetTranslate(key string) model.TranslateTos {
|
||||
if row, ok := p.TranslateMap.Load(key); ok {
|
||||
return row.(model.TranslateTos)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Language) GetDefaultLang(key string) string {
|
||||
row, _ := p.Map.Load(p.DefaultLanguage)
|
||||
result, _ := row.(*sync.Map).Load(key)
|
||||
return result.(string)
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type RolePermission struct {
|
||||
Map *sync.Map
|
||||
duplicate *RolePermission
|
||||
}
|
||||
|
||||
type MenuPermission struct {
|
||||
RoleId int64 `gorm:"column:role_id" json:"roleId"`
|
||||
Permission string `gorm:"column:permission" json:"permission"`
|
||||
}
|
||||
|
||||
func (p *RolePermission) Refresh() *RolePermission {
|
||||
permission := []MenuPermission{}
|
||||
utils.Error(rds.DB.Raw(`
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
`).Scan(&permission).Error)
|
||||
|
||||
p.duplicate = &RolePermission{}
|
||||
p.duplicate.Map = &sync.Map{}
|
||||
|
||||
for _, v := range permission {
|
||||
roleId := fmt.Sprintf("%d", v.RoleId)
|
||||
if row, ok := p.duplicate.Map.Load(roleId); ok {
|
||||
row = append(row.(model.ArryString), v.Permission)
|
||||
|
||||
p.duplicate.Map.Store(roleId, row)
|
||||
} else {
|
||||
p.duplicate.Map.Store(roleId, model.ArryString{v.Permission})
|
||||
}
|
||||
}
|
||||
|
||||
return p.duplicate
|
||||
}
|
||||
|
||||
// 验证是否有权限
|
||||
func (p *RolePermission) Check(roleAttr model.Arry, permission string) bool {
|
||||
// 用户支持多个角色
|
||||
for i := range roleAttr {
|
||||
if row, ok := p.Map.Load(fmt.Sprintf("%d", roleAttr[i])); ok {
|
||||
if row.(model.ArryString).Of(permission) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"github.com/muesli/cache2go"
|
||||
"time"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Data *cache2go.CacheTable
|
||||
duplicate *User
|
||||
}
|
||||
|
||||
func (p *User) Refresh() *User {
|
||||
p.duplicate = &User{}
|
||||
p.duplicate.Data = cache2go.Cache("userList")
|
||||
return p.duplicate
|
||||
}
|
||||
|
||||
func (p *User) RefreshRow(u *model.User) *model.User {
|
||||
p.Data.Add(u.Uid, time.Duration(7*24*60*60)*time.Second, u)
|
||||
return u
|
||||
}
|
||||
|
||||
func (p *User) RefreshBatchRow(u ...*model.User) {
|
||||
for index, _ := range u {
|
||||
p.RefreshRow(u[index])
|
||||
}
|
||||
}
|
||||
|
||||
func (p *User) RefreshSelectRow(uid int64) *model.User {
|
||||
user := model.User{}
|
||||
utils.DbErrSkipRecordNotFound(rds.DB.Raw(`select * from user where uid = ?`, uid).Scan(&user).Error)
|
||||
|
||||
if user.Uid <= 0 {
|
||||
return nil
|
||||
}
|
||||
// 获取用户拥有的权限
|
||||
utils.DbErrSkipRecordNotFound(rds.DB.Table(model.UserRole{}.TableName()).Select(`role_id`).
|
||||
Where(`uid = ?`, user.Uid).Scan(&user.RoleIds).Error)
|
||||
|
||||
// 刷新缓存
|
||||
p.RefreshRow(&user)
|
||||
return &user
|
||||
}
|
||||
|
||||
func (p *User) RefreshSelectBatchRow(uid ...int64) {
|
||||
for _, item := range uid {
|
||||
p.RefreshSelectRow(item)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *User) Get(uid int64) *model.User {
|
||||
if row, err := p.Data.Value(uid); err == nil {
|
||||
return row.Data().(*model.User)
|
||||
} else {
|
||||
return p.RefreshSelectRow(uid)
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package cacheApi
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"sync"
|
||||
)
|
||||
|
||||
type Version struct {
|
||||
Data sync.Map
|
||||
duplicate *Version
|
||||
}
|
||||
|
||||
func (p *Version) Refresh() *Version {
|
||||
|
||||
p.duplicate = &Version{}
|
||||
|
||||
versions := make([]model.Version, 0)
|
||||
|
||||
utils.Error(rds.DB.Table(model.Version{}.TableName()).Where(`status = 0`).Scan(&versions).Error)
|
||||
|
||||
for index, _ := range versions {
|
||||
p.duplicate.Data.Store(versions[index].Type, versions[index])
|
||||
}
|
||||
|
||||
return p.duplicate
|
||||
}
|
||||
|
||||
func (p *Version) RefreshRow(data interface{}) {
|
||||
|
||||
instance := data.(model.Version)
|
||||
p.Data.Store(instance.Type, instance)
|
||||
}
|
||||
|
||||
func (p *Version) Get(key string) *model.Version {
|
||||
|
||||
if row, ok := p.Data.Load(key); ok {
|
||||
t1 := row.(model.Version)
|
||||
return &t1
|
||||
} else {
|
||||
logger.AccessLogger.Errorln("缓存不存在了,注意!", key)
|
||||
return nil
|
||||
}
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package cache
|
||||
|
||||
import (
|
||||
cacheApi "epur-pay/cache/api"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/limit"
|
||||
"github.com/oschwald/geoip2-golang"
|
||||
"time"
|
||||
)
|
||||
|
||||
var Global *GlobalServerCache
|
||||
|
||||
/*
|
||||
全局公用缓存层
|
||||
*/
|
||||
|
||||
type GlobalServerCache struct {
|
||||
ProjectInitStatus bool // 项目是否初始化完成
|
||||
IpLocation *geoip2.Reader // IP库
|
||||
DefaultTimeZone *time.Location // 默认时区
|
||||
LimitRouter struct {
|
||||
RuleKey string
|
||||
Rule *limit.LimitConfRules
|
||||
Api limit.LimiterIface
|
||||
} // 限流器
|
||||
Routers []*model.RouterMethod
|
||||
Caches struct {
|
||||
Config *cacheApi.Config
|
||||
Language *cacheApi.Language
|
||||
Version *cacheApi.Version
|
||||
RolePermission *cacheApi.RolePermission // 角色菜单权限
|
||||
User *cacheApi.User
|
||||
BlackList *cacheApi.BlackList // 黑名单
|
||||
}
|
||||
}
|
||||
|
||||
func New() {
|
||||
Global = &GlobalServerCache{}
|
||||
Global.CacheDataInit()
|
||||
}
|
||||
|
||||
func (g *GlobalServerCache) CacheDataInit() {
|
||||
|
||||
g.DefaultTimeZone, _ = time.LoadLocation("Asia/Shanghai")
|
||||
g.LimitRouter.Rule = &limit.LimitConfRules{
|
||||
Rules: make(map[string]*limit.LimitOpt),
|
||||
}
|
||||
g.Caches.Config = (&cacheApi.Config{}).Refresh()
|
||||
g.Caches.Language = (&cacheApi.Language{}).Refresh()
|
||||
g.Caches.Version = (&cacheApi.Version{}).Refresh()
|
||||
g.Caches.BlackList = (&cacheApi.BlackList{}).Refresh()
|
||||
g.Caches.RolePermission = (&cacheApi.RolePermission{}).Refresh()
|
||||
g.Caches.User = (&cacheApi.User{}).Refresh()
|
||||
|
||||
if config.Cf.Common.RunMode == "release" {
|
||||
NewIpLocation()
|
||||
}
|
||||
|
||||
go func() {
|
||||
g.ProjectInitStatus = true
|
||||
}()
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package cache
|
||||
|
||||
import (
|
||||
"ehttp/http"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/redis"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/oschwald/geoip2-golang"
|
||||
"net"
|
||||
"reflect"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
const IpStoreKey = "ipAA"
|
||||
|
||||
func NewIpLocation() {
|
||||
go func() {
|
||||
if err := LoadIpStore(); err != nil && err.Error() == "加载IP库失败,未找到IP库" {
|
||||
_ = GetIpStore(Global.Caches.Config.Get("IpStoreRemoteAddr"))
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func LoadIpStore() (err error) {
|
||||
|
||||
conn := redis.RPool.Get()
|
||||
|
||||
defer func() {
|
||||
if err1 := conn.Close(); err1 != nil {
|
||||
logger.ErrorLogger.Infoln(err1.Error())
|
||||
err = err1
|
||||
}
|
||||
}()
|
||||
|
||||
var reply interface{}
|
||||
|
||||
if reply, err = conn.Do("GET", IpStoreKey); err != nil {
|
||||
logger.AccessLogger.Errorln("加载IP库失败:", err.Error())
|
||||
return
|
||||
} else if reply != nil {
|
||||
if Global.IpLocation, err = geoip2.FromBytes(reply.([]byte)); err != nil {
|
||||
logger.AccessLogger.Errorln("Error opening IP2Location database:", err)
|
||||
return
|
||||
}
|
||||
logger.AccessLogger.Infoln("加载IP库成功...")
|
||||
} else {
|
||||
logger.AccessLogger.Warnln("加载IP库失败,未找到IP库")
|
||||
err = errors.New("加载IP库失败,未找到IP库")
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func GetIpStore(url string) (err error) {
|
||||
|
||||
logger.AccessLogger.Infoln("开始获取IP库数据...")
|
||||
|
||||
conn := redis.RPool.Get()
|
||||
|
||||
defer func() {
|
||||
if err1 := conn.Close(); err1 != nil {
|
||||
logger.ErrorLogger.Infoln(err1.Error())
|
||||
err = err1
|
||||
} else {
|
||||
_ = LoadIpStore()
|
||||
}
|
||||
}()
|
||||
|
||||
req := http.New(
|
||||
http.WithUrl(url),
|
||||
http.WithMethod(http.GET),
|
||||
)
|
||||
if err = req.Do(); err != nil {
|
||||
logger.AccessLogger.Errorln("获取远端IP失败:", err.Error())
|
||||
return
|
||||
}
|
||||
if err = conn.Send("SET", IpStoreKey, req.Result); err != nil {
|
||||
logger.AccessLogger.Errorln("获取远端IP失败:", err.Error())
|
||||
return
|
||||
}
|
||||
if err = conn.Flush(); err != nil {
|
||||
logger.AccessLogger.Errorln("获取远端IP失败:", err.Error())
|
||||
return
|
||||
}
|
||||
logger.AccessLogger.Infoln("IP库数据获取完毕...")
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func GetIpAddress(ip string) string {
|
||||
|
||||
defer func() {
|
||||
err := recover()
|
||||
if err != nil {
|
||||
buf := make([]byte, 1<<16)
|
||||
runtime.Stack(buf, true)
|
||||
e := reflect.ValueOf(err)
|
||||
logger.AccessLogger.Errorln(e.String())
|
||||
}
|
||||
}()
|
||||
|
||||
if len(ip) > 0 && Global.IpLocation != nil {
|
||||
// 查询 IP 地址信息
|
||||
record, err := Global.IpLocation.City(net.ParseIP(ip))
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf("%s %s", record.Country.Names["zh-CN"], record.City.Names["zh-CN"])
|
||||
}
|
||||
return ""
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/deatil/go-array/array"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
arrData := map[string]any{
|
||||
"a": 123,
|
||||
"b": map[string]any{
|
||||
"c": "ccc",
|
||||
"d": map[string]any{
|
||||
"e": "eee",
|
||||
"f": map[string]any{
|
||||
"g": "ggg",
|
||||
},
|
||||
},
|
||||
"dd": []any{
|
||||
"ccccc",
|
||||
"ddddd",
|
||||
"fffff",
|
||||
},
|
||||
"ff": map[any]any{
|
||||
111: "fccccc",
|
||||
222: "fddddd",
|
||||
333: "dfffff",
|
||||
},
|
||||
"hh": map[int]any{
|
||||
1115: "hccccc",
|
||||
2225: "hddddd",
|
||||
3335: map[any]string{
|
||||
"qq1": "qq1ccccc",
|
||||
"qq2": "qq2ddddd",
|
||||
"qq3": "qq3fffff",
|
||||
},
|
||||
},
|
||||
"kJh21ay": map[string]any{
|
||||
"Hjk2": "fccDcc",
|
||||
"23rt": "^hgcF5c",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
fmt.Println(array.Get(arrData, "b.d.e"))
|
||||
// output: eee
|
||||
|
||||
fmt.Println(array.Get(arrData, "b.dd.1"))
|
||||
// output: ddddd
|
||||
|
||||
fmt.Println(array.Get(arrData, "b.hh.3335.qq2"))
|
||||
// output: qq2ddddd
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
|
||||
[Common]
|
||||
LogFilePath = logs
|
||||
Local = zh
|
||||
AesKey = `PTIU3VR6HdfhziklcFQBXee1lkdpnesr`
|
||||
IsLocal = 0
|
||||
|
||||
[AppServer]
|
||||
Port = 11000
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[ApiServer]
|
||||
Port = 11001
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[AdminServer]
|
||||
Port = 11002
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[PcServer]
|
||||
Port = 11003
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[AppDownServer]
|
||||
Port = 11004
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[Rds]
|
||||
Type = mysql
|
||||
Host = 127.0.0.1
|
||||
Name = e2
|
||||
Port = 3307
|
||||
User = root
|
||||
PassWord = `fsdfds12TTckc3ofsd123.,123.,,,...addf1jjjOO&6&^!@#!@#`
|
||||
|
||||
CharSet = utf8mb4
|
||||
#空闲连接池中连接的最大数量
|
||||
MaxIdleConns = 10
|
||||
#打开数据库连接的最大数量
|
||||
MaxOpenConns = 20
|
||||
#慢日志打印时间(ms)
|
||||
SlowThreshold = 100
|
||||
|
||||
[Redis]
|
||||
Type = redis
|
||||
Host = 127.0.0.1
|
||||
Port = 6379
|
||||
PassWord = `afasdf12313%%%^^^^`
|
||||
Name = 8
|
||||
|
||||
MaxIdle = 10
|
||||
###
|
||||
#连接池在给定时间分配的最大连接数。
|
||||
#当为零时,池中的连接数没有限制。
|
||||
###
|
||||
MaxActive = 20
|
||||
#读超时时间
|
||||
ReadTimeout = 10
|
||||
#写超时时间
|
||||
WriteTimeout = 60
|
||||
#连接超时时间
|
||||
ConnectTimeout = 2
|
||||
###
|
||||
#在此期间保持空闲状态后关闭连接。如果值
|
||||
#为零,则空闲连接未关闭。应设置应用程序
|
||||
#超时值小于服务器的超时值。
|
||||
###
|
||||
IdleTimeout = 60
|
@ -0,0 +1,55 @@
|
||||
|
||||
[Common]
|
||||
LogFilePath = logs
|
||||
Local = zh
|
||||
|
||||
[ApiServer]
|
||||
Port = 11000
|
||||
ReadTimeOut = 60
|
||||
WriteTimeOut = 60
|
||||
|
||||
[Rds]
|
||||
Type = mysql
|
||||
Host = localhost
|
||||
#Host = 192.168.1.181
|
||||
Name = epur-pay
|
||||
Port = 3306
|
||||
User = root
|
||||
#PassWord = `fadsfsfsdfds12TTckc3ofsd123.,123.,,,...addf1jjjOO&6&^!@#!@#`
|
||||
PassWord = `tG0f6PVYh18le41BCb`
|
||||
|
||||
CharSet = utf8mb4
|
||||
#空闲连接池中连接的最大数量
|
||||
MaxIdleConns = 10
|
||||
#打开数据库连接的最大数量
|
||||
MaxOpenConns = 20
|
||||
#慢日志打印时间(ms)
|
||||
SlowThreshold = 100
|
||||
|
||||
[Redis]
|
||||
Type = redis
|
||||
#Host = 8.217.170.205
|
||||
#Host = 192.168.1.181
|
||||
Host = localhost
|
||||
Port = 6379
|
||||
; PassWord = `afasdf12313%%%^^^^`
|
||||
Name = default
|
||||
|
||||
MaxIdle = 10
|
||||
###
|
||||
#连接池在给定时间分配的最大连接数。
|
||||
#当为零时,池中的连接数没有限制。
|
||||
###
|
||||
MaxActive = 20
|
||||
#读超时时间
|
||||
ReadTimeout = 2
|
||||
#写超时时间
|
||||
WriteTimeout = 60
|
||||
#连接超时时间
|
||||
ConnectTimeout = 2
|
||||
###
|
||||
#在此期间保持空闲状态后关闭连接。如果值
|
||||
#为零,则空闲连接未关闭。应设置应用程序
|
||||
#超时值小于服务器的超时值。
|
||||
###
|
||||
IdleTimeout = 60
|
@ -0,0 +1,85 @@
|
||||
module epur-pay
|
||||
|
||||
go 1.21.2
|
||||
|
||||
require (
|
||||
ehttp v1.0.0
|
||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible
|
||||
github.com/aws/aws-sdk-go v1.49.19
|
||||
github.com/bwmarrin/snowflake v0.3.0
|
||||
github.com/deatil/go-cryptobin v1.0.2042
|
||||
github.com/deckarep/golang-set v1.8.0
|
||||
github.com/gin-contrib/gzip v0.0.6
|
||||
github.com/gin-gonic/gin v1.9.1
|
||||
github.com/go-playground/validator/v10 v10.16.0
|
||||
github.com/go-sql-driver/mysql v1.7.0
|
||||
github.com/gomodule/redigo v1.8.9
|
||||
github.com/itsjamie/gin-cors v0.0.0-20220228161158-ef28d3d2a0a8
|
||||
github.com/juju/ratelimit v1.0.2
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
|
||||
github.com/muesli/cache2go v0.0.0-20221011235721-518229cd8021
|
||||
github.com/oschwald/geoip2-golang v1.9.0
|
||||
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5
|
||||
github.com/robfig/cron v1.2.0
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.45
|
||||
gopkg.in/ini.v1 v1.67.0
|
||||
gorm.io/driver/mysql v1.5.2
|
||||
gorm.io/gorm v1.25.5
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 // indirect
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10 // indirect
|
||||
github.com/alibabacloud-go/debug v1.0.1 // indirect
|
||||
github.com/alibabacloud-go/dysmsapi-20170525/v4 v4.1.1 // indirect
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0 // indirect
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1 // indirect
|
||||
github.com/alibabacloud-go/tea v1.2.2 // indirect
|
||||
github.com/alibabacloud-go/tea-utils v1.3.1 // indirect
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.6 // indirect
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3 // indirect
|
||||
github.com/aliyun/credentials-go v1.3.10 // indirect
|
||||
github.com/bytedance/sonic v1.9.1 // indirect
|
||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
|
||||
github.com/clbanning/mxj v1.8.4 // indirect
|
||||
github.com/clbanning/mxj/v2 v2.5.5 // indirect
|
||||
github.com/deatil/go-array v1.0.1010 // indirect
|
||||
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/go-playground/locales v0.14.1 // indirect
|
||||
github.com/go-playground/universal-translator v0.18.1 // indirect
|
||||
github.com/goccy/go-json v0.10.2 // indirect
|
||||
github.com/golang-module/carbon/v2 v2.3.5 // indirect
|
||||
github.com/google/go-querystring v1.0.0 // indirect
|
||||
github.com/jinzhu/inflection v1.0.0 // indirect
|
||||
github.com/jinzhu/now v1.1.5 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/jonboulle/clockwork v0.4.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
|
||||
github.com/leodido/go-urn v1.2.4 // indirect
|
||||
github.com/lestrrat-go/strftime v1.0.6 // indirect
|
||||
github.com/mattn/go-isatty v0.0.19 // indirect
|
||||
github.com/mitchellh/mapstructure v1.4.3 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/mozillazg/go-httpheader v0.2.1 // indirect
|
||||
github.com/oschwald/maxminddb-golang v1.11.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/shopspring/decimal v1.3.1 // indirect
|
||||
github.com/tjfoc/gmsm v1.4.1 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.2.11 // indirect
|
||||
golang.org/x/arch v0.3.0 // indirect
|
||||
golang.org/x/crypto v0.21.0 // indirect
|
||||
golang.org/x/net v0.23.0 // indirect
|
||||
golang.org/x/sys v0.18.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
google.golang.org/protobuf v1.30.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
replace ehttp v1.0.0 => ./tri/ehttp
|
@ -0,0 +1,401 @@
|
||||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6/go.mod h1:4EUIoxs/do24zMOGGqYVWgw0s9NtiylnJglOeEB5UJo=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4/go.mod h1:sCavSAvdzOjul4cEqeVtvlSaSScfNsTQ+46HwlTL1hc=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 h1:zE8vH9C7JiZLNJJQ5OwjU9mSi4T9ef9u3BURT6LCLC8=
|
||||
github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5/go.mod h1:tWnyE9AjF8J8qqLk645oUmVUnFybApTQWklQmi5tY6g=
|
||||
github.com/alibabacloud-go/darabonba-array v0.1.0/go.mod h1:BLKxr0brnggqOJPqT09DFJ8g3fsDshapUD3C3aOEFaI=
|
||||
github.com/alibabacloud-go/darabonba-encode-util v0.0.2/go.mod h1:JiW9higWHYXm7F4PKuMgEUETNZasrDM6vqVr/Can7H8=
|
||||
github.com/alibabacloud-go/darabonba-map v0.0.2/go.mod h1:28AJaX8FOE/ym8OUFWga+MtEzBunJwQGceGQlvaPGPc=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10 h1:GEYkMApgpKEVDn6z12DcH1EGYpDYRB8JxsazM4Rywak=
|
||||
github.com/alibabacloud-go/darabonba-openapi/v2 v2.0.10/go.mod h1:26a14FGhZVELuz2cc2AolvW4RHmIO3/HRwsdHhaIPDE=
|
||||
github.com/alibabacloud-go/darabonba-signature-util v0.0.7/go.mod h1:oUzCYV2fcCH797xKdL6BDH8ADIHlzrtKVjeRtunBNTQ=
|
||||
github.com/alibabacloud-go/darabonba-string v1.0.2/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA=
|
||||
github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY=
|
||||
github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
|
||||
github.com/alibabacloud-go/debug v1.0.1 h1:MsW9SmUtbb1Fnt3ieC6NNZi6aEwrXfDksD4QA6GSbPg=
|
||||
github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
|
||||
github.com/alibabacloud-go/dysmsapi-20170525/v4 v4.1.1 h1:ONFaIS+OmKYQq6eyW6Cj+cDXZPbSQna16OwuCiQM8B0=
|
||||
github.com/alibabacloud-go/dysmsapi-20170525/v4 v4.1.1/go.mod h1:+0hEVb1D5a8xOWp/IApSN/gukLm+cfKgLSn98MYE4ik=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.0 h1:0z75cIULkDrdEhkLWgi9tnLe+KhAFE/r5Pb3312/eAY=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1 h1:ujGErJjG8ncRW6XtBBMphzHTvCxn4DjrVw4m04HsS28=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.1/go.mod h1:/UehBSE2cf1gYT43GV4E+RxTdLRzURImCYY0aRmlXpw=
|
||||
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
|
||||
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.11/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
|
||||
github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||
github.com/alibabacloud-go/tea v1.1.20/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A=
|
||||
github.com/alibabacloud-go/tea v1.2.2 h1:aTsR6Rl3ANWPfqeQugPglfurloyBJY85eFy7Gc1+8oU=
|
||||
github.com/alibabacloud-go/tea v1.2.2/go.mod h1:CF3vOzEMAG+bR4WOql8gc2G9H3EkH3ZLAQdpmpXMgwk=
|
||||
github.com/alibabacloud-go/tea-utils v1.3.1 h1:iWQeRzRheqCMuiF3+XkfybB3kTgUXkXX+JMrqfLeB2I=
|
||||
github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.5/go.mod h1:dL6vbUT35E4F4bFTHL845eUloqaerYBYPsdWR2/jhe4=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.6 h1:ZkmUlhlQbaDC+Eba/GARMPy6hKdCLiSke5RsN5LcyQ0=
|
||||
github.com/alibabacloud-go/tea-utils/v2 v2.0.6/go.mod h1:qxn986l+q33J5VkialKMqT/TTs3E+U9MJpd001iWQ9I=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3 h1:7LYnm+JbOq2B+T/B0fHC4Ies4/FofC4zHzYtqw7dgt0=
|
||||
github.com/alibabacloud-go/tea-xml v1.1.3/go.mod h1:Rq08vgCcCAjHyRi/M7xlHKUykZCEtyBy9+DPF6GgEu8=
|
||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible h1:8psS8a+wKfiLt1iVDX79F7Y6wUM49Lcha2FMXt4UM8g=
|
||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8=
|
||||
github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw=
|
||||
github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTsBEN04dgcAcYz0=
|
||||
github.com/aliyun/credentials-go v1.3.6/go.mod h1:1LxUuX7L5YrZUWzBrRyk0SwSdH4OmPrib8NVePL3fxM=
|
||||
github.com/aliyun/credentials-go v1.3.10 h1:45Xxrae/evfzQL9V10zL3xX31eqgLWEaIdCoPipOEQA=
|
||||
github.com/aliyun/credentials-go v1.3.10/go.mod h1:Jm6d+xIgwJVLVWT561vy67ZRP4lPTQxMbEYRuT2Ti1U=
|
||||
github.com/aws/aws-sdk-go v1.49.19 h1:oZryiqeQpeJsIcAmZlp86duMu/s/DJ43qyfwa51qmLg=
|
||||
github.com/aws/aws-sdk-go v1.49.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
|
||||
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
|
||||
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
|
||||
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
|
||||
github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s=
|
||||
github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U=
|
||||
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
|
||||
github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY=
|
||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams=
|
||||
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk=
|
||||
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
|
||||
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
|
||||
github.com/clbanning/mxj/v2 v2.5.5 h1:oT81vUeEiQQ/DcHbzSytRngP6Ky9O+L+0Bw0zSJag9E=
|
||||
github.com/clbanning/mxj/v2 v2.5.5/go.mod h1:hNiWqW14h+kc+MdF9C6/YoRfjEJoR3ou6tn/Qo+ve2s=
|
||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/deatil/go-array v1.0.1010 h1:RSHqfTVwc1qM78dJ8uQn0z/gTuwL1YVpsnK2yCoLuMs=
|
||||
github.com/deatil/go-array v1.0.1010/go.mod h1:Wnv75khfeDx8RZJYyiaWu/CIdHBFWKUa7+4ECtVojmU=
|
||||
github.com/deatil/go-cryptobin v1.0.2042 h1:5a2X6YAVQuaUY3FG0t61NZBQ5Avt4AIAeC4gO+Kc0MI=
|
||||
github.com/deatil/go-cryptobin v1.0.2042/go.mod h1:Dx4hF97i2U49NxbGviHI86LhhDaeCHC1wfd9CdbTYsY=
|
||||
github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4=
|
||||
github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
|
||||
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
|
||||
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
|
||||
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
|
||||
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=
|
||||
github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
|
||||
github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk=
|
||||
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
|
||||
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=
|
||||
github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
|
||||
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
|
||||
github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs=
|
||||
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
|
||||
github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY=
|
||||
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
|
||||
github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY=
|
||||
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
|
||||
github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
|
||||
github.com/go-playground/validator/v10 v10.16.0 h1:x+plE831WK4vaKHO/jpgUGsvLKIqRRkz6M78GuJAfGE=
|
||||
github.com/go-playground/validator/v10 v10.16.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
|
||||
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
|
||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
|
||||
github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
|
||||
github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU=
|
||||
github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
|
||||
github.com/golang-module/carbon/v2 v2.3.5 h1:c7uWPX2nAG4NR27iFmen2blNoyrH/yTsiyRQZKkM8iY=
|
||||
github.com/golang-module/carbon/v2 v2.3.5/go.mod h1:XDALX7KgqmHk95xyLeaqX9/LJGbfLATyruTziq68SZ8=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
|
||||
github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
|
||||
github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
|
||||
github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
|
||||
github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
|
||||
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
|
||||
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
|
||||
github.com/itsjamie/gin-cors v0.0.0-20220228161158-ef28d3d2a0a8 h1:3n0c+dqwjqfvvoV+Q3hWvXT58q/YGnegkFx8w56Kj44=
|
||||
github.com/itsjamie/gin-cors v0.0.0-20220228161158-ef28d3d2a0a8/go.mod h1:AYdLvrSBFloDBNt7Y8xkQ6gmhCODGl8CPikjyIOnNzA=
|
||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
|
||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
|
||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
|
||||
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
|
||||
github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4=
|
||||
github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc=
|
||||
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/juju/ratelimit v1.0.2 h1:sRxmtRiajbvrcLQT7S+JbqU0ntsb9W2yhSdNN8tWfaI=
|
||||
github.com/juju/ratelimit v1.0.2/go.mod h1:qapgC/Gy+xNh9UxzV13HGGl/6UXNN+ct+vwSgWNm/qk=
|
||||
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
|
||||
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
|
||||
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
|
||||
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||
github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY=
|
||||
github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
|
||||
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
|
||||
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8=
|
||||
github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
|
||||
github.com/lestrrat-go/strftime v1.0.6 h1:CFGsDEt1pOpFNU+TJB0nhz9jl+K0hZSLE205AhTIGQQ=
|
||||
github.com/lestrrat-go/strftime v1.0.6/go.mod h1:f7jQKgV5nnJpYgdEasS+/y7EsTb8ykN2z68n3TtcTaw=
|
||||
github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
|
||||
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
|
||||
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs=
|
||||
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
|
||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
|
||||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
|
||||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
|
||||
github.com/mozillazg/go-httpheader v0.2.1 h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ=
|
||||
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
|
||||
github.com/muesli/cache2go v0.0.0-20221011235721-518229cd8021 h1:31Y+Yu373ymebRdJN1cWLLooHH8xAr0MhKTEJGV/87g=
|
||||
github.com/muesli/cache2go v0.0.0-20221011235721-518229cd8021/go.mod h1:WERUkUryfUWlrHnFSO/BEUZ+7Ns8aZy7iVOGewxKzcc=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/oschwald/geoip2-golang v1.9.0 h1:uvD3O6fXAXs+usU+UGExshpdP13GAqp4GBrzN7IgKZc=
|
||||
github.com/oschwald/geoip2-golang v1.9.0/go.mod h1:BHK6TvDyATVQhKNbQBdrj9eAvuwOMi2zSFXizL3K81Y=
|
||||
github.com/oschwald/maxminddb-golang v1.11.0 h1:aSXMqYR/EPNjGE8epgqwDay+P30hCBZIveY0WZbAWh0=
|
||||
github.com/oschwald/maxminddb-golang v1.11.0/go.mod h1:YmVI+H0zh3ySFR3w+oz8PCfglAFj3PuCmui13+P9zDg=
|
||||
github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
|
||||
github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
|
||||
github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=
|
||||
github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM=
|
||||
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
|
||||
github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
|
||||
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
|
||||
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
|
||||
github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
|
||||
github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
|
||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
|
||||
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.563/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.563/go.mod h1:uom4Nvi9W+Qkom0exYiJ9VWJjXwyxtPYTkKkaLMlfE0=
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.45 h1:5/ZGOv846tP6+2X7w//8QjLgH2KcUK+HciFbfjWquFU=
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.45/go.mod h1:DH9US8nB+AJXqwu/AMOrCFN1COv3dpytXuJWHgdg7kE=
|
||||
github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
|
||||
github.com/tjfoc/gmsm v1.4.1 h1:aMe1GlZb+0bLjn+cKTPEvvn9oUEBlJitaZiiBwsbgho=
|
||||
github.com/tjfoc/gmsm v1.4.1/go.mod h1:j4INPkHWMrhJb38G+J6W4Tw0AbuN8Thu3PbdVYhVcTE=
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI=
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08=
|
||||
github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M=
|
||||
github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
|
||||
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
|
||||
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
|
||||
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
|
||||
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
|
||||
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
|
||||
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
|
||||
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
||||
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
|
||||
golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
|
||||
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
|
||||
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
|
||||
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
|
||||
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
|
||||
golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY=
|
||||
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
|
||||
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
|
||||
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gorm.io/driver/mysql v1.5.2 h1:QC2HRskSE75wBuOxe0+iCkyJZ+RqpudsQtqkp+IMuXs=
|
||||
gorm.io/driver/mysql v1.5.2/go.mod h1:pQLhh1Ut/WUAySdTHwBpBv6+JKcj+ua4ZFx1QQTBzb8=
|
||||
gorm.io/gorm v1.25.2-0.20230530020048-26663ab9bf55/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
|
||||
gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls=
|
||||
gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
|
||||
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
@ -0,0 +1 @@
|
||||
access.log.20250210.log
|
@ -0,0 +1,18 @@
|
||||
[GOID:1] [WARNING] 2025-02-10 16:52:05 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:52:05 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [WARNING] 2025-02-10 16:56:40 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:56:40 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [WARNING] 2025-02-10 16:57:42 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:57:42 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:12 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:12 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:17 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:17 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:28 [\cache\api/config.go:47] 缓存不存在了,注意! storeType
|
||||
[GOID:1] [WARNING] 2025-02-10 16:59:28 [\cache\api/config.go:57] 缓存不存在了,注意! storeJson_
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:1] [WARNING] 2025-02-10 17:00:15 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:67] [WARNING] 2025-02-10 17:00:15 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:15 [\pkg\server/api.go:33] server exiting
|
@ -0,0 +1,307 @@
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:1] [WARNING] 2025-02-11 09:22:02 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:35] [WARNING] 2025-02-11 09:22:02 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 09:22:02 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:23 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:53] [ERROR] 2025-02-11 09:42:23 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:23 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:36 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:53] [ERROR] 2025-02-11 09:42:36 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:36 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:47 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:45] [ERROR] 2025-02-11 09:59:47 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:47 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:58 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:45] [ERROR] 2025-02-11 09:59:58 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:58 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:45] [INFO] 2025-02-11 10:00:10 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:45] [ERROR] 2025-02-11 10:00:10 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:45] [INFO] 2025-02-11 10:00:10 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 10:00:14 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:39] [WARNING] 2025-02-11 10:00:14 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:14 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:37 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:67] [ERROR] 2025-02-11 10:00:37 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:37 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:52 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:67] [ERROR] 2025-02-11 10:00:52 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:52 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:67] [INFO] 2025-02-11 10:01:48 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:67] [ERROR] 2025-02-11 10:01:48 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:67] [INFO] 2025-02-11 10:02:16 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 10:02:16 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:15] [WARNING] 2025-02-11 10:02:16 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:16 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:38 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:38 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:01 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:37] [ERROR] 2025-02-11 10:03:01 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:09 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:45 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:37] [ERROR] 2025-02-11 10:03:45 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:53 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:37] [INFO] 2025-02-11 10:04:14 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:37] [ERROR] 2025-02-11 10:04:24 [\pkg\dapi/utils.go:149] ===> BindJSON:
|
||||
[GOID:37] [INFO] 2025-02-11 10:04:55 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 10:04:56 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:26] [WARNING] 2025-02-11 10:04:56 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 10:04:56 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:41] [INFO] 2025-02-11 10:40:41 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 ->
|
||||
[GOID:41] [ERROR] 2025-02-11 10:40:41 [\pkg\dapi/utils.go:149] ===> BindJSON: Parameter failure
|
||||
[GOID:41] [INFO] 2025-02-11 10:40:41 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":965,"message":"Parameter failure","data":null}
|
||||
|
||||
[GOID:41] [INFO] 2025-02-11 10:41:25 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {}
|
||||
[GOID:41] [INFO] 2025-02-11 10:41:25 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Invalid captcha code","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 10:46:03 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:23] [WARNING] 2025-02-11 10:46:03 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 10:46:03 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:21 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {}
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:21 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Account is required","data":null}
|
||||
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:42 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"account":"0745dk"}
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:42 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Password is required","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:19 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"account":"0745dk","password":"123456789","mobile":"114514"}
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:19 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Captcha code is required","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:22 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"account":"0745dk","password":"123456789","mobile":"114514"}
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:22 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Captcha code is required","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:39 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"account":"0745dk","password":"123456789","mobile":"114514","captcha":"1919810"}
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:39 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Invalid captcha code","data":null}
|
||||
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:07 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 ->
|
||||
[GOID:47] [ERROR] 2025-02-11 12:06:07 [\pkg\dapi/utils.go:149] ===> BindJSON: Parameter failure
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:07 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":965,"message":"Parameter failure","data":null}
|
||||
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:16 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"query":"\n query IntrospectionQuery {\n __schema {\n \n queryType { name }\n mutationType { name }\n subscriptionType { name }\n types {\n ...FullType\n }\n directives {\n name\n description\n \n locations\n args {\n ...InputValue\n }\n }\n }\n }\n\n fragment FullType on __Type {\n kind\n name\n description\n \n fields(includeDeprecated: true) {\n name\n description\n args {\n ...InputValue\n }\n type {\n ...TypeRef\n }\n isDeprecated\n deprecationReason\n }\n inputFields {\n ...InputValue\n }\n interfaces {\n ...TypeRef\n }\n enumValues(includeDeprecated: true) {\n name\n description\n isDeprecated\n deprecationReason\n }\n possibleTypes {\n ...TypeRef\n }\n }\n\n fragment InputValue on __InputValue {\n name\n description\n type { ...TypeRef }\n defaultValue\n \n \n }\n\n fragment TypeRef on __Type {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n }\n "}
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:16 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:35 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:35 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:43 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:43 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:06:57 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:22] [WARNING] 2025-02-11 12:06:57 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:06:57 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:54] [INFO] 2025-02-11 12:07:12 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:54] [INFO] 2025-02-11 12:07:12 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:54] [INFO] 2025-02-11 12:07:42 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:54] [INFO] 2025-02-11 12:08:34 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:08:34 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:51] [WARNING] 2025-02-11 12:08:34 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:08:34 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:45 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:45 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:46 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:46 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:52 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:10:07 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"SMS code sent too frequently","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:10:07 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:50] [WARNING] 2025-02-11 12:10:07 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:07 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:20] [INFO] 2025-02-11 12:10:15 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:20] [INFO] 2025-02-11 12:10:15 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"Failed to fetch SMS code limit","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:11:03 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:54] [WARNING] 2025-02-11 12:11:03 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:11:03 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:53] [INFO] 2025-02-11 12:14:05 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:53] [INFO] 2025-02-11 12:14:26 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":999,"message":"Failed to fetch SMS code limit","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:14:26 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:67] [WARNING] 2025-02-11 12:14:26 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:14:26 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:51] [INFO] 2025-02-11 12:17:10 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:51] [INFO] 2025-02-11 12:17:11 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":200,"message":"Success"}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:19 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"189897"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:19 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Password length minimum 6 characters, maximum 72 characters.","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:32 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"189897","password":"123456"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:32 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Password must contain at least one letter, one number.","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:36 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"189897","password":"a123456"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:36 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":500,"message":"System error","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:05 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"189897","password":"a123456"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:05 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":999,"message":"Invalid captcha code","data":null}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:16 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:17 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":200,"message":"Success"}
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:42 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:42 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":500,"message":"System error","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:19:49 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:16] [WARNING] 2025-02-11 12:19:49 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:49 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:51] [INFO] 2025-02-11 12:20:04 [\pkg\dapi/utils.go:139] /api/v1/login/captcha 请求数据 -> {"mobile":"17308457960"}
|
||||
[GOID:51] [INFO] 2025-02-11 12:20:04 [\pkg\dapi/response.go:127] /api/v1/login/captcha 返回数据 -> {"code":200,"message":"Success"}
|
||||
|
||||
[GOID:51] [INFO] 2025-02-11 12:20:32 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"525989","password":"a123456"}
|
||||
[GOID:51] [INFO] 2025-02-11 12:21:41 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":500,"message":"System error","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:56 [\pkg\dapi/utils.go:139] /api/v1/login/register 请求数据 -> {"mobile":"17308457960","captcha":"525989","password":"a123456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:59 [\pkg\dapi/response.go:127] /api/v1/login/register 返回数据 -> {"code":200,"message":"Success","data":{"token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D"}}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:23:36 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:15] [WARNING] 2025-02-11 12:23:36 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:23:36 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:22] [INFO] 2025-02-11 12:28:35 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:22] [INFO] 2025-02-11 12:28:35 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Invalid user role","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:31:52 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:68] [WARNING] 2025-02-11 12:31:52 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:52 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:05 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:05 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"","data":null}
|
||||
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:15 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:31 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:34:09 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:44] [WARNING] 2025-02-11 12:34:09 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:09 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:19 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:19 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:24 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:24 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:26 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:26 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:27 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:27 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:28 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:28 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:29 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:29 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:31 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:31 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:43 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s23456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:55 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:59 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:59 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:01 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:01 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:17 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:28 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:35:28 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:67] [WARNING] 2025-02-11 12:35:28 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:35:28 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:20 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:28 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":200,"message":"Success","data":{"token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D"}}
|
||||
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:32 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s3456"}
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:48 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:41:59 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:21] [WARNING] 2025-02-11 12:41:59 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:59 [\pkg\server/api.go:33] server exiting
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 [\pkg\server/api.go:63] :11000
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 [\pkg\server/api.go:55] server listening ...
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:18 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s3456"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:18 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:20 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a1s3456"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:20 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:23 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a13456"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:23 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:24 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a13456"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:24 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":999,"message":"Incorrect password.","data":null}
|
||||
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 [\pkg\dapi/utils.go:139] /api/v1/login/login 请求数据 -> {"mobile":"17308457960","captcha":"137038","password":"a123456"}
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 [\pkg\dapi/response.go:127] /api/v1/login/login 返回数据 -> {"code":200,"message":"Success","data":{"token":"PcOq70btqslY6TJdvLxH2A%3D%3D"}}
|
||||
|
||||
[GOID:1] [WARNING] 2025-02-11 12:42:46 [\pkg\server/api.go:23] Get Signal: interrupt Shutdown Server ...
|
||||
[GOID:25] [WARNING] 2025-02-11 12:42:46 [\pkg\server/api.go:40] HTTP listen: http: Server closed
|
||||
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:46 [\pkg\server/api.go:33] server exiting
|
@ -0,0 +1 @@
|
||||
error.log.20240118.log
|
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1 @@
|
||||
rds.log.20250210.log
|
@ -0,0 +1,107 @@
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[42.967ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[6.801ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[7.928ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[3.233ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.847ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:52:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[4.516ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.189ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.520ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[0.570ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.000ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.520ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:56:40 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.547ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[1.086ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.525ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.086ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.577ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.542ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:57:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.543ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.032ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.515ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[0.645ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.193ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.714ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:12 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.047ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.060ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.997ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[0.000ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.000ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.061ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:17 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.001ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[1.502ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.048ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[0.743ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.000ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.232ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 16:59:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.504ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:04 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[1.656ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.632ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.126ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.503ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.337ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.075ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:66] [INFO] 2025-02-10 17:00:05 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[44.644ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
@ -0,0 +1,417 @@
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[18.038ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[2.329ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.305ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.505ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[2.046ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.513ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:53] [INFO] 2025-02-11 09:21:54 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.069ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[3.508ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[3.071ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[2.785ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.069ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.797ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.566ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:68] [INFO] 2025-02-11 09:37:09 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.034ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:21 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[6.551ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.503ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[2.518ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.061ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[2.393ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.515ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:14] [INFO] 2025-02-11 10:00:22 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.016ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:37 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[1.718ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:37 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.979ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:37 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[2.072ms] [rows:0] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:37 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.000ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:37 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.551ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 10:02:38 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.000ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:25] [INFO] 2025-02-11 10:02:38 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.022ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[6.768ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.553ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[4.380ms] [rows:16] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.505ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.071ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.029ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:40] [INFO] 2025-02-11 10:40:33 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.274ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[13.021ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[3.524ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[7.644ms] [rows:20] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.619ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.667ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[2.630ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:16] [INFO] 2025-02-11 11:43:15 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[2.480ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[8.114ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[2.004ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[11.566ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.563ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.786ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[2.053ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:50] [INFO] 2025-02-11 12:07:06 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[2.167ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[4.125ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.407ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.861ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.530ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.333ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.000ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:15] [INFO] 2025-02-11 12:09:42 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.039ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.712ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[2.445ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[5.388ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.000ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.549ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.503ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:53] [INFO] 2025-02-11 12:10:13 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.556ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[3.382ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[2.078ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[3.069ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.036ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.000ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.000ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:66] [INFO] 2025-02-11 12:13:54 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[5.029ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.997ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.531ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.150ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.566ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.548ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.503ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:15] [INFO] 2025-02-11 12:17:09 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.647ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:36 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:95
|
||||
[76.665ms] [rows:1] SELECT count(*) FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:36 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:129 Error 1364 (HY000): Field 'uid' doesn't have a default value
|
||||
[7.906ms] [rows:0] INSERT INTO `user` (`role`,`account`,`email`,`mobile`,`status`,`invite`,`merchant_id`,`detail`) VALUES ('[]','','','17308457960','0','',0,'{"nickName":"17308457960","avatar":0,"gender":"","token":"","passWord":"$2a$10$8J./cyqmq5mfzKhasFbWkexjdM7bQ4ukpL1jt8L6A.PadJgEDDk..","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginTime":0,"loginIp":"","createTime":1739247516}')
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:42 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:95
|
||||
[11.514ms] [rows:1] SELECT count(*) FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:42 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:129 Error 1364 (HY000): Field 'uid' doesn't have a default value
|
||||
[0.997ms] [rows:0] INSERT INTO `user` (`role`,`account`,`email`,`mobile`,`status`,`invite`,`merchant_id`,`detail`) VALUES ('[]','','','17308457960','0','',0,'{"nickName":"17308457960","avatar":0,"gender":"","token":"","passWord":"$2a$10$g.Gvnobcaq56D8oX9wSxIecNjdK0r9mXxvYPO1q3gYY2dQRVVeHtC","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginTime":0,"loginIp":"","createTime":1739247582}')
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.048ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.613ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.474ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.808ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.252ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.539ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:14] [INFO] 2025-02-11 12:19:55 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[0.542ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:51] [INFO] 2025-02-11 12:20:38 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:95
|
||||
[1.819ms] [rows:1] SELECT count(*) FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:51] [INFO] 2025-02-11 12:21:05 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:129 Error 1364 (HY000): Field 'uid' doesn't have a default value
|
||||
[13.773ms] [rows:0] INSERT INTO `user` (`role`,`account`,`email`,`mobile`,`status`,`invite`,`merchant_id`,`detail`) VALUES ('[]','','','17308457960','0','',0,'{"nickName":"17308457960","avatar":0,"gender":"","token":"","passWord":"$2a$10$TOYyo1W7cDLxllx6D6cvpeWNCR3uWgdWn8B3Ddopj7qZ2sojnZZhi","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginTime":0,"loginIp":"","createTime":1739247650}')
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:59 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:95
|
||||
[2.256ms] [rows:1] SELECT count(*) FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:59 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:129
|
||||
[8.275ms] [rows:1] INSERT INTO `user` (`role`,`account`,`email`,`mobile`,`status`,`invite`,`merchant_id`,`detail`) VALUES ('[]','','','17308457960','0','',0,'{"nickName":"17308457960","avatar":0,"gender":"","token":"","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginTime":0,"loginIp":"","createTime":1739247719}')
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:59 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/register.go:139
|
||||
[8.224ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[7.293ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[1.377ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[2.292ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[1.057ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.786ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.774ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:67] [INFO] 2025-02-11 12:28:34 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[3.444ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:22] [INFO] 2025-02-11 12:28:35 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.921ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.064ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.503ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.074ms] [rows:24] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.509ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.568ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[0.632ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:43] [INFO] 2025-02-11 12:31:58 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.020ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:05 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[6.039ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:05 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[16.720ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248325,"loginErrorCount":1,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:15 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[2.283ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:24 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[8.120ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248340,"loginErrorCount":2,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.992ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[5.207ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.115ms] [rows:25] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[2.513ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[8.035ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[5.071ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:39] [INFO] 2025-02-11 12:34:13 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[1.824ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:19 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[3.011ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:19 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[5.317ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248459,"loginErrorCount":3,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:24 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.155ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:24 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[3.199ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248464,"loginErrorCount":4,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.194ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.866ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248465,"loginErrorCount":5,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.881ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[1.947ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248465,"loginErrorCount":6,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:26 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.070ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:26 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.614ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248466,"loginErrorCount":7,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:27 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.627ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:27 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[3.418ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248467,"loginErrorCount":8,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.939ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[4.197ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248468,"loginErrorCount":9,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:29 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[1.212ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:29 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[3.524ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248469,"loginErrorCount":10,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.614ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.070ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248470,"loginErrorCount":11,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.533ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.088ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248470,"loginErrorCount":12,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:31 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.615ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:31 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.933ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248471,"loginErrorCount":13,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:43 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[3.862ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:55 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[2.657ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248495,"loginErrorCount":14,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:59 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[0.744ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:59 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[5.802ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248499,"loginErrorCount":15,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:01 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[2.065ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:01 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[4.791ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248501,"loginErrorCount":16,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:17 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:32
|
||||
[15.269ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:62
|
||||
[4.781ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"Ia2yzOFPsPtj%2BZvM2PnRGg%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248528,"loginErrorCount":17,"loginTime":0,"loginIp":"","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[5.437ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[5.122ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[8.181ms] [rows:25] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[2.120ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[1.990ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[3.538ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:51] [INFO] 2025-02-11 12:41:18 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[5.118ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:20 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[3.041ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:79
|
||||
[13.341ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248528,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:24] [INFO] 2025-02-11 12:41:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/user.go:35
|
||||
[2.263ms] [rows:1] select * from user where uid = 1
|
||||
[GOID:24] [INFO] 2025-02-11 12:41:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/user.go:42
|
||||
[68.660ms] [rows:0] SELECT role_id FROM `user_role` WHERE uid = 1
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:28 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/dapi/utils.go:345 Error 3140 (22032): Invalid JSON text: "The document is empty." at position 0 in value for column 'log.data'.
|
||||
[78.888ms] [rows:0] INSERT INTO `log` (`uid`,`name`,`event`,`ip`,`a1`,`data`,`create_time`,`user_type`,`is_super`) VALUES (1,'17308457960','登陆','127.0.0.1','','',1739248880,'','0')
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:32 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[2.519ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:48 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:63
|
||||
[3.689ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248896,"loginErrorCount":1,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/config.go:25
|
||||
[2.335ms] [rows:0] select * from config where pid != 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:24
|
||||
[0.568ms] [rows:0] select * from sys_language order by sort
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/language.go:37
|
||||
[1.913ms] [rows:25] SELECT * FROM `translate` WHERE type = 0 ORDER BY id asc
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/version.go:22
|
||||
[0.825ms] [rows:0] SELECT * FROM `version` WHERE status = 0
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/blacklist.go:19
|
||||
[0.521ms] [rows:0] select * from black_list where id = 1
|
||||
[GOID:1] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/role.go:26
|
||||
[1.204ms] [rows:0]
|
||||
select rm.role_id, permission from role_menu rm inner join menu as m
|
||||
on rm .menu_id = m.id
|
||||
|
||||
[GOID:24] [INFO] 2025-02-11 12:42:15 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/mq/mq.go:50
|
||||
[0.543ms] [rows:0] SELECT * FROM `async_task` WHERE status in ('2')
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:18 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[0.660ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:18 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:63
|
||||
[9.369ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248938,"loginErrorCount":2,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:20 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[1.122ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:20 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:63
|
||||
[6.551ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248940,"loginErrorCount":3,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:23 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[0.788ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:23 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:63
|
||||
[4.954ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248943,"loginErrorCount":4,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:24 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[0.679ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:24 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:63
|
||||
[3.939ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"4NQXTFsyTQBdxosv5K0wCw%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248944,"loginErrorCount":5,"loginTime":1739248888,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:33
|
||||
[0.538ms] [rows:1] SELECT * FROM `user` WHERE `mobile` = '17308457960'
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 D:/GoLand 2024.2.3/PROJ/epur-pay/api/login/sso.go:79
|
||||
[4.592ms] [rows:1] UPDATE `user` SET `detail`='{"nickName":"17308457960","avatar":0,"gender":"","token":"PcOq70btqslY6TJdvLxH2A%3D%3D","passWord":"$2a$10$rSHnzCB1pK82LZEhzrmSfOu6P4P0gODnHtEAkdzNrrrOgV0e9lFeO","payPassWord":"","powerOver":null,"memo":"","registerIp":"127.0.0.1","loginErrorTime":1739248944,"loginTime":1739248948,"loginIp":"127.0.0.1","createTime":1739247719}' WHERE `uid` = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:42:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/user.go:35
|
||||
[0.000ms] [rows:1] select * from user where uid = 1
|
||||
[GOID:82] [INFO] 2025-02-11 12:42:28 D:/GoLand 2024.2.3/PROJ/epur-pay/cache/api/user.go:42
|
||||
[0.988ms] [rows:0] SELECT role_id FROM `user_role` WHERE uid = 1
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 D:/GoLand 2024.2.3/PROJ/epur-pay/pkg/dapi/utils.go:345 Error 3140 (22032): Invalid JSON text: "The document is empty." at position 0 in value for column 'log.data'.
|
||||
[10.982ms] [rows:0] INSERT INTO `log` (`uid`,`name`,`event`,`ip`,`a1`,`data`,`create_time`,`user_type`,`is_super`) VALUES (1,'17308457960','登陆','127.0.0.1','','',1739248948,'','0')
|
@ -0,0 +1 @@
|
||||
router.log.20240119.log
|
@ -0,0 +1,725 @@
|
||||
[GOID:38] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 24.75µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:66] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 31.669917ms POST 200 /api/v1/login/login
|
||||
[GOID:67] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 21.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:69] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 1.087292ms POST 200 /api/v1/user/info
|
||||
[GOID:71] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 18.834µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:73] [INFO] 2024-01-17 12:10:13 [/router/middleware.go:41] 22.918791ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:75] [INFO] 2024-01-17 12:10:15 [/router/middleware.go:41] 23.333µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:77] [INFO] 2024-01-17 12:10:15 [/router/middleware.go:41] 7.976083ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:78] [INFO] 2024-01-17 12:10:27 [/router/middleware.go:41] 41.083µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:84] [INFO] 2024-01-17 12:10:27 [/router/middleware.go:41] 2.736541ms POST 200 /api/v1/test/test1
|
||||
[GOID:80] [INFO] 2024-01-17 12:10:27 [/router/middleware.go:41] 15.523167ms POST 200 /api/v1/test/test
|
||||
[GOID:104] [INFO] 2024-01-17 12:10:37 [/router/middleware.go:41] 31.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:110] [INFO] 2024-01-17 12:10:37 [/router/middleware.go:41] 4.934292ms POST 200 /api/v1/test/test1
|
||||
[GOID:106] [INFO] 2024-01-17 12:10:37 [/router/middleware.go:41] 17.876416ms POST 200 /api/v1/test/test
|
||||
[GOID:118] [INFO] 2024-01-17 12:10:44 [/router/middleware.go:41] 80.75µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:124] [INFO] 2024-01-17 12:10:44 [/router/middleware.go:41] 1.692125ms POST 200 /api/v1/test/test1
|
||||
[GOID:120] [INFO] 2024-01-17 12:10:44 [/router/middleware.go:41] 13.235083ms POST 200 /api/v1/test/test
|
||||
[GOID:40] [INFO] 2024-01-17 12:11:03 [/router/middleware.go:41] 42.167µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:46] [INFO] 2024-01-17 12:11:03 [/router/middleware.go:41] 1.797125ms POST 200 /api/v1/test/test1
|
||||
[GOID:42] [INFO] 2024-01-17 12:11:03 [/router/middleware.go:41] 15.353791ms POST 200 /api/v1/test/test
|
||||
[GOID:10] [INFO] 2024-01-17 12:12:50 [/router/middleware.go:41] 47.125µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:12] [INFO] 2024-01-17 12:12:50 [/router/middleware.go:41] 2.3695ms POST 200 /api/v1/test/test1?11=0
|
||||
[GOID:27] [INFO] 2024-01-17 12:12:50 [/router/middleware.go:41] 14.029667ms POST 200 /api/v1/test/test
|
||||
[GOID:14] [INFO] 2024-01-17 12:14:00 [/router/middleware.go:41] 92.958µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:56] [INFO] 2024-01-17 12:14:00 [/router/middleware.go:41] 1.953416ms POST 200 /api/v1/test/test1?11=0
|
||||
[GOID:16] [INFO] 2024-01-17 12:14:00 [/router/middleware.go:41] 12.4ms POST 200 /api/v1/test/test
|
||||
[GOID:41] [INFO] 2024-01-17 12:16:15 [/router/middleware.go:41] 47.125µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:43] [INFO] 2024-01-17 12:16:15 [/router/middleware.go:41] 3.861583ms POST 200 /api/v1/test/test
|
||||
[GOID:13] [INFO] 2024-01-17 12:16:18 [/router/middleware.go:41] 1.808083ms POST 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 33.959µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 9.783417ms POST 200 /api/v1/login/login
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 5.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 431.75µs POST 200 /api/v1/user/info
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 2.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:15] [INFO] 2024-01-17 12:16:58 [/router/middleware.go:41] 9.494333ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:13] [INFO] 2024-01-17 12:18:11 [/router/middleware.go:41] 38.542µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 12:18:11 [/router/middleware.go:41] 5.126375ms POST 200 /api/v1/test/test
|
||||
[GOID:38] [INFO] 2024-01-17 12:18:18 [/router/middleware.go:41] 143.042µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:30] [INFO] 2024-01-17 12:18:18 [/router/middleware.go:41] 1.668958ms POST 200 /api/v1/test/test
|
||||
[GOID:32] [INFO] 2024-01-17 12:18:20 [/router/middleware.go:41] 2.444459ms POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-17 12:18:23 [/router/middleware.go:41] 45.25µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:84] [INFO] 2024-01-17 12:18:23 [/router/middleware.go:41] 1.709083ms POST 200 /api/v1/test/test1?11=%22100%22
|
||||
[GOID:68] [INFO] 2024-01-17 12:18:23 [/router/middleware.go:41] 11.477042ms POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-17 12:19:59 [/router/middleware.go:41] 47.166µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:68] [INFO] 2024-01-17 12:20:39 [/router/middleware.go:41] 40.497026375s POST 200 /api/v1/test/test
|
||||
[GOID:52] [INFO] 2024-01-17 12:20:44 [/router/middleware.go:41] 40.875µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:54] [INFO] 2024-01-17 12:21:13 [/router/middleware.go:41] 29.119318333s POST 200 /api/v1/test/test
|
||||
[GOID:24] [INFO] 2024-01-17 12:21:17 [/router/middleware.go:41] 20.292µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:39] [INFO] 2024-01-17 12:22:37 [/router/middleware.go:41] 21.125µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:38] [INFO] 2024-01-17 12:22:37 [/router/middleware.go:41] 148.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-17 12:22:37 [/router/middleware.go:41] 1m20.157376583s POST 200 /api/v1/test/test
|
||||
[GOID:41] [INFO] 2024-01-17 12:22:50 [/router/middleware.go:41] 50.75µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:43] [INFO] 2024-01-17 12:22:50 [/router/middleware.go:41] 2.937583ms POST 200 /api/v1/test/test
|
||||
[GOID:13] [INFO] 2024-01-17 12:29:38 [/router/middleware.go:41] 58.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:52] [INFO] 2024-01-17 12:29:38 [/router/middleware.go:41] 1.834958ms POST 200 /api/v1/test/test1?11=%7B%22a%22%3A%221%22%2C%22b%22%3A%222%22%7D
|
||||
[GOID:15] [INFO] 2024-01-17 12:29:38 [/router/middleware.go:41] 18.75175ms POST 200 /api/v1/test/test
|
||||
[GOID:54] [INFO] 2024-01-17 12:30:01 [/router/middleware.go:41] 57.042µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:42] [INFO] 2024-01-17 12:30:02 [/router/middleware.go:41] 1.723833ms POST 200 /api/v1/test/test1?11=%7B%22a%22%3A%22100%22%2C%22b%22%3A%222%22%7D
|
||||
[GOID:56] [INFO] 2024-01-17 12:30:02 [/router/middleware.go:41] 13.088708ms POST 200 /api/v1/test/test
|
||||
[GOID:60] [INFO] 2024-01-17 12:30:31 [/router/middleware.go:41] 31.458µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:62] [INFO] 2024-01-17 12:30:31 [/router/middleware.go:41] 2.653417ms POST 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 12:31:28 [/router/middleware.go:41] 110.541µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:37] [INFO] 2024-01-17 12:31:34 [/router/middleware.go:41] 6.126734667s POST 200 /api/v1/test/test
|
||||
[GOID:21] [INFO] 2024-01-17 12:33:40 [/router/middleware.go:41] 34.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:47] [INFO] 2024-01-17 12:33:40 [/router/middleware.go:41] 14.311125ms POST 200 /api/v1/user/info
|
||||
[GOID:70] [INFO] 2024-01-17 12:33:40 [/router/middleware.go:41] 51.917µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:72] [INFO] 2024-01-17 12:33:40 [/router/middleware.go:41] 140.333µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:74] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 105.875µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:24] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 35.05ms POST 200 /api/v1/login/login
|
||||
[GOID:31] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 22.291µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:33] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 1.271416ms POST 200 /api/v1/user/info
|
||||
[GOID:86] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 67.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:88] [INFO] 2024-01-17 12:40:20 [/router/middleware.go:41] 24.396417ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:90] [INFO] 2024-01-17 12:40:22 [/router/middleware.go:41] 19.041µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:92] [INFO] 2024-01-17 12:40:22 [/router/middleware.go:41] 5.399083ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:99] [INFO] 2024-01-17 13:05:07 [/router/middleware.go:41] 76.75µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:77] [INFO] 2024-01-17 13:05:07 [/router/middleware.go:41] 2.014833ms POST 200 /api/v1/test/test
|
||||
[GOID:79] [INFO] 2024-01-17 13:05:31 [/router/middleware.go:41] 57.708µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:81] [INFO] 2024-01-17 13:05:31 [/router/middleware.go:41] 1.6925ms POST 200 /api/v1/test/test
|
||||
[GOID:115] [INFO] 2024-01-17 13:05:39 [/router/middleware.go:41] 21.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:93] [INFO] 2024-01-17 13:05:39 [/router/middleware.go:41] 868.833µs POST 200 /api/v1/user/info
|
||||
[GOID:101] [INFO] 2024-01-17 13:05:39 [/router/middleware.go:41] 16.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:117] [INFO] 2024-01-17 13:05:39 [/router/middleware.go:41] 34.717375ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:124] [INFO] 2024-01-17 13:05:40 [/router/middleware.go:41] 21.25µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:126] [INFO] 2024-01-17 13:05:40 [/router/middleware.go:41] 4.881041ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:127] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 31.625µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:129] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 18.623042ms POST 200 /api/v1/login/login
|
||||
[GOID:104] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 20.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:106] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 741.666µs POST 200 /api/v1/user/info
|
||||
[GOID:108] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 22.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:110] [INFO] 2024-01-17 13:05:59 [/router/middleware.go:41] 20.269458ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:112] [INFO] 2024-01-17 13:06:00 [/router/middleware.go:41] 33.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:146] [INFO] 2024-01-17 13:06:00 [/router/middleware.go:41] 8.116ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:147] [INFO] 2024-01-17 13:06:10 [/router/middleware.go:41] 62.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:149] [INFO] 2024-01-17 13:06:10 [/router/middleware.go:41] 1.994542ms POST 200 /api/v1/user/info
|
||||
[GOID:151] [INFO] 2024-01-17 13:06:10 [/router/middleware.go:41] 46.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:153] [INFO] 2024-01-17 13:06:10 [/router/middleware.go:41] 15.040917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:51] [INFO] 2024-01-17 13:06:39 [/router/middleware.go:41] 38.875µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:136] [INFO] 2024-01-17 13:06:39 [/router/middleware.go:41] 1.735584ms POST 200 /api/v1/user/info
|
||||
[GOID:52] [INFO] 2024-01-17 13:06:39 [/router/middleware.go:41] 42.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:54] [INFO] 2024-01-17 13:06:39 [/router/middleware.go:41] 22.836708ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:96] [INFO] 2024-01-17 13:06:49 [/router/middleware.go:41] 53.541µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:155] [INFO] 2024-01-17 13:06:49 [/router/middleware.go:41] 1.587917ms POST 200 /api/v1/user/info
|
||||
[GOID:157] [INFO] 2024-01-17 13:06:49 [/router/middleware.go:41] 37.5µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:159] [INFO] 2024-01-17 13:06:49 [/router/middleware.go:41] 23.573333ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:178] [INFO] 2024-01-17 13:07:09 [/router/middleware.go:41] 40.667µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:161] [INFO] 2024-01-17 13:07:09 [/router/middleware.go:41] 1.442666ms POST 200 /api/v1/test/test1?11=%22100.0%22
|
||||
[GOID:180] [INFO] 2024-01-17 13:07:09 [/router/middleware.go:41] 10.526791ms POST 200 /api/v1/test/test
|
||||
[GOID:184] [INFO] 2024-01-17 13:07:36 [/router/middleware.go:41] 34.167µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:190] [INFO] 2024-01-17 13:07:36 [/router/middleware.go:41] 1.914667ms POST 200 /api/v1/test/test1?11=%22100.0%22
|
||||
[GOID:186] [INFO] 2024-01-17 13:07:36 [/router/middleware.go:41] 13.646583ms POST 200 /api/v1/test/test
|
||||
[GOID:58] [INFO] 2024-01-17 13:07:46 [/router/middleware.go:41] 38.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:60] [INFO] 2024-01-17 13:07:46 [/router/middleware.go:41] 871.917µs POST 200 /api/v1/user/info
|
||||
[GOID:62] [INFO] 2024-01-17 13:07:47 [/router/middleware.go:41] 38.458µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:64] [INFO] 2024-01-17 13:07:47 [/router/middleware.go:41] 27.484541ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:198] [INFO] 2024-01-17 13:07:49 [/router/middleware.go:41] 39.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:203] [INFO] 2024-01-17 13:07:49 [/router/middleware.go:41] 1.155959ms POST 200 /api/v1/test/test1?11=%22100.0%22
|
||||
[GOID:200] [INFO] 2024-01-17 13:07:49 [/router/middleware.go:41] 15.836542ms POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-17 13:08:12 [/router/middleware.go:41] 42.459µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 13:08:12 [/router/middleware.go:41] 2.185625ms POST 200 /api/v1/test/test1?11=%22321111%22
|
||||
[GOID:68] [INFO] 2024-01-17 13:08:12 [/router/middleware.go:41] 13.7445ms POST 200 /api/v1/test/test
|
||||
[GOID:82] [INFO] 2024-01-17 13:08:47 [/router/middleware.go:41] 33.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:84] [INFO] 2024-01-17 13:08:47 [/router/middleware.go:41] 7.773625ms POST 200 /api/v1/user/info
|
||||
[GOID:86] [INFO] 2024-01-17 13:08:48 [/router/middleware.go:41] 24.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:88] [INFO] 2024-01-17 13:08:48 [/router/middleware.go:41] 17.427292ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:13] [INFO] 2024-01-17 13:09:16 [/router/middleware.go:41] 25.125µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:56] [INFO] 2024-01-17 13:09:17 [/router/middleware.go:41] 5.592959ms POST 200 /api/v1/test/test1?11=%22321111%22
|
||||
[GOID:15] [INFO] 2024-01-17 13:09:17 [/router/middleware.go:41] 19.116417ms POST 200 /api/v1/test/test
|
||||
[GOID:28] [INFO] 2024-01-17 13:11:44 [/router/middleware.go:41] 33.791µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:37] [INFO] 2024-01-17 13:11:44 [/router/middleware.go:41] 10.138541ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:86] [INFO] 2024-01-17 13:12:22 [/router/middleware.go:41] 26.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:88] [INFO] 2024-01-17 13:12:22 [/router/middleware.go:41] 1.312333ms POST 200 /api/v1/user/info
|
||||
[GOID:68] [INFO] 2024-01-17 13:12:22 [/router/middleware.go:41] 33.875µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:42] [INFO] 2024-01-17 13:12:22 [/router/middleware.go:41] 258.042µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:44] [INFO] 2024-01-17 13:12:27 [/router/middleware.go:41] 23.709µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:46] [INFO] 2024-01-17 13:12:27 [/router/middleware.go:41] 16.806208ms POST 200 /api/v1/login/login
|
||||
[GOID:71] [INFO] 2024-01-17 13:12:27 [/router/middleware.go:41] 1.000375ms POST 200 /api/v1/user/info
|
||||
[GOID:73] [INFO] 2024-01-17 13:12:27 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:116] [INFO] 2024-01-17 13:12:27 [/router/middleware.go:41] 19.622375ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:118] [INFO] 2024-01-17 13:12:28 [/router/middleware.go:41] 26.25µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:75] [INFO] 2024-01-17 13:12:28 [/router/middleware.go:41] 6.177209ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:76] [INFO] 2024-01-17 13:13:00 [/router/middleware.go:41] 50.583µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:120] [INFO] 2024-01-17 13:13:00 [/router/middleware.go:41] 2.440667ms POST 200 /api/v1/test/test
|
||||
[GOID:12] [INFO] 2024-01-17 13:14:51 [/router/middleware.go:41] 143.583µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:68] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 14.708µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:67] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 10.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:71] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 10.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:66] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 8.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:69] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 8.125µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:74] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 6µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:72] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 8µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:70] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 11.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:73] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 6.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:24] [INFO] 2024-01-17 13:17:03 [/router/middleware.go:41] 2m12.174689292s POST 200 /api/v1/test/test
|
||||
[GOID:23] [INFO] 2024-01-17 13:17:09 [/router/middleware.go:41] 40.917µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:14] [INFO] 2024-01-17 13:17:09 [/router/middleware.go:41] 20.864083ms POST 200 /api/v1/login/login
|
||||
[GOID:42] [INFO] 2024-01-17 13:17:09 [/router/middleware.go:41] 76.667µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:44] [INFO] 2024-01-17 13:17:09 [/router/middleware.go:41] 1.314042ms POST 200 /api/v1/user/info
|
||||
[GOID:46] [INFO] 2024-01-17 13:17:10 [/router/middleware.go:41] 49.291µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:24] [INFO] 2024-01-17 13:17:10 [/router/middleware.go:41] 26.903958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 62.167µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:28] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 23.026583ms POST 200 /api/v1/login/login
|
||||
[GOID:70] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 36.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:48] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 1.033042ms POST 200 /api/v1/user/info
|
||||
[GOID:82] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 22.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:84] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 22.38825ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:86] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 22.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:88] [INFO] 2024-01-17 13:17:11 [/router/middleware.go:41] 1.033334ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:89] [INFO] 2024-01-17 13:17:12 [/router/middleware.go:41] 28.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:30] [INFO] 2024-01-17 13:17:12 [/router/middleware.go:41] 12.890958ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:31] [INFO] 2024-01-17 13:17:48 [/router/middleware.go:41] 60.542µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:92] [INFO] 2024-01-17 13:17:48 [/router/middleware.go:41] 2.114959ms POST 200 /api/v1/test/test
|
||||
[GOID:51] [INFO] 2024-01-17 13:18:06 [/router/middleware.go:41] 16.625µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:53] [INFO] 2024-01-17 13:19:23 [/router/middleware.go:41] 1m16.948537s POST 200 /api/v1/test/test
|
||||
[GOID:56] [INFO] 2024-01-17 13:19:34 [/router/middleware.go:41] 62.833µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:58] [INFO] 2024-01-17 13:19:34 [/router/middleware.go:41] 4.142541ms POST 200 /api/v1/test/test
|
||||
[GOID:12] [INFO] 2024-01-17 13:20:18 [/router/middleware.go:41] 73.958µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:14] [INFO] 2024-01-17 13:21:03 [/router/middleware.go:41] 44.488422959s POST 200 /api/v1/test/test
|
||||
[GOID:13] [INFO] 2024-01-17 13:21:19 [/router/middleware.go:41] 21.417µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 13:21:24 [/router/middleware.go:41] 4.976442875s POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-17 13:21:56 [/router/middleware.go:41] 30.334µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:68] [INFO] 2024-01-17 13:22:04 [/router/middleware.go:41] 8.003655208s POST 200 /api/v1/test/test
|
||||
[GOID:29] [INFO] 2024-01-17 13:22:10 [/router/middleware.go:41] 43.333µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:12] [INFO] 2024-01-17 13:22:10 [/router/middleware.go:41] 1.718625ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:8] [INFO] 2024-01-17 13:22:10 [/router/middleware.go:41] 12.637208ms POST 200 /api/v1/test/test
|
||||
[GOID:14] [INFO] 2024-01-17 13:23:02 [/router/middleware.go:41] 63.959µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:15] [INFO] 2024-01-17 13:24:51 [/router/middleware.go:41] 1m49.038036s POST 200 /api/v1/test/test
|
||||
[GOID:56] [INFO] 2024-01-17 13:24:58 [/router/middleware.go:41] 45.417µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:58] [INFO] 2024-01-17 13:24:58 [/router/middleware.go:41] 4.765167ms POST 200 /api/v1/test/test
|
||||
[GOID:8] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 87.166µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:10] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 8.747041ms POST 200 /api/v1/user/info
|
||||
[GOID:12] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 19.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:33] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 24.466959ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:60] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 57.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-17 13:25:06 [/router/middleware.go:41] 7.973042ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:15] [INFO] 2024-01-17 13:25:18 [/router/middleware.go:41] 45.875µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:62] [INFO] 2024-01-17 13:25:18 [/router/middleware.go:41] 2.104208ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:82] [INFO] 2024-01-17 13:25:18 [/router/middleware.go:41] 13.211459ms POST 200 /api/v1/test/test
|
||||
[GOID:69] [INFO] 2024-01-17 13:25:30 [/router/middleware.go:41] 50.375µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:71] [INFO] 2024-01-17 13:25:30 [/router/middleware.go:41] 1.572708ms POST 200 /api/v1/test/test
|
||||
[GOID:73] [INFO] 2024-01-17 13:25:41 [/router/middleware.go:41] 31µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:75] [INFO] 2024-01-17 13:25:41 [/router/middleware.go:41] 1.722875ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:64] [INFO] 2024-01-17 13:25:41 [/router/middleware.go:41] 14.89675ms POST 200 /api/v1/test/test
|
||||
[GOID:88] [INFO] 2024-01-17 13:25:51 [/router/middleware.go:41] 55.209µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:90] [INFO] 2024-01-17 13:25:51 [/router/middleware.go:41] 2.158083ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:100] [INFO] 2024-01-17 13:25:51 [/router/middleware.go:41] 14.0905ms POST 200 /api/v1/test/test
|
||||
[GOID:22] [INFO] 2024-01-17 13:45:11 [/router/middleware.go:41] 14.625µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:23] [INFO] 2024-01-17 13:45:11 [/router/middleware.go:41] 4.977ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:13] [INFO] 2024-01-17 13:45:11 [/router/middleware.go:41] 16.2485ms POST 200 /api/v1/test/test
|
||||
[GOID:69] [INFO] 2024-01-17 13:45:18 [/router/middleware.go:41] 55.959µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:75] [INFO] 2024-01-17 13:45:18 [/router/middleware.go:41] 2.316333ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:71] [INFO] 2024-01-17 13:45:18 [/router/middleware.go:41] 12.250083ms POST 200 /api/v1/test/test
|
||||
[GOID:84] [INFO] 2024-01-17 13:45:23 [/router/middleware.go:41] 42.625µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:100] [INFO] 2024-01-17 13:45:23 [/router/middleware.go:41] 1.569375ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:86] [INFO] 2024-01-17 13:45:23 [/router/middleware.go:41] 13.482667ms POST 200 /api/v1/test/test
|
||||
[GOID:77] [INFO] 2024-01-17 13:45:29 [/router/middleware.go:41] 42.083µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:79] [INFO] 2024-01-17 13:45:29 [/router/middleware.go:41] 1.670542ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:102] [INFO] 2024-01-17 13:45:29 [/router/middleware.go:41] 12.605875ms POST 200 /api/v1/test/test
|
||||
[GOID:92] [INFO] 2024-01-17 13:45:32 [/router/middleware.go:41] 1.527083ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:106] [INFO] 2024-01-17 13:45:32 [/router/middleware.go:41] 11.891ms POST 200 /api/v1/test/test
|
||||
[GOID:110] [INFO] 2024-01-17 13:46:21 [/router/middleware.go:41] 70.958µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:117] [INFO] 2024-01-17 13:46:21 [/router/middleware.go:41] 1.350208ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:94] [INFO] 2024-01-17 13:46:21 [/router/middleware.go:41] 13.008042ms POST 200 /api/v1/test/test
|
||||
[GOID:119] [INFO] 2024-01-17 13:46:35 [/router/middleware.go:41] 66.209µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:112] [INFO] 2024-01-17 13:46:35 [/router/middleware.go:41] 1.641875ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:121] [INFO] 2024-01-17 13:46:35 [/router/middleware.go:41] 13.499084ms POST 200 /api/v1/test/test
|
||||
[GOID:23] [INFO] 2024-01-17 13:49:44 [/router/middleware.go:41] 30.916µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:73] [INFO] 2024-01-17 13:49:44 [/router/middleware.go:41] 3.96325ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:69] [INFO] 2024-01-17 13:49:44 [/router/middleware.go:41] 17.207125ms POST 200 /api/v1/test/test
|
||||
[GOID:84] [INFO] 2024-01-17 13:56:05 [/router/middleware.go:41] 53.708µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:79] [INFO] 2024-01-17 13:56:05 [/router/middleware.go:41] 1.050167ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:75] [INFO] 2024-01-17 13:56:05 [/router/middleware.go:41] 8.892542ms POST 200 /api/v1/test/test
|
||||
[GOID:86] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 59.334µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:81] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 31.824542ms POST 200 /api/v1/login/login
|
||||
[GOID:87] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 43.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:89] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 1.191667ms POST 200 /api/v1/user/info
|
||||
[GOID:91] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 21.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:93] [INFO] 2024-01-17 13:58:04 [/router/middleware.go:41] 24.917959ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:95] [INFO] 2024-01-17 13:58:05 [/router/middleware.go:41] 31.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:97] [INFO] 2024-01-17 13:58:05 [/router/middleware.go:41] 11.56175ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:114] [INFO] 2024-01-17 13:58:15 [/router/middleware.go:41] 30.667µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:120] [INFO] 2024-01-17 13:58:15 [/router/middleware.go:41] 2.501208ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:116] [INFO] 2024-01-17 13:58:15 [/router/middleware.go:41] 14.644542ms POST 200 /api/v1/test/test
|
||||
[GOID:30] [INFO] 2024-01-17 13:58:30 [/router/middleware.go:41] 26.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:132] [INFO] 2024-01-17 13:58:30 [/router/middleware.go:41] 2.199375ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:32] [INFO] 2024-01-17 13:58:30 [/router/middleware.go:41] 18.024334ms POST 200 /api/v1/test/test
|
||||
[GOID:122] [INFO] 2024-01-17 13:59:05 [/router/middleware.go:41] 116µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:124] [INFO] 2024-01-17 13:59:05 [/router/middleware.go:41] 1.510875ms POST 200 /api/v1/user/info
|
||||
[GOID:126] [INFO] 2024-01-17 13:59:06 [/router/middleware.go:41] 52.208µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:128] [INFO] 2024-01-17 13:59:06 [/router/middleware.go:41] 56.929917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:162] [INFO] 2024-01-17 13:59:06 [/router/middleware.go:41] 41.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:164] [INFO] 2024-01-17 13:59:06 [/router/middleware.go:41] 8.411417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:165] [INFO] 2024-01-17 13:59:16 [/router/middleware.go:41] 89.667µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:171] [INFO] 2024-01-17 13:59:16 [/router/middleware.go:41] 1.528958ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:167] [INFO] 2024-01-17 13:59:16 [/router/middleware.go:41] 11.319292ms POST 200 /api/v1/test/test
|
||||
[GOID:149] [INFO] 2024-01-17 13:59:29 [/router/middleware.go:41] 59.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:173] [INFO] 2024-01-17 13:59:29 [/router/middleware.go:41] 732.75µs POST 200 /api/v1/user/info
|
||||
[GOID:137] [INFO] 2024-01-17 13:59:29 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:151] [INFO] 2024-01-17 13:59:29 [/router/middleware.go:41] 109.584µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:153] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 69.375µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:155] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 21.191ms POST 200 /api/v1/login/login
|
||||
[GOID:140] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 27.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:142] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 1.074334ms POST 200 /api/v1/user/info
|
||||
[GOID:144] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 31.833µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:194] [INFO] 2024-01-17 13:59:35 [/router/middleware.go:41] 23.613417ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:196] [INFO] 2024-01-17 13:59:36 [/router/middleware.go:41] 20.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:198] [INFO] 2024-01-17 13:59:36 [/router/middleware.go:41] 8.454334ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:199] [INFO] 2024-01-17 13:59:41 [/router/middleware.go:41] 27.75µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:205] [INFO] 2024-01-17 13:59:41 [/router/middleware.go:41] 1.175875ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:201] [INFO] 2024-01-17 13:59:41 [/router/middleware.go:41] 10.172458ms POST 200 /api/v1/test/test
|
||||
[GOID:157] [INFO] 2024-01-17 14:00:30 [/router/middleware.go:41] 35.791µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:182] [INFO] 2024-01-17 14:00:30 [/router/middleware.go:41] 2.318458ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:207] [INFO] 2024-01-17 14:00:30 [/router/middleware.go:41] 16.928125ms POST 200 /api/v1/test/test
|
||||
[GOID:184] [INFO] 2024-01-17 14:00:33 [/router/middleware.go:41] 50.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:161] [INFO] 2024-01-17 14:00:33 [/router/middleware.go:41] 948.917µs POST 200 /api/v1/user/info
|
||||
[GOID:227] [INFO] 2024-01-17 14:00:34 [/router/middleware.go:41] 37.083µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:229] [INFO] 2024-01-17 14:00:34 [/router/middleware.go:41] 245.333µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:212] [INFO] 2024-01-17 14:00:39 [/router/middleware.go:41] 47µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:214] [INFO] 2024-01-17 14:00:39 [/router/middleware.go:41] 21.558375ms POST 200 /api/v1/login/login
|
||||
[GOID:192] [INFO] 2024-01-17 14:00:40 [/router/middleware.go:41] 33.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:242] [INFO] 2024-01-17 14:00:40 [/router/middleware.go:41] 1.07ms POST 200 /api/v1/user/info
|
||||
[GOID:244] [INFO] 2024-01-17 14:00:40 [/router/middleware.go:41] 26µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:246] [INFO] 2024-01-17 14:00:40 [/router/middleware.go:41] 20.515792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:248] [INFO] 2024-01-17 14:00:41 [/router/middleware.go:41] 38.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:250] [INFO] 2024-01-17 14:00:41 [/router/middleware.go:41] 8.215875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:251] [INFO] 2024-01-17 14:00:53 [/router/middleware.go:41] 41.833µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:221] [INFO] 2024-01-17 14:00:53 [/router/middleware.go:41] 874.625µs POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:253] [INFO] 2024-01-17 14:00:53 [/router/middleware.go:41] 8.492125ms POST 200 /api/v1/test/test
|
||||
[GOID:223] [INFO] 2024-01-17 14:05:13 [/router/middleware.go:41] 49.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:225] [INFO] 2024-01-17 14:05:13 [/router/middleware.go:41] 1.349792ms POST 200 /api/v1/user/info
|
||||
[GOID:258] [INFO] 2024-01-17 14:05:14 [/router/middleware.go:41] 31.208µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:260] [INFO] 2024-01-17 14:05:14 [/router/middleware.go:41] 29.857042ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:233] [INFO] 2024-01-17 14:05:14 [/router/middleware.go:41] 54.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:267] [INFO] 2024-01-17 14:05:14 [/router/middleware.go:41] 8.027875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:39] [INFO] 2024-01-17 14:05:53 [/router/middleware.go:41] 35.916µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:268] [INFO] 2024-01-17 14:05:53 [/router/middleware.go:41] 1.454167ms POST 200 /api/v1/user/info
|
||||
[GOID:270] [INFO] 2024-01-17 14:05:53 [/router/middleware.go:41] 36.916µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:272] [INFO] 2024-01-17 14:05:53 [/router/middleware.go:41] 18.020125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:274] [INFO] 2024-01-17 14:05:54 [/router/middleware.go:41] 27.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:276] [INFO] 2024-01-17 14:05:54 [/router/middleware.go:41] 8.063917ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:277] [INFO] 2024-01-17 14:12:56 [/router/middleware.go:41] 34.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:279] [INFO] 2024-01-17 14:12:56 [/router/middleware.go:41] 718.5µs POST 200 /api/v1/user/info
|
||||
[GOID:281] [INFO] 2024-01-17 14:12:57 [/router/middleware.go:41] 30.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:283] [INFO] 2024-01-17 14:12:57 [/router/middleware.go:41] 14.478209ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:306] [INFO] 2024-01-17 14:12:57 [/router/middleware.go:41] 30.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:308] [INFO] 2024-01-17 14:12:57 [/router/middleware.go:41] 6.267834ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:291] [INFO] 2024-01-17 14:18:54 [/router/middleware.go:41] 19.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:293] [INFO] 2024-01-17 14:18:54 [/router/middleware.go:41] 7.635084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:237] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 55.667µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:239] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 1.175167ms POST 200 /api/v1/user/info
|
||||
[GOID:41] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 28.083µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:298] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 23.564709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:311] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 35.209µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:313] [INFO] 2024-01-17 14:51:54 [/router/middleware.go:41] 9.225167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:314] [INFO] 2024-01-17 14:52:27 [/router/middleware.go:41] 39.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:320] [INFO] 2024-01-17 14:52:27 [/router/middleware.go:41] 1.587125ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:316] [INFO] 2024-01-17 14:52:27 [/router/middleware.go:41] 10.761417ms POST 200 /api/v1/test/test
|
||||
[GOID:322] [INFO] 2024-01-17 15:19:40 [/router/middleware.go:41] 41.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:324] [INFO] 2024-01-17 15:19:40 [/router/middleware.go:41] 1.561833ms POST 200 /api/v1/user/info
|
||||
[GOID:326] [INFO] 2024-01-17 15:19:41 [/router/middleware.go:41] 35.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:328] [INFO] 2024-01-17 15:19:41 [/router/middleware.go:41] 31.1065ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:340] [INFO] 2024-01-17 15:19:41 [/router/middleware.go:41] 38.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:342] [INFO] 2024-01-17 15:19:41 [/router/middleware.go:41] 7.048708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:43] [INFO] 2024-01-17 15:20:17 [/router/middleware.go:41] 47.542µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:343] [INFO] 2024-01-17 15:20:17 [/router/middleware.go:41] 1.18725ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:334] [INFO] 2024-01-17 15:20:17 [/router/middleware.go:41] 10.031709ms POST 200 /api/v1/test/test
|
||||
[GOID:355] [INFO] 2024-01-17 15:27:18 [/router/middleware.go:41] 26.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:357] [INFO] 2024-01-17 15:27:18 [/router/middleware.go:41] 1.8045ms POST 200 /api/v1/user/info
|
||||
[GOID:370] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 37.667µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:359] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 811.875µs POST 200 /api/v1/user/info
|
||||
[GOID:45] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 28.667µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:47] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 185.458µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:361] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 33.542µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:363] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 21.866541ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:374] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 20.084µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:376] [INFO] 2024-01-17 15:27:19 [/router/middleware.go:41] 5.581458ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:377] [INFO] 2024-01-17 15:27:51 [/router/middleware.go:41] 37.834µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:386] [INFO] 2024-01-17 15:27:51 [/router/middleware.go:41] 1.149291ms POST 200 /api/v1/user/info
|
||||
[GOID:369] [INFO] 2024-01-17 15:27:52 [/router/middleware.go:41] 43.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:378] [INFO] 2024-01-17 15:27:52 [/router/middleware.go:41] 25.826917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:380] [INFO] 2024-01-17 15:27:52 [/router/middleware.go:41] 15.208µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:382] [INFO] 2024-01-17 15:27:52 [/router/middleware.go:41] 4.264459ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:388] [INFO] 2024-01-17 15:28:20 [/router/middleware.go:41] 32.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:383] [INFO] 2024-01-17 15:28:20 [/router/middleware.go:41] 1.386792ms POST 200 /api/v1/user/info
|
||||
[GOID:385] [INFO] 2024-01-17 15:28:21 [/router/middleware.go:41] 10.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:419] [INFO] 2024-01-17 15:28:21 [/router/middleware.go:41] 16.752709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:403] [INFO] 2024-01-17 15:28:21 [/router/middleware.go:41] 35.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:405] [INFO] 2024-01-17 15:28:21 [/router/middleware.go:41] 7.619041ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:345] [INFO] 2024-01-17 15:29:51 [/router/middleware.go:41] 48.834µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:406] [INFO] 2024-01-17 15:29:51 [/router/middleware.go:41] 1.138417ms POST 200 /api/v1/user/info
|
||||
[GOID:347] [INFO] 2024-01-17 15:29:52 [/router/middleware.go:41] 31.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:349] [INFO] 2024-01-17 15:29:52 [/router/middleware.go:41] 21.858208ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:409] [INFO] 2024-01-17 15:29:52 [/router/middleware.go:41] 23.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:411] [INFO] 2024-01-17 15:29:52 [/router/middleware.go:41] 5.448583ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:412] [INFO] 2024-01-17 15:30:06 [/router/middleware.go:41] 44.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:414] [INFO] 2024-01-17 15:30:06 [/router/middleware.go:41] 1.752958ms POST 200 /api/v1/user/info
|
||||
[GOID:416] [INFO] 2024-01-17 15:30:07 [/router/middleware.go:41] 31.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:434] [INFO] 2024-01-17 15:30:07 [/router/middleware.go:41] 18.460209ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:436] [INFO] 2024-01-17 15:30:07 [/router/middleware.go:41] 41.709µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:438] [INFO] 2024-01-17 15:30:07 [/router/middleware.go:41] 7.312125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:439] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 32.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:426] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 1.8215ms POST 200 /api/v1/user/info
|
||||
[GOID:428] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 26µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:430] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 18.0575ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:432] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 34.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:450] [INFO] 2024-01-17 15:30:18 [/router/middleware.go:41] 7.865041ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:391] [INFO] 2024-01-17 15:31:20 [/router/middleware.go:41] 38.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:466] [INFO] 2024-01-17 15:31:20 [/router/middleware.go:41] 1.43425ms POST 200 /api/v1/user/info
|
||||
[GOID:393] [INFO] 2024-01-17 15:31:21 [/router/middleware.go:41] 57.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:395] [INFO] 2024-01-17 15:31:21 [/router/middleware.go:41] 25.225041ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:468] [INFO] 2024-01-17 15:31:21 [/router/middleware.go:41] 32.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:470] [INFO] 2024-01-17 15:31:21 [/router/middleware.go:41] 7.500917ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:442] [INFO] 2024-01-17 15:32:32 [/router/middleware.go:41] 82.916µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:444] [INFO] 2024-01-17 15:32:32 [/router/middleware.go:41] 1.838375ms POST 200 /api/v1/user/info
|
||||
[GOID:446] [INFO] 2024-01-17 15:32:33 [/router/middleware.go:41] 35.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:448] [INFO] 2024-01-17 15:32:33 [/router/middleware.go:41] 28.121417ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:498] [INFO] 2024-01-17 15:32:33 [/router/middleware.go:41] 39.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:500] [INFO] 2024-01-17 15:32:33 [/router/middleware.go:41] 6.569709ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:472] [INFO] 2024-01-17 15:34:59 [/router/middleware.go:41] 34.958µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:474] [INFO] 2024-01-17 15:34:59 [/router/middleware.go:41] 1.021917ms POST 200 /api/v1/user/info
|
||||
[GOID:476] [INFO] 2024-01-17 15:35:00 [/router/middleware.go:41] 81.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:478] [INFO] 2024-01-17 15:35:00 [/router/middleware.go:41] 28.343541ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:487] [INFO] 2024-01-17 15:35:00 [/router/middleware.go:41] 33.25µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:489] [INFO] 2024-01-17 15:35:00 [/router/middleware.go:41] 7.598333ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:452] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 69.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:516] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 1.217709ms POST 200 /api/v1/user/info
|
||||
[GOID:518] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 33.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:520] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 25.894459ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:453] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:455] [INFO] 2024-01-17 15:36:04 [/router/middleware.go:41] 7.460958ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:501] [INFO] 2024-01-17 15:39:32 [/router/middleware.go:41] 35.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:503] [INFO] 2024-01-17 15:39:32 [/router/middleware.go:41] 969.583µs POST 200 /api/v1/user/info
|
||||
[GOID:505] [INFO] 2024-01-17 15:39:33 [/router/middleware.go:41] 25.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:507] [INFO] 2024-01-17 15:39:33 [/router/middleware.go:41] 24.188792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:530] [INFO] 2024-01-17 15:39:33 [/router/middleware.go:41] 36.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:532] [INFO] 2024-01-17 15:39:33 [/router/middleware.go:41] 7.713875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:533] [INFO] 2024-01-17 15:39:40 [/router/middleware.go:41] 39µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:535] [INFO] 2024-01-17 15:39:40 [/router/middleware.go:41] 1.584875ms POST 200 /api/v1/user/info
|
||||
[GOID:537] [INFO] 2024-01-17 15:39:41 [/router/middleware.go:41] 34.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:539] [INFO] 2024-01-17 15:39:41 [/router/middleware.go:41] 19.3935ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:541] [INFO] 2024-01-17 15:39:41 [/router/middleware.go:41] 47.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:492] [INFO] 2024-01-17 15:39:41 [/router/middleware.go:41] 8.579167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:542] [INFO] 2024-01-17 15:41:32 [/router/middleware.go:41] 57.959µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:544] [INFO] 2024-01-17 15:41:32 [/router/middleware.go:41] 1.723625ms POST 200 /api/v1/user/info
|
||||
[GOID:493] [INFO] 2024-01-17 15:41:33 [/router/middleware.go:41] 46.084µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:495] [INFO] 2024-01-17 15:41:33 [/router/middleware.go:41] 25.804667ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:549] [INFO] 2024-01-17 15:41:33 [/router/middleware.go:41] 54.166µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:551] [INFO] 2024-01-17 15:41:33 [/router/middleware.go:41] 7.024959ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:552] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 45.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:554] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 1.371875ms POST 200 /api/v1/user/info
|
||||
[GOID:556] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 50.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:558] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 21.980584ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:560] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 94.333µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:578] [INFO] 2024-01-17 15:42:06 [/router/middleware.go:41] 11.963084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:579] [INFO] 2024-01-17 15:42:56 [/router/middleware.go:41] 51.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:528] [INFO] 2024-01-17 15:42:56 [/router/middleware.go:41] 936.125µs POST 200 /api/v1/user/info
|
||||
[GOID:594] [INFO] 2024-01-17 15:42:57 [/router/middleware.go:41] 38.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:596] [INFO] 2024-01-17 15:42:57 [/router/middleware.go:41] 49.333µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:598] [INFO] 2024-01-17 15:42:59 [/router/middleware.go:41] 29.5µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:600] [INFO] 2024-01-17 15:42:59 [/router/middleware.go:41] 19.567125ms POST 200 /api/v1/login/login
|
||||
[GOID:611] [INFO] 2024-01-17 15:43:00 [/router/middleware.go:41] 14µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:613] [INFO] 2024-01-17 15:43:00 [/router/middleware.go:41] 892.792µs POST 200 /api/v1/user/info
|
||||
[GOID:615] [INFO] 2024-01-17 15:43:00 [/router/middleware.go:41] 43.208µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:617] [INFO] 2024-01-17 15:43:00 [/router/middleware.go:41] 20.477875ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:619] [INFO] 2024-01-17 15:43:01 [/router/middleware.go:41] 50.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:621] [INFO] 2024-01-17 15:43:01 [/router/middleware.go:41] 11.000541ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:457] [INFO] 2024-01-17 15:44:29 [/router/middleware.go:41] 53.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:582] [INFO] 2024-01-17 15:44:29 [/router/middleware.go:41] 1.155458ms POST 200 /api/v1/user/info
|
||||
[GOID:584] [INFO] 2024-01-17 15:44:30 [/router/middleware.go:41] 25.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:586] [INFO] 2024-01-17 15:44:30 [/router/middleware.go:41] 21.887916ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:623] [INFO] 2024-01-17 15:44:30 [/router/middleware.go:41] 43.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:625] [INFO] 2024-01-17 15:44:30 [/router/middleware.go:41] 6.831ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:563] [INFO] 2024-01-17 15:44:45 [/router/middleware.go:41] 27.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:591] [INFO] 2024-01-17 15:44:45 [/router/middleware.go:41] 762.625µs POST 200 /api/v1/user/info
|
||||
[GOID:566] [INFO] 2024-01-17 15:44:46 [/router/middleware.go:41] 49.083µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:568] [INFO] 2024-01-17 15:44:46 [/router/middleware.go:41] 21.347375ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:570] [INFO] 2024-01-17 15:44:46 [/router/middleware.go:41] 36.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:592] [INFO] 2024-01-17 15:44:46 [/router/middleware.go:41] 6.770875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:572] [INFO] 2024-01-17 15:45:22 [/router/middleware.go:41] 30.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:574] [INFO] 2024-01-17 15:45:22 [/router/middleware.go:41] 1.479292ms POST 200 /api/v1/user/info
|
||||
[GOID:576] [INFO] 2024-01-17 15:45:23 [/router/middleware.go:41] 36.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:626] [INFO] 2024-01-17 15:45:23 [/router/middleware.go:41] 22.473333ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:628] [INFO] 2024-01-17 15:45:23 [/router/middleware.go:41] 34.792µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:630] [INFO] 2024-01-17 15:45:23 [/router/middleware.go:41] 7.164875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:460] [INFO] 2024-01-17 15:49:12 [/router/middleware.go:41] 66.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:462] [INFO] 2024-01-17 15:49:12 [/router/middleware.go:41] 1.192875ms POST 200 /api/v1/user/info
|
||||
[GOID:464] [INFO] 2024-01-17 15:49:13 [/router/middleware.go:41] 48.417µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:593] [INFO] 2024-01-17 15:49:13 [/router/middleware.go:41] 17.19975ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:660] [INFO] 2024-01-17 15:49:13 [/router/middleware.go:41] 48.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:662] [INFO] 2024-01-17 15:49:13 [/router/middleware.go:41] 6.154125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:663] [INFO] 2024-01-17 15:50:40 [/router/middleware.go:41] 50.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:665] [INFO] 2024-01-17 15:50:40 [/router/middleware.go:41] 1.080209ms POST 200 /api/v1/user/info
|
||||
[GOID:667] [INFO] 2024-01-17 15:50:41 [/router/middleware.go:41] 41.708µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:669] [INFO] 2024-01-17 15:50:41 [/router/middleware.go:41] 25.521416ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:647] [INFO] 2024-01-17 15:50:41 [/router/middleware.go:41] 33.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:649] [INFO] 2024-01-17 15:50:41 [/router/middleware.go:41] 7.067292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:650] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 28.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:675] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 987.625µs POST 200 /api/v1/user/info
|
||||
[GOID:677] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 30.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:652] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 23.999958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:654] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 38.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:656] [INFO] 2024-01-17 15:50:44 [/router/middleware.go:41] 6.744625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:657] [INFO] 2024-01-17 15:50:45 [/router/middleware.go:41] 36.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:707] [INFO] 2024-01-17 15:50:45 [/router/middleware.go:41] 1.623709ms POST 200 /api/v1/user/info
|
||||
[GOID:709] [INFO] 2024-01-17 15:50:46 [/router/middleware.go:41] 33.458µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:711] [INFO] 2024-01-17 15:50:46 [/router/middleware.go:41] 22.030792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:713] [INFO] 2024-01-17 15:50:46 [/router/middleware.go:41] 65.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:715] [INFO] 2024-01-17 15:50:46 [/router/middleware.go:41] 9.019667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:691] [INFO] 2024-01-17 15:51:41 [/router/middleware.go:41] 56.958µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:679] [INFO] 2024-01-17 15:51:41 [/router/middleware.go:41] 1.221708ms POST 200 /api/v1/user/info
|
||||
[GOID:681] [INFO] 2024-01-17 15:51:42 [/router/middleware.go:41] 53.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:683] [INFO] 2024-01-17 15:51:42 [/router/middleware.go:41] 25.846667ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:717] [INFO] 2024-01-17 15:51:42 [/router/middleware.go:41] 23.084µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:719] [INFO] 2024-01-17 15:51:42 [/router/middleware.go:41] 7.693333ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:720] [INFO] 2024-01-17 15:51:59 [/router/middleware.go:41] 59.834µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:694] [INFO] 2024-01-17 15:51:59 [/router/middleware.go:41] 1.066583ms POST 200 /api/v1/user/info
|
||||
[GOID:696] [INFO] 2024-01-17 15:52:00 [/router/middleware.go:41] 23.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:698] [INFO] 2024-01-17 15:52:00 [/router/middleware.go:41] 18.360709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:700] [INFO] 2024-01-17 15:52:00 [/router/middleware.go:41] 23.708µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:688] [INFO] 2024-01-17 15:52:00 [/router/middleware.go:41] 7.414542ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:702] [INFO] 2024-01-17 15:53:10 [/router/middleware.go:41] 43.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:704] [INFO] 2024-01-17 15:53:10 [/router/middleware.go:41] 901.375µs POST 200 /api/v1/user/info
|
||||
[GOID:722] [INFO] 2024-01-17 15:53:11 [/router/middleware.go:41] 50.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:724] [INFO] 2024-01-17 15:53:11 [/router/middleware.go:41] 27.966ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:754] [INFO] 2024-01-17 15:53:12 [/router/middleware.go:41] 31.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:756] [INFO] 2024-01-17 15:53:12 [/router/middleware.go:41] 7.794625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:757] [INFO] 2024-01-17 15:53:13 [/router/middleware.go:41] 27.333µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:759] [INFO] 2024-01-17 15:53:13 [/router/middleware.go:41] 1.364167ms POST 200 /api/v1/user/info
|
||||
[GOID:761] [INFO] 2024-01-17 15:53:14 [/router/middleware.go:41] 38.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:763] [INFO] 2024-01-17 15:53:14 [/router/middleware.go:41] 20.236542ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:765] [INFO] 2024-01-17 15:53:14 [/router/middleware.go:41] 31.709µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:767] [INFO] 2024-01-17 15:53:14 [/router/middleware.go:41] 7.70075ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:768] [INFO] 2024-01-17 15:54:12 [/router/middleware.go:41] 24.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:770] [INFO] 2024-01-17 15:54:12 [/router/middleware.go:41] 1.283333ms POST 200 /api/v1/user/info
|
||||
[GOID:772] [INFO] 2024-01-17 15:54:13 [/router/middleware.go:41] 34.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:774] [INFO] 2024-01-17 15:54:13 [/router/middleware.go:41] 28.346125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:780] [INFO] 2024-01-17 15:54:13 [/router/middleware.go:41] 38.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:782] [INFO] 2024-01-17 15:54:13 [/router/middleware.go:41] 7.602208ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:631] [INFO] 2024-01-17 15:54:58 [/router/middleware.go:41] 52.666µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:740] [INFO] 2024-01-17 15:54:58 [/router/middleware.go:41] 1.52225ms POST 200 /api/v1/user/info
|
||||
[GOID:742] [INFO] 2024-01-17 15:54:59 [/router/middleware.go:41] 39.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:783] [INFO] 2024-01-17 15:54:59 [/router/middleware.go:41] 21.558334ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:785] [INFO] 2024-01-17 15:54:59 [/router/middleware.go:41] 28.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:787] [INFO] 2024-01-17 15:54:59 [/router/middleware.go:41] 8.197875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:633] [INFO] 2024-01-17 15:56:50 [/router/middleware.go:41] 72.709µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:635] [INFO] 2024-01-17 15:56:50 [/router/middleware.go:41] 1.745208ms POST 200 /api/v1/user/info
|
||||
[GOID:637] [INFO] 2024-01-17 15:56:50 [/router/middleware.go:41] 38.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:744] [INFO] 2024-01-17 15:56:50 [/router/middleware.go:41] 27.846ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:789] [INFO] 2024-01-17 15:56:51 [/router/middleware.go:41] 49.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:791] [INFO] 2024-01-17 15:56:51 [/router/middleware.go:41] 8.747375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:640] [INFO] 2024-01-17 15:57:34 [/router/middleware.go:41] 58.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:793] [INFO] 2024-01-17 15:57:34 [/router/middleware.go:41] 1.283167ms POST 200 /api/v1/user/info
|
||||
[GOID:795] [INFO] 2024-01-17 15:57:35 [/router/middleware.go:41] 31.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:797] [INFO] 2024-01-17 15:57:35 [/router/middleware.go:41] 21.47925ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:799] [INFO] 2024-01-17 15:57:35 [/router/middleware.go:41] 43.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:801] [INFO] 2024-01-17 15:57:35 [/router/middleware.go:41] 7.937917ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:802] [INFO] 2024-01-17 15:58:06 [/router/middleware.go:41] 28.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:804] [INFO] 2024-01-17 15:58:07 [/router/middleware.go:41] 1.85725ms POST 200 /api/v1/user/info
|
||||
[GOID:806] [INFO] 2024-01-17 15:58:07 [/router/middleware.go:41] 37.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:808] [INFO] 2024-01-17 15:58:07 [/router/middleware.go:41] 22.885667ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:814] [INFO] 2024-01-17 15:58:07 [/router/middleware.go:41] 36.084µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:816] [INFO] 2024-01-17 15:58:07 [/router/middleware.go:41] 6.89175ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:751] [INFO] 2024-01-17 16:03:21 [/router/middleware.go:41] 149.209µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:753] [INFO] 2024-01-17 16:03:21 [/router/middleware.go:41] 1.639375ms POST 200 /api/v1/user/info
|
||||
[GOID:819] [INFO] 2024-01-17 16:03:21 [/router/middleware.go:41] 29.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:821] [INFO] 2024-01-17 16:03:21 [/router/middleware.go:41] 25.018708ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:834] [INFO] 2024-01-17 16:03:22 [/router/middleware.go:41] 34.916µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:836] [INFO] 2024-01-17 16:03:22 [/router/middleware.go:41] 8.272333ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:730] [INFO] 2024-01-17 16:07:02 [/router/middleware.go:41] 36.834µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:837] [INFO] 2024-01-17 16:07:02 [/router/middleware.go:41] 1.012334ms POST 200 /api/v1/user/info
|
||||
[GOID:839] [INFO] 2024-01-17 16:07:02 [/router/middleware.go:41] 31.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:841] [INFO] 2024-01-17 16:07:02 [/router/middleware.go:41] 24.841959ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:733] [INFO] 2024-01-17 16:07:03 [/router/middleware.go:41] 35.958µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:735] [INFO] 2024-01-17 16:07:03 [/router/middleware.go:41] 7.736875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:736] [INFO] 2024-01-17 16:07:21 [/router/middleware.go:41] 38.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:850] [INFO] 2024-01-17 16:07:21 [/router/middleware.go:41] 756.083µs POST 200 /api/v1/user/info
|
||||
[GOID:852] [INFO] 2024-01-17 16:07:22 [/router/middleware.go:41] 34.458µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:854] [INFO] 2024-01-17 16:07:22 [/router/middleware.go:41] 20.72025ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:866] [INFO] 2024-01-17 16:07:22 [/router/middleware.go:41] 43.792µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:868] [INFO] 2024-01-17 16:07:22 [/router/middleware.go:41] 7.96175ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:869] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 100.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:847] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 1.530208ms POST 200 /api/v1/user/info
|
||||
[GOID:849] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 37.833µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:883] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 25.357666ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:857] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 78.208µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:859] [INFO] 2024-01-17 16:09:37 [/router/middleware.go:41] 10.6505ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:860] [INFO] 2024-01-17 16:12:52 [/router/middleware.go:41] 51.791µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:862] [INFO] 2024-01-17 16:12:52 [/router/middleware.go:41] 1.320875ms POST 200 /api/v1/user/info
|
||||
[GOID:864] [INFO] 2024-01-17 16:12:53 [/router/middleware.go:41] 56.084µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:827] [INFO] 2024-01-17 16:12:53 [/router/middleware.go:41] 26.203ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:914] [INFO] 2024-01-17 16:12:53 [/router/middleware.go:41] 22.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:916] [INFO] 2024-01-17 16:12:53 [/router/middleware.go:41] 4.713291ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:66] [INFO] 2024-01-17 16:20:56 [/router/middleware.go:41] 16.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:68] [INFO] 2024-01-17 16:20:56 [/router/middleware.go:41] 15.367167ms POST 200 /api/v1/user/info
|
||||
[GOID:75] [INFO] 2024-01-17 16:20:57 [/router/middleware.go:41] 31.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:77] [INFO] 2024-01-17 16:20:57 [/router/middleware.go:41] 23.002708ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:79] [INFO] 2024-01-17 16:20:57 [/router/middleware.go:41] 36.292µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:81] [INFO] 2024-01-17 16:20:57 [/router/middleware.go:41] 8.643459ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:82] [INFO] 2024-01-17 16:21:00 [/router/middleware.go:41] 37.375µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:84] [INFO] 2024-01-17 16:21:00 [/router/middleware.go:41] 1.092125ms POST 200 /api/v1/user/info
|
||||
[GOID:86] [INFO] 2024-01-17 16:21:01 [/router/middleware.go:41] 24.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:88] [INFO] 2024-01-17 16:21:01 [/router/middleware.go:41] 30.017291ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:90] [INFO] 2024-01-17 16:21:01 [/router/middleware.go:41] 36.083µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:92] [INFO] 2024-01-17 16:21:01 [/router/middleware.go:41] 6.487708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:93] [INFO] 2024-01-17 16:25:58 [/router/middleware.go:41] 44.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:28] [INFO] 2024-01-17 16:25:58 [/router/middleware.go:41] 734.209µs POST 200 /api/v1/user/info
|
||||
[GOID:30] [INFO] 2024-01-17 16:25:58 [/router/middleware.go:41] 11.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:32] [INFO] 2024-01-17 16:25:58 [/router/middleware.go:41] 13.868625ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:103] [INFO] 2024-01-17 16:25:59 [/router/middleware.go:41] 28.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:54] [INFO] 2024-01-17 16:25:59 [/router/middleware.go:41] 8.535417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:55] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 25.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:57] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 2.277584ms POST 200 /api/v1/user/info
|
||||
[GOID:59] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 37.458µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:61] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 60.991083ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:63] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 38.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:65] [INFO] 2024-01-17 16:26:00 [/router/middleware.go:41] 7.293ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:105] [INFO] 2024-01-17 16:27:58 [/router/middleware.go:41] 40.292µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:106] [INFO] 2024-01-17 16:27:58 [/router/middleware.go:41] 1.276167ms POST 200 /api/v1/user/info
|
||||
[GOID:108] [INFO] 2024-01-17 16:27:58 [/router/middleware.go:41] 49.417µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:110] [INFO] 2024-01-17 16:27:58 [/router/middleware.go:41] 36.9805ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:132] [INFO] 2024-01-17 16:27:59 [/router/middleware.go:41] 34.334µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:134] [INFO] 2024-01-17 16:27:59 [/router/middleware.go:41] 6.900666ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:115] [INFO] 2024-01-17 16:29:54 [/router/middleware.go:41] 35.667µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:38] [INFO] 2024-01-17 16:29:54 [/router/middleware.go:41] 1.756792ms POST 200 /api/v1/user/info
|
||||
[GOID:40] [INFO] 2024-01-17 16:29:55 [/router/middleware.go:41] 47.083µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:42] [INFO] 2024-01-17 16:29:55 [/router/middleware.go:41] 52.54725ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:48] [INFO] 2024-01-17 16:29:55 [/router/middleware.go:41] 54.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:146] [INFO] 2024-01-17 16:29:55 [/router/middleware.go:41] 12.076583ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:118] [INFO] 2024-01-17 16:34:09 [/router/middleware.go:41] 48µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:120] [INFO] 2024-01-17 16:34:09 [/router/middleware.go:41] 1.8775ms POST 200 /api/v1/user/info
|
||||
[GOID:122] [INFO] 2024-01-17 16:34:10 [/router/middleware.go:41] 35.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:124] [INFO] 2024-01-17 16:34:10 [/router/middleware.go:41] 38.037209ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:97] [INFO] 2024-01-17 16:34:10 [/router/middleware.go:41] 90.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:163] [INFO] 2024-01-17 16:34:10 [/router/middleware.go:41] 20.892583ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:136] [INFO] 2024-01-17 16:38:11 [/router/middleware.go:41] 41.166µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:138] [INFO] 2024-01-17 16:38:11 [/router/middleware.go:41] 3.454ms POST 200 /api/v1/user/info
|
||||
[GOID:140] [INFO] 2024-01-17 16:38:12 [/router/middleware.go:41] 38.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:142] [INFO] 2024-01-17 16:38:12 [/router/middleware.go:41] 25.317542ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:181] [INFO] 2024-01-17 16:38:12 [/router/middleware.go:41] 33.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:183] [INFO] 2024-01-17 16:38:12 [/router/middleware.go:41] 4.641209ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:164] [INFO] 2024-01-17 16:45:36 [/router/middleware.go:41] 72.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:166] [INFO] 2024-01-17 16:45:36 [/router/middleware.go:41] 2.178834ms POST 200 /api/v1/user/info
|
||||
[GOID:168] [INFO] 2024-01-17 16:45:36 [/router/middleware.go:41] 46.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:184] [INFO] 2024-01-17 16:45:36 [/router/middleware.go:41] 25.019875ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:191] [INFO] 2024-01-17 16:45:37 [/router/middleware.go:41] 30.708µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:193] [INFO] 2024-01-17 16:45:37 [/router/middleware.go:41] 7.204125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:194] [INFO] 2024-01-17 16:48:46 [/router/middleware.go:41] 37.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:196] [INFO] 2024-01-17 16:48:46 [/router/middleware.go:41] 2.264042ms POST 200 /api/v1/user/info
|
||||
[GOID:171] [INFO] 2024-01-17 16:48:47 [/router/middleware.go:41] 51.459µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:173] [INFO] 2024-01-17 16:48:47 [/router/middleware.go:41] 35.706375ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:227] [INFO] 2024-01-17 16:48:47 [/router/middleware.go:41] 34.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:229] [INFO] 2024-01-17 16:48:47 [/router/middleware.go:41] 7.17875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:230] [INFO] 2024-01-17 16:51:41 [/router/middleware.go:41] 33.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:212] [INFO] 2024-01-17 16:51:41 [/router/middleware.go:41] 750.291µs POST 200 /api/v1/user/info
|
||||
[GOID:214] [INFO] 2024-01-17 16:51:42 [/router/middleware.go:41] 33.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:216] [INFO] 2024-01-17 16:51:42 [/router/middleware.go:41] 37.481542ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:237] [INFO] 2024-01-17 16:51:42 [/router/middleware.go:41] 48.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:218] [INFO] 2024-01-17 16:51:42 [/router/middleware.go:41] 9.747125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:199] [INFO] 2024-01-17 16:53:20 [/router/middleware.go:41] 25.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:147] [INFO] 2024-01-17 16:53:20 [/router/middleware.go:41] 1.02275ms POST 200 /api/v1/user/info
|
||||
[GOID:149] [INFO] 2024-01-17 16:53:21 [/router/middleware.go:41] 26.666µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:151] [INFO] 2024-01-17 16:53:21 [/router/middleware.go:41] 29.094125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-17 16:53:21 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:157] [INFO] 2024-01-17 16:53:21 [/router/middleware.go:41] 8.631875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:158] [INFO] 2024-01-17 16:53:28 [/router/middleware.go:41] 27.167µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:244] [INFO] 2024-01-17 16:53:28 [/router/middleware.go:41] 1.63175ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:160] [INFO] 2024-01-17 16:53:28 [/router/middleware.go:41] 12.259375ms POST 200 /api/v1/test/test
|
||||
[GOID:219] [INFO] 2024-01-17 17:00:11 [/router/middleware.go:41] 87.166µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:221] [INFO] 2024-01-17 17:00:11 [/router/middleware.go:41] 1.166667ms POST 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-17 17:00:12 [/router/middleware.go:41] 23.459µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:225] [INFO] 2024-01-17 17:00:12 [/router/middleware.go:41] 35.040875ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:264] [INFO] 2024-01-17 17:00:12 [/router/middleware.go:41] 222.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:266] [INFO] 2024-01-17 17:00:12 [/router/middleware.go:41] 935.458µs POST 200 /api/v1/user/info
|
||||
[GOID:268] [INFO] 2024-01-17 17:00:13 [/router/middleware.go:41] 44.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:270] [INFO] 2024-01-17 17:00:13 [/router/middleware.go:41] 48.041µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:272] [INFO] 2024-01-17 17:00:13 [/router/middleware.go:41] 1.512875ms POST 200 /api/v1/user/info
|
||||
[GOID:205] [INFO] 2024-01-17 17:00:14 [/router/middleware.go:41] 54µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:207] [INFO] 2024-01-17 17:00:14 [/router/middleware.go:41] 30.057916ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:209] [INFO] 2024-01-17 17:00:14 [/router/middleware.go:41] 33.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:275] [INFO] 2024-01-17 17:00:14 [/router/middleware.go:41] 9.515ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:290] [INFO] 2024-01-17 17:15:45 [/router/middleware.go:41] 66.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:276] [INFO] 2024-01-17 17:15:45 [/router/middleware.go:41] 1.682583ms POST 200 /api/v1/user/info
|
||||
[GOID:278] [INFO] 2024-01-17 17:15:45 [/router/middleware.go:41] 35.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:280] [INFO] 2024-01-17 17:15:46 [/router/middleware.go:41] 43µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:282] [INFO] 2024-01-17 17:15:46 [/router/middleware.go:41] 1.284875ms POST 200 /api/v1/user/info
|
||||
[GOID:284] [INFO] 2024-01-17 17:15:46 [/router/middleware.go:41] 50.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:286] [INFO] 2024-01-17 17:15:47 [/router/middleware.go:41] 48.083667ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:241] [INFO] 2024-01-17 17:15:47 [/router/middleware.go:41] 45.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:323] [INFO] 2024-01-17 17:15:47 [/router/middleware.go:41] 6.636667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:324] [INFO] 2024-01-17 17:16:06 [/router/middleware.go:41] 26µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:326] [INFO] 2024-01-17 17:16:06 [/router/middleware.go:41] 1.177083ms POST 200 /api/v1/user/info
|
||||
[GOID:328] [INFO] 2024-01-17 17:16:06 [/router/middleware.go:41] 34.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:310] [INFO] 2024-01-17 17:16:07 [/router/middleware.go:41] 32.9555ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:312] [INFO] 2024-01-17 17:16:07 [/router/middleware.go:41] 41.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:314] [INFO] 2024-01-17 17:16:07 [/router/middleware.go:41] 11.299958ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:246] [INFO] 2024-01-17 17:16:12 [/router/middleware.go:41] 33.125µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:334] [INFO] 2024-01-17 17:16:12 [/router/middleware.go:41] 2.91575ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:330] [INFO] 2024-01-17 17:16:12 [/router/middleware.go:41] 15.653167ms POST 200 /api/v1/test/test
|
||||
[GOID:294] [INFO] 2024-01-17 17:16:46 [/router/middleware.go:41] 29.333µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:296] [INFO] 2024-01-17 17:16:46 [/router/middleware.go:41] 1.359709ms POST 200 /api/v1/user/info
|
||||
[GOID:298] [INFO] 2024-01-17 17:16:46 [/router/middleware.go:41] 26.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:300] [INFO] 2024-01-17 17:16:47 [/router/middleware.go:41] 41.243125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:337] [INFO] 2024-01-17 17:16:47 [/router/middleware.go:41] 36.958µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:354] [INFO] 2024-01-17 17:16:47 [/router/middleware.go:41] 8.927792ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:315] [INFO] 2024-01-17 17:19:23 [/router/middleware.go:41] 45.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:317] [INFO] 2024-01-17 17:19:23 [/router/middleware.go:41] 1.0935ms POST 200 /api/v1/user/info
|
||||
[GOID:339] [INFO] 2024-01-17 17:19:24 [/router/middleware.go:41] 33µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:320] [INFO] 2024-01-17 17:19:24 [/router/middleware.go:41] 34.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:370] [INFO] 2024-01-17 17:19:24 [/router/middleware.go:41] 1.184084ms POST 200 /api/v1/user/info
|
||||
[GOID:372] [INFO] 2024-01-17 17:19:25 [/router/middleware.go:41] 29.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:374] [INFO] 2024-01-17 17:19:25 [/router/middleware.go:41] 36.837125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:382] [INFO] 2024-01-17 17:19:25 [/router/middleware.go:41] 65.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:384] [INFO] 2024-01-17 17:19:25 [/router/middleware.go:41] 9.268125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:385] [INFO] 2024-01-17 17:19:35 [/router/middleware.go:41] 25.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:387] [INFO] 2024-01-17 17:19:35 [/router/middleware.go:41] 1.397958ms POST 200 /api/v1/user/info
|
||||
[GOID:389] [INFO] 2024-01-17 17:19:36 [/router/middleware.go:41] 36.416µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:391] [INFO] 2024-01-17 17:19:36 [/router/middleware.go:41] 28.55525ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:393] [INFO] 2024-01-17 17:19:36 [/router/middleware.go:41] 35.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:340] [INFO] 2024-01-17 17:19:36 [/router/middleware.go:41] 8.474458ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:341] [INFO] 2024-01-17 17:19:37 [/router/middleware.go:41] 56.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:343] [INFO] 2024-01-17 17:19:37 [/router/middleware.go:41] 1.057291ms POST 200 /api/v1/user/info
|
||||
[GOID:345] [INFO] 2024-01-17 17:19:37 [/router/middleware.go:41] 56.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:347] [INFO] 2024-01-17 17:19:38 [/router/middleware.go:41] 32.18225ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:349] [INFO] 2024-01-17 17:19:38 [/router/middleware.go:41] 35.959µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:351] [INFO] 2024-01-17 17:19:38 [/router/middleware.go:41] 9.236292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:352] [INFO] 2024-01-17 17:23:55 [/router/middleware.go:41] 73.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:396] [INFO] 2024-01-17 17:23:55 [/router/middleware.go:41] 1.365333ms POST 200 /api/v1/user/info
|
||||
[GOID:353] [INFO] 2024-01-17 17:23:56 [/router/middleware.go:41] 48.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:403] [INFO] 2024-01-17 17:23:56 [/router/middleware.go:41] 34.421083ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:357] [INFO] 2024-01-17 17:23:56 [/router/middleware.go:41] 52.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:399] [INFO] 2024-01-17 17:23:56 [/router/middleware.go:41] 10.637458ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:408] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 57µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:410] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 1.311625ms POST 200 /api/v1/user/info
|
||||
[GOID:412] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 50.417µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:414] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 33.766584ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:401] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 72.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:435] [INFO] 2024-01-17 17:34:11 [/router/middleware.go:41] 8.138166ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:436] [INFO] 2024-01-17 17:46:55 [/router/middleware.go:41] 47.416µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:438] [INFO] 2024-01-17 17:46:56 [/router/middleware.go:41] 25.536083ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:422] [INFO] 2024-01-17 17:46:56 [/router/middleware.go:41] 38.208µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:424] [INFO] 2024-01-17 17:46:56 [/router/middleware.go:41] 8.464625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:425] [INFO] 2024-01-17 17:55:54 [/router/middleware.go:41] 51.584µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:427] [INFO] 2024-01-17 17:55:54 [/router/middleware.go:41] 2.20575ms POST 200 /api/v1/user/info
|
||||
[GOID:429] [INFO] 2024-01-17 17:55:55 [/router/middleware.go:41] 47.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:431] [INFO] 2024-01-17 17:55:55 [/router/middleware.go:41] 65.438708ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:359] [INFO] 2024-01-17 17:55:55 [/router/middleware.go:41] 62.709µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:361] [INFO] 2024-01-17 17:55:55 [/router/middleware.go:41] 11.645292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:362] [INFO] 2024-01-17 17:56:51 [/router/middleware.go:41] 35.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:364] [INFO] 2024-01-17 17:56:51 [/router/middleware.go:41] 1.115375ms POST 200 /api/v1/user/info
|
||||
[GOID:366] [INFO] 2024-01-17 17:56:51 [/router/middleware.go:41] 33.708µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:445] [INFO] 2024-01-17 17:56:51 [/router/middleware.go:41] 35.26575ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:447] [INFO] 2024-01-17 17:56:52 [/router/middleware.go:41] 33.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:449] [INFO] 2024-01-17 17:56:52 [/router/middleware.go:41] 8.452709ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:454] [INFO] 2024-01-17 17:58:41 [/router/middleware.go:41] 31.959µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:456] [INFO] 2024-01-17 17:58:41 [/router/middleware.go:41] 1.643ms POST 200 /api/v1/user/info
|
||||
[GOID:458] [INFO] 2024-01-17 17:58:42 [/router/middleware.go:41] 46.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:460] [INFO] 2024-01-17 17:58:42 [/router/middleware.go:41] 29.927125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:483] [INFO] 2024-01-17 17:58:42 [/router/middleware.go:41] 23.959µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:485] [INFO] 2024-01-17 17:58:42 [/router/middleware.go:41] 16.805875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:249] [INFO] 2024-01-17 18:00:20 [/router/middleware.go:41] 28.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:251] [INFO] 2024-01-17 18:00:20 [/router/middleware.go:41] 1.045917ms POST 200 /api/v1/user/info
|
||||
[GOID:253] [INFO] 2024-01-17 18:00:20 [/router/middleware.go:41] 36.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:255] [INFO] 2024-01-17 18:00:20 [/router/middleware.go:41] 40.421875ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:501] [INFO] 2024-01-17 18:00:21 [/router/middleware.go:41] 38.959µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:503] [INFO] 2024-01-17 18:00:21 [/router/middleware.go:41] 8.201375ms POST 200 /api/v1/pay_channel/get
|
@ -0,0 +1,355 @@
|
||||
[GOID:41] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 16.834µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:44] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 34.685292ms POST 200 /api/v1/login/login
|
||||
[GOID:11] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 119.209µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:13] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 1.456459ms POST 200 /api/v1/user/info
|
||||
[GOID:15] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 33.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:82] [INFO] 2024-01-18 18:31:32 [/router/middleware.go:41] 67.530541ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:84] [INFO] 2024-01-18 18:31:35 [/router/middleware.go:41] 22.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:86] [INFO] 2024-01-18 18:31:35 [/router/middleware.go:41] 6.498334ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:98] [INFO] 2024-01-18 18:32:11 [/router/middleware.go:41] 36.541µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:67] [INFO] 2024-01-18 18:32:11 [/router/middleware.go:41] 1.311125ms POST 200 /api/v1/test/test
|
||||
[GOID:69] [INFO] 2024-01-18 18:32:18 [/router/middleware.go:41] 45.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:71] [INFO] 2024-01-18 18:32:18 [/router/middleware.go:41] 1.686625ms POST 200 /api/v1/test/test
|
||||
[GOID:52] [INFO] 2024-01-18 18:57:57 [/router/middleware.go:41] 19.667µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:54] [INFO] 2024-01-18 18:57:57 [/router/middleware.go:41] 37.788917ms POST 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-18 18:58:19 [/router/middleware.go:41] 57.208µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:82] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 9.959µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:84] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 58.791µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:87] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 25.292µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:85] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 24.542µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:83] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 12.541µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:86] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 5.791µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:28] [INFO] 2024-01-18 19:02:28 [/router/middleware.go:41] 4m8.614214625s POST 200 /api/v1/test/test
|
||||
[GOID:16] [INFO] 2024-01-18 19:02:38 [/router/middleware.go:41] 38.041µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:38] [INFO] 2024-01-18 19:02:38 [/router/middleware.go:41] 1.377ms POST 200 /api/v1/test/test1?11=%22321%22
|
||||
[GOID:23] [INFO] 2024-01-18 19:02:38 [/router/middleware.go:41] 18.502459ms POST 200 /api/v1/test/test
|
||||
[GOID:40] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 69.875µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:42] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 27.381416ms POST 200 /api/v1/login/login
|
||||
[GOID:85] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 121.333µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:87] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 794.583µs POST 200 /api/v1/user/info
|
||||
[GOID:89] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 17.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:91] [INFO] 2024-01-18 19:07:30 [/router/middleware.go:41] 23.036375ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:93] [INFO] 2024-01-18 19:07:31 [/router/middleware.go:41] 62.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:95] [INFO] 2024-01-18 19:07:32 [/router/middleware.go:41] 10.611542ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:69] [INFO] 2024-01-18 19:09:17 [/router/middleware.go:41] 136.375µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:71] [INFO] 2024-01-18 19:09:17 [/router/middleware.go:41] 1.134ms POST 200 /api/v1/user/info
|
||||
[GOID:30] [INFO] 2024-01-18 19:09:18 [/router/middleware.go:41] 64.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:32] [INFO] 2024-01-18 19:09:18 [/router/middleware.go:41] 30.856208ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:97] [INFO] 2024-01-18 19:09:18 [/router/middleware.go:41] 65.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:101] [INFO] 2024-01-18 19:09:18 [/router/middleware.go:41] 7.228375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 57.583µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 27.936334ms POST 200 /api/v1/login/login
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 8.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 450.084µs POST 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 8.334µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:53 [/router/middleware.go:41] 12.958792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:55 [/router/middleware.go:41] 19.583µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:18:55 [/router/middleware.go:41] 9.486042ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:51 [/router/middleware.go:41] 21.041µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:51 [/router/middleware.go:41] 933.291µs POST 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:52 [/router/middleware.go:41] 24.541µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:52 [/router/middleware.go:41] 23.988084ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:52 [/router/middleware.go:41] 5.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:19:52 [/router/middleware.go:41] 5.120084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:17 [/router/middleware.go:41] 11.916µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:17 [/router/middleware.go:41] 674µs POST 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:17 [/router/middleware.go:41] 5.333µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:17 [/router/middleware.go:41] 15.045042ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:18 [/router/middleware.go:41] 7.834µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:74] [INFO] 2024-01-18 19:20:18 [/router/middleware.go:41] 5.368625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:45 [/router/middleware.go:41] 51.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:45 [/router/middleware.go:41] 18.521625ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:46 [/router/middleware.go:41] 21.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:46 [/router/middleware.go:41] 30.617041ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:46 [/router/middleware.go:41] 16.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:23:46 [/router/middleware.go:41] 11.215375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:27 [/router/middleware.go:41] 20µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:27 [/router/middleware.go:41] 1.347459ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:27 [/router/middleware.go:41] 22.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:27 [/router/middleware.go:41] 29.142291ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:28 [/router/middleware.go:41] 15.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:28 [/router/middleware.go:41] 9.109334ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:34 [/router/middleware.go:41] 19.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:34 [/router/middleware.go:41] 1.377125ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:35 [/router/middleware.go:41] 19.916µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:35 [/router/middleware.go:41] 27.037875ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:35 [/router/middleware.go:41] 16.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:27:35 [/router/middleware.go:41] 8.664167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 23.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 1.766459ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 20.208µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 24.13475ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 16µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:00 [/router/middleware.go:41] 10.4525ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:14 [/router/middleware.go:41] 22.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:14 [/router/middleware.go:41] 837.417µs POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:15 [/router/middleware.go:41] 9.5µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:15 [/router/middleware.go:41] 18.667µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:15 [/router/middleware.go:41] 1.439875ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:16 [/router/middleware.go:41] 22.084µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:16 [/router/middleware.go:41] 24.974916ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:16 [/router/middleware.go:41] 15.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:16 [/router/middleware.go:41] 1.189291ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:17 [/router/middleware.go:41] 19.584µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:17 [/router/middleware.go:41] 25.932709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:17 [/router/middleware.go:41] 15.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:28:17 [/router/middleware.go:41] 7.433125ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:18 [/router/middleware.go:41] 18.334µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:18 [/router/middleware.go:41] 1.601958ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:19 [/router/middleware.go:41] 9.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:19 [/router/middleware.go:41] 24.017083ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:19 [/router/middleware.go:41] 13.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:19 [/router/middleware.go:41] 4.554667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 23µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 1.683583ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 11.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 21.289625ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 13.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:29:52 [/router/middleware.go:41] 9.422584ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:28 [/router/middleware.go:41] 20.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:28 [/router/middleware.go:41] 1.741334ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:28 [/router/middleware.go:41] 11.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:28 [/router/middleware.go:41] 25.676583ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:28 [/router/middleware.go:41] 17.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:30:29 [/router/middleware.go:41] 10.080167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:18 [/router/middleware.go:41] 29.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:18 [/router/middleware.go:41] 1.661667ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:19 [/router/middleware.go:41] 19.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:19 [/router/middleware.go:41] 21.895541ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:19 [/router/middleware.go:41] 10.583µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:31:19 [/router/middleware.go:41] 7.35025ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:45 [/router/middleware.go:41] 22.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:45 [/router/middleware.go:41] 912.625µs POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:46 [/router/middleware.go:41] 14.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:46 [/router/middleware.go:41] 26.633458ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:46 [/router/middleware.go:41] 16.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:33:46 [/router/middleware.go:41] 7.752708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:06 [/router/middleware.go:41] 25.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:06 [/router/middleware.go:41] 1.348417ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:07 [/router/middleware.go:41] 21.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:07 [/router/middleware.go:41] 33.915917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:07 [/router/middleware.go:41] 18.958µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:07 [/router/middleware.go:41] 5.656083ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:13 [/router/middleware.go:41] 16.708µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:13 [/router/middleware.go:41] 1.927209ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:13 [/router/middleware.go:41] 20.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:14 [/router/middleware.go:41] 28.051792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:14 [/router/middleware.go:41] 3.416µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:14 [/router/middleware.go:41] 5.880209ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:55 [/router/middleware.go:41] 23.459µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:55 [/router/middleware.go:41] 887.417µs POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:56 [/router/middleware.go:41] 21.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:56 [/router/middleware.go:41] 29.15175ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:56 [/router/middleware.go:41] 18.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:35:56 [/router/middleware.go:41] 9.17925ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:30 [/router/middleware.go:41] 23.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:30 [/router/middleware.go:41] 1.486292ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:31 [/router/middleware.go:41] 5.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:31 [/router/middleware.go:41] 16.1485ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:31 [/router/middleware.go:41] 4.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:39:31 [/router/middleware.go:41] 5.872417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:10 [/router/middleware.go:41] 23.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:10 [/router/middleware.go:41] 967.834µs POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:11 [/router/middleware.go:41] 19.542µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:11 [/router/middleware.go:41] 17.375µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:11 [/router/middleware.go:41] 1.169083ms POST 200 /api/v1/user/info
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:12 [/router/middleware.go:41] 9.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:12 [/router/middleware.go:41] 11.754959ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:12 [/router/middleware.go:41] 6.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-18 19:40:12 [/router/middleware.go:41] 4.5385ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:28 [/router/middleware.go:41] 22.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:28 [/router/middleware.go:41] 20.488709ms POST 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:29 [/router/middleware.go:41] 23.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:29 [/router/middleware.go:41] 57.242625ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:29 [/router/middleware.go:41] 23.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:50:29 [/router/middleware.go:41] 41.9645ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:03 [/router/middleware.go:41] 21.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:03 [/router/middleware.go:41] 2.031ms POST 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:04 [/router/middleware.go:41] 21.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:04 [/router/middleware.go:41] 69.74275ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:04 [/router/middleware.go:41] 22.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:04 [/router/middleware.go:41] 35.869584ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:36 [/router/middleware.go:41] 22.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:36 [/router/middleware.go:41] 37.548333ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:36 [/router/middleware.go:41] 21.875µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:36 [/router/middleware.go:41] 32.731959ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:36 [/router/middleware.go:41] 21.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:37 [/router/middleware.go:41] 28.574167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:39 [/router/middleware.go:41] 20.792µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:39 [/router/middleware.go:41] 1.938125ms POST 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:39 [/router/middleware.go:41] 20.75µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:39 [/router/middleware.go:41] 64.7985ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:40 [/router/middleware.go:41] 20.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:14] [INFO] 2024-01-18 19:51:40 [/router/middleware.go:41] 36.77275ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:33 [/router/middleware.go:41] 19.958µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:33 [/router/middleware.go:41] 17.970709ms POST 200 /api/v1/user/info
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:34 [/router/middleware.go:41] 22.75µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:34 [/router/middleware.go:41] 24.203958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:34 [/router/middleware.go:41] 19.042µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:34 [/router/middleware.go:41] 18.2725ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:38 [/router/middleware.go:41] 61.291µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:38 [/router/middleware.go:41] 2.325542ms POST 200 /api/v1/user/info
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:39 [/router/middleware.go:41] 21.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:39 [/router/middleware.go:41] 19.327667ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:39 [/router/middleware.go:41] 15.791µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:03:39 [/router/middleware.go:41] 18.17925ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:04:03 [/router/middleware.go:41] 8.958µs OPTIONS 200 /api/v1/pay_channel/add
|
||||
[GOID:21] [INFO] 2024-01-18 20:04:03 [/router/middleware.go:41] 5.39325ms POST 200 /api/v1/pay_channel/add
|
||||
[GOID:21] [INFO] 2024-01-18 20:04:03 [/router/middleware.go:41] 9.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:21] [INFO] 2024-01-18 20:04:03 [/router/middleware.go:41] 17.936417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:04:14 [/router/middleware.go:41] 27.583µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:04:14 [/router/middleware.go:41] 18.350667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:15 [/router/middleware.go:41] 22.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:15 [/router/middleware.go:41] 2.503208ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:15 [/router/middleware.go:41] 22.333µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:15 [/router/middleware.go:41] 45.087292ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:16 [/router/middleware.go:41] 19.083µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:05:16 [/router/middleware.go:41] 11.021417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 23µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 1.999709ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 20.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 64.682084ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 21.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:07:58 [/router/middleware.go:41] 10.974875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:24 [/router/middleware.go:41] 21.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:24 [/router/middleware.go:41] 2.140833ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:25 [/router/middleware.go:41] 23.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:25 [/router/middleware.go:41] 52.46425ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:25 [/router/middleware.go:41] 19.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:11:25 [/router/middleware.go:41] 9.902833ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:26 [/router/middleware.go:41] 24.708µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:26 [/router/middleware.go:41] 1.537166ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:26 [/router/middleware.go:41] 21.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:26 [/router/middleware.go:41] 59.931709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:26 [/router/middleware.go:41] 20.292µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:27 [/router/middleware.go:41] 10.118833ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 20.584µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 1.696458ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 22.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 48.70475ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 17.875µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:13:29 [/router/middleware.go:41] 7.472792ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:39 [/router/middleware.go:41] 23.333µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:39 [/router/middleware.go:41] 1.667292ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:40 [/router/middleware.go:41] 20.541µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:40 [/router/middleware.go:41] 68.227083ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:40 [/router/middleware.go:41] 22.209µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:16:40 [/router/middleware.go:41] 10.036625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:57 [/router/middleware.go:41] 22.334µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:57 [/router/middleware.go:41] 1.652917ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:58 [/router/middleware.go:41] 21.5µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:58 [/router/middleware.go:41] 64.060208ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:58 [/router/middleware.go:41] 21.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:17:58 [/router/middleware.go:41] 9.777ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:13 [/router/middleware.go:41] 22µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:13 [/router/middleware.go:41] 1.782125ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:14 [/router/middleware.go:41] 21.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:14 [/router/middleware.go:41] 56.557292ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:14 [/router/middleware.go:41] 21.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:15 [/router/middleware.go:41] 11.233084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:29 [/router/middleware.go:41] 21.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:29 [/router/middleware.go:41] 1.591875ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:30 [/router/middleware.go:41] 19.75µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:30 [/router/middleware.go:41] 46.464791ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:30 [/router/middleware.go:41] 20µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:19:30 [/router/middleware.go:41] 8.092875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:26 [/router/middleware.go:41] 22.084µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:26 [/router/middleware.go:41] 1.849875ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:27 [/router/middleware.go:41] 54.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:27 [/router/middleware.go:41] 58.40925ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:27 [/router/middleware.go:41] 20.416µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:22:27 [/router/middleware.go:41] 10.3595ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:49 [/router/middleware.go:41] 20.917µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:49 [/router/middleware.go:41] 1.865459ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:49 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:50 [/router/middleware.go:41] 54.594ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:50 [/router/middleware.go:41] 21.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:23:50 [/router/middleware.go:41] 10.093208ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:15 [/router/middleware.go:41] 22.292µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:15 [/router/middleware.go:41] 1.72225ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:16 [/router/middleware.go:41] 29.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:16 [/router/middleware.go:41] 53.386625ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:16 [/router/middleware.go:41] 20.583µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:25:16 [/router/middleware.go:41] 10.099583ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:49 [/router/middleware.go:41] 19.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:49 [/router/middleware.go:41] 1.913375ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:50 [/router/middleware.go:41] 20.75µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:50 [/router/middleware.go:41] 61.195958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:50 [/router/middleware.go:41] 21.167µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:26:50 [/router/middleware.go:41] 10.395ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:30:26 [/router/middleware.go:41] 20.042µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-18 20:30:26 [/router/middleware.go:41] 168.835625ms POST 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-18 20:30:54 [/router/middleware.go:41] 20.75µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:30:54 [/router/middleware.go:41] 3.241334ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:32:41 [/router/middleware.go:41] 17.25µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:32:41 [/router/middleware.go:41] 2.254459ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:15 [/router/middleware.go:41] 22.084µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:15 [/router/middleware.go:41] 25.969375ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:15 [/router/middleware.go:41] 21.875µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:15 [/router/middleware.go:41] 8.158333ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 21.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 1.655875ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 22.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 55.576084ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 20.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:19 [/router/middleware.go:41] 10.227ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:43 [/router/middleware.go:41] 20.208µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:43 [/router/middleware.go:41] 23.572ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:43 [/router/middleware.go:41] 17.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:33:43 [/router/middleware.go:41] 12.387958ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:34:05 [/router/middleware.go:41] 25.042µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-18 20:34:05 [/router/middleware.go:41] 31.42525ms POST 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:46 [/router/middleware.go:41] 22.333µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:46 [/router/middleware.go:41] 2.015334ms POST 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:47 [/router/middleware.go:41] 21.5µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:47 [/router/middleware.go:41] 40.787167ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:47 [/router/middleware.go:41] 16.166µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-18 20:36:47 [/router/middleware.go:41] 11.0355ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:57 [/router/middleware.go:41] 122.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:57 [/router/middleware.go:41] 1.761833ms POST 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:57 [/router/middleware.go:41] 33.167µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:57 [/router/middleware.go:41] 53.357167ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:58 [/router/middleware.go:41] 25µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:223] [INFO] 2024-01-18 20:43:58 [/router/middleware.go:41] 9.880291ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:32 [/router/middleware.go:41] 19.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:32 [/router/middleware.go:41] 1.636333ms POST 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:33 [/router/middleware.go:41] 22.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:33 [/router/middleware.go:41] 50.62425ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:33 [/router/middleware.go:41] 21.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:223] [INFO] 2024-01-18 20:45:33 [/router/middleware.go:41] 12.659458ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:40 [/router/middleware.go:41] 63.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:40 [/router/middleware.go:41] 1.594792ms POST 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:41 [/router/middleware.go:41] 20.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:41 [/router/middleware.go:41] 48.388709ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:41 [/router/middleware.go:41] 21.291µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:51:41 [/router/middleware.go:41] 10.566334ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:17 [/router/middleware.go:41] 21.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:17 [/router/middleware.go:41] 1.663584ms POST 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:18 [/router/middleware.go:41] 19.292µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:18 [/router/middleware.go:41] 45.385209ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:18 [/router/middleware.go:41] 20.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:52:18 [/router/middleware.go:41] 11.379917ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:21 [/router/middleware.go:41] 22.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:21 [/router/middleware.go:41] 1.478333ms POST 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:22 [/router/middleware.go:41] 21.459µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:22 [/router/middleware.go:41] 39.390167ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:22 [/router/middleware.go:41] 22.5µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:53:22 [/router/middleware.go:41] 10.851833ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:43 [/router/middleware.go:41] 19.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:43 [/router/middleware.go:41] 1.457792ms POST 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:44 [/router/middleware.go:41] 21.708µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:44 [/router/middleware.go:41] 42.253833ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:44 [/router/middleware.go:41] 19.708µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:54:44 [/router/middleware.go:41] 9.401625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 19.709µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 1.648167ms POST 200 /api/v1/user/info
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 14.416µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 71.999125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 16.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:55:57 [/router/middleware.go:41] 10.442417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:56:30 [/router/middleware.go:41] 30.916µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:202] [INFO] 2024-01-18 20:56:30 [/router/middleware.go:41] 14.134708ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:202] [INFO] 2024-01-18 20:56:30 [/router/middleware.go:41] 16.417µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:56:30 [/router/middleware.go:41] 9.812208ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:202] [INFO] 2024-01-18 20:57:14 [/router/middleware.go:41] 19.875µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:202] [INFO] 2024-01-18 20:57:14 [/router/middleware.go:41] 23.498125ms POST 200 /api/v1/test/test
|
@ -0,0 +1,311 @@
|
||||
[GOID:12] [INFO] 2024-01-19 15:13:28 [/router/middleware.go:41] 16.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:14] [INFO] 2024-01-19 15:13:28 [/router/middleware.go:41] 2.59175ms POST 200 /api/v1/user/info
|
||||
[GOID:16] [INFO] 2024-01-19 15:13:28 [/router/middleware.go:41] 140.291µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:83] [INFO] 2024-01-19 15:13:28 [/router/middleware.go:41] 327.916µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:85] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 50.791µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:87] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 30.913708ms POST 200 /api/v1/login/login
|
||||
[GOID:98] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 39.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:100] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 1.262791ms POST 200 /api/v1/user/info
|
||||
[GOID:102] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 32.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:104] [INFO] 2024-01-19 15:14:57 [/router/middleware.go:41] 32.109834ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:106] [INFO] 2024-01-19 15:14:59 [/router/middleware.go:41] 39.334µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:108] [INFO] 2024-01-19 15:14:59 [/router/middleware.go:41] 10.065084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:67] [INFO] 2024-01-19 15:15:12 [/router/middleware.go:41] 41.916µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:26] [INFO] 2024-01-19 15:15:12 [/router/middleware.go:41] 871.334µs POST 200 /api/v1/user/info
|
||||
[GOID:28] [INFO] 2024-01-19 15:15:12 [/router/middleware.go:41] 23.459µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:30] [INFO] 2024-01-19 15:15:12 [/router/middleware.go:41] 129.833µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:32] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 26.583µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:114] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 10.56ms POST 200 /api/v1/login/login
|
||||
[GOID:110] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 18.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:112] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 778.875µs POST 200 /api/v1/user/info
|
||||
[GOID:130] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 19µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:132] [INFO] 2024-01-19 15:15:17 [/router/middleware.go:41] 23.608917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:134] [INFO] 2024-01-19 15:15:18 [/router/middleware.go:41] 18.708µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:136] [INFO] 2024-01-19 15:15:18 [/router/middleware.go:41] 4.519375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:137] [INFO] 2024-01-19 15:15:25 [/router/middleware.go:41] 36.875µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:139] [INFO] 2024-01-19 15:15:25 [/router/middleware.go:41] 157.7445ms POST 200 /api/v1/test/test
|
||||
[GOID:146] [INFO] 2024-01-19 15:16:23 [/router/middleware.go:41] 37.084µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:94] [INFO] 2024-01-19 15:16:23 [/router/middleware.go:41] 159.096042ms POST 200 /api/v1/test/test
|
||||
[GOID:24] [INFO] 2024-01-19 15:17:04 [/router/middleware.go:41] 17.459µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:26] [INFO] 2024-01-19 15:17:04 [/router/middleware.go:41] 142.379958ms POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-19 15:17:30 [/router/middleware.go:41] 18.209µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:68] [INFO] 2024-01-19 15:17:31 [/router/middleware.go:41] 157.953041ms POST 200 /api/v1/test/test
|
||||
[GOID:53] [INFO] 2024-01-19 15:18:08 [/router/middleware.go:41] 38.042µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:24] [INFO] 2024-01-19 15:19:12 [/router/middleware.go:41] 1m4.067866708s POST 200 /api/v1/test/test
|
||||
[GOID:66] [INFO] 2024-01-19 15:19:17 [/router/middleware.go:41] 61.5µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:68] [INFO] 2024-01-19 15:19:58 [/router/middleware.go:41] 40.94066825s POST 200 /api/v1/test/test
|
||||
[GOID:52] [INFO] 2024-01-19 15:20:47 [/router/middleware.go:41] 19.416µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:54] [INFO] 2024-01-19 15:20:47 [/router/middleware.go:41] 35.661417ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:24] [INFO] 2024-01-19 15:20:47 [/router/middleware.go:41] 51.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:26] [INFO] 2024-01-19 15:20:47 [/router/middleware.go:41] 6.484ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:27] [INFO] 2024-01-19 15:20:50 [/router/middleware.go:41] 114.416µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:29] [INFO] 2024-01-19 15:20:50 [/router/middleware.go:41] 167.282541ms POST 200 /api/v1/test/test
|
||||
[GOID:37] [INFO] 2024-01-19 15:21:04 [/router/middleware.go:41] 30.166µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:16] [INFO] 2024-01-19 15:21:24 [/router/middleware.go:41] 161.314875ms POST 200 /api/v1/test/test
|
||||
[GOID:39] [INFO] 2024-01-19 15:21:24 [/router/middleware.go:41] 19.903534666s POST 200 /api/v1/test/test
|
||||
[GOID:12] [INFO] 2024-01-19 15:21:30 [/router/middleware.go:41] 21.125µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:54] [INFO] 2024-01-19 15:21:30 [/router/middleware.go:41] 144.3025ms POST 200 /api/v1/test/test
|
||||
[GOID:39] [INFO] 2024-01-19 15:22:25 [/router/middleware.go:41] 20.958µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:41] [INFO] 2024-01-19 15:22:25 [/router/middleware.go:41] 149.050458ms POST 200 /api/v1/test/test
|
||||
[GOID:69] [INFO] 2024-01-19 15:22:28 [/router/middleware.go:41] 26.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:71] [INFO] 2024-01-19 15:22:28 [/router/middleware.go:41] 8.260292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:72] [INFO] 2024-01-19 15:22:32 [/router/middleware.go:41] 38.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:74] [INFO] 2024-01-19 15:22:32 [/router/middleware.go:41] 1.136125ms POST 200 /api/v1/user/info
|
||||
[GOID:76] [INFO] 2024-01-19 15:22:32 [/router/middleware.go:41] 48.667µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:78] [INFO] 2024-01-19 15:22:32 [/router/middleware.go:41] 217.875µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:80] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 43.958µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:98] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 19.090458ms POST 200 /api/v1/login/login
|
||||
[GOID:48] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 19.75µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:114] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 805.208µs POST 200 /api/v1/user/info
|
||||
[GOID:116] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 13µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:118] [INFO] 2024-01-19 15:22:38 [/router/middleware.go:41] 19.528958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:120] [INFO] 2024-01-19 15:22:40 [/router/middleware.go:41] 44.083µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:122] [INFO] 2024-01-19 15:22:40 [/router/middleware.go:41] 9.633292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:25] [INFO] 2024-01-19 15:23:14 [/router/middleware.go:41] 17.333µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:98] [INFO] 2024-01-19 15:23:14 [/router/middleware.go:41] 150.089042ms POST 200 /api/v1/test/test
|
||||
[GOID:57] [INFO] 2024-01-19 15:26:38 [/router/middleware.go:41] 14.084µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:59] [INFO] 2024-01-19 15:26:38 [/router/middleware.go:41] 164.265375ms POST 200 /api/v1/test/test
|
||||
[GOID:52] [INFO] 2024-01-19 15:27:39 [/router/middleware.go:41] 20.75µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:38] [INFO] 2024-01-19 15:27:39 [/router/middleware.go:41] 177.833875ms POST 200 /api/v1/test/test
|
||||
[GOID:44] [INFO] 2024-01-19 15:29:09 [/router/middleware.go:41] 30.792µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:46] [INFO] 2024-01-19 15:29:09 [/router/middleware.go:41] 10.391458ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:98] [INFO] 2024-01-19 15:29:11 [/router/middleware.go:41] 40.792µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:83] [INFO] 2024-01-19 15:29:12 [/router/middleware.go:41] 158.322833ms POST 200 /api/v1/test/test
|
||||
[GOID:100] [INFO] 2024-01-19 15:29:41 [/router/middleware.go:41] 56.083µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:75] [INFO] 2024-01-19 15:29:42 [/router/middleware.go:41] 139.755417ms POST 200 /api/v1/test/test
|
||||
[GOID:81] [INFO] 2024-01-19 15:29:45 [/router/middleware.go:41] 135.491708ms POST 200 /api/v1/test/test
|
||||
[GOID:9] [INFO] 2024-01-19 15:31:10 [/router/middleware.go:41] 19.208µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:11] [INFO] 2024-01-19 15:31:10 [/router/middleware.go:41] 177.717875ms POST 200 /api/v1/test/test
|
||||
[GOID:16] [INFO] 2024-01-19 15:32:00 [/router/middleware.go:41] 15.208µs OPTIONS 200 /api/v1/test/test
|
||||
[GOID:67] [INFO] 2024-01-19 15:32:01 [/router/middleware.go:41] 190.809833ms POST 200 /api/v1/test/test
|
||||
[GOID:37] [INFO] 2024-01-19 15:33:10 [/router/middleware.go:41] 33.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:39] [INFO] 2024-01-19 15:33:10 [/router/middleware.go:41] 9.003125ms POST 200 /api/v1/user/info
|
||||
[GOID:44] [INFO] 2024-01-19 15:33:10 [/router/middleware.go:41] 14.959µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:46] [INFO] 2024-01-19 15:33:10 [/router/middleware.go:41] 122.625µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:48] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 27.334µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:98] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 15.926333ms POST 200 /api/v1/login/login
|
||||
[GOID:104] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 20.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:106] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 712.625µs POST 200 /api/v1/user/info
|
||||
[GOID:108] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 16.5µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:110] [INFO] 2024-01-19 15:33:15 [/router/middleware.go:41] 26.817917ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:112] [INFO] 2024-01-19 15:33:18 [/router/middleware.go:41] 19.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:114] [INFO] 2024-01-19 15:33:18 [/router/middleware.go:41] 5.352708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:130] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 58.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:132] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 1.413916ms POST 200 /api/v1/user/info
|
||||
[GOID:115] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 35.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:74] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 32.876625ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:136] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 52.75µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:138] [INFO] 2024-01-19 15:37:07 [/router/middleware.go:41] 6.045292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:80] [INFO] 2024-01-19 15:56:50 [/router/middleware.go:41] 63.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:146] [INFO] 2024-01-19 15:56:50 [/router/middleware.go:41] 1.609375ms POST 200 /api/v1/user/info
|
||||
[GOID:148] [INFO] 2024-01-19 15:56:51 [/router/middleware.go:41] 44.458µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:150] [INFO] 2024-01-19 15:56:51 [/router/middleware.go:41] 410.75µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:140] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 48.458µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:142] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 28.95225ms POST 200 /api/v1/login/login
|
||||
[GOID:122] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 37.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:124] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 1.436417ms POST 200 /api/v1/user/info
|
||||
[GOID:126] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 41.709µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:128] [INFO] 2024-01-19 15:57:00 [/router/middleware.go:41] 65.526458ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:178] [INFO] 2024-01-19 15:57:01 [/router/middleware.go:41] 49.792µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:180] [INFO] 2024-01-19 15:57:01 [/router/middleware.go:41] 12.872ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:153] [INFO] 2024-01-19 15:59:19 [/router/middleware.go:41] 57.167µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:155] [INFO] 2024-01-19 15:59:19 [/router/middleware.go:41] 932.666µs POST 200 /api/v1/user/info
|
||||
[GOID:157] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 49.625µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:159] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 38.876833ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:198] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 44.333µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:200] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 10.263625ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:201] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 41.459µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:203] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 1.034958ms POST 200 /api/v1/user/info
|
||||
[GOID:205] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 20.708µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:207] [INFO] 2024-01-19 15:59:20 [/router/middleware.go:41] 129µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:165] [INFO] 2024-01-19 16:00:06 [/router/middleware.go:41] 56.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:182] [INFO] 2024-01-19 16:00:06 [/router/middleware.go:41] 1.720875ms POST 200 /api/v1/user/info
|
||||
[GOID:184] [INFO] 2024-01-19 16:00:07 [/router/middleware.go:41] 51.125µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:186] [INFO] 2024-01-19 16:00:07 [/router/middleware.go:41] 61.791083ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:188] [INFO] 2024-01-19 16:00:07 [/router/middleware.go:41] 49.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:190] [INFO] 2024-01-19 16:00:07 [/router/middleware.go:41] 13.584875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:191] [INFO] 2024-01-19 16:00:59 [/router/middleware.go:41] 51.583µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:193] [INFO] 2024-01-19 16:00:59 [/router/middleware.go:41] 1.536208ms POST 200 /api/v1/user/info
|
||||
[GOID:211] [INFO] 2024-01-19 16:00:59 [/router/middleware.go:41] 50.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:213] [INFO] 2024-01-19 16:00:59 [/router/middleware.go:41] 64.049958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:168] [INFO] 2024-01-19 16:01:00 [/router/middleware.go:41] 52.959µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:170] [INFO] 2024-01-19 16:01:00 [/router/middleware.go:41] 13.999292ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:171] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 49.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:173] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 1.571125ms POST 200 /api/v1/user/info
|
||||
[GOID:175] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 59.083µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:177] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 56.677792ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:227] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 50.584µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:229] [INFO] 2024-01-19 16:01:47 [/router/middleware.go:41] 11.263708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:85] [INFO] 2024-01-19 16:02:51 [/router/middleware.go:41] 58.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:230] [INFO] 2024-01-19 16:02:51 [/router/middleware.go:41] 1.552292ms POST 200 /api/v1/user/info
|
||||
[GOID:232] [INFO] 2024-01-19 16:02:52 [/router/middleware.go:41] 51.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:234] [INFO] 2024-01-19 16:02:52 [/router/middleware.go:41] 59.36975ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:242] [INFO] 2024-01-19 16:02:52 [/router/middleware.go:41] 52.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:244] [INFO] 2024-01-19 16:02:52 [/router/middleware.go:41] 10.734458ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:219] [INFO] 2024-01-19 16:08:14 [/router/middleware.go:41] 66.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:221] [INFO] 2024-01-19 16:08:14 [/router/middleware.go:41] 1.667917ms POST 200 /api/v1/user/info
|
||||
[GOID:223] [INFO] 2024-01-19 16:08:15 [/router/middleware.go:41] 50.084µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:225] [INFO] 2024-01-19 16:08:15 [/router/middleware.go:41] 48.905166ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:264] [INFO] 2024-01-19 16:08:15 [/router/middleware.go:41] 45.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:266] [INFO] 2024-01-19 16:08:15 [/router/middleware.go:41] 10.143792ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:267] [INFO] 2024-01-19 16:09:11 [/router/middleware.go:41] 60.041µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:269] [INFO] 2024-01-19 16:09:11 [/router/middleware.go:41] 1.511458ms POST 200 /api/v1/user/info
|
||||
[GOID:271] [INFO] 2024-01-19 16:09:11 [/router/middleware.go:41] 51.042µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:273] [INFO] 2024-01-19 16:09:12 [/router/middleware.go:41] 62.732292ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:245] [INFO] 2024-01-19 16:09:12 [/router/middleware.go:41] 60.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:247] [INFO] 2024-01-19 16:09:12 [/router/middleware.go:41] 7.7245ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:248] [INFO] 2024-01-19 16:10:09 [/router/middleware.go:41] 38.458µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:250] [INFO] 2024-01-19 16:10:09 [/router/middleware.go:41] 1.386667ms POST 200 /api/v1/user/info
|
||||
[GOID:252] [INFO] 2024-01-19 16:10:10 [/router/middleware.go:41] 27.875µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:254] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 52.375µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:256] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 27.792875ms POST 200 /api/v1/login/login
|
||||
[GOID:311] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 39.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:313] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 1.103667ms POST 200 /api/v1/user/info
|
||||
[GOID:315] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 26.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:317] [INFO] 2024-01-19 16:10:13 [/router/middleware.go:41] 45.437416ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:319] [INFO] 2024-01-19 16:10:15 [/router/middleware.go:41] 49.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:321] [INFO] 2024-01-19 16:10:15 [/router/middleware.go:41] 10.0725ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:275] [INFO] 2024-01-19 16:12:30 [/router/middleware.go:41] 74.083µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:277] [INFO] 2024-01-19 16:12:30 [/router/middleware.go:41] 1.478625ms POST 200 /api/v1/user/info
|
||||
[GOID:279] [INFO] 2024-01-19 16:12:30 [/router/middleware.go:41] 51µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:281] [INFO] 2024-01-19 16:12:30 [/router/middleware.go:41] 55.630958ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:323] [INFO] 2024-01-19 16:12:30 [/router/middleware.go:41] 51.792µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:325] [INFO] 2024-01-19 16:12:31 [/router/middleware.go:41] 10.590375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:287] [INFO] 2024-01-19 16:13:39 [/router/middleware.go:41] 63.666µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:289] [INFO] 2024-01-19 16:13:39 [/router/middleware.go:41] 1.666ms POST 200 /api/v1/user/info
|
||||
[GOID:339] [INFO] 2024-01-19 16:13:40 [/router/middleware.go:41] 29.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:341] [INFO] 2024-01-19 16:13:40 [/router/middleware.go:41] 58.988ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:327] [INFO] 2024-01-19 16:13:40 [/router/middleware.go:41] 27.125µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:329] [INFO] 2024-01-19 16:13:40 [/router/middleware.go:41] 954.167µs POST 200 /api/v1/user/info
|
||||
[GOID:331] [INFO] 2024-01-19 16:13:41 [/router/middleware.go:41] 52.334µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:333] [INFO] 2024-01-19 16:13:41 [/router/middleware.go:41] 46.399167ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:335] [INFO] 2024-01-19 16:13:41 [/router/middleware.go:41] 50.292µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:337] [INFO] 2024-01-19 16:13:41 [/router/middleware.go:41] 1.342584ms POST 200 /api/v1/user/info
|
||||
[GOID:355] [INFO] 2024-01-19 16:13:42 [/router/middleware.go:41] 51.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:357] [INFO] 2024-01-19 16:13:42 [/router/middleware.go:41] 57.66125ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:359] [INFO] 2024-01-19 16:13:42 [/router/middleware.go:41] 50.542µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:361] [INFO] 2024-01-19 16:13:42 [/router/middleware.go:41] 8.801708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:362] [INFO] 2024-01-19 16:14:26 [/router/middleware.go:41] 50.916µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:364] [INFO] 2024-01-19 16:14:26 [/router/middleware.go:41] 1.388375ms POST 200 /api/v1/user/info
|
||||
[GOID:366] [INFO] 2024-01-19 16:14:26 [/router/middleware.go:41] 50.792µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:368] [INFO] 2024-01-19 16:14:27 [/router/middleware.go:41] 48.552041ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:370] [INFO] 2024-01-19 16:14:27 [/router/middleware.go:41] 50.375µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:372] [INFO] 2024-01-19 16:14:27 [/router/middleware.go:41] 10.658167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:373] [INFO] 2024-01-19 16:15:29 [/router/middleware.go:41] 77.417µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:375] [INFO] 2024-01-19 16:15:29 [/router/middleware.go:41] 1.536875ms POST 200 /api/v1/user/info
|
||||
[GOID:377] [INFO] 2024-01-19 16:15:30 [/router/middleware.go:41] 50.083µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:379] [INFO] 2024-01-19 16:15:30 [/router/middleware.go:41] 55.552333ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:347] [INFO] 2024-01-19 16:15:30 [/router/middleware.go:41] 53.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:349] [INFO] 2024-01-19 16:15:30 [/router/middleware.go:41] 10.366042ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:297] [INFO] 2024-01-19 16:16:52 [/router/middleware.go:41] 76.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:299] [INFO] 2024-01-19 16:16:52 [/router/middleware.go:41] 1.6455ms POST 200 /api/v1/user/info
|
||||
[GOID:301] [INFO] 2024-01-19 16:16:53 [/router/middleware.go:41] 50.875µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:303] [INFO] 2024-01-19 16:16:53 [/router/middleware.go:41] 54.054166ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:389] [INFO] 2024-01-19 16:16:53 [/router/middleware.go:41] 57.917µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:391] [INFO] 2024-01-19 16:16:53 [/router/middleware.go:41] 8.97075ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:87] [INFO] 2024-01-19 16:17:51 [/router/middleware.go:41] 57.041µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:89] [INFO] 2024-01-19 16:17:51 [/router/middleware.go:41] 1.645625ms POST 200 /api/v1/user/info
|
||||
[GOID:91] [INFO] 2024-01-19 16:17:52 [/router/middleware.go:41] 50.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:93] [INFO] 2024-01-19 16:17:52 [/router/middleware.go:41] 51.089542ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:95] [INFO] 2024-01-19 16:17:52 [/router/middleware.go:41] 50.625µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:97] [INFO] 2024-01-19 16:17:52 [/router/middleware.go:41] 10.391916ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:350] [INFO] 2024-01-19 16:21:24 [/router/middleware.go:41] 27.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:392] [INFO] 2024-01-19 16:21:25 [/router/middleware.go:41] 68.541µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:394] [INFO] 2024-01-19 16:21:25 [/router/middleware.go:41] 369.5µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:396] [INFO] 2024-01-19 16:21:26 [/router/middleware.go:41] 50.375µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:398] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 23.625µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:400] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 19.740375ms POST 200 /api/v1/login/login
|
||||
[GOID:407] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 22.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:409] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 714.25µs POST 200 /api/v1/user/info
|
||||
[GOID:411] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 31µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:413] [INFO] 2024-01-19 16:21:33 [/router/middleware.go:41] 21.860834ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:415] [INFO] 2024-01-19 16:21:35 [/router/middleware.go:41] 59.459µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:417] [INFO] 2024-01-19 16:21:35 [/router/middleware.go:41] 12.022667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:434] [INFO] 2024-01-19 16:23:15 [/router/middleware.go:41] 75.125µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:436] [INFO] 2024-01-19 16:23:15 [/router/middleware.go:41] 19.985542ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:442] [INFO] 2024-01-19 16:23:15 [/router/middleware.go:41] 20.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:444] [INFO] 2024-01-19 16:23:15 [/router/middleware.go:41] 8.033375ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:450] [INFO] 2024-01-19 16:34:26 [/router/middleware.go:41] 50.5µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:452] [INFO] 2024-01-19 16:34:26 [/router/middleware.go:41] 1.025875ms POST 200 /api/v1/user/info
|
||||
[GOID:454] [INFO] 2024-01-19 16:34:27 [/router/middleware.go:41] 24.25µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:456] [INFO] 2024-01-19 16:34:27 [/router/middleware.go:41] 23.034417ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:463] [INFO] 2024-01-19 16:34:27 [/router/middleware.go:41] 38.458µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:465] [INFO] 2024-01-19 16:34:27 [/router/middleware.go:41] 6.552417ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:446] [INFO] 2024-01-19 16:35:19 [/router/middleware.go:41] 80.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:448] [INFO] 2024-01-19 16:35:19 [/router/middleware.go:41] 1.039583ms POST 200 /api/v1/user/info
|
||||
[GOID:466] [INFO] 2024-01-19 16:35:20 [/router/middleware.go:41] 48.542µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:468] [INFO] 2024-01-19 16:35:20 [/router/middleware.go:41] 19.588833ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:470] [INFO] 2024-01-19 16:35:20 [/router/middleware.go:41] 40.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:472] [INFO] 2024-01-19 16:35:20 [/router/middleware.go:41] 5.812209ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:473] [INFO] 2024-01-19 16:36:40 [/router/middleware.go:41] 54.625µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:475] [INFO] 2024-01-19 16:36:40 [/router/middleware.go:41] 988.584µs POST 200 /api/v1/user/info
|
||||
[GOID:477] [INFO] 2024-01-19 16:36:41 [/router/middleware.go:41] 51.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:479] [INFO] 2024-01-19 16:36:41 [/router/middleware.go:41] 24.491458ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:515] [INFO] 2024-01-19 16:36:41 [/router/middleware.go:41] 48.709µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:517] [INFO] 2024-01-19 16:36:41 [/router/middleware.go:41] 8.019667ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:518] [INFO] 2024-01-19 16:38:51 [/router/middleware.go:41] 75.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:520] [INFO] 2024-01-19 16:38:51 [/router/middleware.go:41] 1.508708ms POST 200 /api/v1/user/info
|
||||
[GOID:522] [INFO] 2024-01-19 16:38:51 [/router/middleware.go:41] 44.667µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:524] [INFO] 2024-01-19 16:38:51 [/router/middleware.go:41] 25.281416ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:487] [INFO] 2024-01-19 16:38:52 [/router/middleware.go:41] 44.083µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:489] [INFO] 2024-01-19 16:38:52 [/router/middleware.go:41] 7.781291ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:490] [INFO] 2024-01-19 16:39:12 [/router/middleware.go:41] 50.875µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:492] [INFO] 2024-01-19 16:39:12 [/router/middleware.go:41] 1.561208ms POST 200 /api/v1/user/info
|
||||
[GOID:494] [INFO] 2024-01-19 16:39:12 [/router/middleware.go:41] 50.375µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:496] [INFO] 2024-01-19 16:39:12 [/router/middleware.go:41] 23.7855ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:530] [INFO] 2024-01-19 16:39:13 [/router/middleware.go:41] 39.708µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:532] [INFO] 2024-01-19 16:39:13 [/router/middleware.go:41] 8.290041ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:546] [INFO] 2024-01-19 16:41:21 [/router/middleware.go:41] 78.25µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:548] [INFO] 2024-01-19 16:41:21 [/router/middleware.go:41] 1.121167ms POST 200 /api/v1/user/info
|
||||
[GOID:550] [INFO] 2024-01-19 16:41:22 [/router/middleware.go:41] 48.917µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:552] [INFO] 2024-01-19 16:41:22 [/router/middleware.go:41] 25.476208ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:501] [INFO] 2024-01-19 16:41:22 [/router/middleware.go:41] 43.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:503] [INFO] 2024-01-19 16:41:22 [/router/middleware.go:41] 9.32175ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:505] [INFO] 2024-01-19 16:42:18 [/router/middleware.go:41] 10.208µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:558] [INFO] 2024-01-19 16:42:18 [/router/middleware.go:41] 5.917µs OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:504] [INFO] 2024-01-19 16:42:18 [/router/middleware.go:41] 9.542µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:507] [INFO] 2024-01-19 16:42:18 [/router/middleware.go:41] 88.541µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:533] [INFO] 2024-01-19 16:42:18 [/router/middleware.go:41] 47.209µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:425] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 43.708µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:509] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 15.675459ms POST 200 /api/v1/login/login
|
||||
[GOID:511] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 34.209µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:513] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 1.321208ms POST 200 /api/v1/user/info
|
||||
[GOID:563] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 44.958µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:565] [INFO] 2024-01-19 16:42:31 [/router/middleware.go:41] 22.0215ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:567] [INFO] 2024-01-19 16:42:32 [/router/middleware.go:41] 57.541µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:569] [INFO] 2024-01-19 16:42:32 [/router/middleware.go:41] 8.947084ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:540] [INFO] 2024-01-19 16:42:56 [/router/middleware.go:41] 31.666µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:542] [INFO] 2024-01-19 16:42:56 [/router/middleware.go:41] 835.583µs POST 200 /api/v1/user/info
|
||||
[GOID:544] [INFO] 2024-01-19 16:42:56 [/router/middleware.go:41] 28.417µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:578] [INFO] 2024-01-19 16:42:56 [/router/middleware.go:41] 21.078333ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:561] [INFO] 2024-01-19 16:42:57 [/router/middleware.go:41] 75.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:595] [INFO] 2024-01-19 16:42:57 [/router/middleware.go:41] 7.177958ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:596] [INFO] 2024-01-19 16:43:54 [/router/middleware.go:41] 52.833µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:598] [INFO] 2024-01-19 16:43:54 [/router/middleware.go:41] 1.758208ms POST 200 /api/v1/user/info
|
||||
[GOID:600] [INFO] 2024-01-19 16:43:55 [/router/middleware.go:41] 52.583µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:602] [INFO] 2024-01-19 16:43:55 [/router/middleware.go:41] 26.27175ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:608] [INFO] 2024-01-19 16:43:55 [/router/middleware.go:41] 41.833µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:610] [INFO] 2024-01-19 16:43:56 [/router/middleware.go:41] 7.079708ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:611] [INFO] 2024-01-19 16:45:17 [/router/middleware.go:41] 58.375µs OPTIONS 200 /api/v1/pay_channel/edit
|
||||
[GOID:613] [INFO] 2024-01-19 16:45:17 [/router/middleware.go:41] 16.199583ms POST 200 /api/v1/pay_channel/edit
|
||||
[GOID:571] [INFO] 2024-01-19 16:45:17 [/router/middleware.go:41] 32.125µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:573] [INFO] 2024-01-19 16:45:17 [/router/middleware.go:41] 5.471875ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:619] [INFO] 2024-01-19 16:48:45 [/router/middleware.go:41] 104.292µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:621] [INFO] 2024-01-19 16:48:45 [/router/middleware.go:41] 11.295167ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:575] [INFO] 2024-01-19 17:10:16 [/router/middleware.go:41] 4.384333ms OPTIONS 200 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:577] [INFO] 2024-01-19 17:10:16 [/router/middleware.go:41] 974.542µs POST 404 /api/v1/vue-antdv-vite/logout
|
||||
[GOID:582] [INFO] 2024-01-19 17:10:16 [/router/middleware.go:41] 588.958µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:642] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 66.042µs OPTIONS 200 /api/v1/login/login
|
||||
[GOID:644] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 60.442209ms POST 200 /api/v1/login/login
|
||||
[GOID:628] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 39.042µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:630] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 1.576708ms POST 200 /api/v1/user/info
|
||||
[GOID:632] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 39.209µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:634] [INFO] 2024-01-19 17:16:36 [/router/middleware.go:41] 40.973584ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:636] [INFO] 2024-01-19 17:16:38 [/router/middleware.go:41] 45µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:638] [INFO] 2024-01-19 17:16:38 [/router/middleware.go:41] 11.01975ms POST 200 /api/v1/pay_channel/get
|
||||
[GOID:427] [INFO] 2024-01-19 17:20:15 [/router/middleware.go:41] 54.792µs OPTIONS 200 /api/v1/user/info
|
||||
[GOID:429] [INFO] 2024-01-19 17:20:16 [/router/middleware.go:41] 1.121458ms POST 200 /api/v1/user/info
|
||||
[GOID:640] [INFO] 2024-01-19 17:20:16 [/router/middleware.go:41] 39.542µs OPTIONS 200 /api/v1/index/getMenuList
|
||||
[GOID:658] [INFO] 2024-01-19 17:20:16 [/router/middleware.go:41] 38.495583ms POST 200 /api/v1/index/getMenuList
|
||||
[GOID:432] [INFO] 2024-01-19 17:20:16 [/router/middleware.go:41] 39.667µs OPTIONS 200 /api/v1/pay_channel/get
|
||||
[GOID:674] [INFO] 2024-01-19 17:20:16 [/router/middleware.go:41] 9.751042ms POST 200 /api/v1/pay_channel/get
|
@ -0,0 +1,66 @@
|
||||
[GOID:16] [INFO] 2025-02-11 09:38:59 [\router/middleware.go:41] 1.0954ms GET 404 /api/v1/login/register
|
||||
[GOID:52] [INFO] 2025-02-11 09:40:26 [\router/middleware.go:41] 626.6µs GET 404 /api/v1/test/test%20
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:23 [\router/middleware.go:41] 7.0619ms POST 200 /api/v1/login/register
|
||||
[GOID:53] [INFO] 2025-02-11 09:42:36 [\router/middleware.go:41] 504.1µs POST 200 /api/v1/login/register
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:47 [\router/middleware.go:41] 6.3932ms POST 200 /api/v1/login/register
|
||||
[GOID:45] [INFO] 2025-02-11 09:59:58 [\router/middleware.go:41] 528.9µs POST 200 /api/v1/login/register
|
||||
[GOID:45] [INFO] 2025-02-11 10:00:10 [\router/middleware.go:41] 1.1362ms POST 200 /api/v1/login/register
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:37 [\router/middleware.go:41] 4.1613ms POST 200 /api/v1/login/register
|
||||
[GOID:67] [INFO] 2025-02-11 10:00:52 [\router/middleware.go:41] 1.0264ms POST 200 /api/v1/login/register
|
||||
[GOID:67] [INFO] 2025-02-11 10:02:16 [\router/middleware.go:41] 1m17.3668196s POST 200 /api/v1/login/register
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:09 [\router/middleware.go:41] 30.1243392s POST 200 /api/v1/login/register
|
||||
[GOID:37] [INFO] 2025-02-11 10:03:53 [\router/middleware.go:41] 34.1292991s POST 200 /api/v1/login/register
|
||||
[GOID:37] [INFO] 2025-02-11 10:04:56 [\router/middleware.go:41] 59.8468503s POST 200 /api/v1/login/register
|
||||
[GOID:41] [INFO] 2025-02-11 10:40:41 [\router/middleware.go:41] 2.1805ms POST 200 /api/v1/login/register
|
||||
[GOID:41] [INFO] 2025-02-11 10:41:25 [\router/middleware.go:41] 22.856ms POST 200 /api/v1/login/register
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:21 [\router/middleware.go:41] 2.5242ms POST 200 /api/v1/login/register
|
||||
[GOID:66] [INFO] 2025-02-11 11:43:42 [\router/middleware.go:41] 3.9428ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:19 [\router/middleware.go:41] 4.8476ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:22 [\router/middleware.go:41] 575.4µs POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 11:58:39 [\router/middleware.go:41] 10.7541ms POST 200 /api/v1/login/register
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:07 [\router/middleware.go:41] 6.8367ms POST 200 /api/v1/login/captcha
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:16 [\router/middleware.go:41] 10.3952ms POST 200 /api/v1/login/captcha
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:35 [\router/middleware.go:41] 3.799ms POST 200 /api/v1/login/captcha
|
||||
[GOID:47] [INFO] 2025-02-11 12:06:43 [\router/middleware.go:41] 1.7416ms POST 200 /api/v1/login/captcha
|
||||
[GOID:54] [INFO] 2025-02-11 12:07:12 [\router/middleware.go:41] 2.9525312s POST 200 /api/v1/login/captcha
|
||||
[GOID:54] [INFO] 2025-02-11 12:08:34 [\router/middleware.go:41] 51.9301651s POST 200 /api/v1/login/captcha
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:45 [\router/middleware.go:41] 13.661ms POST 200 /api/v1/login/captcha
|
||||
[GOID:38] [INFO] 2025-02-11 12:09:46 [\router/middleware.go:41] 2.3152ms POST 200 /api/v1/login/captcha
|
||||
[GOID:38] [INFO] 2025-02-11 12:10:07 [\router/middleware.go:41] 15.0441203s POST 200 /api/v1/login/captcha
|
||||
[GOID:20] [INFO] 2025-02-11 12:10:15 [\router/middleware.go:41] 4.4716ms POST 200 /api/v1/login/captcha
|
||||
[GOID:53] [INFO] 2025-02-11 12:14:26 [\router/middleware.go:41] 21.2568337s POST 200 /api/v1/login/captcha
|
||||
[GOID:51] [INFO] 2025-02-11 12:17:11 [\router/middleware.go:41] 588.5785ms POST 200 /api/v1/login/captcha
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:19 [\router/middleware.go:41] 3.2811ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:32 [\router/middleware.go:41] 1.4959ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 12:18:36 [\router/middleware.go:41] 188.4687ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:05 [\router/middleware.go:41] 1.5661ms POST 200 /api/v1/login/register
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:17 [\router/middleware.go:41] 383.256ms POST 200 /api/v1/login/captcha
|
||||
[GOID:68] [INFO] 2025-02-11 12:19:42 [\router/middleware.go:41] 104.969ms POST 200 /api/v1/login/register
|
||||
[GOID:51] [INFO] 2025-02-11 12:20:04 [\router/middleware.go:41] 411.8085ms POST 200 /api/v1/login/captcha
|
||||
[GOID:51] [INFO] 2025-02-11 12:21:41 [\router/middleware.go:41] 1m9.049838s POST 200 /api/v1/login/register
|
||||
[GOID:82] [INFO] 2025-02-11 12:21:59 [\router/middleware.go:41] 2.922738s POST 200 /api/v1/login/register
|
||||
[GOID:22] [INFO] 2025-02-11 12:28:35 [\router/middleware.go:41] 5.8959ms POST 200 /api/v1/login/login
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:05 [\router/middleware.go:41] 26.6218ms POST 200 /api/v1/login/login
|
||||
[GOID:13] [INFO] 2025-02-11 12:32:31 [\router/middleware.go:41] 16.7658455s POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:19 [\router/middleware.go:41] 13.4288ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:24 [\router/middleware.go:41] 11.2773ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\router/middleware.go:41] 6.6734ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:25 [\router/middleware.go:41] 7.1127ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:26 [\router/middleware.go:41] 5.1632ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:27 [\router/middleware.go:41] 8.3688ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:28 [\router/middleware.go:41] 9.6172ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:29 [\router/middleware.go:41] 9.4199ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\router/middleware.go:41] 4.8834ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:30 [\router/middleware.go:41] 8.8251ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:31 [\router/middleware.go:41] 9.4807ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:55 [\router/middleware.go:41] 12.189853s POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:34:59 [\router/middleware.go:41] 7.6983ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:01 [\router/middleware.go:41] 7.9502ms POST 200 /api/v1/login/login
|
||||
[GOID:82] [INFO] 2025-02-11 12:35:28 [\router/middleware.go:41] 11.3307532s POST 200 /api/v1/login/login
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:28 [\router/middleware.go:41] 7.5697426s POST 200 /api/v1/login/login
|
||||
[GOID:67] [INFO] 2025-02-11 12:41:48 [\router/middleware.go:41] 16.0291429s POST 200 /api/v1/login/login
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:18 [\router/middleware.go:41] 90.2767ms POST 200 /api/v1/login/login
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:20 [\router/middleware.go:41] 97.7814ms POST 200 /api/v1/login/login
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:23 [\router/middleware.go:41] 88.4537ms POST 200 /api/v1/login/login
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:24 [\router/middleware.go:41] 82.2891ms POST 200 /api/v1/login/login
|
||||
[GOID:38] [INFO] 2025-02-11 12:42:28 [\router/middleware.go:41] 99.6949ms POST 200 /api/v1/login/login
|
@ -0,0 +1,35 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/pkg/async"
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/dapi"
|
||||
"epur-pay/pkg/mq"
|
||||
"epur-pay/pkg/server"
|
||||
"epur-pay/router"
|
||||
"flag"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
RunMode := flag.String("run_mode", "debug", "run_mode [debug|test|release]")
|
||||
flag.Parse()
|
||||
|
||||
app := server.NewApp(*RunMode, "pay")
|
||||
app.LoadDB().LoadRedis().LoadCron().LoadMq().LoadCustomApp(func() {
|
||||
cache.New()
|
||||
dapi.New()
|
||||
//fileserver.New()
|
||||
|
||||
go func() {
|
||||
for !cache.Global.ProjectInitStatus {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
}
|
||||
async.New()
|
||||
mq.AysncInstance.Listen()
|
||||
}()
|
||||
}).AddServerApp(config.Cf.ApiServer, router.Router()).
|
||||
ListenServerApp().WaitServerAppListen()
|
||||
}
|
@ -0,0 +1,195 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
/*
|
||||
配置文件表
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
Pid int64 `gorm:"column:pid" json:"pid"` // 父级ID
|
||||
Code string `gorm:"column:code" json:"code"` // 参数key
|
||||
Comment string `gorm:"column:comment" json:"comment"` // 参数值
|
||||
Status int64 `gorm:"column:status" json:"status"` // 参数状态
|
||||
Name string `gorm:"column:name" json:"name"` // 参数名称
|
||||
Type string `gorm:"column:type" json:"type"` // 类型 text file images
|
||||
Options string `gorm:"column:options" json:"options"` // 值范围
|
||||
Sort int64 `gorm:"column:sort" json:"sort"` // 排序
|
||||
FileUrl string `gorm:"-" json:"fileUrl"` // 文件地址
|
||||
}
|
||||
|
||||
func (Config) TableName() string {
|
||||
return "config"
|
||||
}
|
||||
|
||||
type ConfigJson struct {
|
||||
Key string `json:"key"` // 内容
|
||||
Value string `json:"value"` // 值
|
||||
Type string `json:"type"` // 类型 text - image - file
|
||||
Memo string `json:"memo"` // 描述
|
||||
}
|
||||
|
||||
type Log struct {
|
||||
/*
|
||||
操作日志表
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
Uid int64 `gorm:"column:uid" json:"uid"` //用户uid
|
||||
Name string `gorm:"column:name" json:"name"` //操作人
|
||||
Event string `gorm:"column:event" json:"event"` //操作事件
|
||||
Ip string `gorm:"column:ip" json:"ip"` //操作IP
|
||||
A1 string `gorm:"column:a1" json:"a1"` //操作IP地址
|
||||
Data string `gorm:"column:data" json:"data"` //操作数据
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` //操作时间
|
||||
UserType string `gorm:"column:user_type" json:"userType"` //用户类型 0-用户端 1-管理端
|
||||
IsSuper string `gorm:"column:is_super" json:"isSuper"` //是否超级权限操作 0-否 1-是
|
||||
}
|
||||
|
||||
func (Log) TableName() string {
|
||||
return "log"
|
||||
}
|
||||
|
||||
type Translate struct {
|
||||
/*
|
||||
翻译
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 翻译标识
|
||||
Type string `gorm:"column:type" json:"type"` // 类型 0-admin 1-App 2-官网
|
||||
LanguageKey string `gorm:"column:language_key" json:"languageKey"` // 翻译Key
|
||||
Src string `gorm:"column:src" json:"src"` // 翻译值
|
||||
To TranslateTos `gorm:"column:to" json:"to"` // 翻译数据
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
}
|
||||
|
||||
func (Translate) TableName() string {
|
||||
return "translate"
|
||||
}
|
||||
|
||||
type TranslateTos []*TranslateTo
|
||||
|
||||
type TranslateTo struct {
|
||||
GoogleKey string `json:"googleKey"` //语言标识
|
||||
To string `json:"to"`
|
||||
}
|
||||
|
||||
func (j *TranslateTos) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j TranslateTos) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
type Resource struct {
|
||||
/*
|
||||
资源
|
||||
Type :
|
||||
Image
|
||||
Voice
|
||||
Video
|
||||
Pdf
|
||||
File
|
||||
*/
|
||||
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
Type string `gorm:"column:type" json:"type"` // 类型
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
To string `gorm:"column:to" json:"to"` // 资源数据
|
||||
}
|
||||
|
||||
func (Resource) TableName() string {
|
||||
return "resource"
|
||||
}
|
||||
|
||||
type Version struct {
|
||||
/*
|
||||
版本表
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // id
|
||||
Version string `gorm:"column:version" json:"version"` // 版本号
|
||||
Type string `gorm:"column:type" json:"type"` // 类型 0-管理端 1-H5APP 2-H5PC 3-AppDownPage 4-苹果MobileConfig 5-server
|
||||
PublicPath string `gorm:"column:public_path" json:"publicPath"` // 静态资源路径
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 时间
|
||||
Process string `gorm:"column:process" json:"process"` // 状态 0-上传成功 1-上传中,2-上传失败
|
||||
Status string `gorm:"column:status" json:"status"` // 0-开启,1-关闭,
|
||||
Data JSON `gorm:"column:data" json:"data"` // 数据
|
||||
Memo string `gorm:"column:memo" json:"memo"` // 说明
|
||||
Operator string `gorm:"column:operator" json:"operator"` // 操作人
|
||||
Force string `gorm:"column:force" json:"force"` // 是否强制更新 0-是 1-否
|
||||
}
|
||||
|
||||
func (Version) TableName() string {
|
||||
return "version"
|
||||
}
|
||||
|
||||
type SysLanguage struct {
|
||||
/*
|
||||
语言表
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
ResourceId int64 `gorm:"column:resource_id" json:"resourceId"` //图标地址
|
||||
Key string `gorm:"column:key" json:"key"` //en - zh
|
||||
GoogleKey string `gorm:"column:google_key" json:"googleKey"` //谷歌翻译key
|
||||
Name string `gorm:"column:name" json:"name"` //语言名称
|
||||
ChineseName string `gorm:"column:chinese_name" json:"chineseName"` //中文名称
|
||||
Sort int64 `gorm:"column:sort" json:"sort"` //排序
|
||||
Akey string `gorm:"column:akey" json:"akey"` //语言包切换标识
|
||||
LanguageCode string `gorm:"column:language_code" json:"languageCode"` //语言代码
|
||||
CountryCode string `gorm:"column:country_code" json:"countryCode"` //城市代码
|
||||
IsDefault string `gorm:"column:is_default" json:"isDefault"` //是否默认 0-是 1-否
|
||||
IsShow string `gorm:"column:is_show" json:"isShow"` //前端是否显示
|
||||
}
|
||||
|
||||
func (SysLanguage) TableName() string {
|
||||
return "sys_language"
|
||||
}
|
||||
|
||||
type SysLanguageShow struct {
|
||||
Code string `json:"code"` // 语言包切换标识
|
||||
Name string `json:"name"` // 语言名称
|
||||
Icon string `json:"icon"` // 图标
|
||||
}
|
||||
|
||||
type Timezone struct {
|
||||
/*
|
||||
时区表
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
Title string `gorm:"column:title" json:"title"` // 时区名称
|
||||
Value string `gorm:"column:value" json:"value"` // 时区代码
|
||||
IsDefault string `gorm:"column:is_default" json:"isDefault"` // 默认时区 0-默认
|
||||
Sort int64 `gorm:"column:sort" json:"sort"` // 排序
|
||||
}
|
||||
|
||||
func (Timezone) TableName() string {
|
||||
return "timezone"
|
||||
}
|
||||
|
||||
type BlackList struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"`
|
||||
Ip ArryString `gorm:"column:ip" json:"ip"` // 黑名单ip
|
||||
}
|
||||
|
||||
func (BlackList) TableName() string {
|
||||
return "black_list"
|
||||
}
|
||||
|
||||
type Code struct {
|
||||
/*
|
||||
验证码
|
||||
*/
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 用户ID
|
||||
Account string `gorm:"column:account" json:"account"` // 邮箱/手机号
|
||||
Code string `gorm:"column:code" json:"code"` // 验证码
|
||||
Type string `gorm:"column:type" json:"type"` // 类型 0-注册 1-登陆 2-找回密码 3-绑定 4-修改密码 5-修改支付密码
|
||||
Status string `gorm:"column:status" json:"status"` // 状态 0-发送成功 1-发送失败
|
||||
Memo string `gorm:"column:memo" json:"memo"` // 发送失败原因
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 发送时间
|
||||
}
|
||||
|
||||
func (Code) TableName() string {
|
||||
return "code"
|
||||
}
|
@ -0,0 +1,294 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"ehttp/http"
|
||||
"encoding/json"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/tools"
|
||||
"epur-pay/pkg/utils"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/deatil/go-array/array"
|
||||
"github.com/golang-module/carbon/v2"
|
||||
"github.com/shopspring/decimal"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Http struct {
|
||||
Url string `json:"url"` // 请求地址
|
||||
Method string `json:"method"` // 请求方法
|
||||
RequestType http.RequestType `json:"requestType"` // 请求类型 http.RequestType
|
||||
Query []HttpParams `json:"query"` // 请求参数
|
||||
Body []HttpParams `json:"body"` // 请求参数
|
||||
ResponseType string `json:"responseType"` // 返回类型
|
||||
}
|
||||
|
||||
func (p *Http) Do() (*http.Request, error) {
|
||||
req := http.New(
|
||||
http.WithMethod(p.Method),
|
||||
http.WithRequestType(p.RequestType),
|
||||
http.WithUrl(p.Url),
|
||||
)
|
||||
|
||||
allValues := map[string]any{}
|
||||
|
||||
if len(p.Body) > 0 {
|
||||
for idx := range p.Body {
|
||||
if p.Body[idx].DataType != "event" {
|
||||
if value, ok := p.Body[idx].Get1(); !ok {
|
||||
return req, errors.New(fmt.Sprintf("[%s]:类型不匹配", p.Body[idx].Field))
|
||||
} else {
|
||||
req.SetBody(p.Body[idx].Field, value)
|
||||
allValues[p.Body[idx].Field] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(p.Query) > 0 {
|
||||
for idx := range p.Query {
|
||||
if p.Query[idx].DataType != "event" {
|
||||
if value, ok := p.Query[idx].Get1(); !ok {
|
||||
return req, errors.New(fmt.Sprintf("[%s]:类型不匹配", p.Query[idx].Field))
|
||||
} else {
|
||||
allValues[p.Query[idx].Field] = value
|
||||
req.QueryParams.Add(p.Query[idx].Field, http.ConvertToString(value))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
logger.AccessLogger.Infoln(utils.ToJson(&allValues))
|
||||
if len(p.Body) > 0 {
|
||||
for idx := range p.Body {
|
||||
if p.Body[idx].DataType == "event" {
|
||||
values := make([]interface{}, 0)
|
||||
|
||||
BodyValues := p.Body[idx].Value.Value.([]any)
|
||||
|
||||
logger.AccessLogger.Infoln(utils.ToJson(&BodyValues))
|
||||
|
||||
for index := range BodyValues {
|
||||
logger.AccessLogger.Infoln(BodyValues[index].(string), array.Get(allValues, BodyValues[index].(string)))
|
||||
values = append(values, array.Get(allValues, BodyValues[index].(string)))
|
||||
}
|
||||
logger.AccessLogger.Infoln(utils.ToJson(&values))
|
||||
v := (&tools.Api{
|
||||
Tools: p.Body[idx].Value.Tools,
|
||||
Values: values,
|
||||
}).Run()
|
||||
allValues[p.Body[idx].Field] = v
|
||||
req.SetBody(p.Body[idx].Field, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(p.Query) > 0 {
|
||||
for idx := range p.Query {
|
||||
if p.Query[idx].DataType == "event" {
|
||||
values := make([]interface{}, 0)
|
||||
for _, item := range p.Query[idx].Value.Value.([]interface{}) {
|
||||
values = append(values, array.Get(allValues, item.(string)))
|
||||
}
|
||||
v := (&tools.Api{
|
||||
Tools: p.Query[idx].Value.Tools,
|
||||
Values: values,
|
||||
}).Run()
|
||||
allValues[p.Query[idx].Field] = v
|
||||
req.SetBody(p.Query[idx].Field, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if err := req.Do(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
type HttpParams struct {
|
||||
|
||||
/*
|
||||
DataType:
|
||||
array // 数组
|
||||
object // 对象
|
||||
string // 字符串
|
||||
int64 // 整型
|
||||
float64 // 浮点
|
||||
decimal // 金额
|
||||
dataTime // 时间类型
|
||||
timeStamp // 时间戳
|
||||
file // 文件类型
|
||||
event // 事件
|
||||
pool // 参数池
|
||||
customPool // 自定义参数池
|
||||
*/
|
||||
|
||||
Field string `json:"field"`
|
||||
Value HttpParamsValue `json:"value"`
|
||||
DataType string `json:"dataType"` // 数据类型
|
||||
}
|
||||
|
||||
type HttpParamsValue struct {
|
||||
Value interface{} `json:"value"`
|
||||
Tools string `json:"tools,omitempty"` // 如果是事件 那么这里是工具选择
|
||||
}
|
||||
|
||||
func (p *HttpParams) Get() interface{} {
|
||||
row, _ := p.Get1()
|
||||
return row
|
||||
}
|
||||
|
||||
func (p *HttpParams) Get1() (interface{}, bool) {
|
||||
|
||||
switch p.DataType {
|
||||
case "string":
|
||||
row, ok := p.Value.Value.(string)
|
||||
return row, ok
|
||||
case "int64":
|
||||
if row, ok := p.Value.Value.(string); !ok {
|
||||
return nil, false
|
||||
} else {
|
||||
if row1, err := strconv.ParseInt(row, 10, 64); err != nil {
|
||||
return nil, false
|
||||
} else {
|
||||
return row1, true
|
||||
}
|
||||
}
|
||||
case "float64":
|
||||
row, ok := p.Value.Value.(float64)
|
||||
return row, ok
|
||||
case "decimal":
|
||||
if row, ok := p.Value.Value.(string); ok {
|
||||
if row1, err1 := decimal.NewFromString(row); err1 == nil {
|
||||
return row1, true
|
||||
} else {
|
||||
return nil, false
|
||||
}
|
||||
} else {
|
||||
return row, ok
|
||||
}
|
||||
case "object":
|
||||
if b, err := json.Marshal(p.Value.Value); err != nil {
|
||||
return nil, false
|
||||
} else {
|
||||
row := make([]HttpParams, 0)
|
||||
if err1 := json.Unmarshal(b, &row); err1 != nil {
|
||||
return nil, false
|
||||
}
|
||||
result := map[string]interface{}{}
|
||||
for _, item := range row {
|
||||
if row1, ok := item.Get1(); !ok {
|
||||
return nil, false
|
||||
} else {
|
||||
result[item.Field] = row1
|
||||
}
|
||||
}
|
||||
return result, true
|
||||
}
|
||||
case "array":
|
||||
if b, err := json.Marshal(p.Value.Value); err != nil {
|
||||
return nil, false
|
||||
} else {
|
||||
row := make([]HttpParams, 0)
|
||||
if err1 := json.Unmarshal(b, &row); err1 != nil {
|
||||
return nil, false
|
||||
}
|
||||
result := make([]interface{}, 0)
|
||||
for _, item := range row {
|
||||
if row1, ok := item.Get1(); !ok {
|
||||
return nil, false
|
||||
} else {
|
||||
result = append(result, row1)
|
||||
}
|
||||
}
|
||||
return result, true
|
||||
}
|
||||
case "dataTime":
|
||||
if row, ok := p.Value.Value.(string); !ok {
|
||||
return nil, false
|
||||
} else {
|
||||
return carbon.Now().Format(row), true
|
||||
}
|
||||
case "timeStamp":
|
||||
if row, ok := p.Value.Value.(string); !ok {
|
||||
return nil, false
|
||||
} else {
|
||||
switch row {
|
||||
case "0":
|
||||
return carbon.Now().Timestamp(), true
|
||||
case "1":
|
||||
return carbon.Now().TimestampMilli(), true
|
||||
case "2":
|
||||
return carbon.Now().TimestampMicro(), true
|
||||
case "3":
|
||||
return carbon.Now().TimestampNano(), true
|
||||
default:
|
||||
return nil, false
|
||||
}
|
||||
}
|
||||
//case "event":
|
||||
// var value interface{}
|
||||
// var ok bool
|
||||
//
|
||||
// lastHttpParams := HttpParams{}
|
||||
// routers := strings.Split(p.Value.Value.(string), ".")
|
||||
//
|
||||
// if lastHttpParams.DataType == "" {
|
||||
// for idx := range EventValues {
|
||||
// if routers[0] == EventValues[idx].Field {
|
||||
// lastHttpParams = EventValues[idx]
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if lastHttpParams.DataType == "" {
|
||||
// return nil, false
|
||||
// }
|
||||
//
|
||||
// if value, ok = lastHttpParams.Get1(EventValues); !ok {
|
||||
// return nil, ok
|
||||
// }
|
||||
//
|
||||
// value = array.Get(value, strings.Join(routers[1:], "."))
|
||||
// return value, ok
|
||||
}
|
||||
|
||||
return nil, false
|
||||
}
|
||||
|
||||
/*
|
||||
请求事件
|
||||
*/
|
||||
|
||||
//type HttpEvents []HttpEvent
|
||||
//
|
||||
//type HttpEvent struct {
|
||||
//
|
||||
// /*
|
||||
// 工具选择
|
||||
// MD5
|
||||
// AES
|
||||
// RSA
|
||||
// SORT // 排序工具
|
||||
// */
|
||||
// EventName string `json:"eventName"` // 事件名称
|
||||
// Tools HttpTools `json:"tools"` // 工具选择
|
||||
//}
|
||||
|
||||
//type HttpTools struct {
|
||||
// Field string `json:"field"`
|
||||
// Inputs []string `json:"inputs,omitempty"` // 传参 HttpParams中的Field
|
||||
//}
|
||||
|
||||
/*
|
||||
回调
|
||||
*/
|
||||
|
||||
type HttpCallback struct {
|
||||
White ArryString `json:"white"` // 白名单
|
||||
ResponseType string `json:"responseType"` // 回调类型
|
||||
Query []HttpParams `json:"query"` // 回调参数
|
||||
Body []HttpParams `json:"body"` // 回调参数
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package model
|
||||
|
||||
/*
|
||||
商家
|
||||
*/
|
||||
|
||||
type Merchant struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"Id"` // 商户ID
|
||||
Name string `gorm:"column:name" json:"name"` // 商家名称
|
||||
AdminUid int64 `gorm:"column:admin_uid" json:"adminUid"` // 管理员UID
|
||||
ApiKey string `gorm:"column:api_key" json:"apiKey"` // 密钥
|
||||
}
|
||||
|
||||
func (Merchant) TableName() string {
|
||||
return "merchant"
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
/*
|
||||
订单模块
|
||||
*/
|
||||
|
||||
const (
|
||||
REGISTER_STATUS_SUCCESS = "0" // 成功
|
||||
REGISTER_STATUS_FIAL = "1" // 失败
|
||||
REGISTER_STATUS_WAITPAY = "2" // 待支付
|
||||
)
|
||||
|
||||
type Order struct {
|
||||
|
||||
/*
|
||||
代收,代扣
|
||||
充值:
|
||||
status:
|
||||
0 - 成功
|
||||
1 - 失败
|
||||
2 - 待支付
|
||||
提现:
|
||||
status:
|
||||
0 - 成功
|
||||
1 - 失败
|
||||
2 - 待审核
|
||||
3 - 审核成功
|
||||
4 - 审核拒绝
|
||||
转账
|
||||
type:
|
||||
0 - 充值
|
||||
1 - 提现
|
||||
2 - 转账
|
||||
3 - 虚拟转账(电子户)
|
||||
*/
|
||||
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` //
|
||||
OrderId string `gorm:"column:order_id" json:"orderId"` // 订单号
|
||||
MerchantOrderId string `gorm:"column:merchant_order_id" json:"merchantOrderId"` // 商户订单号
|
||||
ChannelOrderId string `gorm:"column:channel_order_id" json:"channelOrderId"` // 渠道订单号
|
||||
MerchantId int64 `gorm:"column:merchant_id" json:"merchantId"` // 商户ID
|
||||
ChannelId int64 `gorm:"column:channel_id" json:"channelId"` // 渠道ID
|
||||
Amount decimal.Decimal `gorm:"column:amount" json:"amount"` // 金额
|
||||
ActAmount decimal.Decimal `gorm:"column:act_amount" json:"actAmount"` // 实际到账金额
|
||||
Fee decimal.Decimal `gorm:"column:fee" json:"fee"` // 手续费
|
||||
Type string `gorm:"column:type" json:"type"` // 0-代收 1-代扣
|
||||
SuccessTime int64 `gorm:"column:success_time" json:"successTime"` // 成功时间
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
Status string `gorm:"column:status" json:"status"` // 订单状态
|
||||
ErrMsg string `gorm:"column:err_msg" json:"errMsg"` // 失败原因
|
||||
CallbackStatus bool `gorm:"column:callback_status" json:"callbackStatus"` // 回调状态
|
||||
CallbackErrMsg string `gorm:"column:callback_err_msg" json:"callbackErrMsg"` // 回调失败原因
|
||||
CallbackTime int64 `gorm:"column:callback_time" json:"callbackTime"` // 回调时间
|
||||
Uid int64 `gorm:"column:uid" json:"uid"` // 操作人UID
|
||||
From OrderAccount `gorm:"column:from" json:"from"` // from
|
||||
To OrderAccount `gorm:"column:to" json:"to"` // to
|
||||
Customer JSON `gorm:"column:customer" json:"customer"` // 自定义字段 回调时返回
|
||||
}
|
||||
|
||||
func (Order) TableName() string {
|
||||
return "order"
|
||||
}
|
||||
|
||||
type OrderAccount struct {
|
||||
/*
|
||||
账户信息
|
||||
*/
|
||||
Account string `json:"account,omitempty"` // 账号
|
||||
Name string `json:"name,omitempty"` // 名称
|
||||
}
|
||||
|
||||
func (j *OrderAccount) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j OrderAccount) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
type PayRequests []PayRequest
|
||||
|
||||
type PayRequest struct {
|
||||
Field string `json:"field"`
|
||||
Host string `json:"host"` // 域名
|
||||
Status bool `json:"status"` // 是否启用
|
||||
CustomPool []HttpParams `json:"customPool"` // 自定义参数池 //map[string]HttpParams
|
||||
PayFuncs PayFuncs `json:"payFuncs"` // 请求集合
|
||||
White ArryString `json:"white"` // 白名单
|
||||
}
|
||||
|
||||
type PayFuncs []PayFunc
|
||||
|
||||
func (j *PayRequests) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j PayRequests) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
type PayFunc struct {
|
||||
Name string `json:"name"` // 名称
|
||||
Field string `json:"field"`
|
||||
Http Http `json:"http"` // http请求
|
||||
Sort int `json:"sort"` // 序号
|
||||
}
|
||||
|
||||
/*
|
||||
支付渠道
|
||||
*/
|
||||
|
||||
type PayChannel struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 渠道ID
|
||||
Name string `gorm:"column:name" json:"name"` // 渠道名称
|
||||
Logo string `gorm:"column:logo" json:"logo"` // 渠道Logo
|
||||
Request PayRequests `gorm:"column:pay_requests" json:"payRequests"` // 接入
|
||||
Status bool `gorm:"column:status" json:"status"` // 是否启用
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
}
|
||||
|
||||
func (PayChannel) TableName() string {
|
||||
return "pay_channel"
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package model
|
||||
|
||||
/*
|
||||
权限管理
|
||||
*/
|
||||
|
||||
type Menu struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 菜单ID
|
||||
Pid int64 `gorm:"column:pid" json:"pid"` // 菜单父级ID
|
||||
Title string `gorm:"column:title" json:"title"` // 菜单名称
|
||||
Icon string `gorm:"column:icon" json:"icon"` // 菜单图标
|
||||
Path string `gorm:"column:path" json:"path"` // 菜单路径
|
||||
Component string `gorm:"column:component" json:"component"` // 菜单组件
|
||||
Target int64 `gorm:"column:target" json:"target"` // 打开方式 0-组件 1-内链 2-外链
|
||||
Permission string `gorm:"column:permission" json:"permission"` // 权限标识
|
||||
Type int `gorm:"column:type" json:"type"` // 类型 0-菜单 1-节点
|
||||
Status int `gorm:"column:status" json:"status"` // 状态 1-正常 2-禁用
|
||||
Hide int `gorm:"column:hide" json:"hide"` // 类型 0-显示 1-隐藏
|
||||
Note string `gorm:"column:note" json:"note"` // 备注
|
||||
Sort int `gorm:"column:sort" json:"sort"` // 排序
|
||||
Children []Menu `gorm:"-" json:"children,omitempty"` // 子菜单
|
||||
Checked int `gorm:"-" json:"checked,omitempty"` // 是否选中-sys_role_menu表作用于权限分配时
|
||||
Meta MenuMeta `gorm:"-" json:"meta,omitempty"` // 气泡
|
||||
}
|
||||
|
||||
func (Menu) TableName() string {
|
||||
return "menu"
|
||||
}
|
||||
|
||||
type MenuMeta struct {
|
||||
Badge int64 `json:"badge"` // 消息数量
|
||||
}
|
||||
|
||||
type MenuShow struct {
|
||||
Menu
|
||||
Meta MenuMeta `gorm:"-" json:"meta"` // 气泡
|
||||
}
|
||||
|
||||
/*
|
||||
角色
|
||||
*/
|
||||
|
||||
type Role struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 角色ID
|
||||
Name string `gorm:"column:name" json:"name" binding:"required"` // 角色名称
|
||||
Memo string `gorm:"column:memo" json:"memo"` // 角色说明
|
||||
Status int `gorm:"column:status" json:"status" binding:"required"` // 状态 1-正常 2-禁用
|
||||
Sort int `gorm:"column:sort" json:"sort" binding:"required"` // 排序
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
}
|
||||
|
||||
func (Role) TableName() string {
|
||||
return "role"
|
||||
}
|
||||
|
||||
type RoleMenu struct {
|
||||
Rid int64 `gorm:"primary_key;column:rid" json:"rid"` // ID
|
||||
RoleId int64 `gorm:"column:role_id" json:"role_id" binding:"required"` // 角色ID
|
||||
MenuId int64 `gorm:"column:menu_id" json:"menu_id" binding:"required"` // 菜单ID
|
||||
}
|
||||
|
||||
func (RoleMenu) TableName() string {
|
||||
return "role_menu"
|
||||
}
|
||||
|
||||
type UserRole struct {
|
||||
Uid int64 `gorm:"uid" json:"uid" binding:"required"` // 用户ID
|
||||
RoleId int64 `gorm:"role_id" json:"roleId" binding:"required"` // 权限ID
|
||||
}
|
||||
|
||||
func (UserRole) TableName() string {
|
||||
return "user_role"
|
||||
}
|
@ -0,0 +1,172 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
mapset "github.com/deckarep/golang-set"
|
||||
"time"
|
||||
)
|
||||
|
||||
type ListenServer struct {
|
||||
Port int `yaml:"Port"` //Server监听端口
|
||||
ReadTimeOut time.Duration `yaml:"ReadTimeOut"` //Tcp 读超时时间
|
||||
WriteTimeOut time.Duration `yaml:"WriteTimeOut"` //Tcp 写超时时间
|
||||
}
|
||||
|
||||
type Redis struct {
|
||||
Type string `yaml:"Type"`
|
||||
Host string `yaml:"Host"`
|
||||
Port string `yaml:"Port"`
|
||||
PassWord string `yaml:"PassWord"`
|
||||
Name int `yaml:"Name"`
|
||||
MaxIdle int `yaml:"MaxIdle"`
|
||||
MaxActive int `yaml:"MaxActive"`
|
||||
ReadTimeout time.Duration `yaml:"ReadTimeout"`
|
||||
WriteTimeout time.Duration `yaml:"WriteTimeout"`
|
||||
ConnectTimeout time.Duration `yaml:"ConnectTimeout"`
|
||||
IdleTimeout time.Duration `yaml:"IdleTimeout"`
|
||||
}
|
||||
|
||||
type Rds struct {
|
||||
Host string `yaml:"Host"`
|
||||
Port int `yaml:"Port"`
|
||||
User string `yaml:"User"`
|
||||
Name string `yaml:"Name"`
|
||||
PassWord string `yaml:"PassWord"`
|
||||
CharSet string `yaml:"CharSet"`
|
||||
MaxIdleConns int `yaml:"MaxIdleConns"`
|
||||
MaxOpenConns int `yaml:"MaxOpenConns"`
|
||||
SlowThreshold int `yaml:"SlowThreshold"`
|
||||
}
|
||||
|
||||
//type RMq struct {
|
||||
// Type string `yaml:"Type"`
|
||||
// Host string `yaml:"Host"`
|
||||
// Port int `yaml:"Port"`
|
||||
// User string `yaml:"User"`
|
||||
// PassWord string `yaml:"PassWord"`
|
||||
//}
|
||||
|
||||
type Arry []int64
|
||||
|
||||
func (j *Arry) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j Arry) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
func (j Arry) Set() mapset.Set {
|
||||
|
||||
s1 := mapset.NewSet()
|
||||
|
||||
for _, item := range j {
|
||||
s1.Add(item)
|
||||
}
|
||||
return s1
|
||||
}
|
||||
|
||||
func (j Arry) SetToValue(s1 mapset.Set) Arry {
|
||||
|
||||
s2 := Arry{}
|
||||
|
||||
for _, item := range s1.ToSlice() {
|
||||
s2 = append(s2, item.(int64))
|
||||
}
|
||||
return s2
|
||||
}
|
||||
|
||||
func (j Arry) ToInt64() []int64 {
|
||||
s1 := []int64{}
|
||||
for _, item := range j {
|
||||
s1 = append(s1, item)
|
||||
}
|
||||
return s1
|
||||
}
|
||||
|
||||
func (j Arry) Of(id int64) bool {
|
||||
for _, item := range j {
|
||||
if item == id {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type ArryString []string
|
||||
|
||||
func (j *ArryString) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j ArryString) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
func (j ArryString) Set() mapset.Set {
|
||||
|
||||
s1 := mapset.NewSet()
|
||||
|
||||
for _, item := range j {
|
||||
s1.Add(item)
|
||||
}
|
||||
return s1
|
||||
}
|
||||
|
||||
func (j ArryString) SetToValue(s1 mapset.Set) ArryString {
|
||||
|
||||
s2 := ArryString{}
|
||||
|
||||
for _, item := range s1.ToSlice() {
|
||||
s2 = append(s2, item.(string))
|
||||
}
|
||||
return s2
|
||||
}
|
||||
|
||||
func (j ArryString) ToString() []string {
|
||||
s1 := []string{}
|
||||
for _, item := range j {
|
||||
s1 = append(s1, item)
|
||||
}
|
||||
return s1
|
||||
}
|
||||
|
||||
func (j ArryString) Of(id string) bool {
|
||||
for _, item := range j {
|
||||
if item == id {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (j *ArryString) Add(id string) *ArryString {
|
||||
*j = append(*j, id)
|
||||
return j
|
||||
}
|
||||
|
||||
func (j *ArryString) Remove(id string) *ArryString {
|
||||
// 如果未找到要移除的元素,直接返回原数组
|
||||
return j
|
||||
}
|
||||
|
||||
type JSON map[string]interface{}
|
||||
|
||||
func (j *JSON) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j JSON) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
type RouterMethod struct {
|
||||
Name string
|
||||
Path string
|
||||
Params interface{}
|
||||
Method string
|
||||
Leaf bool // 是否叶子节点
|
||||
F interface{}
|
||||
Child []*RouterMethod
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
/*
|
||||
用户模块
|
||||
*/
|
||||
|
||||
const (
|
||||
USER_ROLE_ADMIN = "0" // 管理员
|
||||
USER_ROLE_AGENT = "1" // 代理
|
||||
USER_ROLE_MEMBER = "2" // 用户
|
||||
)
|
||||
|
||||
type User struct {
|
||||
Uid int64 `gorm:"primary_key;column:uid" json:"uid"` // 用户ID
|
||||
Role ArryString `gorm:"column:role" json:"role"` // 角色类型 [0,1,2,3] - [管理员,代理,用户]
|
||||
Account string `gorm:"column:account" json:"account"` // 登录账号
|
||||
Email string `gorm:"column:email" json:"email"` // 绑定邮箱
|
||||
Mobile string `gorm:"column:mobile" json:"mobile"` // 手机号 - 格式:+86 1234
|
||||
Status string `gorm:"column:status" json:"status"` // 状态 0-正常 1-拉黑
|
||||
Invite string `gorm:"column:invite" json:"invite"` // 邀请码
|
||||
MerchantId int64 `gorm:"column:merchant_id" json:"merchantId"` // 商户ID
|
||||
Merchant Merchant `gorm:"-" json:"merchant,omitempty"` // 商户结构
|
||||
RoleIds Arry `gorm:"-" json:"-"` // 拥有的角色权限
|
||||
Detail UserDetail `gorm:"column:detail" json:"detail"` // 详细信息
|
||||
}
|
||||
|
||||
func (User) TableName() string {
|
||||
return "user"
|
||||
}
|
||||
|
||||
type UserDetail struct {
|
||||
Nickname string `json:"nickName"` // 用户名称
|
||||
Avatar int64 `json:"avatar"` // 用户头像
|
||||
Gender string `json:"gender"` // 0-男 1-女 2-未知
|
||||
Token string `json:"token"` // 登陆token
|
||||
PassWord string `json:"passWord"` // 登录密码
|
||||
PayPassWord string `json:"payPassWord"` // 资金密码(支付密码)
|
||||
PowerOver ArryString `json:"powerOver"` // 不能操作的权限
|
||||
Memo string `json:"memo"` // 备注
|
||||
RegisterIp string `json:"registerIp"` // 注册ip地址
|
||||
RegisterIpAddress string `json:"registerIpAddress,omitempty"` // 注册ip地址
|
||||
LoginErrorTime int64 `json:"loginErrorTime,omitempty"` // 登录错误时间
|
||||
LoginErrorCount int64 `json:"loginErrorCount,omitempty"` // 登录错误次数
|
||||
LoginTime int64 `json:"loginTime"` // 登陆时间
|
||||
LoginIp string `json:"loginIp"` // 登陆ip
|
||||
LoginIpAddress string `json:"loginIpAddress,omitempty"` // 登陆ip
|
||||
CreateTime int64 `json:"createTime"` // 创建时间
|
||||
}
|
||||
|
||||
func (j *UserDetail) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j UserDetail) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package aliyun
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v4/client"
|
||||
util "github.com/alibabacloud-go/tea-utils/v2/service"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"math/rand"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func SendSmsLogin(mobile string) (string, error) {
|
||||
captcha := generateCaptcha()
|
||||
err := send(mobile, "逸采", "SMS_478575808", fmt.Sprintf(`{"code":"%s"}`, captcha))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return captcha, nil
|
||||
}
|
||||
|
||||
func generateCaptcha() string {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
captcha := rand.Intn(900000) + 100000
|
||||
return fmt.Sprintf("%d", captcha)
|
||||
}
|
||||
|
||||
func send(mobile, signName, templateCode, TemplateParam string) error {
|
||||
client, _err := CreateClient(tea.String("LTAI5tBqQqufN9SctTUGLYMn"), tea.String("Kj1t2pMEjo8Cgj4D0CwqLS6CDPgczV"))
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
|
||||
PhoneNumbers: tea.String(mobile),
|
||||
SignName: tea.String(signName),
|
||||
TemplateCode: tea.String(templateCode),
|
||||
TemplateParam: tea.String(TemplateParam),
|
||||
}
|
||||
tryErr := func() (_e error) {
|
||||
defer func() {
|
||||
if r := tea.Recover(recover()); r != nil {
|
||||
_e = r
|
||||
}
|
||||
}()
|
||||
// 复制代码运行请自行打印 API 的返回值
|
||||
msg, _err := client.SendSmsWithOptions(sendSmsRequest, &util.RuntimeOptions{})
|
||||
fmt.Println(msg.String())
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
|
||||
return nil
|
||||
}()
|
||||
|
||||
if tryErr != nil {
|
||||
var error = &tea.SDKError{}
|
||||
if _t, ok := tryErr.(*tea.SDKError); ok {
|
||||
error = _t
|
||||
} else {
|
||||
error.Message = tea.String(tryErr.Error())
|
||||
}
|
||||
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
|
||||
// 错误 message
|
||||
fmt.Println(tea.StringValue(error.Message))
|
||||
// 诊断地址
|
||||
var data interface{}
|
||||
d := json.NewDecoder(strings.NewReader(tea.StringValue(error.Data)))
|
||||
d.Decode(&data)
|
||||
if m, ok := data.(map[string]interface{}); ok {
|
||||
recommend, _ := m["Recommend"]
|
||||
fmt.Println(recommend)
|
||||
}
|
||||
_, _err = util.AssertAsString(error.Message)
|
||||
if _err != nil {
|
||||
return _err
|
||||
}
|
||||
}
|
||||
return _err
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package async
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/mq"
|
||||
)
|
||||
|
||||
func AfterCallbackProducer(a *Async, req AsyncRequest) {
|
||||
mq.AysncInstance.Producer(&mq.Task{
|
||||
Topics: a.Name,
|
||||
Delay: req.Delay,
|
||||
Transaction: false,
|
||||
Store: false,
|
||||
Func: req.Func,
|
||||
})
|
||||
}
|
||||
|
||||
func AfterCallback(data mq.ComsumerParams) error {
|
||||
data.Func()
|
||||
return nil
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package async
|
||||
|
||||
import "epur-pay/pkg/mq"
|
||||
|
||||
var Asyncs *AsyncsModel
|
||||
|
||||
func New() {
|
||||
Asyncs = &AsyncsModel{}
|
||||
|
||||
Asyncs.AfterCallback = &Async{
|
||||
Run: AfterCallbackProducer,
|
||||
Name: "afterCallback",
|
||||
}
|
||||
|
||||
mq.AysncInstance.
|
||||
Consumer(Asyncs.AfterCallback.Name, AfterCallback, 1) //接口After调用
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package async
|
||||
|
||||
import "epur-pay/pkg/mq"
|
||||
|
||||
type Async struct {
|
||||
Run func(a *Async, req AsyncRequest)
|
||||
Name string
|
||||
}
|
||||
|
||||
type AsyncRequest struct {
|
||||
Data interface{}
|
||||
Chains []*mq.Task
|
||||
ChainErrorTriger bool
|
||||
Func func()
|
||||
Delay int64
|
||||
}
|
||||
|
||||
func NewAsyncRequest(data interface{}) AsyncRequest {
|
||||
return AsyncRequest{
|
||||
Data: data,
|
||||
}
|
||||
}
|
||||
|
||||
func NewAsyncRequestFunc(data func(), Delay int64) AsyncRequest {
|
||||
return AsyncRequest{
|
||||
Func: data,
|
||||
Delay: Delay,
|
||||
}
|
||||
}
|
||||
|
||||
type AsyncsModel struct {
|
||||
AfterCallback *Async
|
||||
}
|
||||
|
||||
func (p *Async) Add(req AsyncRequest) {
|
||||
p.Run(p, req)
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"epur-pay/model"
|
||||
"fmt"
|
||||
"gopkg.in/ini.v1"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Common struct {
|
||||
RunMode string `yaml:"RunMode"`
|
||||
LogFilePath string `yaml:"LogFilePath"` //日志根路径
|
||||
Domain string `yaml:"Domain"`
|
||||
ResourcePath string `yaml:"ResourcePath"`
|
||||
} `yaml:"Common"`
|
||||
ApiServer model.ListenServer `yaml:"ApiServer"`
|
||||
Rds model.Rds `yaml:"Rds"`
|
||||
Redis model.Redis `yaml:"Redis"`
|
||||
}
|
||||
|
||||
var Cf = Config{}
|
||||
|
||||
func New(Name string) {
|
||||
|
||||
var (
|
||||
cfg *ini.File
|
||||
err error
|
||||
configPath string
|
||||
)
|
||||
|
||||
if Cf.Common.RunMode == "debug" {
|
||||
configPath = fmt.Sprintf("config/%s_test.ini", Name)
|
||||
} else {
|
||||
configPath = fmt.Sprintf("config/%s.ini", Name)
|
||||
}
|
||||
|
||||
if cfg, err = ini.Load(configPath); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
mapTo("Common", &Cf.Common, cfg)
|
||||
mapTo("ApiServer", &Cf.ApiServer, cfg)
|
||||
mapTo("Rds", &Cf.Rds, cfg)
|
||||
mapTo("Redis", &Cf.Redis, cfg)
|
||||
|
||||
fmt.Println("Cf -> config load success.")
|
||||
}
|
||||
|
||||
func (conf *Config) String() string {
|
||||
b, err := json.Marshal(*conf)
|
||||
if err != nil {
|
||||
return fmt.Sprintf("%+v", *conf)
|
||||
}
|
||||
var out bytes.Buffer
|
||||
err = json.Indent(&out, b, "", " ")
|
||||
if err != nil {
|
||||
return fmt.Sprintf("%+v", *conf)
|
||||
}
|
||||
return out.String()
|
||||
}
|
||||
|
||||
// mapTo map section
|
||||
func mapTo(section string, v interface{}, cfg *ini.File) {
|
||||
err := cfg.Section(section).MapTo(v)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package cron
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/mq"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"github.com/robfig/cron"
|
||||
"gorm.io/gorm/clause"
|
||||
"reflect"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
var (
|
||||
Cron *cron.Cron
|
||||
)
|
||||
|
||||
func New() {
|
||||
Cron = cron.New()
|
||||
Cron.Start()
|
||||
|
||||
{
|
||||
/*
|
||||
每个月将任务表转移到历史数据表
|
||||
*/
|
||||
utils.Error(Cron.AddFunc("* * * * 7", MqStoreToHistory))
|
||||
}
|
||||
}
|
||||
|
||||
func MqStoreToHistory() {
|
||||
|
||||
defer func() {
|
||||
err := recover()
|
||||
if err != nil {
|
||||
buf := make([]byte, 1<<16)
|
||||
runtime.Stack(buf, true)
|
||||
e := reflect.ValueOf(err)
|
||||
logger.ErrorLogger.Errorln(e.String(), string(buf))
|
||||
//p.E = errors.New(string(buf))
|
||||
}
|
||||
}()
|
||||
|
||||
rows := mq.AsyncTasks{}
|
||||
|
||||
utils.DbErrSkipRecordNotFound(rds.DB.Raw(`select * from async_task where create_time < ?`, utils.Time2StampSecond()-6*24*60*60).Scan(&rows).Error)
|
||||
|
||||
ids := []int64{}
|
||||
|
||||
for _, item := range rows {
|
||||
ids = append(ids, item.Id)
|
||||
}
|
||||
|
||||
if len(rows) > 0 {
|
||||
utils.Error(rds.DB.Table("async_task_history").Clauses(clause.OnConflict{DoNothing: true}).Create(&rows).Error)
|
||||
}
|
||||
|
||||
if len(ids) > 0 {
|
||||
utils.Error(rds.DB.Exec(`delete from async_task where id in ?`, ids).Error)
|
||||
}
|
||||
}
|
@ -0,0 +1,141 @@
|
||||
package dapi
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/async"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func (a *ApiBase) apiAfter() error {
|
||||
|
||||
if a.AfterCallback != nil {
|
||||
async.Asyncs.AfterCallback.Add(async.NewAsyncRequestFunc(a.AfterCallback, a.AfterCallbackDelay))
|
||||
}
|
||||
|
||||
if Cf.ApiAfter != nil {
|
||||
if err := Cf.ApiAfter(a); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *ApiBase) apiBefore() error {
|
||||
|
||||
if err := a.limitRouterRuleHandler(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := a.headerHandler(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if Cf.ApiBefore != nil {
|
||||
if err := Cf.ApiBefore(a); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if !cache.Global.ProjectInitStatus {
|
||||
return a.ReturnPublicErrorResponse(a.Translate("during_upgrade"))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *ApiBase) apiRunEx() error {
|
||||
|
||||
if err := a.authHandler(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := a.lockTrade(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
a.saveLogBefore()
|
||||
|
||||
if err := a.apiHandler(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *ApiBase) saveLogBefore() {
|
||||
//记录日志
|
||||
if a.InParams.IsSaveLog || a.InParams.IsSkipErrorSaveLog {
|
||||
a.Log = new(model.Log)
|
||||
|
||||
a.Log.Event = a.InParams.SaveEvent
|
||||
if a.User != nil {
|
||||
a.Log.Uid = a.User.Uid
|
||||
a.Log.Name = a.User.Account
|
||||
}
|
||||
a.Log.Ip = a.ClientIp()
|
||||
a.Log.CreateTime = utils.Time2StampSecond()
|
||||
if a.Site == "h5App" {
|
||||
a.Log.UserType = "0"
|
||||
} else if a.Site == "h5Admin" {
|
||||
a.Log.UserType = "1"
|
||||
}
|
||||
a.Log.IsSuper = "0"
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) apiRun() error {
|
||||
|
||||
if a.InParams.IsTransaction {
|
||||
if err := rds.DB.Transaction(func(ts *gorm.DB) error {
|
||||
a.Ts = ts
|
||||
if err := a.apiRunEx(); err != nil && a.Error == nil {
|
||||
a.Error = err
|
||||
}
|
||||
if a.Error != nil {
|
||||
return a.Error
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}); err != nil {
|
||||
logger.AccessLogger.Errorln(err.Error())
|
||||
}
|
||||
} else {
|
||||
a.Ts = rds.DB
|
||||
if err := a.apiRunEx(); err != nil && a.Error == nil {
|
||||
a.Error = err
|
||||
}
|
||||
}
|
||||
return a.Error
|
||||
}
|
||||
|
||||
func (a *ApiBase) apiMain() error {
|
||||
|
||||
if err := a.apiBefore(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := a.apiRun(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
a.freeTrade()
|
||||
|
||||
if err := a.apiAfter(); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *ApiBase) TMapGet(data model.JSON) string {
|
||||
if row, ok := data[a.Lang]; ok {
|
||||
return row.(string)
|
||||
} else {
|
||||
if row1, ok1 := data[cache.Global.Caches.Language.DefaultLanguage]; ok1 {
|
||||
return row1.(string)
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
package dapi
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/limit"
|
||||
"epur-pay/pkg/logger"
|
||||
"github.com/gin-gonic/gin"
|
||||
"gorm.io/gorm"
|
||||
"reflect"
|
||||
"runtime"
|
||||
"time"
|
||||
)
|
||||
|
||||
var Cf *Config
|
||||
|
||||
func New() {
|
||||
Cf = &Config{}
|
||||
}
|
||||
|
||||
func (p *Config) SetApiBefore(f func(a *ApiBase) error) *Config {
|
||||
p.ApiBefore = f
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Config) SetApiAuth(f func(a *ApiBase) error) *Config {
|
||||
p.ApiAuth = f
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Config) SetApiAfter(f func(a *ApiBase) error) *Config {
|
||||
p.ApiAfter = f
|
||||
return p
|
||||
}
|
||||
|
||||
//func (p *Config) SetApiGetLang(f func(Lang, Key string) string) *Config {
|
||||
// p.ApiGetLang = f
|
||||
// return p
|
||||
//}
|
||||
|
||||
func (p *Config) SetRefreshCache(f func(Key string) error) *Config {
|
||||
p.ApiRefreshCache = f
|
||||
return p
|
||||
}
|
||||
|
||||
//func (p *Config) SetKKStop(f *bool) *Config {
|
||||
// p.KKStop = f
|
||||
// return p
|
||||
//}
|
||||
//
|
||||
//func (p *Config) SetProjectInitStatus(f *bool) *Config {
|
||||
// p.ProjectInitStatus = f
|
||||
// return p
|
||||
//}
|
||||
|
||||
type Config struct {
|
||||
ApiBefore func(a *ApiBase) error
|
||||
//ApiRun func() error
|
||||
ApiAfter func(a *ApiBase) error
|
||||
ApiAuth func(a *ApiBase) error //鉴权
|
||||
//ApiGetLang func(Lang, Key string) string
|
||||
ApiRefreshCache func(Key string) error // 刷新项目缓存
|
||||
//KKStop *bool
|
||||
//ProjectInitStatus *bool //项目是否初始化完成
|
||||
}
|
||||
|
||||
type InParams struct {
|
||||
IsTransaction bool // 是否开启事务
|
||||
IsTicket bool // 是否校验Token获取用户校验用户合法性
|
||||
IsForUpdate bool // 是否加用户锁
|
||||
IsTicketSkip bool // 有就获取用户 没有也不报错
|
||||
IsErrors bool // 是否多条错误返回
|
||||
IsCertified bool // 是否判断认证
|
||||
IsNoCheckBlackList bool // 是否不校验黑名单
|
||||
IsKKTrade bool
|
||||
IsSaveLog bool
|
||||
IsSkipErrorSaveLog bool
|
||||
SaveEvent string
|
||||
IsAgentAction bool // 是否允许代理操作 true-是 false-否
|
||||
IsSuperOnly bool // 是否只允许Super操作
|
||||
Permission string // 权限标识
|
||||
LimitRouterRuleKey string
|
||||
LimitRouterRule *limit.LimitOpt
|
||||
}
|
||||
|
||||
type ApiBase struct {
|
||||
C *gin.Context
|
||||
Ts *gorm.DB
|
||||
InParams *InParams
|
||||
IsCustomResponse bool // 是否自定义返回
|
||||
Response *Response // 返回结构
|
||||
CustomResponse *interface{} // 自定义返回结构
|
||||
User *model.User // 用户结构
|
||||
Token string // 鉴权Token
|
||||
Local *time.Location // 时区
|
||||
Site string // 站点类型: h5App h5Pc h5Admin
|
||||
Currency string // 币种
|
||||
Lang string // 语言
|
||||
Error error // 错误信息
|
||||
body interface{} // 请求的body数据
|
||||
paramNum int // 函数参数数量
|
||||
funcValue reflect.Value // 函数指针
|
||||
Limit int // 当前页数显示条数
|
||||
Offset int // 跳过条数
|
||||
AfterCallback func() // 后续处理
|
||||
AfterCallbackDelay int64 // 延迟时间
|
||||
Log *model.Log
|
||||
}
|
||||
|
||||
func ApiDecorator(handlerFunc interface{}, InParams *InParams) func(*gin.Context) {
|
||||
|
||||
paramNum := reflect.TypeOf(handlerFunc).NumIn()
|
||||
funcValue := reflect.ValueOf(handlerFunc)
|
||||
funcType := reflect.TypeOf(handlerFunc)
|
||||
|
||||
if funcType.Kind() != reflect.Func {
|
||||
panic("the route handlerFunc must be a function")
|
||||
}
|
||||
|
||||
if len(InParams.LimitRouterRuleKey) > 0 && InParams.LimitRouterRule != nil {
|
||||
cache.Global.LimitRouter.Rule.Rules[InParams.LimitRouterRuleKey] = InParams.LimitRouterRule
|
||||
}
|
||||
|
||||
return func(c *gin.Context) {
|
||||
|
||||
a := &ApiBase{Response: &Response{}}
|
||||
a.InParams = InParams
|
||||
a.paramNum = paramNum
|
||||
a.funcValue = funcValue
|
||||
a.C = c
|
||||
|
||||
if paramNum > 1 {
|
||||
a.body = reflect.New(funcType.In(1).Elem()).Interface()
|
||||
}
|
||||
apiProxy(a)
|
||||
}
|
||||
}
|
||||
|
||||
func apiProxy(a *ApiBase) {
|
||||
defer func() {
|
||||
err := recover()
|
||||
if err != nil {
|
||||
buf := make([]byte, 1<<16)
|
||||
runtime.Stack(buf, true)
|
||||
e := reflect.ValueOf(err)
|
||||
logger.ErrorLogger.Errorln(e.String(), string(buf))
|
||||
_ = a.ReturnErrorResponse(ServerError, a.Translate("sys_error"))
|
||||
}
|
||||
|
||||
a.freeTrade()
|
||||
a.saveLog()
|
||||
a.response()
|
||||
}()
|
||||
a.Error = a.apiMain()
|
||||
}
|
@ -0,0 +1,188 @@
|
||||
package dapi
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/logger"
|
||||
"errors"
|
||||
"github.com/go-sql-driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
var (
|
||||
//成功
|
||||
Success = 200
|
||||
//服务错误
|
||||
ServerError = 500
|
||||
//资源不存在
|
||||
NotFound = 404
|
||||
//参数错误
|
||||
InvalidParams = 965
|
||||
//请求错误
|
||||
PublicError = 999
|
||||
//Token失效
|
||||
TokenInvalid = 600
|
||||
)
|
||||
|
||||
type RequestLimit struct {
|
||||
Page int `json:"page"` //页数
|
||||
Size int `json:"size"` //条数
|
||||
}
|
||||
|
||||
// 返回公共结构体
|
||||
type ResponseCommon struct {
|
||||
Code int `json:"code"` //返回Code 200 成功 其他是失败
|
||||
Msg interface{} `json:"message"` //返回信息
|
||||
Count int64 `json:"count,omitempty"` // 条数
|
||||
}
|
||||
|
||||
// 返回结构体 带Data
|
||||
type Response struct {
|
||||
*ResponseCommon
|
||||
Data interface{} `json:"data"` //返回的数据
|
||||
}
|
||||
|
||||
func (a *ApiBase) DbErrRecordNotFound(err error, msg string) {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
panic(msg)
|
||||
} else if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) DbErrSkipRecordNotFound(err error) {
|
||||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) DbErrRecordNotFoundBool(err error) bool {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return false
|
||||
} else if err != nil {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func (a *ApiBase) DbErrUniqueIndexConflict(err error, msg string) error {
|
||||
if err != nil {
|
||||
if err.(*mysql.MySQLError).Number == 1062 {
|
||||
return a.ReturnErrorResponse(PublicError, msg)
|
||||
} else {
|
||||
return a.ReturnErrorResponse(ServerError, a.Translate("sys_error"))
|
||||
}
|
||||
} else {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) DbErrSkipRecordNotFoundBool(err error) bool {
|
||||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func (a *ApiBase) JSONMarshal(t interface{}) ([]byte, error) {
|
||||
buffer := &bytes.Buffer{}
|
||||
encoder := json.NewEncoder(buffer)
|
||||
encoder.SetEscapeHTML(false)
|
||||
err := encoder.Encode(t)
|
||||
return buffer.Bytes(), err
|
||||
}
|
||||
|
||||
func (a *ApiBase) response() {
|
||||
|
||||
var response []byte
|
||||
|
||||
if a.IsCustomResponse {
|
||||
return
|
||||
}
|
||||
|
||||
if a.Error == nil {
|
||||
if a.CustomResponse != nil {
|
||||
response, _ = a.JSONMarshal(&a.CustomResponse)
|
||||
} else if a.Response != nil {
|
||||
response, _ = a.JSONMarshal(&a.Response)
|
||||
} else {
|
||||
_ = a.ReturnErrorResponse(500, a.Error.Error())
|
||||
response, _ = a.JSONMarshal(&a.Response)
|
||||
}
|
||||
} else {
|
||||
if a.CustomResponse != nil {
|
||||
response, _ = a.JSONMarshal(&a.CustomResponse)
|
||||
} else if a.Response != nil {
|
||||
response, _ = a.JSONMarshal(&a.Response)
|
||||
} else {
|
||||
_ = a.ReturnErrorResponse(500, a.Error.Error())
|
||||
response, _ = a.JSONMarshal(&a.Response)
|
||||
}
|
||||
}
|
||||
|
||||
r := string(response)
|
||||
if config.Cf.Common.RunMode == "debug" {
|
||||
logger.AccessLogger.Infof("%s 返回数据 -> %s", a.C.FullPath(), r)
|
||||
}
|
||||
a.C.String(http.StatusOK, r)
|
||||
}
|
||||
|
||||
func (a *ApiBase) NewResponseCommon(code int, msg string) *ResponseCommon {
|
||||
return &ResponseCommon{
|
||||
Code: code,
|
||||
Msg: msg,
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) NewSuccessResponseCommon() *ResponseCommon {
|
||||
return a.NewResponseCommon(Success, a.Translate("success"))
|
||||
}
|
||||
|
||||
func (a *ApiBase) NewResponse(code int, msg string, data ...interface{}) *Response {
|
||||
return &Response{
|
||||
ResponseCommon: a.NewResponseCommon(code, msg),
|
||||
Data: dataHandler(data...),
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) NewSuccessResponse(data ...interface{}) *Response {
|
||||
return &Response{
|
||||
ResponseCommon: a.NewSuccessResponseCommon(),
|
||||
Data: dataHandler(data...),
|
||||
}
|
||||
}
|
||||
|
||||
func (a *ApiBase) ReturnSuccessResponse(data ...interface{}) error {
|
||||
a.Response = a.NewSuccessResponse(data)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *ApiBase) ReturnErrorResponse(code int, msg string, data ...interface{}) error {
|
||||
a.Response = a.NewResponse(code, msg, data)
|
||||
a.Error = errors.New(msg)
|
||||
return a.Error
|
||||
}
|
||||
|
||||
func (a *ApiBase) ReturnPublicErrorResponse(msg string, data ...interface{}) error {
|
||||
|
||||
if len(msg) <= 0 {
|
||||
//logger.AccessLogger.Errorln("系统错误!")
|
||||
//msg = cache.Global.GetLang(a.Lang, "sys_error")
|
||||
}
|
||||
return a.ReturnErrorResponse(PublicError, msg, data...)
|
||||
}
|
||||
|
||||
func (a *ApiBase) ReturnSuccessCustomResponse(data interface{}) error {
|
||||
a.CustomResponse = &data
|
||||
return nil
|
||||
}
|
||||
|
||||
func dataHandler(data ...interface{}) interface{} {
|
||||
if len(data) == 1 {
|
||||
return data[0]
|
||||
} else {
|
||||
return data
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package dapi
|
||||
|
||||
import (
|
||||
"github.com/go-playground/validator/v10"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ValidError struct {
|
||||
Key string
|
||||
Message string
|
||||
}
|
||||
|
||||
type ValidErrors []*ValidError
|
||||
|
||||
func (v *ValidError) Error() string {
|
||||
return v.Message
|
||||
}
|
||||
|
||||
func (v ValidErrors) Error() string {
|
||||
return strings.Join(v.Errors(), ",")
|
||||
}
|
||||
|
||||
func (v ValidErrors) Errors() []string {
|
||||
var errs []string
|
||||
for _, err := range v {
|
||||
errs = append(errs, err.Error())
|
||||
}
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
func ValidateField(usr interface{}, f func(typeOfCat reflect.Type, fieldName string)) {
|
||||
|
||||
validate := validator.New()
|
||||
typeOfCat := reflect.TypeOf(usr)
|
||||
if typeOfCat.Kind() == reflect.Ptr {
|
||||
//err = err.Elem
|
||||
typeOfCat = typeOfCat.Elem()
|
||||
}
|
||||
err := validate.Struct(usr)
|
||||
if err != nil {
|
||||
for _, err := range err.(validator.ValidationErrors) {
|
||||
fieldName := err.Field() //获取是哪个字段不合乎格局
|
||||
f(typeOfCat, fieldName)
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,150 @@
|
||||
package fileAsw
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/credentials"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/s3"
|
||||
"github.com/aws/aws-sdk-go/service/s3/s3manager"
|
||||
"io"
|
||||
"reflect"
|
||||
"time"
|
||||
)
|
||||
|
||||
/*
|
||||
亚马逊oss存储
|
||||
*/
|
||||
type S3 struct {
|
||||
Path string
|
||||
AccessKeyId string
|
||||
AccessKeySecret string
|
||||
BucketName string
|
||||
EndPoint string
|
||||
RegionId string
|
||||
Access string
|
||||
ReadPrivate bool
|
||||
sess *session.Session
|
||||
svc *s3.S3
|
||||
}
|
||||
|
||||
func New(accessKeyId, accessKeySecret, bucket, endPoint, access, regionId string) (*S3, error) {
|
||||
var instance *S3
|
||||
instance = &S3{
|
||||
Path: "exchange",
|
||||
BucketName: bucket,
|
||||
AccessKeyId: accessKeyId,
|
||||
AccessKeySecret: accessKeySecret,
|
||||
EndPoint: endPoint,
|
||||
RegionId: regionId,
|
||||
Access: access,
|
||||
}
|
||||
|
||||
sess, err := session.NewSession(&aws.Config{
|
||||
Credentials: credentials.NewStaticCredentials(instance.AccessKeyId, instance.AccessKeySecret, ""),
|
||||
Endpoint: aws.String(instance.EndPoint),
|
||||
Region: aws.String(instance.RegionId),
|
||||
DisableSSL: aws.Bool(false), // true - 本地http false -- 远端
|
||||
S3ForcePathStyle: aws.Bool(false),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
instance.sess = sess
|
||||
instance.svc = s3.New(sess)
|
||||
|
||||
return instance, nil
|
||||
}
|
||||
|
||||
func (this *S3) ReadUrl(filePath string) string {
|
||||
return this.url(filePath)
|
||||
}
|
||||
|
||||
func (this *S3) url(fileName string) string {
|
||||
return fmt.Sprintf("https://%s/%s/%s/%s", this.Access, this.BucketName, this.Path, fileName)
|
||||
}
|
||||
|
||||
func (this *S3) Put(fileName string, contentType string, data interface{}) string {
|
||||
var ossData io.Reader
|
||||
var err error
|
||||
typeOf := reflect.TypeOf(data).Kind()
|
||||
logger.AccessLogger.Infoln("ContentType ", contentType, "typeOf ", typeOf)
|
||||
|
||||
switch typeOf {
|
||||
case reflect.Slice:
|
||||
ossData = bytes.NewBuffer(data.([]byte))
|
||||
case reflect.Struct:
|
||||
ossData = data.(io.Reader)
|
||||
case reflect.Ptr:
|
||||
a1 := reflect.ValueOf(data).Interface()
|
||||
|
||||
switch v := a1.(type) {
|
||||
case []uint8:
|
||||
// 处理 []uint8 类型的情况
|
||||
logger.AccessLogger.Infoln("It's a []uint8 slice:", v)
|
||||
case string:
|
||||
// 处理 string 类型的情况
|
||||
logger.AccessLogger.Infoln("It's a string:", &v)
|
||||
default:
|
||||
// 处理其他类型的情况
|
||||
logger.AccessLogger.Infoln("It's some other type:", &v)
|
||||
}
|
||||
|
||||
d, ok := a1.([]uint8)
|
||||
if !ok {
|
||||
logger.AccessLogger.Errorf("---> Upload Ptr Error. %+v", a1)
|
||||
}
|
||||
ossData = bytes.NewBuffer(d)
|
||||
default:
|
||||
panic("数据不合法--!")
|
||||
}
|
||||
|
||||
//if len(contentType) <= 0 {
|
||||
contentType, err = utils.GetContentTypeForIoRead(fileName, ossData)
|
||||
if err != nil {
|
||||
logger.ErrorLogger.Errorln(err.Error())
|
||||
}
|
||||
//}
|
||||
|
||||
uploader := s3manager.NewUploader(this.sess)
|
||||
_, err = uploader.Upload(&s3manager.UploadInput{
|
||||
Bucket: aws.String(fmt.Sprintf("%s/", this.BucketName)),
|
||||
Key: aws.String(fmt.Sprintf("%s/%s", this.Path, fileName)),
|
||||
Body: ossData,
|
||||
ContentType: aws.String(contentType),
|
||||
//ACL: aws.String("public-read"),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return err.Error()
|
||||
}
|
||||
|
||||
return this.url(fileName)
|
||||
}
|
||||
|
||||
// 获取预签名地址
|
||||
func (this *S3) Token(key string, contentType string) (map[string]interface{}, error) {
|
||||
params := &s3.PutObjectInput{
|
||||
Bucket: aws.String(fmt.Sprintf("%s/", this.BucketName)),
|
||||
Key: aws.String(fmt.Sprintf("%s/%s", this.Path, key)),
|
||||
ContentType: &contentType,
|
||||
}
|
||||
|
||||
req, _ := this.svc.PutObjectRequest(params)
|
||||
url, err := req.Presign(15 * time.Minute)
|
||||
if err != nil {
|
||||
logger.AccessLogger.Errorln("---> %s ", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
|
||||
token := make(map[string]interface{})
|
||||
|
||||
token["token"] = url
|
||||
token["url"] = this.ReadUrl(key)
|
||||
return token, err
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package fileConfig
|
||||
|
||||
import (
|
||||
fileAsw "epur-pay/pkg/fileserver/asw"
|
||||
fileCos "epur-pay/pkg/fileserver/cos"
|
||||
fileLocal "epur-pay/pkg/fileserver/local"
|
||||
fileOss "epur-pay/pkg/fileserver/oss"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/utils"
|
||||
)
|
||||
|
||||
var Cf *config
|
||||
|
||||
type config struct {
|
||||
Store *Store //当前使用的桶
|
||||
Stores []*Store
|
||||
}
|
||||
|
||||
/*
|
||||
存储类型
|
||||
|
||||
oss 阿里云oss
|
||||
cos 腾讯云
|
||||
asw 亚马逊
|
||||
local 本地local
|
||||
*/
|
||||
type Store struct {
|
||||
StoreType string
|
||||
Api api
|
||||
}
|
||||
|
||||
type api interface {
|
||||
Put(fileName string, contentType string, data interface{}) string
|
||||
ReadUrl(filePath string) string
|
||||
Token(key string, contentType string) (map[string]interface{}, error)
|
||||
}
|
||||
|
||||
type FileStoreRequest struct {
|
||||
AccessKeyId, AccessKeySecret, BucketName, EndPoint, Access, RegionId string
|
||||
Private bool
|
||||
StoreType string
|
||||
}
|
||||
|
||||
func New(f *FileStoreRequest) {
|
||||
|
||||
Cf = &config{
|
||||
Stores: []*Store{},
|
||||
}
|
||||
|
||||
if f.StoreType == "oss" {
|
||||
store, err := fileOss.New(f.AccessKeyId, f.AccessKeySecret, f.BucketName, f.EndPoint, f.Access, f.RegionId, f.Private)
|
||||
utils.Error(err)
|
||||
currStore := &Store{StoreType: f.StoreType, Api: store}
|
||||
Cf.Stores = append(Cf.Stores, currStore)
|
||||
Cf.Store = currStore
|
||||
|
||||
logger.AccessLogger.Infof("---> StoreType: %s Access: %s", f.StoreType, store.Access)
|
||||
} else if f.StoreType == "cos" {
|
||||
store, err := fileCos.New(f.AccessKeyId, f.AccessKeySecret, f.BucketName, f.EndPoint, f.Access, f.RegionId)
|
||||
utils.Error(err)
|
||||
currStore := &Store{StoreType: f.StoreType, Api: store}
|
||||
Cf.Stores = append(Cf.Stores, currStore)
|
||||
Cf.Store = currStore
|
||||
|
||||
logger.AccessLogger.Infof("---> StoreType: %s Access: %s", f.StoreType, store.Access)
|
||||
} else if f.StoreType == "asw" {
|
||||
store, err := fileAsw.New(f.AccessKeyId, f.AccessKeySecret, f.BucketName, f.EndPoint, f.Access, f.RegionId)
|
||||
utils.Error(err)
|
||||
currStore := &Store{StoreType: f.StoreType, Api: store}
|
||||
Cf.Stores = append(Cf.Stores, currStore)
|
||||
Cf.Store = currStore
|
||||
|
||||
logger.AccessLogger.Infof("---> StoreType: %s Access: %s", f.StoreType, store.Access)
|
||||
} else if f.StoreType == "local" {
|
||||
store, err := fileLocal.New(f.AccessKeyId, f.AccessKeySecret, f.BucketName, f.EndPoint, f.Access, f.RegionId)
|
||||
utils.Error(err)
|
||||
currStore := &Store{StoreType: f.StoreType, Api: store}
|
||||
Cf.Stores = append(Cf.Stores, currStore)
|
||||
Cf.Store = currStore
|
||||
|
||||
logger.AccessLogger.Infof("---> StoreType: %s Access: %s", f.StoreType, store.Access)
|
||||
}
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
package fileCos
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"epur-pay/pkg/logger"
|
||||
"fmt"
|
||||
"github.com/tencentyun/cos-go-sdk-v5"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
/*
|
||||
腾讯Cos
|
||||
*/
|
||||
type Cos struct {
|
||||
AccessKeyId string
|
||||
AccessKeySecret string
|
||||
BucketName string
|
||||
EndPoint string
|
||||
Access string
|
||||
ReadPrivate bool
|
||||
Appid string
|
||||
client *cos.Client
|
||||
}
|
||||
|
||||
func New(accessKeyId, accessKeySecret, bucketName, endPoint string, access string, Appid string) (*Cos, error) {
|
||||
|
||||
var instance *Cos
|
||||
instance = &Cos{
|
||||
AccessKeyId: accessKeyId,
|
||||
AccessKeySecret: accessKeySecret,
|
||||
BucketName: bucketName,
|
||||
EndPoint: endPoint,
|
||||
Access: access,
|
||||
Appid: Appid,
|
||||
}
|
||||
//cos.NewClient()
|
||||
|
||||
uu := fmt.Sprintf(
|
||||
"https://%s-%s.%s", instance.BucketName, instance.Appid, instance.EndPoint)
|
||||
|
||||
logger.AccessLogger.Infoln("cos -> ", uu)
|
||||
endPoint1, _ := url.Parse(uu)
|
||||
|
||||
client := cos.NewClient(
|
||||
&cos.BaseURL{BucketURL: endPoint1}, &http.Client{
|
||||
Transport: &cos.AuthorizationTransport{
|
||||
SecretID: instance.AccessKeyId,
|
||||
SecretKey: instance.AccessKeySecret,
|
||||
},
|
||||
})
|
||||
|
||||
instance.client = client
|
||||
return instance, nil
|
||||
}
|
||||
|
||||
func (this *Cos) url(fileName string) string {
|
||||
return fmt.Sprintf("https://%s/%s", this.Access, fileName)
|
||||
}
|
||||
|
||||
func (this *Cos) ReadUrl(filePath string) string {
|
||||
return this.url(filePath)
|
||||
}
|
||||
|
||||
func (this *Cos) Put(fileName string, contentType string, data interface{}) string {
|
||||
|
||||
var ossData io.Reader
|
||||
|
||||
typeOf := reflect.TypeOf(data).Kind()
|
||||
//logger.AccessLogger.Infoln("类型:", typeOf)
|
||||
|
||||
switch typeOf {
|
||||
case reflect.Slice:
|
||||
ossData = bytes.NewBuffer(data.([]byte))
|
||||
case reflect.Struct:
|
||||
ossData = data.(io.Reader)
|
||||
default:
|
||||
panic("数据不合法!")
|
||||
}
|
||||
//oss.SetHeader("content-type", contentType)
|
||||
|
||||
_, err := this.client.Object.Put(context.Background(), fileName, ossData, nil)
|
||||
if err != nil {
|
||||
logger.AccessLogger.Error("上传失败!")
|
||||
panic(err.Error())
|
||||
}
|
||||
return this.url(fileName)
|
||||
}
|
||||
|
||||
func (this *Cos) Token(key string, contentType string) (map[string]interface{}, error) {
|
||||
return nil, nil
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package fileserver
|
||||
|
||||
import (
|
||||
"ehttp/http"
|
||||
"epur-pay/cache"
|
||||
fileConfig "epur-pay/pkg/fileserver/config"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
"io"
|
||||
"reflect"
|
||||
)
|
||||
|
||||
type File struct {
|
||||
FileName *string
|
||||
Data interface{}
|
||||
DataLen int64
|
||||
ContentType *string
|
||||
Encryption bool
|
||||
Key string
|
||||
Iv string
|
||||
}
|
||||
|
||||
func New() {
|
||||
// 根据类型加载存储方式
|
||||
storeType := utils.GetStoreType(cache.Global.Caches.Config.Get("storeType"))
|
||||
storeJson := cache.Global.Caches.Config.GetMap(fmt.Sprintf("storeJson_%s", storeType))
|
||||
|
||||
if storeJson != nil {
|
||||
fileConfig.New(&fileConfig.FileStoreRequest{
|
||||
AccessKeyId: storeJson["AccessKeyId"].(string),
|
||||
AccessKeySecret: storeJson["AccessKeySecret"].(string),
|
||||
BucketName: storeJson["BucketName"].(string),
|
||||
EndPoint: storeJson["EndPoint"].(string),
|
||||
Access: storeJson["Access"].(string),
|
||||
RegionId: storeJson["regionId"].(string),
|
||||
StoreType: storeType,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 文件上传
|
||||
func (f *File) UpLoad() string {
|
||||
|
||||
filePathResponse := ""
|
||||
f.encryption()
|
||||
filePathResponse = fileConfig.Cf.Store.Api.Put(*f.FileName, "", f.Data)
|
||||
return filePathResponse
|
||||
}
|
||||
|
||||
// 加密
|
||||
func (f *File) encryption() {
|
||||
|
||||
typeOf := reflect.TypeOf(f.Data).Kind()
|
||||
handlerData := make([]byte, f.DataLen+1)
|
||||
//logger.AccessLogger.Infoln("类型:", typeOf)
|
||||
switch typeOf {
|
||||
case reflect.String:
|
||||
handlerData = f.DownLoad(f.Data.(string))
|
||||
case reflect.Slice:
|
||||
handlerData = f.Data.([]byte)
|
||||
case reflect.Struct:
|
||||
_, err := f.Data.(io.Reader).Read(handlerData)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
//case reflect.Ptr:
|
||||
// _, err := f.Data.(*os.File).Read(handlerData)
|
||||
// if err != nil {
|
||||
// panic(err)
|
||||
// }
|
||||
default:
|
||||
panic("数据不合法!")
|
||||
}
|
||||
|
||||
if f.Encryption {
|
||||
f.Data = handlerData
|
||||
//s := aes.Encrypt(handlerData, []byte("PTIU3VR6HdfhziklcFQBXee1lkdpnesr"))
|
||||
//encoded := base64.StdEncoding.EncodeToString(handlerData)
|
||||
//f.ContentType = utils.PString("application/octet-stream")
|
||||
//f.Data = []byte(aesnew.P1(f.Key, f.Iv, base64.StdEncoding.EncodeToString(handlerData)))
|
||||
} else {
|
||||
f.Data = handlerData
|
||||
}
|
||||
}
|
||||
|
||||
// 文件下载
|
||||
func (f *File) DownLoad(url string) []byte {
|
||||
r := http.New(
|
||||
http.WithUrl(url),
|
||||
http.WithMethod(http.GET),
|
||||
)
|
||||
if err := r.Do(); err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return r.Result
|
||||
}
|
||||
|
||||
// 文件解密
|
||||
func (f *File) DecryptFromUrl(url string) string {
|
||||
result := f.DownLoad(url)
|
||||
return string(result)
|
||||
//return aesnew.P2(f.Key, f.Iv, string(result))
|
||||
}
|
||||
|
||||
func (f *File) SetKeyIv(key, iv string) {
|
||||
f.Key = key
|
||||
f.Iv = iv
|
||||
}
|
||||
|
||||
//func GetImageKeyIv(uid int64) (string, string) {
|
||||
// return kk.KK2(fmt.Sprintf("%d", uid), 6), kk.KK2(fmt.Sprintf("%d", uid), 10)
|
||||
//}
|
@ -0,0 +1,162 @@
|
||||
package fileOss
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/hmac"
|
||||
"crypto/sha1"
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"epur-pay/pkg/idGenerate"
|
||||
"epur-pay/pkg/utils"
|
||||
"fmt"
|
||||
"github.com/aliyun/aliyun-oss-go-sdk/oss"
|
||||
"hash"
|
||||
"io"
|
||||
"reflect"
|
||||
"time"
|
||||
)
|
||||
|
||||
type ConfigStruct struct {
|
||||
Expiration string `json:"expiration"`
|
||||
Conditions [][]string `json:"conditions"`
|
||||
}
|
||||
|
||||
type CallbackParam struct {
|
||||
CallbackUrl string `json:"callbackUrl"`
|
||||
CallbackBody string `json:"callbackBody"`
|
||||
CallbackBodyType string `json:"callbackBodyType"`
|
||||
}
|
||||
|
||||
/*
|
||||
阿里云oss存储
|
||||
*/
|
||||
type Oss struct {
|
||||
Key string
|
||||
AccessKeyId string
|
||||
AccessKeySecret string
|
||||
BucketName string
|
||||
EndPoint string
|
||||
Access string
|
||||
RegionId string
|
||||
ReadPrivate bool
|
||||
client *oss.Client
|
||||
bucket *oss.Bucket
|
||||
}
|
||||
|
||||
func New(accessKeyId, accessKeySecret, bucketName, endPoint string, access string, RegionId string, private bool) (*Oss, error) {
|
||||
|
||||
var instance *Oss
|
||||
instance = &Oss{
|
||||
ReadPrivate: private,
|
||||
AccessKeyId: accessKeyId,
|
||||
AccessKeySecret: accessKeySecret,
|
||||
BucketName: bucketName,
|
||||
EndPoint: endPoint,
|
||||
RegionId: RegionId,
|
||||
Access: access,
|
||||
}
|
||||
if err := instance.init(instance.AccessKeyId, instance.AccessKeySecret, instance.BucketName, instance.EndPoint); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return instance, nil
|
||||
}
|
||||
|
||||
func (this *Oss) ReadUrl(filePath string) string {
|
||||
return this.url(filePath)
|
||||
}
|
||||
|
||||
func (this *Oss) init(accessKeyId, accessKeySecret, bucketName, endPoint string) error {
|
||||
var err error
|
||||
this.client, err = oss.New(endPoint, accessKeyId, accessKeySecret)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if bucketName != "" {
|
||||
this.bucket, err = this.client.Bucket(bucketName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *Oss) url(fileName string) string {
|
||||
return fmt.Sprintf("https://%s/%s", this.Access, fileName)
|
||||
}
|
||||
|
||||
func (this *Oss) Put(fileName string, contentType string, data interface{}) string {
|
||||
|
||||
var ossData io.Reader
|
||||
|
||||
typeOf := reflect.TypeOf(data).Kind()
|
||||
|
||||
//logger.AccessLogger.Infoln("fileName: ", fileName, " 类型:", typeOf)
|
||||
//logger.AccessLogger.Infoln("contentType: ", contentType)
|
||||
|
||||
switch typeOf {
|
||||
case reflect.Slice:
|
||||
ossData = bytes.NewBuffer(data.([]byte))
|
||||
case reflect.Struct:
|
||||
ossData = data.(io.Reader)
|
||||
case reflect.Ptr:
|
||||
a1 := reflect.ValueOf(data).Interface()
|
||||
d := a1.([]uint8)
|
||||
ossData = bytes.NewBuffer(d)
|
||||
default:
|
||||
panic("数据不合法--!")
|
||||
}
|
||||
|
||||
oss.SetHeader("content-type", contentType)
|
||||
utils.Error(this.bucket.PutObject(fileName, ossData))
|
||||
return this.url(fileName)
|
||||
}
|
||||
|
||||
func (this *Oss) Get_gmt_iso8601(expire_end int64) string {
|
||||
var tokenExpire = time.Unix(expire_end, 0).UTC().Format("2006-01-02T15:04:05Z")
|
||||
return tokenExpire
|
||||
}
|
||||
|
||||
// 获取直传token
|
||||
func (this *Oss) Token(key string, contentType string) (map[string]interface{}, error) {
|
||||
now := time.Now().Unix()
|
||||
expire_end := now + 300
|
||||
tokenExpire := this.Get_gmt_iso8601(expire_end)
|
||||
//create post policy json
|
||||
var config ConfigStruct
|
||||
config.Expiration = tokenExpire
|
||||
var condition []string
|
||||
condition = append(condition, "starts-with")
|
||||
condition = append(condition, "$key")
|
||||
condition = append(condition, "pic")
|
||||
config.Conditions = append(config.Conditions, condition)
|
||||
|
||||
//calucate signature
|
||||
result, err := json.Marshal(config)
|
||||
debyte := base64.StdEncoding.EncodeToString(result)
|
||||
h := hmac.New(func() hash.Hash { return sha1.New() }, []byte(this.AccessKeySecret))
|
||||
io.WriteString(h, debyte)
|
||||
signedStr := base64.StdEncoding.EncodeToString(h.Sum(nil))
|
||||
|
||||
var callbackParam CallbackParam
|
||||
callbackParam.CallbackUrl = ""
|
||||
callbackParam.CallbackBody = "filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}"
|
||||
callbackParam.CallbackBodyType = "application/x-www-form-urlencoded"
|
||||
callback_str, err := json.Marshal(callbackParam)
|
||||
if err != nil {
|
||||
fmt.Println("callback json err:", err)
|
||||
}
|
||||
callbackBase64 := base64.StdEncoding.EncodeToString(callback_str)
|
||||
|
||||
token := make(map[string]interface{})
|
||||
|
||||
token["accessId"] = this.AccessKeyId
|
||||
token["host"] = fmt.Sprintf("https://%s", this.Access)
|
||||
token["expire"] = expire_end
|
||||
token["signature"] = signedStr
|
||||
token["directory"] = "pic"
|
||||
token["policy"] = debyte
|
||||
token["callback"] = callbackBase64
|
||||
token["x:callbackkey"] = utils.EncodeMD5(idGenerate.ID.Generate(""))
|
||||
|
||||
return token, nil
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package idGenerate
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/logger"
|
||||
"github.com/bwmarrin/snowflake"
|
||||
)
|
||||
|
||||
var ID *id
|
||||
|
||||
type id struct {
|
||||
node *snowflake.Node
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
var err error
|
||||
ID = &id{}
|
||||
|
||||
snowflake.Epoch = 1668423088000
|
||||
ID.node, err = snowflake.NewNode(1)
|
||||
if err != nil {
|
||||
logger.AccessLogger.Error(err.Error())
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
const (
|
||||
CoinsOrder = "C" // 币币订单
|
||||
Recharge = "R" // 充值
|
||||
Withdraw = "W" // 提现
|
||||
FOrder = "F" // 理财产品
|
||||
Ico = "I" // ICO申购
|
||||
C2C = "T" // C2C
|
||||
NULL = "" // 其它
|
||||
CHAT = "M" // 聊天
|
||||
Pledge = "P" // 质押
|
||||
)
|
||||
|
||||
func (i *id) generate() snowflake.ID {
|
||||
return i.node.Generate()
|
||||
}
|
||||
|
||||
func (i *id) Generate(Type string) string {
|
||||
return Type + i.generate().String()
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package limit
|
||||
|
||||
type LimitConfRules struct {
|
||||
Rules map[string]*LimitOpt `mapstructure:"rules"`
|
||||
}
|
||||
|
||||
type LimitOpt struct {
|
||||
Interval int64 `mapstructure:"interval"`
|
||||
Capacity int64 `mapstructure:"capacity"`
|
||||
Quantum int64 `mapstructure:"quantum"`
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package limit
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/juju/ratelimit"
|
||||
)
|
||||
|
||||
type LimiterIface interface {
|
||||
Key(c *gin.Context) string
|
||||
GetBucket(key string) (*ratelimit.Bucket, bool)
|
||||
AddBucketsByUri(uri string, fillInterval, capacity, quantum int64) LimiterIface
|
||||
AddBucketByConf(rules map[string]*LimitOpt) LimiterIface
|
||||
}
|
||||
|
||||
type Limiter struct {
|
||||
limiterBuckets map[string]*ratelimit.Bucket
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package limit
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/juju/ratelimit"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type UriLimiter struct {
|
||||
*Limiter
|
||||
Rule *LimitConfRules
|
||||
}
|
||||
|
||||
func NewUriLimiter() LimiterIface {
|
||||
return &UriLimiter{
|
||||
Limiter: &Limiter{
|
||||
limiterBuckets: make(map[string]*ratelimit.Bucket),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (l *UriLimiter) Key(c *gin.Context) string {
|
||||
uri := c.Request.RequestURI
|
||||
index := strings.Index(uri, "?")
|
||||
if index == -1 {
|
||||
return uri
|
||||
}
|
||||
return uri[:index]
|
||||
}
|
||||
|
||||
func (l *UriLimiter) GetBucket(key string) (*ratelimit.Bucket, bool) {
|
||||
//logger.AccessLogger.Infoln(key, l.limiterBuckets)
|
||||
bucket, ok := l.limiterBuckets[key]
|
||||
return bucket, ok
|
||||
}
|
||||
|
||||
func (l *UriLimiter) AddBucketsByUri(uri string, fillInterval, capacity, quantum int64) LimiterIface {
|
||||
bucket := ratelimit.NewBucketWithQuantum(time.Second*time.Duration(fillInterval), capacity, quantum)
|
||||
l.limiterBuckets[uri] = bucket
|
||||
return l
|
||||
}
|
||||
|
||||
//
|
||||
//func (l *UriLimiter) getConf() *LimitConfRules {
|
||||
// rule := &LimitConfRules{}
|
||||
//
|
||||
// rule.Rules = make(map[string]*LimitOpt)
|
||||
//
|
||||
// // 抢红包接口
|
||||
// rule.Rules["/app/v1/red/rob"] = &LimitOpt{
|
||||
// Interval: 1,
|
||||
// Capacity: 100, // 总共可以存多少个令牌
|
||||
// Quantum: 60, // 每次 Interval 时间往桶里扔 多少个令牌
|
||||
// }
|
||||
//
|
||||
// // 红包详情接口
|
||||
// rule.Rules["/app/v1/red/info"] = &LimitOpt{
|
||||
// Interval: 1,
|
||||
// Capacity: 100,
|
||||
// Quantum: 50,
|
||||
// }
|
||||
//
|
||||
// rule.Rules["/app/v1/sso/test"] = &LimitOpt{
|
||||
// Interval: 1,
|
||||
// Capacity: 1,
|
||||
// Quantum: 1,
|
||||
// }
|
||||
//
|
||||
// return rule
|
||||
//}
|
||||
|
||||
func (l *UriLimiter) AddBucketByConf(rules map[string]*LimitOpt) LimiterIface {
|
||||
//rule := l.getConf()
|
||||
|
||||
for k, v := range rules {
|
||||
l.AddBucketsByUri(k, v.Interval, v.Capacity, v.Quantum)
|
||||
}
|
||||
return l
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
"github.com/rifflock/lfshook"
|
||||
"github.com/sirupsen/logrus"
|
||||
"path"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// 定义自己的Writer
|
||||
type RdsLoggerWriter struct {
|
||||
logger *logrus.Logger
|
||||
}
|
||||
|
||||
// 实现gorm/logger.Writer接口
|
||||
func (r *RdsLoggerWriter) Printf(format string, v ...interface{}) {
|
||||
r.logger.Info(fmt.Sprintf(format, v...))
|
||||
}
|
||||
|
||||
type RdsLogFormatter struct{}
|
||||
|
||||
func (s *RdsLogFormatter) Format(entry *logrus.Entry) ([]byte, error) {
|
||||
|
||||
local, _ := time.LoadLocation("Asia/Shanghai")
|
||||
timestamp := time.Now().In(local).Format("2006-01-02 15:04:05")
|
||||
|
||||
//fmt.Println(entry.Data)
|
||||
msg := fmt.Sprintf(
|
||||
"[GOID:%d] [%s] %s %s\n",
|
||||
getGID(),
|
||||
strings.ToUpper(entry.Level.String()),
|
||||
timestamp,
|
||||
entry.Message)
|
||||
return []byte(msg), nil
|
||||
}
|
||||
|
||||
func newRdsLoggerWriter(LogFilePath string, LogFileName string, LoggerInstance *logrus.Logger, RunMode string) *RdsLoggerWriter {
|
||||
|
||||
//配置logrus
|
||||
|
||||
fileName := path.Join(LogFilePath, LogFileName)
|
||||
|
||||
outSelect(LoggerInstance, RunMode)
|
||||
|
||||
logWriter, _ := rotatelogs.New(
|
||||
// 分割后的文件名称
|
||||
fileName+".%Y%m%d.log",
|
||||
|
||||
// 生成软链,指向最新日志文件
|
||||
rotatelogs.WithLinkName(fileName),
|
||||
|
||||
// 设置最大保存时间(7天)
|
||||
rotatelogs.WithMaxAge(7*24*time.Hour),
|
||||
|
||||
// 设置日志切割时间间隔(1天)
|
||||
rotatelogs.WithRotationTime(24*time.Hour),
|
||||
)
|
||||
|
||||
writeMap := lfshook.WriterMap{
|
||||
logrus.InfoLevel: logWriter,
|
||||
logrus.FatalLevel: logWriter,
|
||||
logrus.DebugLevel: logWriter,
|
||||
logrus.WarnLevel: logWriter,
|
||||
logrus.ErrorLevel: logWriter,
|
||||
logrus.PanicLevel: logWriter,
|
||||
}
|
||||
|
||||
lfHook := lfshook.NewHook(writeMap, &RdsLogFormatter{})
|
||||
|
||||
// 新增 Hook
|
||||
LoggerInstance.AddHook(lfHook)
|
||||
|
||||
return &RdsLoggerWriter{logger: LoggerInstance}
|
||||
}
|
@ -0,0 +1,142 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
"github.com/rifflock/lfshook"
|
||||
"github.com/sirupsen/logrus"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
AccessLogger = logrus.New()
|
||||
RouterLogger = logrus.New()
|
||||
ErrorLogger = logrus.New()
|
||||
RdsLogger *RdsLoggerWriter
|
||||
)
|
||||
|
||||
type CustomLogger struct {
|
||||
File string
|
||||
Logger *logrus.Logger
|
||||
}
|
||||
|
||||
func New(LogFilePath string, RunMode string) {
|
||||
|
||||
var err error
|
||||
_, err = os.Stat(LogFilePath)
|
||||
switch {
|
||||
case os.IsNotExist(err):
|
||||
err = os.MkdirAll(LogFilePath, os.ModePerm)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
case os.IsPermission(err):
|
||||
panic(err)
|
||||
}
|
||||
|
||||
for _, item := range []CustomLogger{
|
||||
{File: "access.log", Logger: AccessLogger},
|
||||
{File: "router.log", Logger: RouterLogger},
|
||||
{File: "error.log", Logger: ErrorLogger},
|
||||
} {
|
||||
loggerToFile(LogFilePath, item.File, item.Logger, RunMode)
|
||||
}
|
||||
|
||||
RdsLogger = newRdsLoggerWriter(LogFilePath, "rds.log", logrus.New(), RunMode)
|
||||
}
|
||||
|
||||
type LogFormatter struct{}
|
||||
|
||||
func (s *LogFormatter) Format(entry *logrus.Entry) ([]byte, error) {
|
||||
|
||||
var (
|
||||
file string
|
||||
dir string
|
||||
l int
|
||||
)
|
||||
|
||||
local, _ := time.LoadLocation("Asia/Shanghai")
|
||||
timestamp := time.Now().In(local).Format("2006-01-02 15:04:05")
|
||||
|
||||
if entry.Caller != nil {
|
||||
file = filepath.Base(entry.Caller.File)
|
||||
dir = filepath.Dir(entry.Caller.File)
|
||||
l = entry.Caller.Line
|
||||
}
|
||||
|
||||
ssss, _ := os.Getwd()
|
||||
//fmt.Println(entry.Data)
|
||||
msg := fmt.Sprintf(
|
||||
"[GOID:%d] [%s] %s [%s/%s:%d] %s\n",
|
||||
getGID(),
|
||||
strings.ToUpper(entry.Level.String()),
|
||||
timestamp, strings.ReplaceAll(dir, ssss, ""), file, l,
|
||||
entry.Message)
|
||||
return []byte(msg), nil
|
||||
}
|
||||
|
||||
func getGID() uint64 {
|
||||
b := make([]byte, 64)
|
||||
b = b[:runtime.Stack(b, false)]
|
||||
b = bytes.TrimPrefix(b, []byte("goroutine "))
|
||||
b = b[:bytes.IndexByte(b, ' ')]
|
||||
n, _ := strconv.ParseUint(string(b), 10, 64)
|
||||
return n
|
||||
}
|
||||
|
||||
func loggerToFile(LogFilePath string, LogFileName string, LoggerInstance *logrus.Logger, RunMode string) {
|
||||
fileName := path.Join(LogFilePath, LogFileName)
|
||||
|
||||
//writer := bufio.NewWriter(src)
|
||||
//LoggerInstance.SetOutput(writer)
|
||||
outSelect(LoggerInstance, RunMode)
|
||||
LoggerInstance.SetReportCaller(true)
|
||||
//LoggerInstance.SetFormatter(new(LogFormatter))
|
||||
|
||||
logWriter, _ := rotatelogs.New(
|
||||
// 分割后的文件名称
|
||||
fileName+".%Y%m%d.log",
|
||||
|
||||
// 生成软链,指向最新日志文件
|
||||
rotatelogs.WithLinkName(fileName),
|
||||
|
||||
// 设置最大保存时间(2天)
|
||||
rotatelogs.WithMaxAge(2*24*time.Hour),
|
||||
|
||||
// 设置日志切割时间间隔(1天)
|
||||
rotatelogs.WithRotationTime(24*time.Hour),
|
||||
)
|
||||
|
||||
writeMap := lfshook.WriterMap{
|
||||
logrus.InfoLevel: logWriter,
|
||||
logrus.FatalLevel: logWriter,
|
||||
logrus.DebugLevel: logWriter,
|
||||
logrus.WarnLevel: logWriter,
|
||||
logrus.ErrorLevel: logWriter,
|
||||
logrus.PanicLevel: logWriter,
|
||||
}
|
||||
|
||||
lfHook := lfshook.NewHook(writeMap, &LogFormatter{})
|
||||
|
||||
// 新增 Hook
|
||||
LoggerInstance.AddHook(lfHook)
|
||||
}
|
||||
|
||||
func outSelect(LoggerInstance *logrus.Logger, RunMode string) {
|
||||
if RunMode != "debug" {
|
||||
src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
LoggerInstance.SetOutput(src)
|
||||
} else {
|
||||
LoggerInstance.SetOutput(os.Stdout)
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
package mq
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"reflect"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
func (p *ConsumerApi) consumerEx() {
|
||||
|
||||
defer func() {
|
||||
err := recover()
|
||||
if err != nil {
|
||||
buf := make([]byte, 1<<16)
|
||||
runtime.Stack(buf, true)
|
||||
e := reflect.ValueOf(err)
|
||||
logger.ErrorLogger.Errorln(e.String(), string(buf))
|
||||
p.E = errors.New(string(buf))
|
||||
}
|
||||
}()
|
||||
|
||||
var c int
|
||||
|
||||
for {
|
||||
p.E = p.F(ComsumerParams{Data: []byte(p.A.Data), Func: p.A.Func, DB: p.DB})
|
||||
if p.E != nil && p.A.Ack && p.A.RetryCount > c {
|
||||
c++
|
||||
continue
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ConsumerApi) consumer() {
|
||||
|
||||
if p.A.Transaction {
|
||||
if err := rds.DB.Transaction(func(ts *gorm.DB) error {
|
||||
p.DB = ts
|
||||
p.consumerEx()
|
||||
p.end()
|
||||
return p.E
|
||||
}); err != nil {
|
||||
logger.ErrorLogger.Errorln(err.Error())
|
||||
}
|
||||
} else {
|
||||
p.DB = rds.DB
|
||||
p.consumerEx()
|
||||
p.end()
|
||||
}
|
||||
}
|
||||
|
||||
func (p *ConsumerApi) end() {
|
||||
|
||||
if p.E != nil {
|
||||
p.A.Status = "1"
|
||||
|
||||
if p.A.Store {
|
||||
utils.Error(rds.DB.Table(p.A.TableName()).Where(
|
||||
"id=?", p.A.Id).Updates(map[string]interface{}{
|
||||
"status": "1",
|
||||
"err_msg": p.E.Error(),
|
||||
}).Error)
|
||||
}
|
||||
} else {
|
||||
p.A.Status = "0"
|
||||
|
||||
if p.A.Store {
|
||||
utils.Error(rds.DB.Table(p.A.TableName()).Where(
|
||||
"id=?", p.A.Id).Updates(map[string]interface{}{
|
||||
"status": "0",
|
||||
"complete_time": utils.Time2StampSecond(),
|
||||
}).Error)
|
||||
}
|
||||
}
|
||||
|
||||
if !(p.E != nil && !p.A.ChainErrorTriger) {
|
||||
for idx := range p.A.Chains {
|
||||
p.P.add(p.A.Chains[idx])
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package mq
|
||||
|
||||
import (
|
||||
"database/sql/driver"
|
||||
"encoding/json"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type AsyncTask struct {
|
||||
Id int64 `gorm:"primary_key;column:id" json:"id"` // 唯一值
|
||||
ParentId int64 `gorm:"column:parent_id" json:"parentId"` // 父级ID
|
||||
Topics string `gorm:"column:topics" json:"topics"` // 主题
|
||||
IsDelay bool `gorm:"column:is_delay" json:"isDelay"` // 是否延迟执行
|
||||
Delay int64 `gorm:"column:delay" json:"delay"` // 延迟秒数
|
||||
ExpireTime int64 `gorm:"column:exprie_time" json:"expireTime"` // 延迟执行时间
|
||||
Data string `gorm:"column:data" json:"data"` // 数据
|
||||
ErrMsg string `gorm:"column:err_msg" json:"errMsg"` // 错误信息
|
||||
Status string `gorm:"column:status" json:"status"` // 0-成功 1-失败 2-等待执行
|
||||
Ack bool `gorm:"column:ack" json:"ack"` // 是否Ack
|
||||
RetryCount int `gorm:"column:retry_count" json:"retryCount"` // 重试次数
|
||||
Transaction bool `gorm:"column:transaction" json:"transaction"` // 是否开启事物
|
||||
CreateTime int64 `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||||
CompleteTime int64 `gorm:"column:complete_time" json:"completeTime"` // 完成时间
|
||||
ChainErrorTriger bool `gorm:"column:chain_error_triger" json:"chainErrorTriger"` // 是否错误继续调用
|
||||
Store bool `gorm:"-" json:"-"` // 是否持久话
|
||||
Chains AsyncTasks `gorm:"-" json:"chains"` // 链式调用
|
||||
Func func() `gorm:"-" json:"-"` // 函数调用
|
||||
}
|
||||
|
||||
func (AsyncTask) TableName() string {
|
||||
return "async_task"
|
||||
}
|
||||
|
||||
type AsyncTasks []*AsyncTask
|
||||
|
||||
func (j *AsyncTasks) Scan(value interface{}) error {
|
||||
return json.Unmarshal(value.([]byte), &j)
|
||||
}
|
||||
|
||||
func (j AsyncTasks) Value() (driver.Value, error) {
|
||||
return json.Marshal(j)
|
||||
}
|
||||
|
||||
func (s AsyncTasks) Len() int {
|
||||
return len(s)
|
||||
}
|
||||
|
||||
func (s AsyncTasks) Less(i, j int) bool {
|
||||
return s[i].ExpireTime < s[j].ExpireTime
|
||||
}
|
||||
|
||||
func (s AsyncTasks) Swap(i, j int) {
|
||||
s[i], s[j] = s[j], s[i]
|
||||
}
|
||||
|
||||
type ComsumerParams struct {
|
||||
Data []byte
|
||||
Func func()
|
||||
DB *gorm.DB
|
||||
}
|
||||
|
||||
type ConsumerFunc func(body ComsumerParams) error
|
||||
|
||||
type ConsumerApi struct {
|
||||
E error
|
||||
F ConsumerFunc
|
||||
A *AsyncTask
|
||||
P *Async
|
||||
DB *gorm.DB
|
||||
}
|
@ -0,0 +1,176 @@
|
||||
package mq
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/idGenerate"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/utils"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
var AysncInstance *Async
|
||||
|
||||
type Async struct {
|
||||
//Tasks AsyncTasks // 数据 model.AsyncTasks
|
||||
Queue *sync.Map // chan model.AsyncTask
|
||||
handlerCh chan []interface{}
|
||||
}
|
||||
|
||||
type Task struct {
|
||||
Topics string `json:"topics"` // 主题
|
||||
Delay int64 `json:"delay"` // 延迟秒数
|
||||
Data []byte `json:"data"` // 数据
|
||||
Ack bool `json:"bool"` // 是否Ack
|
||||
RetryCount int `json:"retryCount"` // 重试次数
|
||||
Transaction bool `json:"transaction"` // 是否开启事物
|
||||
Store bool `json:"store"` // 是否持久化
|
||||
ChainErrorTriger bool `json:"chainErrorTriger"` // 是否错误继续调用
|
||||
Chains []*Task `json:"-"` // 链式调用
|
||||
Func func() `json:"-"` // 函数调用
|
||||
}
|
||||
|
||||
func New() *Async {
|
||||
AysncInstance = &Async{handlerCh: make(chan []interface{}, 1024*10), Queue: new(sync.Map)}
|
||||
return AysncInstance
|
||||
}
|
||||
|
||||
func (p *Async) SetTopics(data ...string) *Async {
|
||||
for _, item := range data {
|
||||
ch := make(chan AsyncTask, 1024*10)
|
||||
AysncInstance.Queue.Store(item, ch)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Async) Listen() {
|
||||
|
||||
tasks := AsyncTasks{}
|
||||
utils.Error(rds.DB.Table(AsyncTask{}.TableName()).Where(
|
||||
"status in ?", []string{"2"}).Scan(&tasks).Error)
|
||||
|
||||
for index := range tasks {
|
||||
tasks[index].Store = true
|
||||
AysncInstance.add(tasks[index])
|
||||
}
|
||||
}
|
||||
|
||||
func (p *Async) createTaskTo(task *Task, parentTask *AsyncTask) *AsyncTask {
|
||||
|
||||
task1 := &AsyncTask{
|
||||
Topics: task.Topics,
|
||||
Data: string(task.Data),
|
||||
Status: "2",
|
||||
Ack: task.Ack,
|
||||
Delay: task.Delay,
|
||||
CreateTime: utils.Time2StampSecond(),
|
||||
RetryCount: task.RetryCount,
|
||||
Transaction: task.Transaction,
|
||||
Store: task.Store,
|
||||
ChainErrorTriger: task.ChainErrorTriger,
|
||||
Func: task.Func,
|
||||
}
|
||||
|
||||
if task1.Func != nil {
|
||||
task1.Store = false
|
||||
}
|
||||
|
||||
if parentTask != nil {
|
||||
parentTask.Chains = append(parentTask.Chains, task1)
|
||||
task1.ParentId = parentTask.Id
|
||||
task1.Store = parentTask.Store
|
||||
task1.ChainErrorTriger = parentTask.ChainErrorTriger
|
||||
}
|
||||
|
||||
if task1.Delay > 0 {
|
||||
task1.IsDelay = true
|
||||
task1.ExpireTime = task1.CreateTime + task1.Delay
|
||||
}
|
||||
if task1.RetryCount <= 0 {
|
||||
task1.RetryCount = 2
|
||||
}
|
||||
|
||||
if task1.Store {
|
||||
utils.Error(rds.DB.Create(task1).Error)
|
||||
} else {
|
||||
task1.Id, _ = strconv.ParseInt(idGenerate.ID.Generate(""), 10, 64)
|
||||
}
|
||||
|
||||
for idx := range task.Chains {
|
||||
if task.Chains[idx] != nil {
|
||||
p.createTaskTo(task.Chains[idx], task1)
|
||||
}
|
||||
}
|
||||
|
||||
return task1
|
||||
}
|
||||
|
||||
func (p *Async) Producer(task *Task) {
|
||||
task1 := p.createTaskTo(task, nil)
|
||||
if len(task1.Chains) > 0 {
|
||||
utils.DbErrSkipRecordNotFound(rds.DB.Save(task1).Error)
|
||||
}
|
||||
p.add(task1)
|
||||
}
|
||||
|
||||
func (p *Async) Consumer(topics string, f ConsumerFunc, poolCount int) *Async {
|
||||
|
||||
if _, ok := AysncInstance.Queue.Load(topics); !ok {
|
||||
ch := make(chan *AsyncTask, 1024*10)
|
||||
AysncInstance.Queue.Store(topics, ch)
|
||||
} else {
|
||||
return p
|
||||
}
|
||||
|
||||
if poolCount <= 0 {
|
||||
poolCount = 1
|
||||
}
|
||||
|
||||
for i := 0; i < poolCount; i++ {
|
||||
go func(topics string, f ConsumerFunc) {
|
||||
if ch, ok := AysncInstance.Queue.Load(topics); ok {
|
||||
|
||||
//logger.AccessLogger.Infoln("MQ订阅:", topics)
|
||||
for row := range ch.(chan *AsyncTask) {
|
||||
//logger.AccessLogger.Infoln("TaskId:", row.Id)
|
||||
go func(row *AsyncTask) {
|
||||
api := ConsumerApi{
|
||||
F: f,
|
||||
A: row,
|
||||
P: p,
|
||||
}
|
||||
api.consumer()
|
||||
}(row)
|
||||
}
|
||||
}
|
||||
}(topics, f)
|
||||
}
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Async) push(c chan *AsyncTask, task *AsyncTask) {
|
||||
c <- task
|
||||
}
|
||||
|
||||
func (p *Async) add(task *AsyncTask) {
|
||||
|
||||
queue, ok := p.Queue.Load(task.Topics)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
if !task.IsDelay {
|
||||
p.push(queue.(chan *AsyncTask), task)
|
||||
} else if task.IsDelay && task.ExpireTime <= utils.Time2StampSecond() {
|
||||
p.push(queue.(chan *AsyncTask), task)
|
||||
} else {
|
||||
go func(task *AsyncTask, c chan *AsyncTask) {
|
||||
timer := time.NewTimer(time.Duration(task.Delay) * time.Second)
|
||||
select {
|
||||
case <-timer.C:
|
||||
p.push(queue.(chan *AsyncTask), task)
|
||||
}
|
||||
timer.Stop()
|
||||
}(task, queue.(chan *AsyncTask))
|
||||
}
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package redis
|
||||
|
||||
import (
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/logger"
|
||||
"fmt"
|
||||
"github.com/gomodule/redigo/redis"
|
||||
"time"
|
||||
)
|
||||
|
||||
var RPool *redis.Pool
|
||||
|
||||
func New(r *model.Redis) {
|
||||
RPool = newPool(r)
|
||||
}
|
||||
|
||||
func newPool(r *model.Redis) *redis.Pool {
|
||||
|
||||
return &redis.Pool{
|
||||
MaxIdle: r.MaxIdle,
|
||||
MaxActive: r.MaxActive,
|
||||
Wait: true,
|
||||
IdleTimeout: r.IdleTimeout * time.Second,
|
||||
Dial: func() (redis.Conn, error) {
|
||||
return Dial(r)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func Dial(r *model.Redis) (redis.Conn, error) {
|
||||
|
||||
for {
|
||||
c, err := dial(r)
|
||||
if err != nil {
|
||||
logger.ErrorLogger.Errorln(err.Error())
|
||||
}
|
||||
return c, nil
|
||||
}
|
||||
}
|
||||
|
||||
func dial(r *model.Redis) (redis.Conn, error) {
|
||||
c, err := redis.Dial(
|
||||
"tcp",
|
||||
fmt.Sprintf("%s:%s", r.Host, r.Port),
|
||||
redis.DialDatabase(r.Name),
|
||||
redis.DialPassword(r.PassWord),
|
||||
redis.DialReadTimeout(time.Second*r.ReadTimeout),
|
||||
redis.DialWriteTimeout(time.Second*r.WriteTimeout),
|
||||
redis.DialConnectTimeout(time.Second*r.ConnectTimeout))
|
||||
if err != nil {
|
||||
logger.ErrorLogger.Errorln("connect redis error!", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
_, err = redis.String(c.Do("PING"))
|
||||
if err != nil {
|
||||
logger.ErrorLogger.Errorln("connect redis error!", err.Error())
|
||||
return nil, err
|
||||
}
|
||||
return c, err
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/limit"
|
||||
"epur-pay/pkg/logger"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"time"
|
||||
)
|
||||
|
||||
func (p *App) WaitServerAppListen() {
|
||||
|
||||
signalChan := make(chan os.Signal, 1)
|
||||
signal.Notify(signalChan, os.Interrupt)
|
||||
sig := <-signalChan
|
||||
|
||||
logger.AccessLogger.Warnln("Get Signal:", sig, " Shutdown Server ...")
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
|
||||
defer cancel()
|
||||
|
||||
for _, v := range p.ServerApps {
|
||||
if err := v.Shutdown(ctx); err != nil {
|
||||
logger.AccessLogger.Errorln("Shutdown: ", err)
|
||||
}
|
||||
}
|
||||
logger.AccessLogger.Infoln("server exiting")
|
||||
}
|
||||
|
||||
func (p *App) ListenServerApp() *App {
|
||||
for _, v := range p.ServerApps {
|
||||
go func(v *http.Server) {
|
||||
if err := v.ListenAndServe(); err != nil {
|
||||
logger.AccessLogger.Warnf("HTTP listen: %s\n", err)
|
||||
}
|
||||
}(v)
|
||||
}
|
||||
|
||||
go func() {
|
||||
for !cache.Global.ProjectInitStatus {
|
||||
time.Sleep(100 * time.Millisecond)
|
||||
}
|
||||
if p.RunMode == "release" {
|
||||
cache.Global.LimitRouter.Api = limit.NewUriLimiter().
|
||||
AddBucketByConf(cache.Global.LimitRouter.Rule.Rules)
|
||||
}
|
||||
}()
|
||||
|
||||
logger.AccessLogger.Infof("server listening ...")
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) AddServerApp(s1 model.ListenServer, r http.Handler) *App {
|
||||
|
||||
endPoint := fmt.Sprintf(":%d", s1.Port)
|
||||
|
||||
logger.AccessLogger.Infoln(endPoint)
|
||||
ReadTimeout := time.Second
|
||||
WriteTimeout := time.Second
|
||||
|
||||
if config.Cf.Common.RunMode == "release" {
|
||||
ReadTimeout = s1.ReadTimeOut * time.Second
|
||||
WriteTimeout = s1.WriteTimeOut * time.Second
|
||||
} else {
|
||||
ReadTimeout = 60 * 60 * time.Second
|
||||
WriteTimeout = 60 * 60 * time.Second
|
||||
}
|
||||
|
||||
p.ServerApps = append(p.ServerApps, &http.Server{
|
||||
Addr: endPoint,
|
||||
Handler: r,
|
||||
ReadTimeout: ReadTimeout,
|
||||
WriteTimeout: WriteTimeout,
|
||||
MaxHeaderBytes: 1 << 20,
|
||||
})
|
||||
return p
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/logger"
|
||||
"epur-pay/pkg/mq"
|
||||
"epur-pay/pkg/rds"
|
||||
"epur-pay/pkg/redis"
|
||||
"github.com/robfig/cron"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type App struct {
|
||||
RunMode string
|
||||
ServerName string
|
||||
ServerApps []*http.Server
|
||||
}
|
||||
|
||||
func NewApp(RunMode, ServerName string) *App {
|
||||
p := &App{RunMode: RunMode, ServerName: ServerName}
|
||||
config.Cf.Common.RunMode = p.RunMode
|
||||
config.New(p.ServerName)
|
||||
logger.New(config.Cf.Common.LogFilePath, config.Cf.Common.RunMode)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) LoadDB() *App {
|
||||
rds.New(&config.Cf.Rds, config.Cf.Common.RunMode)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) LoadRedis() *App {
|
||||
redis.New(&config.Cf.Redis)
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) LoadCron() *App {
|
||||
cron.New()
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) LoadMq() *App {
|
||||
mq.New()
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *App) LoadCustomApp(F func()) *App {
|
||||
|
||||
if F != nil {
|
||||
F()
|
||||
}
|
||||
|
||||
return p
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
)
|
||||
|
||||
type Api struct {
|
||||
Tools string `json:"tools"`
|
||||
Values []interface{} `json:"values"`
|
||||
}
|
||||
|
||||
func (p *Api) Run() interface{} {
|
||||
switch p.Tools {
|
||||
case "MD5":
|
||||
return p.Md5(p.Values[0].(string))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *Api) Md5(data string) string {
|
||||
m := md5.New()
|
||||
m.Write([]byte(data))
|
||||
return hex.EncodeToString(m.Sum(nil))
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package utils
|
||||
|
||||
import "gorm.io/gorm"
|
||||
|
||||
func Error(err error) {
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func DbErrSkipRecordNotFound(err error) {
|
||||
if err != nil && err != gorm.ErrRecordNotFound {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
func DbErrRecordNotFoundBool(err error) bool {
|
||||
if err == gorm.ErrRecordNotFound {
|
||||
return true
|
||||
} else if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return false
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"io"
|
||||
"mime"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func GetContentType(filePath string, body []byte) (string, error) {
|
||||
|
||||
contentType := ""
|
||||
if len(filePath) > 0 {
|
||||
ext := filepath.Ext(filePath)
|
||||
// 根据扩展名获取 MIME 类型
|
||||
contentType = mime.TypeByExtension(ext)
|
||||
}
|
||||
|
||||
//if contentType == "" {
|
||||
//
|
||||
// contentType = http.DetectContentType(body)
|
||||
//}
|
||||
|
||||
return contentType, nil
|
||||
}
|
||||
|
||||
func GetContentTypeForIoRead(filePath string, body io.Reader) (string, error) {
|
||||
|
||||
//buffer := make([]byte, 512) // 读取文件的前 512 字节用于检测内容类型
|
||||
//_, err := body.Read(buffer)
|
||||
//if err != nil {
|
||||
// return "", err
|
||||
//}
|
||||
return GetContentType(filePath, nil)
|
||||
}
|
||||
|
||||
// 获取存储类型
|
||||
func GetStoreType(key string) (storeType string) {
|
||||
switch key {
|
||||
case "0":
|
||||
storeType = "oss"
|
||||
case "1":
|
||||
storeType = "cos"
|
||||
case "2":
|
||||
storeType = "asw"
|
||||
case "3":
|
||||
storeType = "local"
|
||||
}
|
||||
|
||||
return storeType
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"epur-pay/pkg/logger"
|
||||
)
|
||||
|
||||
func EncodeMD5(value string) string {
|
||||
m := md5.New()
|
||||
m.Write([]byte(value))
|
||||
return hex.EncodeToString(m.Sum(nil))
|
||||
}
|
||||
|
||||
func ToJson(data interface{}) string {
|
||||
if data == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
if e, err := json.Marshal(data); err != nil {
|
||||
logger.AccessLogger.Warnln(err.Error())
|
||||
} else {
|
||||
return string(e)
|
||||
}
|
||||
return ""
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package utils
|
||||
|
||||
import "time"
|
||||
|
||||
func Time2StampSecond() int64 {
|
||||
t := time.Now()
|
||||
millisecond := t.UnixNano() / 1e6
|
||||
return millisecond / 1000
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/pkg/logger"
|
||||
"github.com/gin-gonic/gin"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
func ClientIp(c *gin.Context) string {
|
||||
|
||||
ip := c.Request.Header.Get("Cf-Connecting-Ip")
|
||||
|
||||
if len(ip) <= 0 {
|
||||
ip = c.Request.Header.Get("X-Real-Ip")
|
||||
}
|
||||
if len(ip) <= 0 {
|
||||
ip = c.ClientIP()
|
||||
}
|
||||
return ip
|
||||
}
|
||||
|
||||
func IPBlackList() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
if cache.Global.Caches.BlackList.Check(ClientIp(c)) == true {
|
||||
logger.AccessLogger.Warnf("黑名单请求IP [%s]", ClientIp(c))
|
||||
c.AbortWithStatus(http.StatusServiceUnavailable)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func Logs() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
|
||||
start := time.Now()
|
||||
|
||||
c.Next()
|
||||
|
||||
logger.RouterLogger.Infoln(
|
||||
time.Now().Sub(start),
|
||||
c.Request.Header.Get("Cf-Connecting-Ip"),
|
||||
c.Request.Header.Get("Cf-Ipcountry"),
|
||||
c.Request.Method,
|
||||
c.Writer.Status(),
|
||||
c.Request.RequestURI)
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"epur-pay/cache"
|
||||
"epur-pay/pkg/config"
|
||||
"epur-pay/pkg/dapi"
|
||||
"github.com/gin-contrib/gzip"
|
||||
"github.com/gin-gonic/gin"
|
||||
cors "github.com/itsjamie/gin-cors"
|
||||
)
|
||||
|
||||
func Router() *gin.Engine {
|
||||
|
||||
gin.SetMode(config.Cf.Common.RunMode)
|
||||
|
||||
engine := gin.New()
|
||||
engine.Use(Logs(), cors.Middleware(cors.Config{
|
||||
ValidateHeaders: false,
|
||||
Origins: "*",
|
||||
RequestHeaders: "*",
|
||||
ExposedHeaders: "*",
|
||||
Methods: "*",
|
||||
MaxAge: 0,
|
||||
Credentials: false,
|
||||
}), gzip.Gzip(gzip.DefaultCompression), IPBlackList(), gin.Recovery())
|
||||
|
||||
goApi := engine.Group("/api/v1")
|
||||
|
||||
NewRouterFunc()
|
||||
for index, item := range cache.Global.Routers {
|
||||
var apiRouter *gin.RouterGroup
|
||||
if !item.Leaf {
|
||||
apiRouter = goApi.Group(item.Path)
|
||||
for indexChild, itemChild := range item.Child {
|
||||
item.Child[indexChild].Params.(*dapi.InParams).SaveEvent = itemChild.Name
|
||||
switch itemChild.Method {
|
||||
case "POST":
|
||||
apiRouter.POST(itemChild.Path, dapi.ApiDecorator(itemChild.F, itemChild.Params.(*dapi.InParams)))
|
||||
default:
|
||||
apiRouter.GET(itemChild.Path, dapi.ApiDecorator(itemChild.F, itemChild.Params.(*dapi.InParams)))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
apiRouter = goApi
|
||||
cache.Global.Routers[index].Params.(*dapi.InParams).SaveEvent = item.Name
|
||||
switch item.Method {
|
||||
case "POST":
|
||||
apiRouter.POST(item.Path, dapi.ApiDecorator(item.F, item.Params.(*dapi.InParams)))
|
||||
default:
|
||||
apiRouter.GET(item.Path, dapi.ApiDecorator(item.F, item.Params.(*dapi.InParams)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return engine
|
||||
}
|
@ -0,0 +1,171 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"epur-pay/api"
|
||||
"epur-pay/api/login"
|
||||
"epur-pay/cache"
|
||||
"epur-pay/model"
|
||||
"epur-pay/pkg/dapi"
|
||||
)
|
||||
|
||||
func RouterAppend(R *model.RouterMethod) []*model.RouterMethod {
|
||||
cache.Global.Routers = append(cache.Global.Routers, R)
|
||||
return cache.Global.Routers
|
||||
}
|
||||
|
||||
func NewRouterFunc() {
|
||||
|
||||
RouterAppend(
|
||||
&model.RouterMethod{
|
||||
Name: "测试",
|
||||
Path: "/test",
|
||||
Child: []*model.RouterMethod{
|
||||
{
|
||||
Name: "测试",
|
||||
Method: "POST",
|
||||
Path: "/test",
|
||||
Leaf: true,
|
||||
F: api.Test,
|
||||
Params: &dapi.InParams{},
|
||||
},
|
||||
{
|
||||
Name: "测试",
|
||||
Method: "POST",
|
||||
Path: "/test1",
|
||||
Leaf: true,
|
||||
F: api.Test1,
|
||||
Params: &dapi.InParams{},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
RouterAppend(
|
||||
&model.RouterMethod{
|
||||
Name: "首页",
|
||||
Path: "/index",
|
||||
Leaf: false,
|
||||
Child: []*model.RouterMethod{
|
||||
{
|
||||
Name: "菜单列表获取",
|
||||
Path: "/getMenuList",
|
||||
Method: "POST",
|
||||
Leaf: true,
|
||||
F: api.GetMenuList,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true,
|
||||
IsAgentAction: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "用户信息获取",
|
||||
Path: "/permission",
|
||||
Method: "POST",
|
||||
Leaf: true,
|
||||
F: api.GetPermissionList,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true, IsAgentAction: true},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
RouterAppend(
|
||||
&model.RouterMethod{
|
||||
Name: "登陆",
|
||||
Path: "/login",
|
||||
Child: []*model.RouterMethod{
|
||||
{
|
||||
Name: "登陆",
|
||||
Method: "POST",
|
||||
Path: "/login",
|
||||
Leaf: true,
|
||||
F: login.SsoLogin,
|
||||
Params: &dapi.InParams{
|
||||
IsSaveLog: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "注册",
|
||||
Method: "POST",
|
||||
Path: "/register",
|
||||
Leaf: true,
|
||||
F: login.SsoRegister,
|
||||
Params: &dapi.InParams{
|
||||
IsSaveLog: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "验证码",
|
||||
Method: "POST",
|
||||
Path: "/captcha",
|
||||
Leaf: true,
|
||||
F: login.SsoSendSmsCode,
|
||||
Params: &dapi.InParams{
|
||||
IsSaveLog: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
RouterAppend(
|
||||
&model.RouterMethod{
|
||||
Name: "登陆",
|
||||
Path: "/user",
|
||||
Child: []*model.RouterMethod{
|
||||
{
|
||||
Name: "用户信息",
|
||||
Method: "POST",
|
||||
Path: "/info",
|
||||
Leaf: true,
|
||||
F: login.UserInfo,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
RouterAppend(
|
||||
&model.RouterMethod{
|
||||
Name: "支付渠道管理",
|
||||
Path: "/pay_channel",
|
||||
Child: []*model.RouterMethod{
|
||||
{
|
||||
Name: "列表",
|
||||
Method: "POST",
|
||||
Path: "/get",
|
||||
Leaf: true,
|
||||
F: api.GetPayChannel,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "添加",
|
||||
Method: "POST",
|
||||
Path: "/add",
|
||||
Leaf: true,
|
||||
F: api.AddPayChannel,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true,
|
||||
IsForUpdate: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "编辑",
|
||||
Method: "POST",
|
||||
Path: "/edit",
|
||||
Leaf: true,
|
||||
F: api.EditPayChannel,
|
||||
Params: &dapi.InParams{
|
||||
IsTicket: true,
|
||||
IsForUpdate: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
)
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
# ---> Go
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, built with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
logs
|
||||
.idea
|
||||
.DS_Store
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
# vendor/
|
||||
|
@ -0,0 +1,26 @@
|
||||
|
||||
|
||||
|
||||
### Example
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/tangchen2018/go-utils/http"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
req := http.New(
|
||||
http.WithUrl("http://www.baidu.com"),
|
||||
)
|
||||
|
||||
if err := req.Do(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
fmt.Println(string(req.Result))
|
||||
}
|
||||
```
|
@ -0,0 +1,3 @@
|
||||
module ehttp
|
||||
|
||||
go 1.21.2
|
@ -0,0 +1,191 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"net/url"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Request struct {
|
||||
Method string
|
||||
Url string
|
||||
Host string
|
||||
Timeout time.Duration
|
||||
Header http.Header
|
||||
Client *http.Client
|
||||
Transport *http.Transport
|
||||
requestType RequestType
|
||||
contentType string
|
||||
QueryParams url.Values
|
||||
Body map[string]interface{}
|
||||
bodySize int
|
||||
Result []byte
|
||||
Response *http.Response
|
||||
}
|
||||
|
||||
func New(opts ...RequestOption) *Request {
|
||||
req := &Request{
|
||||
Method: GET,
|
||||
Client: &http.Client{
|
||||
Timeout: 60 * time.Second,
|
||||
Transport: &http.Transport{
|
||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||
DisableKeepAlives: true,
|
||||
Proxy: http.ProxyFromEnvironment,
|
||||
},
|
||||
},
|
||||
Transport: nil,
|
||||
bodySize: 10, // default is 10MB
|
||||
Header: make(http.Header),
|
||||
QueryParams: make(url.Values),
|
||||
requestType: TypeJSON,
|
||||
}
|
||||
for _, option := range opts {
|
||||
option(req)
|
||||
}
|
||||
return req
|
||||
}
|
||||
|
||||
func (p *Request) SetBody(key string, value interface{}) *Request {
|
||||
if p.Body == nil {
|
||||
p.Body = make(map[string]interface{})
|
||||
}
|
||||
p.Body[key] = value
|
||||
return p
|
||||
}
|
||||
|
||||
func (p *Request) structureRequest() (io.Reader, error) {
|
||||
|
||||
if len(p.Method) <= 0 {
|
||||
p.Method = GET
|
||||
}
|
||||
|
||||
var (
|
||||
body io.Reader
|
||||
bw *multipart.Writer
|
||||
)
|
||||
// multipart-form-data
|
||||
if p.requestType == TypeMultipartFormData {
|
||||
body = &bytes.Buffer{}
|
||||
bw = multipart.NewWriter(body.(io.Writer))
|
||||
}
|
||||
|
||||
if p.QueryParams != nil && len(p.QueryParams) > 0 {
|
||||
p.Url = fmt.Sprintf("%s?%s", p.Url, p.QueryParams.Encode())
|
||||
}
|
||||
|
||||
switch p.Method {
|
||||
case GET:
|
||||
switch p.requestType {
|
||||
case TypeJSON:
|
||||
p.contentType = types[TypeJSON]
|
||||
case TypeForm, TypeFormData, TypeUrlencoded:
|
||||
p.contentType = types[TypeForm]
|
||||
case TypeMultipartFormData:
|
||||
p.contentType = bw.FormDataContentType()
|
||||
case TypeXML:
|
||||
p.contentType = types[TypeXML]
|
||||
default:
|
||||
return body, errors.New("Request type Error ")
|
||||
}
|
||||
case POST, PUT, DELETE, PATCH:
|
||||
switch p.requestType {
|
||||
case TypeJSON:
|
||||
if p.Body != nil {
|
||||
if bodyTmp, err := json.Marshal(p.Body); err != nil {
|
||||
return body, errors.New("marshal error")
|
||||
} else {
|
||||
body = strings.NewReader(string(bodyTmp))
|
||||
}
|
||||
}
|
||||
p.contentType = types[TypeJSON]
|
||||
case TypeForm, TypeFormData, TypeUrlencoded:
|
||||
body = strings.NewReader(FormatURLParam(p.Body))
|
||||
p.contentType = types[TypeForm]
|
||||
|
||||
case TypeMultipartFormData:
|
||||
for k, v := range p.Body {
|
||||
// file 参数
|
||||
if file, ok := v.(*File); ok {
|
||||
fw, err := bw.CreateFormFile(k, file.Name)
|
||||
if err != nil {
|
||||
return body, err
|
||||
}
|
||||
_, _ = fw.Write(file.Content)
|
||||
continue
|
||||
}
|
||||
// text 参数
|
||||
vs, ok2 := v.(string)
|
||||
if ok2 {
|
||||
_ = bw.WriteField(k, vs)
|
||||
} else if ss := convertToString(v); ss != "" {
|
||||
_ = bw.WriteField(k, ss)
|
||||
}
|
||||
}
|
||||
_ = bw.Close()
|
||||
p.contentType = bw.FormDataContentType()
|
||||
case TypeXML:
|
||||
body = strings.NewReader(FormatURLParam(p.Body))
|
||||
p.contentType = types[TypeXML]
|
||||
default:
|
||||
return body, errors.New("Request type Error ")
|
||||
}
|
||||
default:
|
||||
return body, errors.New("Only support GET and POST and PUT and DELETE ")
|
||||
}
|
||||
return body, nil
|
||||
}
|
||||
|
||||
func (p *Request) Do() error {
|
||||
|
||||
var (
|
||||
err error
|
||||
body io.Reader
|
||||
req *http.Request
|
||||
)
|
||||
|
||||
if body, err = p.structureRequest(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if req, err = http.NewRequestWithContext(context.Background(), p.Method, p.Url, body); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
req.Header = p.Header
|
||||
|
||||
req.Header.Set("Content-Type", p.contentType)
|
||||
if p.Transport != nil {
|
||||
p.Client.Transport = p.Transport
|
||||
}
|
||||
if p.Host != "" {
|
||||
req.Host = p.Host
|
||||
}
|
||||
if p.Timeout > 0 {
|
||||
p.Client.Timeout = p.Timeout
|
||||
}
|
||||
|
||||
p.Response, err = p.Client.Do(req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func() {
|
||||
_ = p.Response.Body.Close()
|
||||
}()
|
||||
|
||||
p.Result, err = ioutil.ReadAll(io.LimitReader(p.Response.Body, int64(p.bodySize<<20))) // default 10MB change the size you want
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
@ -0,0 +1,31 @@
|
||||
package http
|
||||
|
||||
type RequestType string
|
||||
|
||||
const (
|
||||
GET = "GET"
|
||||
POST = "POST"
|
||||
PUT = "PUT"
|
||||
DELETE = "DELETE"
|
||||
PATCH = "PATCH"
|
||||
TypeJSON RequestType = "json"
|
||||
TypeXML RequestType = "xml"
|
||||
TypeUrlencoded RequestType = "urlencoded"
|
||||
TypeForm RequestType = "form"
|
||||
TypeFormData RequestType = "form-data"
|
||||
TypeMultipartFormData RequestType = "multipart-form-data"
|
||||
)
|
||||
|
||||
var types = map[RequestType]string{
|
||||
TypeJSON: "application/json",
|
||||
TypeXML: "application/xml",
|
||||
TypeUrlencoded: "application/x-www-form-urlencoded",
|
||||
TypeForm: "application/x-www-form-urlencoded",
|
||||
TypeFormData: "application/x-www-form-urlencoded",
|
||||
TypeMultipartFormData: "multipart/form-data",
|
||||
}
|
||||
|
||||
type File struct {
|
||||
Name string `json:"name"`
|
||||
Content []byte `json:"content"`
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
type RequestOption func(*Request)
|
||||
|
||||
func WithHost(host string) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.Host = host
|
||||
}
|
||||
}
|
||||
|
||||
func WithUrl(url string) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.Url = url
|
||||
}
|
||||
}
|
||||
|
||||
func WithBodySize(bodySize int) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.bodySize = bodySize
|
||||
}
|
||||
}
|
||||
|
||||
func WithMethod(method string) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.Method = method
|
||||
}
|
||||
}
|
||||
|
||||
func WithTransport(transport *http.Transport) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.Transport = transport
|
||||
}
|
||||
}
|
||||
|
||||
func WithTimeout(timeout time.Duration) RequestOption {
|
||||
return func(p *Request) {
|
||||
p.Timeout = timeout
|
||||
}
|
||||
}
|
||||
|
||||
func WithRequestType(requestType RequestType) RequestOption {
|
||||
return func(p *Request) {
|
||||
if _, ok := types[requestType]; ok {
|
||||
p.requestType = requestType
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/url"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func FormatURLParam(body map[string]interface{}) (urlParam string) {
|
||||
var (
|
||||
buf strings.Builder
|
||||
keys []string
|
||||
)
|
||||
for k := range body {
|
||||
keys = append(keys, k)
|
||||
}
|
||||
sort.Strings(keys)
|
||||
for _, k := range keys {
|
||||
v, ok := body[k].(string)
|
||||
if !ok {
|
||||
v = convertToString(body[k])
|
||||
}
|
||||
if v != "" {
|
||||
buf.WriteString(url.QueryEscape(k))
|
||||
buf.WriteByte('=')
|
||||
buf.WriteString(url.QueryEscape(v))
|
||||
buf.WriteByte('&')
|
||||
}
|
||||
}
|
||||
if buf.Len() <= 0 {
|
||||
return ""
|
||||
}
|
||||
return buf.String()[:buf.Len()-1]
|
||||
}
|
||||
|
||||
func convertToString(v interface{}) (str string) {
|
||||
if v == nil {
|
||||
return ""
|
||||
}
|
||||
var (
|
||||
bs []byte
|
||||
err error
|
||||
)
|
||||
if bs, err = json.Marshal(v); err != nil {
|
||||
return ""
|
||||
}
|
||||
str = string(bs)
|
||||
return
|
||||
}
|
||||
|
||||
func ConvertToString(v interface{}) (str string) {
|
||||
str = convertToString(v)
|
||||
return
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"ehttp/http"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
req := http.New(
|
||||
http.WithUrl("http://www.baidu.com"),
|
||||
)
|
||||
|
||||
if err := req.Do(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
fmt.Println(string(req.Result))
|
||||
}
|
Loading…
Reference in new issue