blsm-vd-core 0.8.7 → 0.8.8
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 +4 -4
- data/lib/blsm-vd-core/model/order.rb +1 -0
- data/lib/blsm-vd-core/model/vd_free_post.rb +25 -0
- data/lib/blsm-vd-core/version.rb +1 -1
- data/lib/blsm-vd-core.rb +63 -10
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96a09005b55e480864d0ccd8d14b34ee09fabe7d
|
4
|
+
data.tar.gz: 58369f32ba270c58accab9ffcf77e0577eb6328f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79a11de11b20e13fc1e6db9aab3cd49d8b7a00d165f69acd6497405647985f18431064a4842104684aae546dfe9bbd1cd06fec9ef42cd3f404cb20b29a5b6330
|
7
|
+
data.tar.gz: bcb618402d988a7bf116b798844877b03f0b059001538824f36f353f5f2f4607d7e84e1168b0702b29f820a4a161a3f00ea6e1f22bb7806dbce32e85d9e873c8
|
@@ -8,6 +8,7 @@ module BlsmVdCore
|
|
8
8
|
belongs_to :application, class_name: "::BlsmVdCore::Application", foreign_key: "application_id"
|
9
9
|
belongs_to :shippingorder, class_name: "::BlsmVdCore::Shippingorder", foreign_key: "shippingorder_id"
|
10
10
|
belongs_to :ubox_vm, class_name: "::BlsmVdCore::UboxVm", foreign_key: 'ubox_vmid', primary_key: 'ubox_vmid'
|
11
|
+
has_one :vd_free_post,class_name: "::BlsmVdCore::VdFreePost"
|
11
12
|
|
12
13
|
encrypted_id key: 'bYqILlFMZn3xd8Cy'
|
13
14
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
module BlsmVdCore
|
3
|
+
class VdFreePost < BlsmVdCore::BaseRecord
|
4
|
+
self.table_name='vd_free_posts'
|
5
|
+
belongs_to :user, class_name: "::BlsmVdCore::User"
|
6
|
+
belongs_to :order, class_name: "::BlsmVdCore::Order"
|
7
|
+
|
8
|
+
DEFAULT_EXPIRE_AT = '2017-01-20 15:30'
|
9
|
+
|
10
|
+
before_validation :gen_expire_at
|
11
|
+
|
12
|
+
def expired?
|
13
|
+
return false unless self.expire_at
|
14
|
+
return true if Time.now.strftime('%Y-%m-%d %H:%M:%S')> self.expire_at.strftime('%Y-%m-%d %H:%M:%S')
|
15
|
+
false
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
def gen_expire_at
|
20
|
+
unless self.expire_at
|
21
|
+
self.expire_at = VdFreePost::DEFAULT_EXPIRE_AT
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/blsm-vd-core/version.rb
CHANGED
data/lib/blsm-vd-core.rb
CHANGED
@@ -27,6 +27,7 @@ require 'blsm-vd-core/model/setting'
|
|
27
27
|
require 'blsm-vd-core/model/recharge_spread'
|
28
28
|
require 'blsm-vd-core/model/user_spread'
|
29
29
|
require 'blsm-vd-core/model/shippingorder'
|
30
|
+
require 'blsm-vd-core/model/vd_free_post'
|
30
31
|
require 'faraday'
|
31
32
|
require 'blsm-mp-wx'
|
32
33
|
|
@@ -44,6 +45,9 @@ module BlsmVdCore
|
|
44
45
|
4043 => {code: 4043, msg: '空订单'},
|
45
46
|
4044 => {code: 4044, msg: '订单没有所属微店主'},
|
46
47
|
4045 => {code: 4045, msg: '用户不存在'},
|
48
|
+
4046 => {code: 4046, msg: 'setting值不存在'},
|
49
|
+
4047 => {code: 4047, msg: 'setting规则不匹配'},
|
50
|
+
4048 => {code: 4048, msg: 'setting值为空'},
|
47
51
|
|
48
52
|
200 => {code: 200, msg: '成功'}
|
49
53
|
}
|
@@ -78,12 +82,12 @@ module BlsmVdCore
|
|
78
82
|
|
79
83
|
#订单被拒签=>创建shippingorder 拒签的记录
|
80
84
|
if order.state.to_s.include?('客户拒签,原件返回')
|
81
|
-
shippingorder = Shippingorder.where(:id=>order.shippingorder_id).first
|
85
|
+
shippingorder = Shippingorder.where(:id => order.shippingorder_id).first
|
82
86
|
if shippingorder.blank?
|
83
|
-
shippingorder = Shippingorder.create(:refuse_at=>Time.now)
|
84
|
-
order.update_attributes(:shippingorder_id=>shippingorder.id)
|
87
|
+
shippingorder = Shippingorder.create(:refuse_at => Time.now)
|
88
|
+
order.update_attributes(:shippingorder_id => shippingorder.id)
|
85
89
|
else
|
86
|
-
shippingorder.update_attributes(:refuse_at=>Time.now)
|
90
|
+
shippingorder.update_attributes(:refuse_at => Time.now)
|
87
91
|
end
|
88
92
|
return
|
89
93
|
end
|
@@ -95,16 +99,28 @@ module BlsmVdCore
|
|
95
99
|
if order.application
|
96
100
|
on_order_sale_out(order.application.user_id, order_id)
|
97
101
|
#订单完成, 发送融云消息, 给邀请人奖励
|
98
|
-
user =
|
102
|
+
user = order.application.user
|
99
103
|
if !user.blank?
|
100
104
|
#订单完成, 发送融云消息
|
101
105
|
if !user.rc_user.blank?
|
102
106
|
VdRcMsgNotify.create_order_finish_notify(user.username)
|
103
107
|
end
|
108
|
+
# 包邮券返款
|
109
|
+
if order.vd_free_post
|
110
|
+
ClearingItem.create({
|
111
|
+
state: 'CASH_BACK',
|
112
|
+
pay_type: "ZXZF",
|
113
|
+
user_id: user.id,
|
114
|
+
order_id: -14,
|
115
|
+
rate_of_profit: 1,
|
116
|
+
earn_amount: order.shipping_charge
|
117
|
+
})
|
118
|
+
end
|
119
|
+
|
104
120
|
# 进货费返还
|
105
121
|
user_info = user.create_vd_user_info
|
106
122
|
if !order.line_items.blank? && user_info.purchase_fee > 0
|
107
|
-
franchise_price = order.line_items.inject(0){|result,item| result+item.franchise_price*item.quantity}
|
123
|
+
franchise_price = order.line_items.inject(0) { |result, item| result+item.franchise_price*item.quantity }
|
108
124
|
earn_amount = franchise_price < user_info.purchase_fee ? franchise_price : user_info.purchase_fee
|
109
125
|
#创建结算项
|
110
126
|
ClearingItem.create({
|
@@ -115,10 +131,10 @@ module BlsmVdCore
|
|
115
131
|
rate_of_profit: 1,
|
116
132
|
earn_amount: earn_amount
|
117
133
|
})
|
118
|
-
user_info.update_attributes(:purchase_fee=> (user_info.purchase_fee - earn_amount))
|
134
|
+
user_info.update_attributes(:purchase_fee => (user_info.purchase_fee - earn_amount))
|
119
135
|
end
|
120
136
|
# 给邀请人奖励
|
121
|
-
inviter = User.where(:invication_code=>user.invicated_from).first if user.invicated_from
|
137
|
+
inviter = User.where(:invication_code => user.invicated_from).first if user.invicated_from
|
122
138
|
vd_transaction = "inviter_#{order.id}_reward"
|
123
139
|
#被邀请人,金牌店主以下,渠道邀请,邀请人不为空,一个订单只能有一个结算项
|
124
140
|
if user.vd_user_info.distribute_sum < 1500 && user.create_vd_user_info.channel == "market_invite" && !inviter.blank? && !BlsmVdCore::VdInfoSec.dangerous?(vd_transaction)
|
@@ -154,7 +170,7 @@ module BlsmVdCore
|
|
154
170
|
content: content
|
155
171
|
})
|
156
172
|
end
|
157
|
-
BlsmVdCore::VdInfoSec.committed(vd_transaction)
|
173
|
+
BlsmVdCore::VdInfoSec.committed(vd_transaction) #防止重复创建
|
158
174
|
end
|
159
175
|
end
|
160
176
|
end
|
@@ -186,6 +202,44 @@ module BlsmVdCore
|
|
186
202
|
ERROR_CODES[200]
|
187
203
|
end
|
188
204
|
|
205
|
+
|
206
|
+
#订单被导入到erp时
|
207
|
+
# 判断订单是否包含顺丰包邮商品,并根据此创建包邮券
|
208
|
+
def on_order_export_to_erp(order_id)
|
209
|
+
order = Order.where(id: order_id).first
|
210
|
+
settings = Setting.where(name: 'vd_free_post_products').first
|
211
|
+
seller = order.application.user if order && order.application
|
212
|
+
|
213
|
+
#数据校验
|
214
|
+
return ERROR_CODES[404] unless order
|
215
|
+
return ERROR_CODES[4043] unless order.line_items
|
216
|
+
return ERROR_CODES[4046] unless settings
|
217
|
+
return ERROR_CODES[4045] unless seller
|
218
|
+
|
219
|
+
product_ids = settings.value.to_s.split('|').map(&:to_i)
|
220
|
+
|
221
|
+
return ERROR_CODES[4048] if product_ids.size==0
|
222
|
+
return ERROR_CODES[4047] unless order.line_items.detect { |item| product_ids.include?(item.product_id) }
|
223
|
+
|
224
|
+
#安全校验
|
225
|
+
vd_transaction = "order_export_to_erp_handle_#{order_id}"
|
226
|
+
danger = VdInfoSec.dangerous?(vd_transaction)
|
227
|
+
return danger if danger
|
228
|
+
VdFreePost.create({user_id: seller.id})
|
229
|
+
content = '您获取到一张顺丰免费券,点击查看 http://w.url.cn/s/AQsuRun'
|
230
|
+
VdMpMsg.create!({
|
231
|
+
app_id: BlsmMpWx.APP_ID,
|
232
|
+
openid: seller.openid,
|
233
|
+
content: content,
|
234
|
+
msg_name: "custom",
|
235
|
+
template_msg: false,
|
236
|
+
status: 'none'
|
237
|
+
}) if seller.openid
|
238
|
+
|
239
|
+
VdInfoSec.committed(vd_transaction)
|
240
|
+
ERROR_CODES[200]
|
241
|
+
end
|
242
|
+
|
189
243
|
#物流返款
|
190
244
|
#==== Parameters
|
191
245
|
# * +order_id+ - 订单id
|
@@ -461,7 +515,6 @@ module BlsmVdCore
|
|
461
515
|
#店主销售额、分销额增加
|
462
516
|
VdUserInfo.update_counters(seller_info.id, :sale_sum => order.total_fee.to_f)
|
463
517
|
VdUserInfo.update_counters(seller_info.id, :distribute_sum => order.franchise_sum.to_f)
|
464
|
-
VdUserInfo.find_by_id(seller_info.id) { |info| info.sync_shop_state }
|
465
518
|
|
466
519
|
#分销额增加,更新未发出货物的(state=CREATE)分成比率
|
467
520
|
seller.clearing_items.where(:state => "WAIT_TO_SURE").each do |item|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blsm-vd-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saxer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-01-
|
12
|
+
date: 2017-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -199,6 +199,7 @@ files:
|
|
199
199
|
- lib/blsm-vd-core/model/ubox_vm.rb
|
200
200
|
- lib/blsm-vd-core/model/user.rb
|
201
201
|
- lib/blsm-vd-core/model/user_spread.rb
|
202
|
+
- lib/blsm-vd-core/model/vd_free_post.rb
|
202
203
|
- lib/blsm-vd-core/model/vd_info_sec.rb
|
203
204
|
- lib/blsm-vd-core/model/vd_mp_msg.rb
|
204
205
|
- lib/blsm-vd-core/model/vd_rc_msg_notify.rb
|