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 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