阶段性提交

This commit is contained in:
GoEdgeLab
2020-12-15 11:52:57 +08:00
parent c05d060aa1
commit 9b6faf18c0
7 changed files with 155 additions and 30 deletions

View File

@@ -3,7 +3,6 @@ package services
import (
"context"
"github.com/TeaOSLab/EdgeAPI/internal/db/models"
rpcutils "github.com/TeaOSLab/EdgeAPI/internal/rpc/utils"
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
)
@@ -15,12 +14,12 @@ type MessageService struct {
// 计算未读消息数
func (this *MessageService) CountUnreadMessages(ctx context.Context, req *pb.CountUnreadMessagesRequest) (*pb.RPCCountResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
adminId, userId, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
count, err := models.SharedMessageDAO.CountUnreadMessages()
count, err := models.SharedMessageDAO.CountUnreadMessages(adminId, userId)
if err != nil {
return nil, err
}
@@ -30,12 +29,12 @@ func (this *MessageService) CountUnreadMessages(ctx context.Context, req *pb.Cou
// 列出单页未读消息
func (this *MessageService) ListUnreadMessages(ctx context.Context, req *pb.ListUnreadMessagesRequest) (*pb.ListUnreadMessagesResponse, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
adminId, userId, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
messages, err := models.SharedMessageDAO.ListUnreadMessages(req.Offset, req.Size)
messages, err := models.SharedMessageDAO.ListUnreadMessages(adminId, userId, req.Offset, req.Size)
if err != nil {
return nil, err
}
@@ -89,11 +88,20 @@ func (this *MessageService) ListUnreadMessages(ctx context.Context, req *pb.List
// 设置消息已读状态
func (this *MessageService) UpdateMessageRead(ctx context.Context, req *pb.UpdateMessageReadRequest) (*pb.RPCSuccess, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
adminId, userId, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
// 校验权限
exists, err := models.SharedMessageDAO.CheckMessageUser(req.MessageId, adminId, userId)
if err != nil {
return nil, err
}
if !exists {
return nil, this.PermissionError()
}
err = models.SharedMessageDAO.UpdateMessageRead(req.MessageId, req.IsRead)
if err != nil {
return nil, err
@@ -104,14 +112,25 @@ func (this *MessageService) UpdateMessageRead(ctx context.Context, req *pb.Updat
// 设置一组消息已读状态
func (this *MessageService) UpdateMessagesRead(ctx context.Context, req *pb.UpdateMessagesReadRequest) (*pb.RPCSuccess, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
adminId, userId, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
err = models.SharedMessageDAO.UpdateMessagesRead(req.MessageIds, req.IsRead)
if err != nil {
return nil, err
// 校验权限
for _, messageId := range req.MessageIds {
exists, err := models.SharedMessageDAO.CheckMessageUser(messageId, adminId, userId)
if err != nil {
return nil, err
}
if !exists {
return nil, this.PermissionError()
}
err = models.SharedMessageDAO.UpdateMessageRead(messageId, req.IsRead)
if err != nil {
return nil, err
}
}
return this.Success()
}
@@ -119,12 +138,13 @@ func (this *MessageService) UpdateMessagesRead(ctx context.Context, req *pb.Upda
// 设置所有消息为已读
func (this *MessageService) UpdateAllMessagesRead(ctx context.Context, req *pb.UpdateAllMessagesReadRequest) (*pb.RPCSuccess, error) {
// 校验请求
_, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin)
// 校验请求
adminId, userId, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
err = models.SharedMessageDAO.UpdateAllMessagesRead()
err = models.SharedMessageDAO.UpdateAllMessagesRead(adminId, userId)
if err != nil {
return nil, err
}

View File

@@ -101,7 +101,7 @@ func (this *UserService) ListEnabledUsers(ctx context.Context, req *pb.ListEnabl
// 查询单个用户信息
func (this *UserService) FindEnabledUser(ctx context.Context, req *pb.FindEnabledUserRequest) (*pb.FindEnabledUserResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
_, _, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
@@ -127,17 +127,22 @@ func (this *UserService) FindEnabledUser(ctx context.Context, req *pb.FindEnable
}
// 检查用户名是否存在
func (this *UserService) CheckUsername(ctx context.Context, req *pb.CheckUsernameRequest) (*pb.CheckUsernameResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
func (this *UserService) CheckUserUsername(ctx context.Context, req *pb.CheckUserUsernameRequest) (*pb.CheckUserUsernameResponse, error) {
userType, userId, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin, rpcutils.UserTypeUser)
if err != nil {
return nil, err
}
// 校验权限
if userType == rpcutils.UserTypeUser && userId != req.UserId {
return nil, this.PermissionError()
}
b, err := models.SharedUserDAO.ExistUser(req.UserId, req.Username)
if err != nil {
return nil, err
}
return &pb.CheckUsernameResponse{Exists: b}, nil
return &pb.CheckUserUsernameResponse{Exists: b}, nil
}
// 登录
@@ -174,3 +179,39 @@ func (this *UserService) LoginUser(ctx context.Context, req *pb.LoginUserRequest
IsOk: true,
}, nil
}
// 修改用户基本信息
func (this *UserService) UpdateUserInfo(ctx context.Context, req *pb.UpdateUserInfoRequest) (*pb.RPCSuccess, error) {
userId, err := this.ValidateUser(ctx)
if err != nil {
return nil, err
}
if userId != req.UserId {
return nil, this.PermissionError()
}
err = models.SharedUserDAO.UpdateUserInfo(req.UserId, req.Fullname)
if err != nil {
return nil, err
}
return this.Success()
}
// 修改用户登录信息
func (this *UserService) UpdateUserLogin(ctx context.Context, req *pb.UpdateUserLoginRequest) (*pb.RPCSuccess, error) {
userId, err := this.ValidateUser(ctx)
if err != nil {
return nil, err
}
if userId != req.UserId {
return nil, this.PermissionError()
}
err = models.SharedUserDAO.UpdateUserLogin(req.UserId, req.Username, req.Password)
if err != nil {
return nil, err
}
return this.Success()
}

View File

@@ -39,7 +39,7 @@ func (this *UserBillService) GenerateAllUserBills(ctx context.Context, req *pb.G
// 计算所有账单数量
func (this *UserBillService) CountAllUserBills(ctx context.Context, req *pb.CountAllUserBillsRequest) (*pb.RPCCountResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
_, _, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}
@@ -53,7 +53,7 @@ func (this *UserBillService) CountAllUserBills(ctx context.Context, req *pb.Coun
// 列出单页账单
func (this *UserBillService) ListUserBills(ctx context.Context, req *pb.ListUserBillsRequest) (*pb.ListUserBillsResponse, error) {
_, err := this.ValidateAdmin(ctx, 0)
_, _, err := this.ValidateAdminAndUser(ctx, 0)
if err != nil {
return nil, err
}