get_group_applicationList.go 3.8 KB
Newer Older
落凡尘.'s avatar
落凡尘. 已提交
1 2 3 4 5
package group

import (
	"Open_IM/src/common/config"
	"Open_IM/src/common/log"
落凡尘.'s avatar
落凡尘. 已提交
6
	"Open_IM/src/grpc-etcdv3/getcdv3"
落凡尘.'s avatar
落凡尘. 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
	"Open_IM/src/proto/group"
	"Open_IM/src/utils"
	"context"
	"github.com/gin-gonic/gin"
	"net/http"
	"strings"
)

type paramsGroupApplicationList struct {
	OperationID string `json:"operationID" binding:"required"`
}

func newUserRegisterReq(params *paramsGroupApplicationList) *group.GetGroupApplicationListReq {
	pbData := group.GetGroupApplicationListReq{
		OperationID: params.OperationID,
	}
	return &pbData
}

type paramsGroupApplicationListRet struct {
落凡尘.'s avatar
落凡尘. 已提交
27
	ID               string `json:"id"`
落凡尘.'s avatar
落凡尘. 已提交
28 29 30
	GroupID          string `json:"groupID"`
	FromUserID       string `json:"fromUserID"`
	ToUserID         string `json:"toUserID"`
落凡尘.'s avatar
落凡尘. 已提交
31 32
	Flag             int32  `json:"flag"`
	RequestMsg       string `json:"reqMsg"`
落凡尘.'s avatar
落凡尘. 已提交
33
	HandledMsg       string `json:"handledMsg"`
落凡尘.'s avatar
落凡尘. 已提交
34 35 36 37 38 39
	AddTime          int64  `json:"createTime"`
	FromUserNickname string `json:"fromUserNickName"`
	ToUserNickname   string `json:"toUserNickName"`
	FromUserFaceUrl  string `json:"fromUserFaceURL"`
	ToUserFaceUrl    string `json:"toUserFaceURL"`
	HandledUser      string `json:"handledUser"`
落凡尘.'s avatar
落凡尘. 已提交
40 41 42 43 44 45 46 47 48
	Type             int32  `json:"type"`
	HandleStatus     int32  `json:"handleStatus"`
	HandleResult     int32  `json:"handleResult"`
}

func GetGroupApplicationList(c *gin.Context) {
	log.Info("", "", "api GetGroupApplicationList init ....")
	etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
	client := group.NewGroupClient(etcdConn)
落凡尘.'s avatar
落凡尘. 已提交
49
	//defer etcdConn.Close()
落凡尘.'s avatar
落凡尘. 已提交
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74

	params := paramsGroupApplicationList{}
	if err := c.BindJSON(&params); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
		return
	}
	pbData := newUserRegisterReq(&params)

	token := c.Request.Header.Get("token")
	if claims, err := utils.ParseToken(token); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"})
		return
	} else {
		pbData.UID = claims.UID
	}

	log.Info("", "", "api GetGroupApplicationList is server, [data: %s]", pbData.String())
	reply, err := client.GetGroupApplicationList(context.Background(), pbData)
	if err != nil {
		log.Error("", "", "api GetGroupApplicationList call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error())
		c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
		return
	}
	log.Info("", "", "api GetGroupApplicationList call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String())

落凡尘.'s avatar
落凡尘. 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
	unProcessCount := 0
	userReq := make([]paramsGroupApplicationListRet, 0)
	if reply != nil && reply.Data != nil && reply.Data.User != nil {
		for i := 0; i < len(reply.Data.User); i++ {
			req := paramsGroupApplicationListRet{}
			req.ID = reply.Data.User[i].ID
			req.GroupID = reply.Data.User[i].GroupID
			req.FromUserID = reply.Data.User[i].FromUserID
			req.ToUserID = reply.Data.User[i].ToUserID
			req.Flag = reply.Data.User[i].Flag
			req.RequestMsg = reply.Data.User[i].RequestMsg
			req.HandledMsg = reply.Data.User[i].HandledMsg
			req.AddTime = reply.Data.User[i].AddTime
			req.FromUserNickname = reply.Data.User[i].FromUserNickname
			req.ToUserNickname = reply.Data.User[i].ToUserNickname
			req.FromUserFaceUrl = reply.Data.User[i].FromUserFaceUrl
			req.ToUserFaceUrl = reply.Data.User[i].ToUserFaceUrl
			req.HandledUser = reply.Data.User[i].HandledUser
			req.Type = reply.Data.User[i].Type
			req.HandleStatus = reply.Data.User[i].HandleStatus
			req.HandleResult = reply.Data.User[i].HandleResult
			userReq = append(userReq, req)

			if req.Flag == 0 {
				unProcessCount++
			}
		}
落凡尘.'s avatar
落凡尘. 已提交
102 103 104 105 106 107
	}

	c.JSON(http.StatusOK, gin.H{
		"errCode": reply.ErrCode,
		"errMsg":  reply.ErrMsg,
		"data": gin.H{
落凡尘.'s avatar
落凡尘. 已提交
108
			"count": unProcessCount,
落凡尘.'s avatar
落凡尘. 已提交
109 110 111 112 113
			"user":  userReq,
		},
	})

}