Class: EricWeixin::Report::InterfaceData
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- EricWeixin::Report::InterfaceData
- Defined in:
- app/models/eric_weixin/report/interface_data.rb
Constant Summary collapse
- INTERFACE_DATA_TYPE =
['summary', 'summary_hour']
Class Method Summary collapse
-
.auto_execute_get_and_save_data_from_weixin(weixin_public_account_id) ⇒ Object
自动去微信服务器拉取当日之前的统计模块的接口数据.
-
.create_interface_data(options) ⇒ Object
创建一个微信接口数据interface_data.
-
.exist(options) ⇒ Object
通过参数确定是否存在这样一个微信接口数据interface_data.
-
.get_and_save_interface_summary(begin_date, end_date, weixin_public_account_id) ⇒ Object
获得公众平台官网数据统计模块中接口分析数据&保存到数据库.
-
.get_and_save_interface_summary_hour(begin_date, end_date, weixin_public_account_id) ⇒ Object
获得公众平台官网数据统计模块中接口分析分时数据&保存到数据库.
Class Method Details
.auto_execute_get_and_save_data_from_weixin(weixin_public_account_id) ⇒ Object
自动去微信服务器拉取当日之前的统计模块的接口数据.
参数说明
-
weixin_public_account_id # 微信公众号ID
调用实例
::EricWeixin::Report::InterfaceData.auto_execute_get_and_save_data_from_weixin 1
14 15 16 17 18 19 20 21 |
# File 'app/models/eric_weixin/report/interface_data.rb', line 14 def self.auto_execute_get_and_save_data_from_weixin weixin_public_account_id self.transaction do yesterday = (Time.now - 1.day).to_date.to_s # 取当天的前一天数据 get_and_save_interface_summary yesterday, yesterday, weixin_public_account_id get_and_save_interface_summary_hour yesterday, yesterday, weixin_public_account_id end end |
.create_interface_data(options) ⇒ Object
创建一个微信接口数据interface_data.
参数说明
-
ref_date # 数据的日期
-
ref_hour # 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时
-
callback_count # 通过服务器配置地址获得消息后,被动回复用户消息的次数
-
fail_count # 上述动作的失败次数
-
total_time_cost # 总耗时,除以callback_count即为平均耗时
-
max_time_cost # 最大耗时
-
weixin_public_account_id # 公众账号ID
-
interface_data_type # 数据类型,包括summary、summary_hour
调用实例
options = {ref_date: ‘2015-6-6’, ref_hour: 0, weixin_public_account_id: 1, interface_data_type: ‘summary’ … } ::EricWeixin::Report::InterfaceData.create_interface_data options
36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/eric_weixin/report/interface_data.rb', line 36 def self.create_interface_data self.transaction do = , [:ref_date, :ref_hour, :callback_count, :fail_count, :total_time_cost, :max_time_cost, :weixin_public_account_id, :interface_data_type] interface_data = self.new interface_data.save! interface_data.reload interface_data end end |
.exist(options) ⇒ Object
通过参数确定是否存在这样一个微信接口数据interface_data.
参数说明
-
ref_date # 数据的日期
-
ref_hour # 数据的小时,包括从000到2300,分别代表的是[000,100)到[2300,2400),即每日的第1小时和最后1小时
-
callback_count # 通过服务器配置地址获得消息后,被动回复用户消息的次数
-
fail_count # 上述动作的失败次数
-
total_time_cost # 总耗时,除以callback_count即为平均耗时
-
max_time_cost # 最大耗时
-
weixin_public_account_id # 公众账号ID
-
interface_data_type # 数据类型,包括summary、summary_hour
调用实例
options = {ref_date: ‘2015-6-6’, ref_hour: 0, weixin_public_account_id: 1, interface_data_type: ‘summary’ … } ::EricWeixin::Report::InterfaceData.exist options
返回
true 代表存在 false 代表不存在
63 64 65 66 67 |
# File 'app/models/eric_weixin/report/interface_data.rb', line 63 def self.exist = , [:ref_date, :ref_hour, :callback_count, :fail_count, :total_time_cost, :max_time_cost, :weixin_public_account_id, :interface_data_type] self.where( ).count >= 1 end |
.get_and_save_interface_summary(begin_date, end_date, weixin_public_account_id) ⇒ Object
获得公众平台官网数据统计模块中接口分析数据&保存到数据库.
参数说明
-
begin_date # 获取数据的起始日期,begin_date和end_date的差值需小于30
-
end_date # 获取数据的结束日期,end_date允许设置的最大值为昨日
-
weixin_public_account_id # 公众号ID
调用实例
::EricWeixin::Report::InterfaceData.get_and_save_interface_summary ‘2015-5-1’, ‘2015-5-30’, 1
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'app/models/eric_weixin/report/interface_data.rb', line 76 def self.get_and_save_interface_summary begin_date, end_date, weixin_public_account_id self.transaction do = { :begin_date => begin_date, :end_date => end_date, :weixin_public_account_id => weixin_public_account_id } interface_summary = ::EricWeixin::AnalyzeData.get_interface_summary pp "############################ interface_summary ####################################" pp interface_summary list_summary = interface_summary["list"] list_summary.each do |s| s = s.merge(interface_data_type: 'summary').merge(weixin_public_account_id: weixin_public_account_id) self.create_interface_data s unless self.exist s end unless list_summary.blank? end end |
.get_and_save_interface_summary_hour(begin_date, end_date, weixin_public_account_id) ⇒ Object
获得公众平台官网数据统计模块中接口分析分时数据&保存到数据库.
参数说明
-
begin_date # 获取数据的起始日期,begin_date和end_date的差值需小于1
-
end_date # 获取数据的结束日期,end_date允许设置的最大值为昨日
-
weixin_public_account_id # 公众号ID
调用实例
::EricWeixin::Report::InterfaceData.get_and_save_interface_summary_hour ‘2015-5-1’, ‘2015-5-1’, 1
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/models/eric_weixin/report/interface_data.rb', line 102 def self.get_and_save_interface_summary_hour begin_date, end_date, weixin_public_account_id self.transaction do = { :begin_date => begin_date, :end_date => end_date, :weixin_public_account_id => weixin_public_account_id } interface_summary_hour = ::EricWeixin::AnalyzeData.get_interface_summary_hour pp "############################ interface_summary_hour ####################################" pp interface_summary_hour list_summary_hour = interface_summary_hour["list"] list_summary_hour.each do |s| s = s.merge(interface_data_type: 'summary_hour').merge(weixin_public_account_id: weixin_public_account_id) self.create_interface_data s unless self.exist s end unless list_summary_hour.blank? end end |