eric_weixin 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/eric_weixin/wz/base.css.scss +3 -0
- data/app/controllers/eric_weixin/cms/weixin/xiaodian/orders_controller.rb +1 -1
- data/app/models/eric_weixin/weixin_user.rb +43 -3
- data/app/models/eric_weixin/xiaodian/order.rb +3 -0
- data/app/views/eric_weixin/cms/weixin/news_datas/edit.html.erb +7 -7
- data/app/views/eric_weixin/cms/weixin/news_datas/new.html.erb +2 -2
- data/app/views/eric_weixin/cms/weixin/weixin_users/index.html.erb +7 -9
- data/app/views/eric_weixin/cms/weixin/xiaodian/orders/index.html.erb +23 -11
- data/app/views/eric_weixin/wz/xiaodian/orders/index.html.erb +19 -2
- data/db/migrate/20160801040113_add_unionid_to_weixin_users.rb +5 -0
- data/lib/eric_weixin/version.rb +1 -1
- metadata +263 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f1ededcda869f5ec482457ba9299c8697b50113
|
4
|
+
data.tar.gz: 701440fcd6765a14d8164faa3d8b1e638a80b8cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9e46d8e894d1c42ac88b0b4df879debf2335fa23877ea4a072c1294d262cc014cedee426c538f16a69acf83c87c50ad18c018e0ff877fde6551ce5ccff1301e
|
7
|
+
data.tar.gz: ae26b5cc10abbf9c7fa44880e5ff50eea0101e550ce065ca0b4ea6a638be32a5903ffc376cf0af3b60d7ec1b21850c92ee872f0ce9b180f607f1a8f754a9c77b
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class EricWeixin::Cms::Weixin::Xiaodian::OrdersController < EricWeixin::Cms::BaseController
|
2
2
|
def index
|
3
3
|
@orders = EricWeixin::Xiaodian::Order.order_query params
|
4
|
-
@orders = @orders.order(order_create_time: :desc).paginate(per_page: params[:per_page]||
|
4
|
+
@orders = @orders.order(order_create_time: :desc).paginate(per_page: params[:per_page]||10, page: params[:page]||1)
|
5
5
|
end
|
6
6
|
|
7
7
|
def save_delivery_info
|
@@ -109,7 +109,7 @@ class EricWeixin::WeixinUser < ActiveRecord::Base
|
|
109
109
|
if wx_user_data["subscribe"] == 0
|
110
110
|
weixin_user.update_attributes(wx_user_data.select { |k, v| ["subscribe"].include? k })
|
111
111
|
else
|
112
|
-
weixin_user.update_attributes(wx_user_data.select { |k, v| ["subscribe", "openid", "nickname", "sex", "language", "city", "province", "country", "headimgurl", "subscribe_time", "remark"].include? k })
|
112
|
+
weixin_user.update_attributes(wx_user_data.select { |k, v| ["subscribe", "openid", "nickname", "sex", "language", "city", "province", "country", "headimgurl", "subscribe_time", "remark", "unionid"].include? k })
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -191,9 +191,49 @@ class EricWeixin::WeixinUser < ActiveRecord::Base
|
|
191
191
|
users = users.where(weixin_public_account_id: options[:weixin_public_account_id]) unless options[:weixin_public_account_id].blank?
|
192
192
|
users = users.where("subscribe_time >= ?", options[:start_date].to_date.to_time.to_i) unless options[:start_date].blank?
|
193
193
|
users = users.where("subscribe_time <= ?", (options[:end_date].to_date+1.day).to_time.to_i) unless options[:end_date].blank?
|
194
|
-
|
195
|
-
|
194
|
+
|
195
|
+
# 模糊搜索订阅微信号的来源渠道
|
196
|
+
prefix = 'qrscene_'
|
197
|
+
unless options[:last_register_channel].blank?
|
198
|
+
lrc = options[:last_register_channel]
|
199
|
+
lrc_qrcode = EricWeixin::TwoDimensionCode.where("scene_str LIKE ? OR action_info LIKE ?", "%#{lrc}%", "%#{lrc}%").first
|
200
|
+
pp lrc_qrcode
|
201
|
+
unless lrc_qrcode.blank?
|
202
|
+
new_lrc_qrcode = "#{prefix}#{lrc_qrcode.scene_str}"
|
203
|
+
users = users.where("last_register_channel = ?", new_lrc_qrcode)
|
204
|
+
pp new_lrc_qrcode
|
205
|
+
pp users
|
206
|
+
end
|
207
|
+
end
|
208
|
+
unless options[:first_register_channel].blank?
|
209
|
+
frc = options[:first_register_channel]
|
210
|
+
frc_qrcode = EricWeixin::TwoDimensionCode.where("scene_str LIKE ? OR action_info LIKE ?", "%#{frc}%", "%#{frc}%").first
|
211
|
+
unless frc_qrcode.blank?
|
212
|
+
new_frc_qrcode = "#{prefix}#{frc_qrcode.scene_str}"
|
213
|
+
users = users.where("first_register_channel = ?", new_frc_qrcode)
|
214
|
+
end
|
215
|
+
end
|
196
216
|
users
|
197
217
|
end
|
198
218
|
end
|
219
|
+
|
220
|
+
|
221
|
+
# 本方法将注册方式处理为, 人类可读形式.
|
222
|
+
# 此处注册方式register_channel对应微信文档中EventKey
|
223
|
+
# 暂时只有一种情况, 未注册用户扫描带参数二维码, 触发subscribe事件, 返回的EventKey中, qrscene_为前缀,后面为二维码的参数值
|
224
|
+
# 如果是长时间二维码, 就返回二维码对应文字说明; 如果是短时间二维码(无说明), 就返回对应数字编号
|
225
|
+
def translate_register_channel option
|
226
|
+
target_channel = if option == "last_register_channel"
|
227
|
+
self.last_register_channel
|
228
|
+
elsif option == "first_register_channel"
|
229
|
+
self.first_register_channel
|
230
|
+
end
|
231
|
+
return '' if target_channel.blank?
|
232
|
+
if target_channel.match /qrscene_/
|
233
|
+
qrparam = target_channel.gsub(/qrscene_/, '')
|
234
|
+
qrcode = EricWeixin::TwoDimensionCode.where('scene_str = ?', qrparam).first
|
235
|
+
action_info = qrcode.action_info unless qrcode.blank?
|
236
|
+
return action_info.blank? ? qrparam : action_info
|
237
|
+
end
|
238
|
+
end
|
199
239
|
end
|
@@ -361,6 +361,9 @@ class EricWeixin::Xiaodian::Order < ActiveRecord::Base
|
|
361
361
|
:content => delivery_id.to_s,
|
362
362
|
:file_path => Rails.root.join('public', 'uploads/barcode', file_name)
|
363
363
|
}
|
364
|
+
Dir.mkdir Rails.root.join('public/uploads') unless Dir.exist? Rails.root.join('public/uploads')
|
365
|
+
Dir.mkdir Rails.root.join('public/uploads/barcode') unless Dir.exist? Rails.root.join('public/uploads/barcode')
|
366
|
+
|
364
367
|
BarbyTools.create_barcode options # 使用tools里面的方法,代替下面这个注释过的代码块
|
365
368
|
# barcode = Barby::Code128B.new(delivery_id.to_s)
|
366
369
|
# blob = Barby::PngOutputter.new(barcode).to_png(:height => 20, :margin => 5) # 初始png数据
|
@@ -5,16 +5,16 @@
|
|
5
5
|
<%= f.label "标题" %>
|
6
6
|
</div>
|
7
7
|
<div class="large-9 columns">
|
8
|
-
<%= f.text_field :title %>
|
8
|
+
<%= f.text_field :title, name: 'weixin_news[title]' %>
|
9
9
|
</div>
|
10
10
|
</div>
|
11
11
|
<div class="row">
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
12
|
+
<div class="large-3 columns">
|
13
|
+
<%= f.label "关键字" %>
|
14
|
+
</div>
|
15
|
+
<div class="large-9 columns">
|
16
|
+
<%= f.text_field :match_key, name: 'weixin_news[match_key]' %>
|
17
|
+
</div>
|
18
18
|
</div>
|
19
19
|
<h2>图文列表:</h2>
|
20
20
|
<div style="margin-left: 30px">
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<%= f.label "标题" %>
|
6
6
|
</div>
|
7
7
|
<div class="large-9 columns">
|
8
|
-
<%= f.text_field :title %>
|
8
|
+
<%= f.text_field :title, name: 'weixin_news[title]' %>
|
9
9
|
</div>
|
10
10
|
</div>
|
11
11
|
<div class="row">
|
@@ -13,7 +13,7 @@
|
|
13
13
|
<%= f.label "关键字" %>
|
14
14
|
</div>
|
15
15
|
<div class="large-9 columns">
|
16
|
-
<%= f.text_field :match_key %>
|
16
|
+
<%= f.text_field :match_key, name: 'weixin_news[match_key]' %>
|
17
17
|
</div>
|
18
18
|
</div>
|
19
19
|
<h2>图文列表:</h2>
|
@@ -70,7 +70,7 @@
|
|
70
70
|
</div>
|
71
71
|
|
72
72
|
<div class="columns small-2">
|
73
|
-
<%= select_tag :public_account_id, options_from_collection_for_select(@public_accounts, 'id', 'name', (params[:public_account_id].blank? ?
|
73
|
+
<%= select_tag :public_account_id, options_from_collection_for_select(@public_accounts, 'id', 'name', (params[:public_account_id].blank? ? 1 : params[:public_account_id])), prompt: '请选择公众账号' %>
|
74
74
|
</div>
|
75
75
|
|
76
76
|
<div class="columns small-2 end">
|
@@ -82,7 +82,7 @@
|
|
82
82
|
<%= will_paginate @collection, renderer: FoundationPagination::Rails %>
|
83
83
|
<table>
|
84
84
|
<thead>
|
85
|
-
<th width="150px">openid</th> <th>是否订阅</th> <th>昵称</th> <th>性别</th>
|
85
|
+
<th width="150px">openid</th> <th>是否订阅</th> <th>昵称</th> <th>性别</th> <!--<th>语言</th>--> <th>国家 | 省份 | 城市</th> <th>头像</th> <th>关注时间</th> <th>备注</th> <th>最后一次注册渠道</th> <th>第一次注册渠道</th><th>操作</th>
|
86
86
|
</thead>
|
87
87
|
<tbody>
|
88
88
|
<% @weixin_users.each do |user| %>
|
@@ -91,15 +91,13 @@
|
|
91
91
|
<td><%= case user.subscribe when 1 then '是' when 0 then '否' end %></td>
|
92
92
|
<td><%= user.nickname %></td>
|
93
93
|
<td><%= case user.sex when 1 then '男' when 2 then '女' else '未知' end %></td>
|
94
|
-
|
95
|
-
<td><%= user.city %></td>
|
96
|
-
<td><%= user.province %></td>
|
97
|
-
<td><%= user.country %></td>
|
94
|
+
<!--<td><%#= case user.language when 'zh_CN' then '简体中文' when 'zh_TW' then '繁体中文' when 'en' then '英文' else '其它' end %></td>-->
|
95
|
+
<td><%= user.country %> <br><%= user.province %> <br><%= user.city %></td>
|
98
96
|
<td><%= image_tag(user.headimgurl, height: '32', width: '32') %></td>
|
99
|
-
<td><%= Time.at(user.subscribe_time.to_i).
|
97
|
+
<td><%= Time.at(user.subscribe_time.to_i).strftime('%Y-%m-%d %H:%M') %></td>
|
100
98
|
<td id="user_remark_<%= user.id %>"><%= user.remark %></td>
|
101
|
-
<td><%= user.last_register_channel %></td>
|
102
|
-
<td><%= user.first_register_channel %></td>
|
99
|
+
<td><%= user.translate_register_channel "last_register_channel" %></td>
|
100
|
+
<td><%= user.translate_register_channel "first_register_channel" %></td>
|
103
101
|
<td>
|
104
102
|
<%= link_to '备注', "javascript:open_modal(#{user.id})" %>
|
105
103
|
</td>
|
@@ -72,9 +72,9 @@
|
|
72
72
|
<% end %>
|
73
73
|
<h3>订单列表</h3>
|
74
74
|
微信小店官方物流公司:邮政EMS、申通快递、中通速递、圆通速递、天天快递、顺丰速运、韵达快运、宅急送、汇通快运、易迅快递
|
75
|
-
<table style="width:
|
75
|
+
<table style="width: 140%; table-layout: auto; margin-left: -140px" >
|
76
76
|
<thead>
|
77
|
-
<th>订单ID
|
77
|
+
<th>订单ID</th>
|
78
78
|
|
79
79
|
<th>昵称</th><th>购买时间</th><th>宝贝</th><th>宝贝信息</th><th>数量</th><th>收货信息</th>
|
80
80
|
|
@@ -83,14 +83,7 @@
|
|
83
83
|
<tbody>
|
84
84
|
<% @orders.each do |order| %>
|
85
85
|
<tr>
|
86
|
-
|
87
|
-
<td width="170px">
|
88
|
-
<%= order.order_id %>
|
89
|
-
<% unless order.delivery_id.blank? %>
|
90
|
-
<% file_path = order.delivery_id_barcode %>
|
91
|
-
<%= image_tag file_path, height: '80', width: '150' %>
|
92
|
-
<% end %>
|
93
|
-
</td>
|
86
|
+
<td style="word-break:break-all"><%= order.order_id %></td>
|
94
87
|
<td style="word-break:break-all"><%= order.buyer_nick rescue '' %></td>
|
95
88
|
<td style="word-break:break-all"><%= Time.at(order.order_create_time).strftime("%Y-%m-%d %H:%M") %></td>
|
96
89
|
<td style="word-break:break-all"><%= order.product.name rescue 'error' %></td>
|
@@ -120,7 +113,7 @@
|
|
120
113
|
</span>
|
121
114
|
<% end %>
|
122
115
|
</td>
|
123
|
-
<td id="order_<%= order.id %>_deliver_id_td" style="word-break:break-all">
|
116
|
+
<td id="order_<%= order.id %>_deliver_id_td" style="word-break:break-all" width="170px">
|
124
117
|
<% if order.delivery_id.blank? %>
|
125
118
|
<%= text_field_tag "order_#{order.id}_delivery_id" %>
|
126
119
|
<% else %>
|
@@ -129,11 +122,30 @@
|
|
129
122
|
<%= text_field_tag "order_#{order.id}_delivery_id", order.delivery_id %>
|
130
123
|
</span>
|
131
124
|
<% end %>
|
125
|
+
|
126
|
+
<% unless order.delivery_id.blank? %>
|
127
|
+
<% file_path = order.delivery_id_barcode %>
|
128
|
+
<%= image_tag file_path, height: '60', width: '150' %>
|
129
|
+
<% end %>
|
132
130
|
</td>
|
133
131
|
<td id="order_<%= order.id %>_action_td" style="word-break:break-all">
|
134
132
|
<%= link_to '保存', "javascript:save_delivery_info(#{order.id})", id: "order_#{order.id}_action", class: "button tiny" %>
|
135
133
|
</td>
|
136
134
|
</tr>
|
135
|
+
|
136
|
+
<!--<tr>-->
|
137
|
+
<!--<td class="row">-->
|
138
|
+
<!--<div class="large-6 columns">-->
|
139
|
+
<!--<%= order.order_id %>-->
|
140
|
+
<!--</div>-->
|
141
|
+
<!--<div class="large-6 columns">-->
|
142
|
+
<!--<%#= Time.at(order.order_create_time).strftime("%Y-%m-%d %H:%M") %>-->
|
143
|
+
<!--</div>-->
|
144
|
+
<!--</td>-->
|
145
|
+
<!--<td class="row">-->
|
146
|
+
|
147
|
+
<!--</td>-->
|
148
|
+
<!--</tr>-->
|
137
149
|
<% end %>
|
138
150
|
</tbody>
|
139
151
|
</table>
|
@@ -40,8 +40,25 @@
|
|
40
40
|
数量:<%= order.product_count %>
|
41
41
|
</div>
|
42
42
|
<div class="product_info-part">
|
43
|
-
<%
|
44
|
-
|
43
|
+
<% unless order.sku_info.blank? %>
|
44
|
+
<% result_array = [] %>
|
45
|
+
<% sku_array = order.sku_info.split(';') %>
|
46
|
+
<% sku_array.each do |sku| %>
|
47
|
+
<% sku_pair = sku.split(':') %>
|
48
|
+
<% sku_k = sku_pair[0] %>
|
49
|
+
<% sku_v = sku_pair[1] %>
|
50
|
+
<% if sku_k =~ /^\d{10}$/ %>
|
51
|
+
<% sku_result_k = EricWeixin::Xiaodian::SkuName.where(:wx_name_id => sku_k.to_s).first.name %>
|
52
|
+
<% sku_result_v = EricWeixin::Xiaodian::SkuValue.where(:wx_value_id => sku_v).first.name %>
|
53
|
+
<% else %>
|
54
|
+
<% sku_result_k = sku_k.gsub(/[$]/, '$' => '') %>
|
55
|
+
<% sku_result_v = sku_v.gsub(/[$]/, '$' => '') %>
|
56
|
+
<% end %>
|
57
|
+
<% single_result = "#{sku_result_k}: #{sku_result_v}" %>
|
58
|
+
<% result_array << single_result %>
|
59
|
+
<% end %>
|
60
|
+
<%= result_array.join('; ') %>
|
61
|
+
<% end %>
|
45
62
|
</div>
|
46
63
|
</div>
|
47
64
|
</div>
|
data/lib/eric_weixin/version.rb
CHANGED
metadata
CHANGED
@@ -1,19 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eric_weixin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 刘晓琦
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.1'
|
17
20
|
- - '>='
|
18
21
|
- !ruby/object:Gem::Version
|
19
22
|
version: 4.1.4
|
@@ -21,6 +24,9 @@ dependencies:
|
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '4.1'
|
24
30
|
- - '>='
|
25
31
|
- !ruby/object:Gem::Version
|
26
32
|
version: 4.1.4
|
@@ -43,6 +49,9 @@ dependencies:
|
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '5.0'
|
54
|
+
- - '>='
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: 5.0.5
|
48
57
|
type: :runtime
|
@@ -50,8 +59,259 @@ dependencies:
|
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
61
|
- - ~>
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '5.0'
|
64
|
+
- - '>='
|
53
65
|
- !ruby/object:Gem::Version
|
54
66
|
version: 5.0.5
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: rest-client
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.8.0
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - '='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 1.8.0
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: tinymce-rails
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '4.1'
|
88
|
+
- - '>='
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 4.1.3
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '4.1'
|
98
|
+
- - '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 4.1.3
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: will_paginate-foundation
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ~>
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '6.2'
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 6.2.0
|
111
|
+
type: :runtime
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '6.2'
|
118
|
+
- - '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: 6.2.0
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: eric_tools
|
123
|
+
requirement: !ruby/object:Gem::Requirement
|
124
|
+
requirements:
|
125
|
+
- - ~>
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
- - '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 0.0.7
|
131
|
+
type: :runtime
|
132
|
+
prerelease: false
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ~>
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
- - '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: 0.0.7
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: exception_notification
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ~>
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '4.0'
|
148
|
+
- - '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 4.0.1
|
151
|
+
type: :runtime
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '4.0'
|
158
|
+
- - '>='
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 4.0.1
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
name: multi_xml
|
163
|
+
requirement: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ~>
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0.5'
|
168
|
+
- - '>='
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: 0.5.5
|
171
|
+
type: :runtime
|
172
|
+
prerelease: false
|
173
|
+
version_requirements: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ~>
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0.5'
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.5.5
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: nokogiri
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ~>
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '1.6'
|
188
|
+
- - '>='
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: 1.6.3.1
|
191
|
+
type: :runtime
|
192
|
+
prerelease: false
|
193
|
+
version_requirements: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ~>
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '1.6'
|
198
|
+
- - '>='
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 1.6.3.1
|
201
|
+
- !ruby/object:Gem::Dependency
|
202
|
+
name: jquery-rails
|
203
|
+
requirement: !ruby/object:Gem::Requirement
|
204
|
+
requirements:
|
205
|
+
- - ~>
|
206
|
+
- !ruby/object:Gem::Version
|
207
|
+
version: '3.1'
|
208
|
+
- - '>='
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: 3.1.4
|
211
|
+
type: :runtime
|
212
|
+
prerelease: false
|
213
|
+
version_requirements: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - ~>
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '3.1'
|
218
|
+
- - '>='
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: 3.1.4
|
221
|
+
- !ruby/object:Gem::Dependency
|
222
|
+
name: daemons
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - '='
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: 1.2.3
|
228
|
+
type: :runtime
|
229
|
+
prerelease: false
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - '='
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 1.2.3
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: delayed_job_active_record
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ~>
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '4.1'
|
242
|
+
- - '>='
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: 4.1.0
|
245
|
+
type: :runtime
|
246
|
+
prerelease: false
|
247
|
+
version_requirements: !ruby/object:Gem::Requirement
|
248
|
+
requirements:
|
249
|
+
- - ~>
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
version: '4.1'
|
252
|
+
- - '>='
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: 4.1.0
|
255
|
+
- !ruby/object:Gem::Dependency
|
256
|
+
name: barby
|
257
|
+
requirement: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - ~>
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0.6'
|
262
|
+
- - '>='
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: 0.6.4
|
265
|
+
type: :runtime
|
266
|
+
prerelease: false
|
267
|
+
version_requirements: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ~>
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0.6'
|
272
|
+
- - '>='
|
273
|
+
- !ruby/object:Gem::Version
|
274
|
+
version: 0.6.4
|
275
|
+
- !ruby/object:Gem::Dependency
|
276
|
+
name: chunky_png
|
277
|
+
requirement: !ruby/object:Gem::Requirement
|
278
|
+
requirements:
|
279
|
+
- - ~>
|
280
|
+
- !ruby/object:Gem::Version
|
281
|
+
version: '1.3'
|
282
|
+
- - '>='
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: 1.3.6
|
285
|
+
type: :runtime
|
286
|
+
prerelease: false
|
287
|
+
version_requirements: !ruby/object:Gem::Requirement
|
288
|
+
requirements:
|
289
|
+
- - ~>
|
290
|
+
- !ruby/object:Gem::Version
|
291
|
+
version: '1.3'
|
292
|
+
- - '>='
|
293
|
+
- !ruby/object:Gem::Version
|
294
|
+
version: 1.3.6
|
295
|
+
- !ruby/object:Gem::Dependency
|
296
|
+
name: rqrcode
|
297
|
+
requirement: !ruby/object:Gem::Requirement
|
298
|
+
requirements:
|
299
|
+
- - ~>
|
300
|
+
- !ruby/object:Gem::Version
|
301
|
+
version: '0.10'
|
302
|
+
- - '>='
|
303
|
+
- !ruby/object:Gem::Version
|
304
|
+
version: 0.10.1
|
305
|
+
type: :runtime
|
306
|
+
prerelease: false
|
307
|
+
version_requirements: !ruby/object:Gem::Requirement
|
308
|
+
requirements:
|
309
|
+
- - ~>
|
310
|
+
- !ruby/object:Gem::Version
|
311
|
+
version: '0.10'
|
312
|
+
- - '>='
|
313
|
+
- !ruby/object:Gem::Version
|
314
|
+
version: 0.10.1
|
55
315
|
description: 快速开发微信公众账号
|
56
316
|
email:
|
57
317
|
- ericliu@ikidstv.com
|
@@ -211,6 +471,7 @@ files:
|
|
211
471
|
- db/migrate/20151117021439_create_weixin_xiaodian_product_sku_detail.rb
|
212
472
|
- db/migrate/20151119033354_add_status_to_weixin_xiaodian_product.rb
|
213
473
|
- db/migrate/20151124113559_add_openid_to_weixin_xiaodian_order.rb
|
474
|
+
- db/migrate/20160801040113_add_unionid_to_weixin_users.rb
|
214
475
|
- lib/eric_weixin.rb
|
215
476
|
- lib/eric_weixin/engine.rb
|
216
477
|
- lib/eric_weixin/modules/analyze_data.rb
|