package service import ( "context" "awesomeProject/internal/dao" "awesomeProject/internal/model/entity" "github.com/gogf/gf/crypto/gmd5" "github.com/gogf/gf/util/guid" "github.com/gogf/gf/v2/os/gsession" "github.com/gogf/gf/v2/util/gconv" "github.com/gogf/gf/v2/os/glog" ) type UserService struct { userDAO *dao.UserDAO } func NewUserService() *UserService { return &UserService{} } func GenerateToken(data interface{}) (string, error) { // 生成一个随机的 GUID 作为 token token := guid.S(gconv.Bytes(data)) // 使用 MD5 加密 token encryptedToken, err := gmd5.Encrypt(token) if err != nil { return "", err } return encryptedToken, nil } func (s *UserService) Login(ctx context.Context, username string, password string) (*entity.User, error) { // 调用 Dao 层的方法查询用户信息 user, err := s.userDAO.GetUserByUsernameAndPassword(ctx, username, password) if err != nil { return nil, err } // 生成 token token, _ := GenerateToken(password) token = "token=" + token session := gsession.NewSessionId() glog.Info(ctx, token) user.Cookie = token + ";" + session; return user, nil } // RegisterUser 注册用户 func (s *UserService) RegisterUser(ctx context.Context, user *entity.User) error { // 执行注册逻辑,例如验证用户信息、生成密码哈希等 // 调用 DAO 层保存用户信息到数据库 err := userDao.SaveUser(ctx, user) if err != nil { return err } return nil } // GetUserByID 根据用户ID获取用户信息 func (s *UserService) GetUserByID(ctx context.Context, userID int64) (*entity.User, error) { // 调用 DAO 层获取用户信息 user, err := userDao.GetUserByID(ctx, userID) if err != nil { return nil, err } return user, nil } func (s *UserService) PushMessage(ctx context.Context, req Msg){ glog.Debug("push message") go func(){ err := req.Do(ctx) if err != nil{ glog.Error(ctx,"push message error:" ,err) } }() } func (s *UserService) StatisticsInfo(ctx context.Context,user entity.User){ glog.Debug("Statistics Info") go func(){ err := user.StatisticsInfo(ctx) if err != nil{ glog.Error(ctx,"Statistics Info error:" ,err) } }() } type StudentServer struct { } type TeacherServer struct { } type ManagerServer struct { } type AdminServer struct { } type CutomrServiceServer struct { }