首次完整推送,
V:1.20240808.006
This commit is contained in:
@ -0,0 +1,132 @@
|
||||
const {
|
||||
deviceCollection
|
||||
} = require('../../common/constants')
|
||||
const {
|
||||
ERROR
|
||||
} = require('../../common/error')
|
||||
|
||||
async function setOpendbDevice ({
|
||||
pushClientId
|
||||
} = {}) {
|
||||
// 仅新增,如果存在进行更新操作
|
||||
const {
|
||||
appId,
|
||||
deviceId,
|
||||
deviceBrand,
|
||||
deviceModel,
|
||||
osName,
|
||||
osVersion,
|
||||
osLanguage,
|
||||
osTheme,
|
||||
devicePixelRatio,
|
||||
windowWidth,
|
||||
windowHeight,
|
||||
screenWidth,
|
||||
screenHeight,
|
||||
romName,
|
||||
romVersion
|
||||
} = this.getUniversalClientInfo()
|
||||
const platform = this.clientPlatform
|
||||
const now = Date.now()
|
||||
|
||||
const db = uniCloud.database()
|
||||
const opendbDeviceCollection = db.collection('opendb-device')
|
||||
const getDeviceRes = await opendbDeviceCollection.where({
|
||||
device_id: deviceId
|
||||
}).get()
|
||||
const data = {
|
||||
appid: appId,
|
||||
device_id: deviceId,
|
||||
vendor: deviceBrand,
|
||||
model: deviceModel,
|
||||
uni_platform: platform,
|
||||
os_name: osName,
|
||||
os_version: osVersion,
|
||||
os_language: osLanguage,
|
||||
os_theme: osTheme,
|
||||
pixel_ratio: devicePixelRatio,
|
||||
window_width: windowWidth,
|
||||
window_height: windowHeight,
|
||||
screen_width: screenWidth,
|
||||
screen_height: screenHeight,
|
||||
rom_name: romName,
|
||||
rom_version: romVersion,
|
||||
last_update_date: now,
|
||||
push_clientid: pushClientId
|
||||
}
|
||||
if (getDeviceRes.data.length > 0) {
|
||||
await opendbDeviceCollection.where({
|
||||
device_id: deviceId
|
||||
}).update(data)
|
||||
return
|
||||
}
|
||||
data.create_date = now
|
||||
await opendbDeviceCollection.add(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新device表的push_clien_id
|
||||
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#set-push-cid
|
||||
* @param {object} params
|
||||
* @param {string} params.pushClientId 客户端pushClientId
|
||||
* @returns
|
||||
*/
|
||||
module.exports = async function (params = {}) {
|
||||
const schema = {
|
||||
pushClientId: 'string'
|
||||
}
|
||||
this.middleware.validate(params, schema)
|
||||
const {
|
||||
deviceId,
|
||||
appId,
|
||||
osName
|
||||
} = this.getUniversalClientInfo()
|
||||
let platform = this.clientPlatform
|
||||
if (platform === 'app') {
|
||||
platform += osName
|
||||
}
|
||||
|
||||
const {
|
||||
uid,
|
||||
exp
|
||||
} = this.authInfo
|
||||
const { pushClientId } = params
|
||||
const tokenExpired = exp * 1000
|
||||
const getDeviceRes = await deviceCollection.where({
|
||||
device_id: deviceId
|
||||
}).get()
|
||||
// console.log(getDeviceRes)
|
||||
if (getDeviceRes.data.length > 1) {
|
||||
return {
|
||||
errCode: ERROR.SYSTEM_ERROR
|
||||
}
|
||||
}
|
||||
const deviceRecord = getDeviceRes.data[0]
|
||||
await setOpendbDevice.call(this, {
|
||||
pushClientId
|
||||
})
|
||||
if (!deviceRecord) {
|
||||
await deviceCollection.add({
|
||||
user_id: uid,
|
||||
device_id: deviceId,
|
||||
token_expired: tokenExpired,
|
||||
push_clientid: pushClientId,
|
||||
appid: appId
|
||||
})
|
||||
return {
|
||||
errCode: 0
|
||||
}
|
||||
}
|
||||
|
||||
await deviceCollection.where({
|
||||
device_id: deviceId
|
||||
}).update({
|
||||
user_id: uid,
|
||||
token_expired: tokenExpired,
|
||||
push_clientid: pushClientId,
|
||||
appid: appId
|
||||
})
|
||||
return {
|
||||
errCode: 0
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user