1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package logic
- import (
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/util"
- "context"
- "net/http"
- quitl "app.yhyue.com/moapp/jybase/common"
- "app.yhyue.com/moapp/jybase/encrypt"
- "app.yhyue.com/moapp/jybase/fsw"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/svc"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/api/messagecenter/internal/types"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
- "github.com/microcosm-cc/bluemonday"
- "github.com/gogf/gf/v2/util/gconv"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type MessageAddLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- r *http.Request
- }
- func NewMessageAddLogic(ctx context.Context, svcCtx *svc.ServiceContext, r *http.Request) *MessageAddLogic {
- return &MessageAddLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- r: r,
- }
- }
- var (
- htmlFilter = bluemonday.NewPolicy()
- )
- func init() {
- htmlFilter.AllowStandardURLs()
- htmlFilter.AllowAttrs("href").OnElements("a")
- htmlFilter.AllowAttrs("class").OnElements("li")
- htmlFilter.AllowAttrs("src").OnElements("img")
- }
- func (l *MessageAddLogic) MessageAdd(req *types.MessageEntity) (*types.CommonRes, error) {
- if req.NewUserId == 0 {
- r, err := util.GetTouristInfo(l.r, l.svcCtx.Social, l.ctx)
- if err != nil || r.BaseUserId == 0 {
- return nil, err
- }
- req.NewUserId = r.BaseUserId
- req.PositionId = r.BaseUserId
- }
- receiverIds := []int64{}
- for _, v := range req.ReceiverIds {
- receiverIds = append(receiverIds, gconv.Int64(encrypt.SE.Decode4Hex(v)))
- }
- groupIds := []int64{}
- for _, v := range req.GroupIds {
- groupIds = append(groupIds, gconv.Int64(encrypt.SE.Decode4Hex(v)))
- }
- sendId := quitl.Int64All(encrypt.SE.Decode4Hex(req.SendId))
- if req.SendId == "" {
- sendId = req.PositionId
- }
- typ := func(typ int64) int64 {
- if typ == 5 || typ == 6 {
- return 1
- }
- return typ
- }(req.Type)
- resp, err := l.svcCtx.Message.SaveMessage(l.ctx, &messagecenter.MessageEntity{
- OwnType: req.OwnType,
- Title: req.Title,
- SendId: sendId,
- Content: quitl.ObjToString(quitl.If(req.Type == 3 || req.Type == 4 || req.Type == 5, fsw.Repl(req.Content), htmlFilter.Sanitize(fsw.Repl(req.Content)))),
- Item: req.Item,
- Type: typ,
- Link: req.Link,
- Appid: req.Appid,
- ItemType: req.ItemType,
- ReceiveId: quitl.Int64All(encrypt.SE.Decode4Hex(req.ReceiveId)),
- NewUserId: req.NewUserId,
- EntUserId: req.EntUserId,
- ReceiverIds: receiverIds,
- GroupIds: groupIds,
- })
- if err != nil {
- return nil, err
- }
- return &types.CommonRes{
- Error_msg: resp.ErrorMsg,
- Error_code: int(resp.ErrorCode),
- Data: resp.Data,
- }, nil
- }
|