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  //}