123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package logic
- import (
- "app.yhyue.com/moapp/jybase/encrypt"
- util "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/entity"
- . "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/init"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/service"
- "context"
- "time"
- quitl "app.yhyue.com/moapp/jybase/common"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/internal/svc"
- "bp.jydev.jianyu360.cn/SocialPlatform/messageCenter/rpc/messagecenter/messagecenter"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type UserListLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewUserListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserListLogic {
- return &UserListLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- // UserList 用户列表查询
- func (l *UserListLogic) UserList(in *messagecenter.UserReq) (*messagecenter.UserResp, error) {
- // todo: add your logic here and delete this line
- m := service.MessaggeService{}
- nowIndex := 0
- queryAgain:
- data, count, err := m.UserList(in)
- if err != nil {
- return nil, err
- }
- var result = []*messagecenter.UserEntity{}
- //聊天内容为空,插入默认客服聊天内容
- if (count == 0 || data == nil || len(*data) == 0) && in.UserType == 2 && in.QueryType != 1 && nowIndex < 1 {
- if insertDefaultChat(in) {
- nowIndex++
- goto queryAgain
- }
- }
- if data != nil && len(*data) > 0 {
- for _, v := range *data {
- var tim time.Time
- if quitl.InterfaceToStr(v["create_time"]) != "" {
- tim, _ = time.ParseInLocation(util.Date_Full_Layout, quitl.InterfaceToStr(v["create_time"]), time.Local)
- } else {
- tim, _ = time.ParseInLocation(util.Date_Full_Layout, quitl.InterfaceToStr(v["timestamp"]), time.Local)
- }
- groupMember, _ := v["groupMember"].([]string)
- userResp := messagecenter.UserEntity{
- Name: quitl.ObjToString(v["name"]),
- Title: quitl.ObjToString(v["title"]),
- Type: quitl.Int64All(v["type"]),
- Link: quitl.ObjToString(v["link"]),
- Content: quitl.ObjToString(v["content"]),
- CreateTime: tim.Unix(),
- UserType: quitl.Int64All(v["userType"]),
- Number: quitl.Int64All(v["number"]),
- UserId: encrypt.SE.Encode2Hex(quitl.InterfaceToStr(v["id"])),
- Headimg: quitl.ObjToString(v["headimg"]),
- GroupMember: groupMember,
- IsTourist: quitl.Int64All(v["is_tourist"]),
- }
- result = append(result, &userResp)
- }
- }
- return &messagecenter.UserResp{Data: result, Count: count}, nil
- }
- // insertDefaultChat 为防止聊天内容为空,影响工作台展示,插入默认机器人聊天内容
- func insertDefaultChat(in *messagecenter.UserReq) bool {
- m := service.MessaggeService{}
- //创建会话
- if createOk, sessionId := m.CreateChatSession(&messagecenter.ChatSessionReq{
- EntId: C.DefaultMsg.SendFromId,
- //CustomerServiceId: C.DefaultMsg.SendFromId,
- UserId: in.NewUserId,
- AppId: "10000",
- //CustomerserviceName: "xxxxx",
- }); createOk {
- //同步数据库
- saveMessageOk, _, _, _, _ := m.SaveMessage(&messagecenter.MessageEntity{
- OwnType: 2,
- //Title: req.Title,
- //SendId: C.DefaultMsg.SendFromId,
- Content: C.DefaultMsg.MsgContent,
- Item: 8, //聊天内容
- Type: 1, //文本内容
- //Link: req.Link,
- Appid: "10000",
- ItemType: 4,
- ReceiveId: in.NewUserId,
- NewUserId: in.NewUserId,
- EntUserId: in.EntUserId,
- SendId: sessionId,
- })
- if saveMessageOk {
- return true
- }
- }
- return false
- }
|