github.com/SupenBysz/gf-admin-community@v0.7.4/sys_controller/sys_message.go (about) 1 package sys_controller 2 3 import ( 4 "context" 5 "github.com/SupenBysz/gf-admin-community/api_v1" 6 v1 "github.com/SupenBysz/gf-admin-community/api_v1/sys_api" 7 "github.com/SupenBysz/gf-admin-community/sys_model" 8 "github.com/SupenBysz/gf-admin-community/sys_model/sys_enum" 9 10 "github.com/SupenBysz/gf-admin-community/sys_service" 11 ) 12 13 type cSysMessage struct{} 14 15 var SysMessage cSysMessage 16 17 // GetMessageById 根据id查询消息 18 func (c *cSysMessage) GetMessageById(ctx context.Context, req *v1.GetMessageByIdReq) (*sys_model.SysMessageRes, error) { 19 user := sys_service.SysSession().Get(ctx).JwtClaimsUser 20 21 ret, err := sys_service.Message().GetMessageDetailById(ctx, req.Id, user.UnionMainId) 22 23 return ret, err 24 } 25 26 // CreateMessage 添加消息 27 func (c *cSysMessage) CreateMessage(ctx context.Context, req *v1.CreateMessageReq) (*sys_model.SysMessageRes, error) { 28 user := sys_service.SysSession().Get(ctx).JwtClaimsUser 29 30 // 系统消息: 那么消息发起者是主体id,userType是用户Type 31 if (req.Type & sys_enum.Message.Type.System.Code()) == sys_enum.Message.Type.System.Code() { 32 req.FromUserId = user.UnionMainId 33 req.FromUserType = user.Type 34 } 35 36 ret, err := sys_service.Message().CreateMessage(ctx, &req.SysMessage) 37 38 return ret, err 39 } 40 41 // UpdateMessage 编辑消息 (限制是还未发送的) 42 func (c *cSysMessage) UpdateMessage(ctx context.Context, req *v1.UpdateMessageReq) (*sys_model.SysMessageRes, error) { 43 ret, err := sys_service.Message().UpdateMessage(ctx, req.Id, &req.UpdateSysMessage) 44 45 return ret, err 46 } 47 48 // QueryMessage 查询消息列表 49 func (c *cSysMessage) QueryMessage(ctx context.Context, req *v1.QueryMessageReq) (*sys_model.SysMessageListRes, error) { 50 ret, err := sys_service.Message().QueryMessage(ctx, &req.SearchParams, false) 51 52 return ret, err 53 } 54 55 // QueryUserMessage 查询指定用户消息列表 56 func (c *cSysMessage) QueryUserMessage(ctx context.Context, req *v1.GetUserMessageReq) (*sys_model.SysMessageListRes, error) { 57 user := sys_service.SysSession().Get(ctx).JwtClaimsUser 58 59 ret, err := sys_service.Message().QueryUserMessage(ctx, user.Id, &req.SearchParams, false) 60 61 return ret, err 62 } 63 64 //// QueryUnionMainMessage 查询指定主体消息列表 (支持未发送的消息列表,添加查询参数) 65 //func (c *cSysMessage) QueryUnionMainMessage(ctx context.Context, req *v1.QueryUnionMainMessageReq) (*sys_model.SysMessageListRes, error) { 66 // user := sys_service.SysSession().Get(ctx).JwtClaimsUser 67 // 68 // ret, err := sys_service.SysMessage().QueryUnionMainMessage(ctx, user.UnionMainId, &req.SearchParams, false) 69 // 70 // return ret, err 71 //} 72 73 // HasUnReadMessage 是否存在未读消息 74 func (c *cSysMessage) HasUnReadMessage(ctx context.Context, req *v1.HasUnReadMessageReq) (api_v1.IntRes, error) { 75 user := sys_service.SysSession().Get(ctx).JwtClaimsUser 76 77 ret, err := sys_service.Message().HasUnReadMessage(ctx, user.Id) 78 79 return (api_v1.IntRes)(ret), err 80 } 81 82 // SetMessageReadUserIds 追加消息已读用户 // TODO 在消息查看详情的时候,就给当前登录User进行追加进已读用户[]里面,不要直接暴露接口 83 //func (c *cSysMessage) SetMessageReadUserIds(ctx context.Context, req *v1.SetMessageReadUserIdsReq) (api_v1.BoolRes, error) { 84 // ret, err := sys_service.SysMessage().SetMessageReadUserIds(ctx, req.MessageId, req.UserId) 85 // 86 // return ret == true, err 87 //}