jimmyyem 5 months ago
parent
commit
9955c46da5

+ 23 - 8
internal/logic/User/do_api_user_login_logic.go

@@ -5,11 +5,13 @@ import (
 	"github.com/ArtisanCloud/PowerWeChat/v2/src/kernel"
 	"github.com/suyuan32/simple-admin-common/msg/errormsg"
 	"github.com/zeromicro/go-zero/core/errorx"
+	"time"
 	"wechat-api/ent"
 	"wechat-api/ent/wxcarduser"
 	"wechat-api/internal/svc"
 	"wechat-api/internal/types"
 	"wechat-api/internal/utils/dberrorhandler"
+	"wechat-api/internal/utils/jwt"
 
 	mini "github.com/ArtisanCloud/PowerWeChat/v2/src/miniProgram"
 	"github.com/zeromicro/go-zero/core/logx"
@@ -61,10 +63,10 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
 		return nil, errorx.NewApiInternalError("wechat login error")
 	}
 
-	_, err = l.svcCtx.DB.WxCardUser.Query().Where(wxcarduser.OpenID(resp.OpenID)).First(l.ctx)
+	userInfo, err := l.svcCtx.DB.WxCardUser.Query().Where(wxcarduser.OpenID(resp.OpenID)).First(l.ctx)
 	if err != nil {
 		if ent.IsNotFound(err) {
-			_, err = l.svcCtx.DB.WxCardUser.Create().
+			userInfo, err = l.svcCtx.DB.WxCardUser.Create().
 				SetOpenID(resp.OpenID).
 				SetUnionID(resp.UnionID).
 				SetSessionKey(resp.SessionKey).
@@ -82,8 +84,21 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
 		}
 	}
 
-	//TODO
-	usertoken := types.UserToken{}
+	//TODO 这里需要改成实际用户的数据
+	dataArray := make([]jwt.Option, 0)
+	dataArray = append(dataArray, jwt.Option{
+		Key: "userId",
+		Val: userInfo.ID,
+	})
+	token, err := jwt.NewJwtToken(
+		l.svcCtx.Config.Auth.AccessSecret,
+		time.Now().Unix(),
+		86400*30,
+		dataArray...,
+	)
+	if err != nil {
+		return nil, errorx.NewInvalidArgumentError(err.Error())
+	}
 
 	return &types.UserLoginResp{
 		BaseDataInfo: types.BaseDataInfo{
@@ -91,10 +106,10 @@ func (l *DoApiUserLoginLogic) DoApiUserLogin(req *types.UserLoginReq) (*types.Us
 			Msg:  errormsg.Success,
 		},
 		Data: types.UserToken{
-			ID:       usertoken.ID,
-			Token:    usertoken.Token,
-			Avatar:   usertoken.Avatar,
-			Nickname: usertoken.Nickname,
+			ID:       &userInfo.ID,
+			Token:    &token,
+			Avatar:   &userInfo.Avatar,
+			Nickname: &userInfo.Nickname,
 		},
 	}, nil
 }

+ 2 - 2
internal/logic/chatrecords/submit_api_chat_logic.go

@@ -190,7 +190,7 @@ func difySendChat(l *SubmitApiChatLogic, w http.ResponseWriter, content string,
 	chatReq.Query = content
 	chatReq.User = fmt.Sprintf("%d:%s", userId, userInfo.Nickname)
 
-	//TODO 这里 sessionId 要与某个 conversation_id 关联,否则查询结果不准
+	// 这里 sessionId 要与某个 conversation_id 关联,否则查询结果不准
 	rdsKeySessionId := strconv.Itoa(int(sessionId))
 	rdsValue := l.svcCtx.Rds.HGet(l.ctx, "miniprogram_dify_conversation_keys", rdsKeySessionId).Val()
 	chatReq.ConversationId = rdsValue
@@ -250,7 +250,7 @@ func difySendChat(l *SubmitApiChatLogic, w http.ResponseWriter, content string,
 				finish = true
 			}
 
-			//TODO 将 ConversationId 与 sessionId 建立关联关系
+			// 将 ConversationId 与 sessionId 建立关联关系
 			if chatData.ConversationId != "" {
 				l.svcCtx.Rds.HSet(l.ctx, "miniprogram_dify_conversation_keys", rdsKeySessionId, chatData.ConversationId)
 			}