...
|
...
|
@@ -27,51 +27,59 @@ func Notification(header *protocol.RequestHeader, request *protocol.PushInfoRequ |
|
|
Content: request.Content,
|
|
|
Ext: request.Ext,
|
|
|
}
|
|
|
projectKeys []string = []string{request.ProjectKey}
|
|
|
)
|
|
|
rsp = &protocol.PushInfoResponse{}
|
|
|
if project, err = repProject.FindOne(map[string]interface{}{"project_slave_key": request.ProjectKey}); err != nil {
|
|
|
log.Error(err)
|
|
|
err = protocol.NewCustomMessage(1, fmt.Sprintf("project_key:%v not found", request.ProjectKey))
|
|
|
return
|
|
|
}
|
|
|
if appInfo, err = repApp.FindOne(map[string]interface{}{"project_id": project.Id}); err != nil {
|
|
|
log.Error(err)
|
|
|
err = protocol.NewCustomMessage(1, fmt.Sprintf("project_key:%v not found", request.ProjectKey))
|
|
|
return
|
|
|
if len(request.ProjectKeys) > 0 {
|
|
|
projectKeys = request.ProjectKeys
|
|
|
}
|
|
|
if deviceList, err = repDevice.Find(
|
|
|
map[string]interface{}{
|
|
|
"receivers": request.Receivers, "project_master_key": project.ProjectMasterKey},
|
|
|
); err != nil {
|
|
|
log.Error(err)
|
|
|
err = nil
|
|
|
return
|
|
|
}
|
|
|
if extInfo, ok := appInfo.GetExtInfo(); ok {
|
|
|
if len(extInfo.Intent) > 0 {
|
|
|
requestOriginal.Ext["intent"] = extInfo.Intent
|
|
|
for i := 0; i < len(projectKeys); i++ {
|
|
|
projectKey := projectKeys[i]
|
|
|
rsp = &protocol.PushInfoResponse{}
|
|
|
if project, err = repProject.FindOne(map[string]interface{}{"project_slave_key": projectKey}); err != nil {
|
|
|
log.Error(err)
|
|
|
err = protocol.NewCustomMessage(1, fmt.Sprintf("project_key:%v not found", projectKey))
|
|
|
return
|
|
|
}
|
|
|
if len(extInfo.Sound) > 0 {
|
|
|
requestOriginal.Ext["sound"] = extInfo.Sound
|
|
|
if appInfo, err = repApp.FindOne(map[string]interface{}{"project_id": project.Id}); err != nil {
|
|
|
log.Error(err)
|
|
|
err = protocol.NewCustomMessage(1, fmt.Sprintf("project_key:%v not found", projectKey))
|
|
|
return
|
|
|
}
|
|
|
if deviceList, err = repDevice.Find(
|
|
|
map[string]interface{}{
|
|
|
"receivers": request.Receivers, "project_master_key": project.ProjectMasterKey},
|
|
|
); err != nil {
|
|
|
log.Error(err)
|
|
|
err = nil
|
|
|
return
|
|
|
}
|
|
|
if extInfo, ok := appInfo.GetExtInfo(); ok {
|
|
|
if len(extInfo.Intent) > 0 {
|
|
|
requestOriginal.Ext["intent"] = extInfo.Intent
|
|
|
}
|
|
|
if len(extInfo.Sound) > 0 {
|
|
|
requestOriginal.Ext["sound"] = extInfo.Sound
|
|
|
}
|
|
|
}
|
|
|
if len(deviceList) == 0 {
|
|
|
//e := protocol.NewSuccessWithMessage(fmt.Sprintf("Project:%v 接收人:%v 未查询到注册的设备信息!",projectKey, request.Receivers))
|
|
|
log.Error(fmt.Sprintf("【个推】 Project:%v 接收人:%v 未查询到注册的设备信息!", projectKey, request.Receivers))
|
|
|
continue
|
|
|
}
|
|
|
for i := range deviceList {
|
|
|
receivers = append(receivers, deviceList[i].ClientId)
|
|
|
receiverIds = append(receiverIds, deviceList[i].Uid)
|
|
|
}
|
|
|
request.ActualReceivers = receiverIds
|
|
|
requestOriginal.AppKey = appInfo.AppKey
|
|
|
requestOriginal.AppId = appInfo.AppId
|
|
|
requestOriginal.Secret = appInfo.AppMasterSecret
|
|
|
requestOriginal.ClientIdList = receivers
|
|
|
rsp, err = NotificationOriginal(header, requestOriginal)
|
|
|
repDevice.SaveLog(request, rsp.ExtData, err)
|
|
|
if err != nil {
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
}
|
|
|
}
|
|
|
if len(deviceList) == 0 {
|
|
|
err = protocol.NewSuccessWithMessage(fmt.Sprintf("接收人:%v 未查询到注册的设备信息!", request.Receivers))
|
|
|
return
|
|
|
}
|
|
|
for i := range deviceList {
|
|
|
receivers = append(receivers, deviceList[i].ClientId)
|
|
|
receiverIds = append(receiverIds, deviceList[i].Uid)
|
|
|
}
|
|
|
request.ActualReceivers = receiverIds
|
|
|
requestOriginal.AppKey = appInfo.AppKey
|
|
|
requestOriginal.AppId = appInfo.AppId
|
|
|
requestOriginal.Secret = appInfo.AppMasterSecret
|
|
|
requestOriginal.ClientIdList = receivers
|
|
|
rsp, err = NotificationOriginal(header, requestOriginal)
|
|
|
repDevice.SaveLog(request, rsp.ExtData, err)
|
|
|
if err != nil {
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
}
|
|
|
return
|
|
|
}
|
...
|
...
|
|