90 lines
2.7 KiB
Go
90 lines
2.7 KiB
Go
package imser
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"net/url"
|
|
"strconv"
|
|
|
|
"91porn-server/app/appg"
|
|
"91porn-server/common"
|
|
"91porn-server/common/constant"
|
|
"91porn-server/common/crypt"
|
|
"91porn-server/common/log"
|
|
"91porn-server/middleware/ua"
|
|
"91porn-server/models/v/usermod"
|
|
)
|
|
|
|
// GetSign 获取IM sign
|
|
func GetSign(uid uint64, ua ua.UA) string {
|
|
u, err := usermod.FindUserByUID(uid)
|
|
if err != nil || u == nil {
|
|
return ""
|
|
}
|
|
// IsVip := false
|
|
// if userModel.VipExpireDate.After(time.Now()) {
|
|
// IsVip = true
|
|
// }
|
|
var voiceChatNotify string
|
|
if common.IsSpecifyVerBaseOnUa(ua, constant.Ver3_1_0) {
|
|
voiceChatNotify = "支持语音聊天"
|
|
} else {
|
|
voiceChatNotify = "不支持语音聊天"
|
|
}
|
|
ul := url.Values{}
|
|
ul.Add("id", strconv.FormatUint(uid, 10))
|
|
ul.Add("appId", appg.Conf.Kefu.AppID)
|
|
ul.Add("platName", appg.Conf.Kefu.PlatName)
|
|
ul.Add("userName", u.Name+"**"+ua.SysType+"**"+ua.DevType+"**"+ua.Ver+"**"+voiceChatNotify)
|
|
ul.Add("isVip", "false")
|
|
ul.Add("avatar", common.BindUrl(appg.Conf.URL.OriginUrl, u.Portrait))
|
|
dcodeurl, _ := url.QueryUnescape(ul.Encode())
|
|
sign, err := crypt.AesEncrypt(dcodeurl, appg.Conf.Kefu.AppSecret)
|
|
if err != nil {
|
|
log.Warn("create im sign wrong", log.Any("warn", err))
|
|
return ""
|
|
}
|
|
return "/kefu/?sign=" + hex.EncodeToString(sign) + "&appId=" + appg.Conf.Kefu.AppID + "&theme=" + appg.Conf.Kefu.Theme
|
|
}
|
|
|
|
// GetWhiteSign 获取White IM sign
|
|
func GetWhiteSign() string {
|
|
return "/kefu/?" + "appId=" + appg.Conf.Kefu.AppID + "&anonymous=true"
|
|
}
|
|
|
|
// GetSignNew 新获取IM sign
|
|
func GetSignNew(uid uint64, ua ua.UA) string {
|
|
u, err := usermod.FindUserByUID(uid)
|
|
if err != nil || u == nil {
|
|
return ""
|
|
}
|
|
// IsVip := false
|
|
// if userModel.VipExpireDate.After(time.Now()) {
|
|
// IsVip = true
|
|
// }
|
|
var voiceChatNotify string
|
|
if common.IsSpecifyVerBaseOnUa(ua, constant.Ver3_1_0) {
|
|
voiceChatNotify = "支持语音聊天"
|
|
} else {
|
|
voiceChatNotify = "不支持语音聊天"
|
|
}
|
|
ul := url.Values{}
|
|
ul.Add("id", strconv.FormatUint(uid, 10))
|
|
ul.Add("appId", appg.Conf.Kefu.AppID)
|
|
ul.Add("platName", appg.Conf.Kefu.PlatName)
|
|
ul.Add("userName", u.Name+"**"+ua.SysType+"**"+ua.DevType+"**"+ua.Ver+"**"+voiceChatNotify)
|
|
ul.Add("isVip", "false")
|
|
ul.Add("avatar", common.BindUrl(appg.Conf.URL.OriginUrl, u.Portrait))
|
|
dcodeurl, _ := url.QueryUnescape(ul.Encode())
|
|
sign, err := crypt.AesEncrypt(dcodeurl, appg.Conf.Kefu.AppSecret)
|
|
if err != nil {
|
|
log.Warn("create im sign wrong", log.Any("warn", err))
|
|
return ""
|
|
}
|
|
return "/kefu/customer/im?sign=" + hex.EncodeToString(sign) + "&appId=" + appg.Conf.Kefu.AppID + "&theme=" + appg.Conf.Kefu.Theme
|
|
}
|
|
|
|
// GetWhiteSignNew 新获取White IM sign
|
|
func GetWhiteSignNew() string {
|
|
return "/kefu/customer/im?appId=" + appg.Conf.Kefu.AppID + "&anonymous=true"
|
|
}
|