Skip to content

Commit

Permalink
feat(stat): 新增 odid 属性,uuid 替换为新api获取的 deciceid
Browse files Browse the repository at this point in the history
  • Loading branch information
mehaotian committed Oct 17, 2022
1 parent 79b231d commit f44f314
Show file tree
Hide file tree
Showing 5 changed files with 322 additions and 176 deletions.
122 changes: 83 additions & 39 deletions packages/uni-stat/dist/uni-cloud-stat.cjs.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,46 @@ const APP_PVER_TIME = 300; // 应用在后台结束访问时间 单位s
const OPERATING_TIME = 10; // 数据上报时间 单位s
const DIFF_TIME = 60 * 1000 * 60 * 24;

const appid = process.env.UNI_APP_ID; // 做应用隔离
const dbSet = (name, value) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};

if (!data) {
data = {};
}
data[name] = value;
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
};

const dbGet = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (!data[name]) {
let dbdata = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (!dbdata) {
dbdata = {};
}
if (!dbdata[name]) {
return undefined
}
data[name] = dbdata[name];
}
return data[name]
};

const dbRemove = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
} else {
data = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
}
}
};

// 获取 manifest.json 中统计配置
const uniStatisticsConfig = process.env.UNI_STATISTICS_CONFIG;
let statConfig = {
Expand Down Expand Up @@ -82,6 +122,24 @@ const get_uuid = (statData) => {
return sys.deviceId || getUuid()
};

/**
* 获取老版的 deviceid ,兼容以前的错误 deviceid
* @param {*} statData
* @returns
*/
const get_odid = (statData) => {
let odid = '';
if (get_platform_name() === 'n') {
try {
odid = plus.device.uuid;
} catch (e) {
odid = '';
}
return odid
}
return sys.deviceId || getUuid()
};

/**
* 获取配置信息 如 appid
*/
Expand Down Expand Up @@ -542,46 +600,17 @@ const is_push_clientid = () => {
return typeof ClientID === 'boolean' ? ClientID : false
}
return false
};

const appid = process.env.UNI_APP_ID; // 做应用隔离
const dbSet = (name, value) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};

if (!data) {
data = {};
}
data[name] = value;
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
};

const dbGet = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (!data[name]) {
let dbdata = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (!dbdata) {
dbdata = {};
}
if (!dbdata[name]) {
return undefined
}
data[name] = dbdata[name];
}
return data[name]
};

const dbRemove = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
} else {
data = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
}
}
/**
* 是否已处理设备 DeviceId
* 如果值为 1 则表示已处理
*/
const IS_HANDLE_DEVECE_ID = 'is_handle_device_id';
const is_handle_device = () => {
let isHandleDevice = dbGet(IS_HANDLE_DEVECE_ID) || '';
dbSet(IS_HANDLE_DEVECE_ID, '1');
return isHandleDevice === '1'
};

// 首次访问时间
Expand Down Expand Up @@ -968,13 +997,28 @@ class Report {
this._navigationBarTitle.config = get_page_name(options.path);
let is_opt = options.query && JSON.stringify(options.query) !== '{}';
let query = is_opt ? '?' + JSON.stringify(options.query) : '';
const last_time = get_last_visit_time();
// 非老用户
if(last_time !== 0 || !last_time){
const odid = get_odid();

// 2.0 处理规则
{
const have_device = is_handle_device();
// 如果没有上报过设备信息 ,则需要上报设备信息
if(!have_device) {
this.statData.odid = odid;
}
}
}

Object.assign(this.statData, {
lt: '1',
url: options.path + query || '',
t: get_time(),
sc: get_scene(options.scene),
fvts: get_first_visit_time(),
lvts: get_last_visit_time(),
lvts: last_time,
tvc: get_total_visit_count(),
// create session type 上报类型 ,1 应用进入 2.后台30min进入 3.页面30min进入
cst: options.cst || 1,
Expand Down
122 changes: 83 additions & 39 deletions packages/uni-stat/dist/uni-cloud-stat.es.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,46 @@ const APP_PVER_TIME = 300; // 应用在后台结束访问时间 单位s
const OPERATING_TIME = 10; // 数据上报时间 单位s
const DIFF_TIME = 60 * 1000 * 60 * 24;

const appid = process.env.UNI_APP_ID; // 做应用隔离
const dbSet = (name, value) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};

if (!data) {
data = {};
}
data[name] = value;
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
};

const dbGet = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (!data[name]) {
let dbdata = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (!dbdata) {
dbdata = {};
}
if (!dbdata[name]) {
return undefined
}
data[name] = dbdata[name];
}
return data[name]
};

const dbRemove = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
} else {
data = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
}
}
};

// 获取 manifest.json 中统计配置
const uniStatisticsConfig = process.env.UNI_STATISTICS_CONFIG;
let statConfig = {
Expand Down Expand Up @@ -80,6 +120,24 @@ const get_uuid = (statData) => {
return sys.deviceId || getUuid()
};

/**
* 获取老版的 deviceid ,兼容以前的错误 deviceid
* @param {*} statData
* @returns
*/
const get_odid = (statData) => {
let odid = '';
if (get_platform_name() === 'n') {
try {
odid = plus.device.uuid;
} catch (e) {
odid = '';
}
return odid
}
return sys.deviceId || getUuid()
};

/**
* 获取配置信息 如 appid
*/
Expand Down Expand Up @@ -540,46 +598,17 @@ const is_push_clientid = () => {
return typeof ClientID === 'boolean' ? ClientID : false
}
return false
};

const appid = process.env.UNI_APP_ID; // 做应用隔离
const dbSet = (name, value) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};

if (!data) {
data = {};
}
data[name] = value;
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
};

const dbGet = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (!data[name]) {
let dbdata = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (!dbdata) {
dbdata = {};
}
if (!dbdata[name]) {
return undefined
}
data[name] = dbdata[name];
}
return data[name]
};

const dbRemove = (name) => {
let data = uni.getStorageSync('$$STAT__DBDATA:'+appid) || {};
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
} else {
data = uni.getStorageSync('$$STAT__DBDATA:'+appid);
if (data[name]) {
delete data[name];
uni.setStorageSync('$$STAT__DBDATA:'+appid, data);
}
}
/**
* 是否已处理设备 DeviceId
* 如果值为 1 则表示已处理
*/
const IS_HANDLE_DEVECE_ID = 'is_handle_device_id';
const is_handle_device = () => {
let isHandleDevice = dbGet(IS_HANDLE_DEVECE_ID) || '';
dbSet(IS_HANDLE_DEVECE_ID, '1');
return isHandleDevice === '1'
};

// 首次访问时间
Expand Down Expand Up @@ -966,13 +995,28 @@ class Report {
this._navigationBarTitle.config = get_page_name(options.path);
let is_opt = options.query && JSON.stringify(options.query) !== '{}';
let query = is_opt ? '?' + JSON.stringify(options.query) : '';
const last_time = get_last_visit_time();
// 非老用户
if(last_time !== 0 || !last_time){
const odid = get_odid();

// 2.0 处理规则
{
const have_device = is_handle_device();
// 如果没有上报过设备信息 ,则需要上报设备信息
if(!have_device) {
this.statData.odid = odid;
}
}
}

Object.assign(this.statData, {
lt: '1',
url: options.path + query || '',
t: get_time(),
sc: get_scene(options.scene),
fvts: get_first_visit_time(),
lvts: get_last_visit_time(),
lvts: last_time,
tvc: get_total_visit_count(),
// create session type 上报类型 ,1 应用进入 2.后台30min进入 3.页面30min进入
cst: options.cst || 1,
Expand Down
Loading

0 comments on commit f44f314

Please sign in to comment.