eric_weixin 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80beb7d241714a87e6159fc03053106cbeaf78e5
4
- data.tar.gz: 4db48304387dde424d5c27ed1dcc4ffe23afdf60
3
+ metadata.gz: 3f1ededcda869f5ec482457ba9299c8697b50113
4
+ data.tar.gz: 701440fcd6765a14d8164faa3d8b1e638a80b8cf
5
5
  SHA512:
6
- metadata.gz: 47e63938b4b77e560178523949d7b02db6582100a7ad7d79afb5276f36f02e8416e8a72beb01e4aab6b62e1f80f2521f353ebdb2b66f594fde0db56eaa4c982c
7
- data.tar.gz: 7b5ae164a8c2c5238aa765edebb4dfcc41ee8a9ecd945490f99b6854147f42902d062b4dd4191e9b18253b586293d57977c96646db1b5f531079029bc0328348
6
+ metadata.gz: a9e46d8e894d1c42ac88b0b4df879debf2335fa23877ea4a072c1294d262cc014cedee426c538f16a69acf83c87c50ad18c018e0ff877fde6551ce5ccff1301e
7
+ data.tar.gz: ae26b5cc10abbf9c7fa44880e5ff50eea0101e550ce065ca0b4ea6a638be32a5903ffc376cf0af3b60d7ec1b21850c92ee872f0ce9b180f607f1a8f754a9c77b
@@ -70,3 +70,6 @@
70
70
  }
71
71
  }
72
72
 
73
+ body{
74
+ height: inherit;
75
+ }
@@ -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]||6, page: params[:page]||1)
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
- users = users.where("last_register_channel = ?", options[:last_register_channel]) unless options[:last_register_channel].blank?
195
- users = users.where("first_register_channel = ?", options[:first_register_channel]) unless options[:first_register_channel].blank?
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
- <div class="large-3 columns">
13
- <%= f.label "关键字" %>
14
- </div>
15
- <div class="large-9 columns">
16
- <%= f.text_field :match_key %>
17
- </div>
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? ? '' : params[:public_account_id])), prompt: '请选择公众账号' %>
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> <th>语言</th> <th>城市</th> <th>省份</th> <th>国家</th> <th>头像</th> <th>关注时间</th> <th>备注</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
- <td><%= case user.language when 'zh_CN' then '简体中文' when 'zh_TW' then '繁体中文' when 'en' then '英文' else '其它' end %></td>
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).chinese_format %></td>
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: 113%; table-layout: auto;" >
75
+ <table style="width: 140%; table-layout: auto; margin-left: -140px" >
76
76
  <thead>
77
- <th>订单ID/快递码</th>
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
- <!--<td style="word-break:break-all"><%#= order.order_id %></td>-->
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
- <% sku_info = order.sku_info.gsub(/[$]/, '$' => '') unless order.sku_info.blank? %>
44
- <%= "(#{sku_info})" unless order.sku_info.blank? %>
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>
@@ -0,0 +1,5 @@
1
+ class AddUnionidToWeixinUsers < ActiveRecord::Migration
2
+ def change
3
+ add_column :weixin_users, :unionid, :string
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module EricWeixin
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
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.1
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-03-21 00:00:00.000000000 Z
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