#565 小程序增加数据分析相关 API

* 微信开放平台:1. WxOpenInRedisConfigStorage 支持 JedisPool/JedisSentinelPool 等 Pool<Jedis> 的子类;2. WxOpenInRedisConfigStorage 增加 keyPrefix 以支持可配置的前缀;

* 微信开放平台:增加小程序代码模板库管理

* 小程序:增加代码管理相关 API

* 小程序:增加修改服务器地址、成员管理 API

* 小程序:增加数据分析相关 API
This commit is contained in:
Charming
2018-04-29 21:50:11 +08:00
committed by Binary Wang
parent ba93544473
commit 3c2249eae8
19 changed files with 1048 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* 访问留存
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28 14:41
*/
@Data
public class WxMaRetainInfo implements Serializable {
private static final long serialVersionUID = 8986403173656848413L;
/**
* 日留存日期yyyyMMdd 格式,如 20170313
* 周留存:时间,如"20170306-20170312"
* 月留存:时间,如"201702"
*/
@SerializedName(value = "refDate", alternate = "ref_date")
private String refDate;
/**
* 新增用户留存
* - key:
* - 日留存标识0开始0表示当天1表示1天后依此类推key取值分别是0,1,2,3,4,5,6,7,14,30
* - 周留存标识0开始0表示当周1表示1周后依此类推key 取值分别是0,1,2,3,4
* - 月留存标识0开始0表示当月1表示1月后key取值分别是0,1
* - value: key对应日期的新增用户数/活跃用户数key=0时或留存用户数k>0时
*/
private Map<Integer, Integer> visitUvNew;
/**
* 活跃用户留存
*/
private Map<Integer, Integer> visitUv;
public static WxMaRetainInfo fromJson(String json) {
return WxMaGsonBuilder.create().fromJson(json, WxMaRetainInfo.class);
}
}

View File

@@ -0,0 +1,37 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
/**
* 小程序概况趋势
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
@Data
public class WxMaSummaryTrend implements Serializable {
private static final long serialVersionUID = 1379688517709317935L;
/**
* 日期yyyyMMdd 格式,如 20170313
*/
@SerializedName(value = "refDate", alternate = "ref_date")
private String refDate;
/**
* 累计用户数
*/
@SerializedName(value = "visitTotal", alternate = "visit_total")
private Long visitTotal;
/**
* 转发次数
*/
@SerializedName(value = "sharePv", alternate = "share_pv")
private Long sharePv;
/**
* 转发人数
*/
@SerializedName(value = "shareUv", alternate = "share_uv")
private Long shareUv;
}

View File

@@ -0,0 +1,68 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* 用户画像
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
@Data
public class WxMaUserPortrait implements Serializable {
private static final long serialVersionUID = 5653571047669243178L;
/**
* 时间范围,如: "20170611-20170617"
*/
private String refDate;
/**
* 新用户
*/
private Item visitUvNew;
/**
* 活跃用户
*/
private Item visitUv;
public static WxMaUserPortrait fromJson(String json) {
return WxMaGsonBuilder.create().fromJson(json, WxMaUserPortrait.class);
}
@Data
public static class Item {
/**
* key: 省份,如北京、广东等
* value: 活跃用户数或新用户数
*/
private Map<String, Long> province;
/**
* key: 城市,如北京、广州等
* value: 活跃用户数或新用户数
*/
private Map<String, Long> city;
/**
* key: 性别,包括男、女、未知
* value: 活跃用户数或新用户数
*/
private Map<String, Long> genders;
/**
* key: 终端类型包括iPhone, android,其他
* value: 活跃用户数或新用户数
*/
private Map<String, Long> platforms;
/**
* key: 机型如苹果iPhone6, OPPO R9等
* value: 活跃用户数或新用户数
*/
private Map<String, Long> devices;
/**
* key: 年龄包括17岁以下、18-24岁等区间
* value: 活跃用户数或新用户数
*/
private Map<String, Long> ages;
}
}

View File

@@ -0,0 +1,83 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import cn.binarywang.wx.miniapp.util.json.WxMaGsonBuilder;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* 访问分布
* 访问来源:(index="access_source_session_cnt")
* 1小程序历史列表
* 2搜索
* 3会话
* 4二维码
* 5公众号主页
* 6聊天顶部
* 7系统桌面
* 8小程序主页
* 9附近的小程序
* 10其他
* 11模板消息
* 12客服消息
* 13: 公众号菜单
* 14: APP分享
* 15: 支付完成页
* 16: 长按识别二维码
* 17: 相册选取二维码
* 18: 公众号文章
* 19钱包
* 20卡包
* 21小程序内卡券
* 22其他小程序
* 23其他小程序返回
* 24卡券适用门店列表
* 25搜索框快捷入口
* 26小程序客服消息
* 27公众号下发
* 访问时长:(index="access_staytime_info")
* 1: 0-2s
* 2: 3-5s
* 3: 6-10s
* 4: 11-20s
* 5: 20-30s
* 6: 30-50s
* 7: 50-100s
* 8: > 100s
* 平均访问深度:(index="access_depth_info")
* 1: 1页
* 2: 2页
* 3: 3页
* 4: 4页
* 5: 5页
* 6: 6-10页
* 7: >10页
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
@Data
public class WxMaVisitDistribution implements Serializable {
private static final long serialVersionUID = 5404250039495926632L;
/**
* 日期yyyyMMdd 格式,如 20170313
*/
@SerializedName(value = "refDate", alternate = "ref_date")
private String refDate;
/**
* key: 分布类型
* - access_source_session_cnt 访问来源分布
* - access_staytime_info 访问时长分布
* - access_depth_info 访问深度的分布
* value: 场景 ID 下的值
* - key: 场景 ID
* - value: 场景下的值
*/
private Map<String, Map<Integer, Integer>> list;
public static WxMaVisitDistribution fromJson(String json) {
return WxMaGsonBuilder.create().fromJson(json, WxMaVisitDistribution.class);
}
}

View File

@@ -0,0 +1,55 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
/**
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
@Data
public class WxMaVisitPage implements Serializable {
private static final long serialVersionUID = -7006334774516877372L;
/**
* 页面路径
*/
@SerializedName(value = "pagePath", alternate = "page_path")
private String pagePath;
/**
* 访问次数
*/
@SerializedName(value = "pageVisitPv", alternate = "page_visit_pv")
private Long pageVisitPv;
/**
* 访问人数
*/
@SerializedName(value = "pageVisitUv", alternate = "page_visit_uv")
private Long pageVisitUv;
/**
* 次均停留时长
*/
@SerializedName(value = "pageStayTimePv", alternate = "page_staytime_pv")
private Float pageStayTimePv;
/**
* 进入页次数
*/
@SerializedName(value = "entryPagePv", alternate = "entrypage_pv")
private Long entryPagePv;
/**
* 退出页次数
*/
@SerializedName(value = "exitPagePv", alternate = "exitpage_pv")
private Long exitPagePv;
/**
* 转发次数
*/
@SerializedName(value = "pageSharePv", alternate = "page_share_pv")
private Long pageSharePv;
/**
* 转发人数
*/
@SerializedName(value = "pageShareUv", alternate = "page_share_uv")
private Long pageShareUv;
}

View File

@@ -0,0 +1,59 @@
package cn.binarywang.wx.miniapp.bean.analysis;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import java.io.Serializable;
/**
* 访问趋势
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
@Data
public class WxMaVisitTrend implements Serializable {
private static final long serialVersionUID = 1379688517709317935L;
/**
* 日留存日期yyyyMMdd 格式,如 20170313
* 周留存:时间,如"20170306-20170312"
* 月留存:时间,如"201702"
*/
@SerializedName(value = "refDate", alternate = "ref_date")
private String refDate;
/**
* 打开次数
*/
@SerializedName(value = "sessionCnt", alternate = "session_cnt")
private Long sessionCnt;
/**
* 访问次数
*/
@SerializedName(value = "visitPv", alternate = "visit_pv")
private Long visitPv;
/**
* 访问人数
*/
@SerializedName(value = "visitUv", alternate = "visit_uv")
private Long visitUv;
/**
* 新用户数
*/
@SerializedName(value = "visitUvNew", alternate = "visit_uv_new")
private Long visitUvNew;
/**
* 人均停留时长 (浮点型,单位:秒)
*/
@SerializedName(value = "stayTimeUv", alternate = "stay_time_uv")
private Float stayTimeUv;
/**
* 人均停留时长 (浮点型,单位:秒)
*/
@SerializedName(value = "stayTimeSession", alternate = "stay_time_session")
private Float stayTimeSession;
/**
* 人均停留时长 (浮点型,单位:秒)
*/
@SerializedName(value = "visitDepth", alternate = "visit_depth")
private Float visitDepth;
}

View File

@@ -0,0 +1,7 @@
/**
* 数据分析
*
* @author <a href="https://github.com/charmingoh">Charming</a>
* @since 2018-04-28
*/
package cn.binarywang.wx.miniapp.bean.analysis;