✨ 调整文件结构
This commit is contained in:
+4
-4
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"likedream-goframe/internal/api"
|
||||
"likedream-goframe/internal/application/filestorage"
|
||||
"likedream-goframe/internal/db"
|
||||
db2 "likedream-goframe/internal/common/db"
|
||||
_ "likedream-goframe/internal/ent/runtime"
|
||||
"likedream-goframe/internal/framework/redis"
|
||||
"likedream-goframe/internal/framework/schedule"
|
||||
@@ -17,10 +17,10 @@ import (
|
||||
)
|
||||
|
||||
func Run() {
|
||||
db.InitDB()
|
||||
db2.InitDB()
|
||||
// 如果没有数据,进行数据初始化
|
||||
if !db.CheckHasData() {
|
||||
db.GenerateData()
|
||||
if !db2.CheckHasData() {
|
||||
db2.GenerateData()
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithCancel(gctx.GetInitCtx())
|
||||
|
||||
@@ -2,6 +2,7 @@ package api
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/controller/agent"
|
||||
"likedream-goframe/internal/controller/card"
|
||||
"likedream-goframe/internal/controller/common"
|
||||
@@ -11,7 +12,6 @@ import (
|
||||
"likedream-goframe/internal/controller/role"
|
||||
"likedream-goframe/internal/controller/user"
|
||||
"likedream-goframe/internal/controller/user_login"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/middleware"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"encoding/json"
|
||||
"likedream-goframe/internal/application/cpdaily/types"
|
||||
"likedream-goframe/internal/application/filestorage"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cpimage"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
@@ -2,8 +2,9 @@ package cpdaily
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"likedream-goframe/internal/cst"
|
||||
)
|
||||
|
||||
type Info struct {
|
||||
|
||||
@@ -9,8 +9,8 @@ import (
|
||||
"likedream-goframe/internal/application/cookiejar"
|
||||
"likedream-goframe/internal/application/cpdaily/school"
|
||||
"likedream-goframe/internal/application/httpclient"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/framework/redis"
|
||||
"likedream-goframe/internal/utils"
|
||||
"net/http"
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"io"
|
||||
"likedream-goframe/internal/application/httpclient"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"likedream-goframe/internal/application/cpdaily/types"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/utils"
|
||||
"strings"
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@ import (
|
||||
"likedream-goframe/internal/application/cpdaily/task/formtype"
|
||||
"likedream-goframe/internal/application/cpdaily/taskhelper"
|
||||
"likedream-goframe/internal/application/cpdaily/types"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/utils"
|
||||
"math/rand/v2"
|
||||
"strconv"
|
||||
|
||||
@@ -2,8 +2,9 @@ package filestorage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"likedream-goframe/internal/cst"
|
||||
)
|
||||
|
||||
var GlobalS3 *S3
|
||||
|
||||
@@ -2,13 +2,14 @@ package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
"github.com/shopspring/decimal"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/ent/sysmenu"
|
||||
"likedream-goframe/internal/ent/sysrole"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
"github.com/shopspring/decimal"
|
||||
)
|
||||
|
||||
func CheckHasData() bool {
|
||||
@@ -2,7 +2,7 @@ package db
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/framework/logger"
|
||||
"likedream-goframe/internal/utils"
|
||||
@@ -2,7 +2,7 @@ package redis
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/utils"
|
||||
"time"
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ import (
|
||||
"likedream-goframe/internal/application/cpdaily/school"
|
||||
task2 "likedream-goframe/internal/application/cpdaily/task"
|
||||
"likedream-goframe/internal/application/cpdaily/task/formtype"
|
||||
"likedream-goframe/internal/common/db"
|
||||
errors2 "likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cptask"
|
||||
"likedream-goframe/internal/ent/cpuser"
|
||||
|
||||
@@ -2,7 +2,7 @@ package schedule
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/framework/redis"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ package schedule
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent/cptask"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"encoding/gob"
|
||||
"errors"
|
||||
"fmt"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cptask"
|
||||
"likedream-goframe/internal/framework/queue"
|
||||
@@ -82,7 +82,7 @@ func (ts *TaskScanner) StopScan() {
|
||||
|
||||
func (ts *TaskScanner) scanCpdailyTask() {
|
||||
|
||||
currentTime := time.Now().In(cst.TimeZoneShangHai)
|
||||
currentTime := time.Now().In(cst2.TimeZoneShangHai)
|
||||
|
||||
// 只查询30分钟以内的任务
|
||||
minExecuteTime := currentTime.Add(-30 * time.Minute).Unix()
|
||||
@@ -97,7 +97,7 @@ func (ts *TaskScanner) scanCpdailyTask() {
|
||||
for _, task := range allTasks {
|
||||
// 30分钟之前的任务不再执行,但是要重置下次执行时间
|
||||
if *task.NextExecuteTime < minExecuteTime {
|
||||
originExecuteTime := time.Unix(*task.NextExecuteTime, 0).In(cst.TimeZoneShangHai).Format("2006-01-02 15:04:05")
|
||||
originExecuteTime := time.Unix(*task.NextExecuteTime, 0).In(cst2.TimeZoneShangHai).Format("2006-01-02 15:04:05")
|
||||
g.Log().Debugf(ts.ctx, "任务ID %d 已过期,原来预计执行时间:%s,跳过执行", task.ID, originExecuteTime)
|
||||
continue
|
||||
}
|
||||
@@ -112,16 +112,16 @@ func (ts *TaskScanner) scanCpdailyTask() {
|
||||
utils.OkOrPanic(e, oops.WithContext(ts.ctx).With("payload", payload).In("CpdailyTaskScanner.scanCpdailyTask").Wrap)
|
||||
|
||||
year, month, day := currentTime.Date()
|
||||
execTime := time.Date(year, month, day, *task.ExecuteHour, *task.ExecuteMinute, 0, 0, cst.TimeZoneShangHai)
|
||||
execTime := time.Date(year, month, day, *task.ExecuteHour, *task.ExecuteMinute, 0, 0, cst2.TimeZoneShangHai)
|
||||
|
||||
e = utils.Catch(func() {
|
||||
queue.AddTask(ts.ctx, asynq.NewTask(cst.TaskCpdaily, payloadWriter.Bytes()),
|
||||
queue.AddTask(ts.ctx, asynq.NewTask(cst2.TaskCpdaily, payloadWriter.Bytes()),
|
||||
asynq.TaskID(fmt.Sprintf("cpdaily:task:schedule:%d", task.ID)),
|
||||
asynq.MaxRetry(3),
|
||||
asynq.Unique(10*time.Second),
|
||||
asynq.ProcessAt(execTime),
|
||||
asynq.Deadline(execTime.Add(12*time.Minute)),
|
||||
asynq.Queue(cst.TaskQueueCpdaily),
|
||||
asynq.Queue(cst2.TaskQueueCpdaily),
|
||||
)
|
||||
// 更新未开始的任务状态为队列中
|
||||
db.Global.CpTask.Update().Where(cptask.ID(task.ID), cptask.TaskStatusEQ(cptask.TaskStatusNotStart)).SetTaskStatus(cptask.TaskStatusQueue).Exec(ts.ctx)
|
||||
|
||||
@@ -2,7 +2,7 @@ package schedule
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/cst"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/framework/redis"
|
||||
"likedream-goframe/internal/utils"
|
||||
"time"
|
||||
@@ -17,7 +17,7 @@ var globalServer *asynq.Server
|
||||
func initServer(ctx context.Context) {
|
||||
cfg := g.Cfg()
|
||||
|
||||
taskConcurrency := cfg.MustGetWithEnv(ctx, cst.ConfigTaskConcurrency).Int()
|
||||
taskConcurrency := cfg.MustGetWithEnv(ctx, cst2.ConfigTaskConcurrency).Int()
|
||||
|
||||
globalServer = asynq.NewServerFromRedisClient(redis.GetClient(), asynq.Config{
|
||||
Concurrency: taskConcurrency,
|
||||
@@ -29,17 +29,17 @@ func initServer(ctx context.Context) {
|
||||
DelayedTaskCheckInterval: 10 * time.Second,
|
||||
ErrorHandler: taskErrorHandler{},
|
||||
Queues: map[string]int{
|
||||
cst.TaskQueueEmail: 2,
|
||||
cst.TaskQueueCpdaily: 10,
|
||||
cst.TaskQueueDefault: 1,
|
||||
cst2.TaskQueueEmail: 2,
|
||||
cst2.TaskQueueCpdaily: 10,
|
||||
cst2.TaskQueueDefault: 1,
|
||||
},
|
||||
})
|
||||
|
||||
mux := asynq.NewServeMux()
|
||||
|
||||
mux.Handle(cst.TaskCpdaily, &CpdailyTaskHandler{})
|
||||
mux.Handle(cst.TaskEmail, &EmailTaskHandler{})
|
||||
mux.Handle(cst.TaskResetDaily, &ResetTaskHandler{})
|
||||
mux.Handle(cst2.TaskCpdaily, &CpdailyTaskHandler{})
|
||||
mux.Handle(cst2.TaskEmail, &EmailTaskHandler{})
|
||||
mux.Handle(cst2.TaskResetDaily, &ResetTaskHandler{})
|
||||
|
||||
e := globalServer.Start(mux)
|
||||
utils.OkOrPanic(e)
|
||||
@@ -49,7 +49,7 @@ type taskErrorHandler struct {
|
||||
}
|
||||
|
||||
func (t taskErrorHandler) HandleError(ctx context.Context, task *asynq.Task, err error) {
|
||||
if task.Type() == cst.TaskCpdaily {
|
||||
if task.Type() == cst2.TaskCpdaily {
|
||||
g.Log().Errorf(ctx, "今日校园任务执行失败: %+v", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package middleware
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"likedream-goframe/internal/cst"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/framework/redis"
|
||||
"likedream-goframe/internal/service"
|
||||
@@ -28,7 +28,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
r.Middleware.Next()
|
||||
return
|
||||
}
|
||||
token := r.Request.Header.Get(cst.AuthorizationKey)
|
||||
token := r.Request.Header.Get(cst2.AuthorizationKey)
|
||||
if token == "" || !strings.HasPrefix(token, "Bearer ") {
|
||||
r.Response.ClearBuffer()
|
||||
r.Response.WriteJson(utils.NotLogin())
|
||||
@@ -46,7 +46,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
userIdF64 := claims["userId"].(float64)
|
||||
userId := int64(userIdF64)
|
||||
userIdStr := strconv.FormatInt(userId, 10)
|
||||
infoCmd := redis.GetClient().Get(r.GetCtx(), cst.RedisUserInfo+userIdStr)
|
||||
infoCmd := redis.GetClient().Get(r.GetCtx(), cst2.RedisUserInfo+userIdStr)
|
||||
if infoCmd.Err() != nil && !errors.Is(infoCmd.Err(), redis.Nil) {
|
||||
r.Response.ClearBuffer()
|
||||
r.Response.WriteJson(utils.FailBusiness("验证服务异常"))
|
||||
@@ -58,7 +58,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
var userInfo *ent.SysUser
|
||||
if errors.Is(infoCmd.Err(), redis.Nil) {
|
||||
userInfo = service.Global.UserLogin.UserInfo(userId, r.GetCtx())
|
||||
redis.GetClient().SetEx(r.GetCtx(), cst.RedisUserInfo+userIdStr, userInfo, time.Duration(cst.RedisUserInfoExpire)*time.Second)
|
||||
redis.GetClient().SetEx(r.GetCtx(), cst2.RedisUserInfo+userIdStr, userInfo, time.Duration(cst2.RedisUserInfoExpire)*time.Second)
|
||||
} else {
|
||||
e := sonic.UnmarshalString(info, &userInfo)
|
||||
if e != nil {
|
||||
@@ -68,7 +68,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
return
|
||||
}
|
||||
}
|
||||
ctx := context.WithValue(r.GetCtx(), cst.CtxUserInfo, userInfo)
|
||||
ctx := context.WithValue(r.GetCtx(), cst2.CtxUserInfo, userInfo)
|
||||
|
||||
// 存储权限信息
|
||||
roles := userInfo.Edges.Roles
|
||||
@@ -76,7 +76,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
if len(roles) > 0 {
|
||||
for _, role := range roles {
|
||||
// admin 拥有所有的权限
|
||||
if role.Label == cst.KeyRoleAdmin {
|
||||
if role.Label == cst2.KeyRoleAdmin {
|
||||
permissionList = append(permissionList, "*")
|
||||
}
|
||||
for _, menu := range role.Edges.Menus {
|
||||
@@ -84,7 +84,7 @@ func AuthHandler(r *ghttp.Request) {
|
||||
}
|
||||
}
|
||||
}
|
||||
ctx = context.WithValue(ctx, cst.CtxPermissionList, permissionList)
|
||||
ctx = context.WithValue(ctx, cst2.CtxPermissionList, permissionList)
|
||||
r.SetCtx(ctx)
|
||||
r.Middleware.Next()
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
"github.com/gogf/gf/v2/net/ghttp"
|
||||
|
||||
@@ -3,8 +3,8 @@ package agent
|
||||
import (
|
||||
"context"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysrole"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
|
||||
@@ -2,8 +2,8 @@ package balance
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
@@ -3,7 +3,7 @@ package card
|
||||
import (
|
||||
"context"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/syscard"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"io"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/application/filestorage"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent/cpimage"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
|
||||
@@ -11,9 +11,9 @@ import (
|
||||
"likedream-goframe/internal/application/cpdaily/school"
|
||||
"likedream-goframe/internal/application/cpdaily/task"
|
||||
"likedream-goframe/internal/application/cpdaily/task/formtype"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
db2 "likedream-goframe/internal/common/db"
|
||||
errors2 "likedream-goframe/internal/common/errors"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cptask"
|
||||
"likedream-goframe/internal/ent/cpuser"
|
||||
@@ -37,7 +37,7 @@ type CpTaskServiceV1 struct {
|
||||
func (v CpTaskServiceV1) GetRecentTasks(ctx context.Context, req *v1.GetRecentTasksReq) *utils.Response[[]string] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpuser
|
||||
cpUser := db.Global.CpUser.Query().Where(cpuser.ID(req.UserId), cpuser.HasSysuserWith(sysuser.ID(user.ID))).WithSysuser().WithSchool().OnlyX(ctx)
|
||||
cpUser := db2.Global.CpUser.Query().Where(cpuser.ID(req.UserId), cpuser.HasSysuserWith(sysuser.ID(user.ID))).WithSysuser().WithSchool().OnlyX(ctx)
|
||||
if cpUser.Edges.Sysuser == nil {
|
||||
utils.OkOrPanic(errors2.NewBusinessError(400, "非法的今日校园账号"))
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func (v CpTaskServiceV1) GetRecentTasks(ctx context.Context, req *v1.GetRecentTa
|
||||
loginExecutor := login.GetCpdailyLoginBySchoolInfo(ctx, &schoolDetail)
|
||||
loginExecutor.Login(ctx, &schoolDetail, cpUser.Username, cpUser.Password)
|
||||
cookie := loginExecutor.GetCookieString()
|
||||
db.Global.CpUser.UpdateOne(cpUser).SetCookie(cookie).ExecX(ctx)
|
||||
db2.Global.CpUser.UpdateOne(cpUser).SetCookie(cookie).ExecX(ctx)
|
||||
client = login.GetClient(ctx, cookie)
|
||||
}
|
||||
taskService := task.GetCpdailyTaskService(ctx, req.Type, cpUser.Cookie, cpUser.SchoolID)
|
||||
@@ -58,11 +58,11 @@ func (v CpTaskServiceV1) GetRecentTasks(ctx context.Context, req *v1.GetRecentTa
|
||||
func (v CpTaskServiceV1) AddTask(ctx context.Context, req *v1.AddTaskReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpuser
|
||||
cpUser := db.Global.CpUser.Query().Where(cpuser.ID(req.UserId), cpuser.HasSysuserWith(sysuser.ID(user.ID))).WithSysuser().OnlyX(ctx)
|
||||
cpUser := db2.Global.CpUser.Query().Where(cpuser.ID(req.UserId), cpuser.HasSysuserWith(sysuser.ID(user.ID))).WithSysuser().OnlyX(ctx)
|
||||
if cpUser.Edges.Sysuser == nil {
|
||||
utils.OkOrPanic(errors2.NewBusinessError(400, "非法的今日校园账号"))
|
||||
}
|
||||
db.Global.CpTask.Create().
|
||||
db2.Global.CpTask.Create().
|
||||
SetCpUserID(req.UserId).
|
||||
SetTaskType(cptask.TaskType(req.Type)).
|
||||
SetTitle(req.Title).
|
||||
@@ -76,7 +76,7 @@ func (v CpTaskServiceV1) AddTask(ctx context.Context, req *v1.AddTaskReq) *utils
|
||||
|
||||
func (v CpTaskServiceV1) List(ctx context.Context, req *v1.CpTaskListReq) *utils.Response[[]*ent.CpTask] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
query := db.Global.CpTask.Query().Where(cptask.HasSysUserWith(sysuser.ID(user.ID))).WithCpUser().Order(ent.Desc(cptask.FieldCreateTime))
|
||||
query := db2.Global.CpTask.Query().Where(cptask.HasSysUserWith(sysuser.ID(user.ID))).WithCpUser().Order(ent.Desc(cptask.FieldCreateTime))
|
||||
if req.TaskType != "" {
|
||||
query.Where(cptask.TaskTypeEQ(req.TaskType))
|
||||
}
|
||||
@@ -102,7 +102,7 @@ func (v CpTaskServiceV1) List(ctx context.Context, req *v1.CpTaskListReq) *utils
|
||||
func (v CpTaskServiceV1) TaskFormData(ctx context.Context, req *v1.GetCpTaskFormReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpTask
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).
|
||||
WithCpUser().WithSysUser().OnlyX(ctx)
|
||||
cpUser := cpTask.Edges.CpUser
|
||||
@@ -121,7 +121,7 @@ func (v CpTaskServiceV1) TaskFormData(ctx context.Context, req *v1.GetCpTaskForm
|
||||
loginExecutor := login.GetCpdailyLoginBySchoolInfo(ctx, &schoolDetail)
|
||||
loginExecutor.Login(ctx, &schoolDetail, cpUser.Username, cpUser.Password)
|
||||
cpUser.Cookie = loginExecutor.GetCookieString()
|
||||
db.Global.CpUser.UpdateOne(cpUser).SetCookie(cpUser.Cookie).ExecX(ctx)
|
||||
db2.Global.CpUser.UpdateOne(cpUser).SetCookie(cpUser.Cookie).ExecX(ctx)
|
||||
client = login.GetClient(ctx, cpUser.Cookie)
|
||||
}
|
||||
taskService := task.GetCpdailyTaskService(ctx, cpTask.TaskType, cpUser.Cookie, cpUser.SchoolID)
|
||||
@@ -133,14 +133,14 @@ func (v CpTaskServiceV1) TaskFormData(ctx context.Context, req *v1.GetCpTaskForm
|
||||
func (v CpTaskServiceV1) PutTaskFormData(ctx context.Context, req *v1.PutCpTaskFormReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpTask
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).
|
||||
WithCpUser().WithSysUser().OnlyX(ctx)
|
||||
cpUser := cpTask.Edges.CpUser
|
||||
if cpUser == nil {
|
||||
utils.OkOrPanic(errors2.NewBusinessError(400, "非法的今日校园账号"))
|
||||
}
|
||||
update := db.Global.CpTask.UpdateOne(cpTask)
|
||||
update := db2.Global.CpTask.UpdateOne(cpTask)
|
||||
marshal, _ := json.Marshal(req.Forms)
|
||||
update.SetFormData(string(marshal))
|
||||
if cpTask.Step == cptask.StepForm {
|
||||
@@ -153,7 +153,7 @@ func (v CpTaskServiceV1) PutTaskFormData(ctx context.Context, req *v1.PutCpTaskF
|
||||
func (v CpTaskServiceV1) TaskExecute(ctx context.Context, req *v1.GetCpTaskExecuteReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpTask
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).OnlyX(ctx)
|
||||
if cpTask == nil {
|
||||
utils.OkOrPanic(errors2.NewBusinessError(400, "非法的今日校园账号"))
|
||||
@@ -164,7 +164,7 @@ func (v CpTaskServiceV1) TaskExecute(ctx context.Context, req *v1.GetCpTaskExecu
|
||||
func (v CpTaskServiceV1) PostExecute(ctx context.Context, req *v1.PostCpTaskExecuteReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpTask
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).
|
||||
WithCpUser().WithSysUser().OnlyX(ctx)
|
||||
if cpTask == nil {
|
||||
@@ -182,15 +182,15 @@ func (v CpTaskServiceV1) PostExecute(ctx context.Context, req *v1.PostCpTaskExec
|
||||
originalStatus := cpTask.TaskStatus
|
||||
|
||||
//扣积分
|
||||
basePoint := decimal.NewFromInt(cst.BasePointCpdaily)
|
||||
basePoint := decimal.NewFromInt(cst2.BasePointCpdaily)
|
||||
if user.Edges.Agent != nil {
|
||||
basePoint = basePoint.Mul(user.Edges.Agent.Rate)
|
||||
}
|
||||
needPoint := basePoint.Mul(decimal.NewFromInt(int64(consume)))
|
||||
balance.BalanceService.ChangeUserBalance(ctx, user.ID, needPoint.Neg())
|
||||
// 更新任务
|
||||
e := db.WithTx(ctx, func(ctx context.Context, tx *ent.Tx) {
|
||||
cpTask := db.Global.CpTask.UpdateOne(cpTask).
|
||||
e := db2.WithTx(ctx, func(ctx context.Context, tx *ent.Tx) {
|
||||
cpTask := db2.Global.CpTask.UpdateOne(cpTask).
|
||||
SetStep(cptask.StepComplete).
|
||||
SetFrequency(req.Frequency).
|
||||
SetTaskStatus(cptask.TaskStatusNotStart).
|
||||
@@ -204,8 +204,8 @@ func (v CpTaskServiceV1) PostExecute(ctx context.Context, req *v1.PostCpTaskExec
|
||||
|
||||
// 只有在原始状态为未开始时,才考虑5分钟窗口立即扫描
|
||||
if originalStatus == cptask.TaskStatusNotStart {
|
||||
currentTime := time.Now().In(cst.TimeZoneShangHai)
|
||||
executeTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), req.ExecuteHour, req.ExecuteMinute, 0, 0, cst.TimeZoneShangHai)
|
||||
currentTime := time.Now().In(cst2.TimeZoneShangHai)
|
||||
executeTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day(), req.ExecuteHour, req.ExecuteMinute, 0, 0, cst2.TimeZoneShangHai)
|
||||
timeDiff := executeTime.Sub(currentTime)
|
||||
|
||||
if timeDiff >= -5*time.Minute && timeDiff <= 5*time.Minute {
|
||||
@@ -220,7 +220,7 @@ func (v CpTaskServiceV1) PostExecute(ctx context.Context, req *v1.PostCpTaskExec
|
||||
nextExecuteAt = utils.GetCpdailyNextExecuteTime(cpTask)
|
||||
}
|
||||
|
||||
db.Global.CpTask.UpdateOne(cpTask).SetNextExecuteTime(nextExecuteAt).ExecX(ctx)
|
||||
db2.Global.CpTask.UpdateOne(cpTask).SetNextExecuteTime(nextExecuteAt).ExecX(ctx)
|
||||
}, &sql.TxOptions{})
|
||||
utils.OkOrPanic(e)
|
||||
|
||||
@@ -230,13 +230,13 @@ func (v CpTaskServiceV1) PostExecute(ctx context.Context, req *v1.PostCpTaskExec
|
||||
func (v CpTaskServiceV1) Delete(ctx context.Context, req *v1.DeleteTaskReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
// 检测是否属于自己的cpTask
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).
|
||||
WithCpUser().WithSysUser().OnlyX(ctx)
|
||||
if cpTask == nil {
|
||||
utils.OkOrPanic(errors2.NewBusinessError(400, "非法的今日校园账号"))
|
||||
}
|
||||
db.Global.CpTask.DeleteOne(cpTask).ExecX(ctx)
|
||||
db2.Global.CpTask.DeleteOne(cpTask).ExecX(ctx)
|
||||
return utils.SuccessWithMsg("删除成功")
|
||||
}
|
||||
|
||||
@@ -245,7 +245,7 @@ func (v CpTaskServiceV1) ExecuteNow(ctx context.Context, req *v1.ExecuteNowReq)
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
|
||||
// 查询任务并检查状态
|
||||
cpTask := db.Global.CpTask.Query().
|
||||
cpTask := db2.Global.CpTask.Query().
|
||||
Where(cptask.ID(req.Id), cptask.UserID(user.ID)).
|
||||
Select(cptask.FieldTaskStatus, cptask.FieldFrequency, cptask.FieldSuccessCount).
|
||||
FirstX(ctx)
|
||||
@@ -276,15 +276,15 @@ func (v CpTaskServiceV1) ExecuteNow(ctx context.Context, req *v1.ExecuteNowReq)
|
||||
// 由于已经检查了任务状态,不需要使用 Unique 来防重复
|
||||
taskID := fmt.Sprintf("cpdaily:task:manual:%d:%d", req.Id, time.Now().UnixNano())
|
||||
e = utils.Catch(func() {
|
||||
queue.AddTask(ctx, asynq.NewTask(cst.TaskCpdaily, payloadWriter.Bytes()),
|
||||
queue.AddTask(ctx, asynq.NewTask(cst2.TaskCpdaily, payloadWriter.Bytes()),
|
||||
asynq.TaskID(taskID),
|
||||
asynq.Unique(5*time.Second),
|
||||
asynq.MaxRetry(0),
|
||||
asynq.Timeout(10*time.Minute),
|
||||
asynq.Queue(cst.TaskQueueCpdaily),
|
||||
asynq.Queue(cst2.TaskQueueCpdaily),
|
||||
)
|
||||
// 更新未开始的任务状态为队列中
|
||||
db.Global.CpTask.Update().Where(cptask.ID(cpTask.ID), cptask.TaskStatusEQ(cptask.TaskStatusNotStart)).SetTaskStatus(cptask.TaskStatusQueue).Exec(ctx)
|
||||
db2.Global.CpTask.Update().Where(cptask.ID(cpTask.ID), cptask.TaskStatusEQ(cptask.TaskStatusNotStart)).SetTaskStatus(cptask.TaskStatusQueue).Exec(ctx)
|
||||
})
|
||||
if e != nil {
|
||||
g.Log().Errorf(ctx, "立即执行任务入列失败: %+v", e)
|
||||
@@ -295,7 +295,7 @@ func (v CpTaskServiceV1) ExecuteNow(ctx context.Context, req *v1.ExecuteNowReq)
|
||||
|
||||
func (v CpTaskServiceV1) PauseTask(ctx context.Context, req *v1.PauseTaskReq) *utils.Response[any] {
|
||||
user := utils.GetUserInfoFromCtx(ctx)
|
||||
cpTask := db.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cpTask := db2.Global.CpTask.Query().Where(cptask.ID(req.Id),
|
||||
cptask.HasSysUserWith(sysuser.ID(user.ID))).
|
||||
WithCpUser().WithSysUser().OnlyX(ctx)
|
||||
if cpTask == nil {
|
||||
@@ -303,11 +303,11 @@ func (v CpTaskServiceV1) PauseTask(ctx context.Context, req *v1.PauseTaskReq) *u
|
||||
}
|
||||
if cpTask.TaskStatus == cptask.TaskStatusPause {
|
||||
nextExecuteAt := utils.GetCpdailyNextExecuteTime(cpTask)
|
||||
db.Global.CpTask.UpdateOne(cpTask).SetTaskStatus(cptask.TaskStatusNotStart).SetNextExecuteTime(nextExecuteAt).ExecX(ctx)
|
||||
db2.Global.CpTask.UpdateOne(cpTask).SetTaskStatus(cptask.TaskStatusNotStart).SetNextExecuteTime(nextExecuteAt).ExecX(ctx)
|
||||
return utils.SuccessWithMsg("恢复成功")
|
||||
|
||||
} else {
|
||||
db.Global.CpTask.UpdateOne(cpTask).SetTaskStatus(cptask.TaskStatusPause).SetNextExecuteTime(-1).ExecX(ctx)
|
||||
db2.Global.CpTask.UpdateOne(cpTask).SetTaskStatus(cptask.TaskStatusPause).SetNextExecuteTime(-1).ExecX(ctx)
|
||||
return utils.SuccessWithMsg("暂停成功")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package cpdaily
|
||||
import (
|
||||
"context"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cptasklog"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/application/cpdaily/login"
|
||||
"likedream-goframe/internal/application/cpdaily/school"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/cpschool"
|
||||
"likedream-goframe/internal/ent/cpuser"
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"encoding/gob"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"likedream-goframe/internal/cst"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/framework/logger"
|
||||
email2 "likedream-goframe/internal/framework/model/email"
|
||||
"likedream-goframe/internal/framework/queue"
|
||||
@@ -45,12 +45,12 @@ func NewV1() *EmailServiceV1 {
|
||||
cfg := g.Cfg()
|
||||
|
||||
config := EmailConfig{
|
||||
SMTPHost: cfg.MustGetWithEnv(ctx, cst.ConfigEmailSMTPHost).String(),
|
||||
SMTPPort: cfg.MustGetWithEnv(ctx, cst.ConfigEmailSMTPPort).Int(),
|
||||
SMTPUsername: cfg.MustGetWithEnv(ctx, cst.ConfigEmailSMTPUsername).String(),
|
||||
SMTPPassword: cfg.MustGetWithEnv(ctx, cst.ConfigEmailSMTPPassword).String(),
|
||||
FromEmail: cfg.MustGetWithEnv(ctx, cst.ConfigEmailFromEmail).String(),
|
||||
FromName: cfg.MustGetWithEnv(ctx, cst.ConfigEmailFromName).String(),
|
||||
SMTPHost: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailSMTPHost).String(),
|
||||
SMTPPort: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailSMTPPort).Int(),
|
||||
SMTPUsername: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailSMTPUsername).String(),
|
||||
SMTPPassword: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailSMTPPassword).String(),
|
||||
FromEmail: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailFromEmail).String(),
|
||||
FromName: cfg.MustGetWithEnv(ctx, cst2.ConfigEmailFromName).String(),
|
||||
}
|
||||
|
||||
return &EmailServiceV1{
|
||||
@@ -65,7 +65,7 @@ func (s *EmailServiceV1) SendSignupEmail(ctx context.Context, toEmail, username
|
||||
return utils.FailBusiness("邮件服务未配置")
|
||||
}
|
||||
|
||||
subject := fmt.Sprintf("欢迎注册%s", cst.AppName)
|
||||
subject := fmt.Sprintf("欢迎注册%s", cst2.AppName)
|
||||
body, err := s.renderSignupEmailTemplate(username, token)
|
||||
if err != nil {
|
||||
logger.Logger.Error("邮件模板渲染失败")
|
||||
@@ -119,7 +119,7 @@ func (s *EmailServiceV1) sendEmail(ctx context.Context, to, subject, body string
|
||||
})
|
||||
utils.OkOrPanic(e, oops.WithContext(ctx).Wrap)
|
||||
|
||||
task := queue.AddTask(ctx, asynq.NewTask(cst.TaskEmail, payload.Bytes()), asynq.Queue(cst.TaskQueueEmail),
|
||||
task := queue.AddTask(ctx, asynq.NewTask(cst2.TaskEmail, payload.Bytes()), asynq.Queue(cst2.TaskQueueEmail),
|
||||
asynq.MaxRetry(3),
|
||||
asynq.Timeout(10*time.Minute),
|
||||
)
|
||||
@@ -157,11 +157,11 @@ func (s *EmailServiceV1) renderSignupEmailTemplate(username string, token string
|
||||
return "", fmt.Errorf("解析注册邮件模板失败: %v", err)
|
||||
}
|
||||
|
||||
get, err := g.Cfg().Get(gctx.New(), cst.ConfigEmailConfirmBaseUrl)
|
||||
get, err := g.Cfg().Get(gctx.New(), cst2.ConfigEmailConfirmBaseUrl)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
data := NewSignupTemplateData(username, cst.AppName, cst.AppCopyright, get.String()+token)
|
||||
data := NewSignupTemplateData(username, cst2.AppName, cst2.AppCopyright, get.String()+token)
|
||||
|
||||
var buf bytes.Buffer
|
||||
err = tmpl.ExecuteTemplate(&buf, "signup_confirm.gohtml", data)
|
||||
@@ -180,7 +180,7 @@ func (s *EmailServiceV1) renderTaskNotificationTemplate(taskName string, status
|
||||
return "", fmt.Errorf("解析任务通知邮件模板失败: %v", err)
|
||||
}
|
||||
|
||||
data := NewTaskNotificationTemplateData(taskName, status, details, cst.AppName, cst.AppCopyright)
|
||||
data := NewTaskNotificationTemplateData(taskName, status, details, cst2.AppName, cst2.AppCopyright)
|
||||
|
||||
var buf bytes.Buffer
|
||||
err = tmpl.ExecuteTemplate(&buf, "task_notification.gohtml", data)
|
||||
|
||||
@@ -3,7 +3,7 @@ package email
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package menu
|
||||
import (
|
||||
"context"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysmenu"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
@@ -3,7 +3,7 @@ package role
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysmenu"
|
||||
"likedream-goframe/internal/ent/sysrole"
|
||||
|
||||
@@ -3,7 +3,7 @@ package user
|
||||
import (
|
||||
"context"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
"likedream-goframe/internal/utils"
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
v1 "likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/syscard"
|
||||
"likedream-goframe/internal/ent/sysmenu"
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"crypto/rand"
|
||||
"encoding/base64"
|
||||
"likedream-goframe/internal/api/v1"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/db"
|
||||
cst2 "likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/common/db"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/ent/sysrole"
|
||||
"likedream-goframe/internal/ent/sysuser"
|
||||
@@ -42,7 +42,7 @@ func (s *UserLoginServiceV1) Login(ctx context.Context, req *v1.UserLoginReq) *u
|
||||
return utils.FailParam("当前用户被封禁")
|
||||
}
|
||||
r := ghttp.RequestFromCtx(ctx)
|
||||
r.Response.Header().Set(cst.AuthorizationKey, utils.GenerateToken(user.ID))
|
||||
r.Response.Header().Set(cst2.AuthorizationKey, utils.GenerateToken(user.ID))
|
||||
return utils.SuccessWithMsg("登录成功")
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ func (s *UserLoginServiceV1) Register(ctx context.Context, req *v1.UserRegisterR
|
||||
}
|
||||
save := tmp.SaveX(ctx)
|
||||
// 绑定角色 查询出用户角色添加当前用户
|
||||
role := tx.SysRole.Query().Where(sysrole.LabelEQ(cst.KeyRoleUser)).AllX(ctx)
|
||||
role := tx.SysRole.Query().Where(sysrole.LabelEQ(cst2.KeyRoleUser)).AllX(ctx)
|
||||
tx.SysUser.UpdateOne(save).AddRoles(role...).ExecX(ctx)
|
||||
err = tx.Commit()
|
||||
utils.OkOrPanic(err, func(err error) error {
|
||||
@@ -87,7 +87,7 @@ func (s *UserLoginServiceV1) Register(ctx context.Context, req *v1.UserRegisterR
|
||||
token := make([]byte, 32)
|
||||
_, _ = rand.Read(token)
|
||||
tokenStr := base64.URLEncoding.EncodeToString(token)
|
||||
err2 := redis.GetClient().SetEx(ctx2, cst.RedisVerifyCode+tokenStr, req.Email, time.Duration(cst.RedisVerifyCodeExpire)*time.Second).Err()
|
||||
err2 := redis.GetClient().SetEx(ctx2, cst2.RedisVerifyCode+tokenStr, req.Email, time.Duration(cst2.RedisVerifyCodeExpire)*time.Second).Err()
|
||||
utils.OkOrPanic(err2, oops.WithContext(ctx2).Wrap)
|
||||
// 创建新的context避免原context被取消
|
||||
emailService := email.NewV1()
|
||||
@@ -106,7 +106,7 @@ func (s *UserLoginServiceV1) UserInfo(id int64, ctx context.Context) *ent.SysUse
|
||||
|
||||
func (s *UserLoginServiceV1) Confirm(ctx context.Context, req *v1.UserConfirmReq) *utils.Response[any] {
|
||||
client := redis.GetClient()
|
||||
emailStr := client.GetDel(ctx, cst.RedisVerifyCode+req.Token).Val()
|
||||
emailStr := client.GetDel(ctx, cst2.RedisVerifyCode+req.Token).Val()
|
||||
if emailStr == "" {
|
||||
return utils.FailParam("非法的验证")
|
||||
}
|
||||
@@ -115,6 +115,6 @@ func (s *UserLoginServiceV1) Confirm(ctx context.Context, req *v1.UserConfirmReq
|
||||
db.Global.SysUser.UpdateOne(user).SetVerify(true).SaveX(ctx)
|
||||
// 自动登录
|
||||
r := ghttp.RequestFromCtx(ctx)
|
||||
r.Response.Header().Set(cst.AuthorizationKey, utils.GenerateToken(user.ID))
|
||||
r.Response.Header().Set(cst2.AuthorizationKey, utils.GenerateToken(user.ID))
|
||||
return utils.SuccessWithMsg("验证成功")
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/os/gctx"
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
"github.com/samber/oops"
|
||||
"likedream-goframe/internal/cst"
|
||||
"time"
|
||||
)
|
||||
|
||||
type CustomClaims struct {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/ent"
|
||||
"math"
|
||||
"time"
|
||||
|
||||
@@ -2,7 +2,7 @@ package utils
|
||||
|
||||
import (
|
||||
"context"
|
||||
"likedream-goframe/internal/cst"
|
||||
"likedream-goframe/internal/common/cst"
|
||||
"likedream-goframe/internal/ent"
|
||||
"likedream-goframe/internal/framework/errors"
|
||||
"math/rand"
|
||||
|
||||
Reference in New Issue
Block a user