|
|
@ -13,6 +13,7 @@ use app\common\logic\IntegralLogic; |
|
|
use app\common\logic\OrderLogLogic; |
|
|
use app\common\logic\OrderLogLogic; |
|
|
use app\common\logic\PayNotifyLogic; |
|
|
use app\common\logic\PayNotifyLogic; |
|
|
use app\common\model\Client_; |
|
|
use app\common\model\Client_; |
|
|
|
|
|
use app\common\model\content\Resource; |
|
|
use app\common\model\distribution\DistributionGoods; |
|
|
use app\common\model\distribution\DistributionGoods; |
|
|
use app\common\model\distribution\DistributionLevel; |
|
|
use app\common\model\distribution\DistributionLevel; |
|
|
use app\common\model\distribution\DistributionOrderGoods; |
|
|
use app\common\model\distribution\DistributionOrderGoods; |
|
|
@ -21,11 +22,15 @@ use app\common\model\AccountLog; |
|
|
use app\common\logic\AccountLogLogic; |
|
|
use app\common\logic\AccountLogLogic; |
|
|
use app\common\model\integral\IntegralOrder; |
|
|
use app\common\model\integral\IntegralOrder; |
|
|
use app\common\model\order\OrderGoods; |
|
|
use app\common\model\order\OrderGoods; |
|
|
|
|
|
use app\common\model\order\OrderResource; |
|
|
use app\common\model\order\OrderTrade; |
|
|
use app\common\model\order\OrderTrade; |
|
|
use app\common\model\order\Order; |
|
|
use app\common\model\order\Order; |
|
|
|
|
|
use app\common\model\order\OrderUser; |
|
|
use app\common\model\RechargeOrder; |
|
|
use app\common\model\RechargeOrder; |
|
|
use app\common\model\shop\Shop; |
|
|
use app\common\model\shop\Shop; |
|
|
use app\common\model\user\User; |
|
|
use app\common\model\user\User; |
|
|
|
|
|
use app\common\model\user\UserResource; |
|
|
|
|
|
use app\common\model\user\UserShip; |
|
|
use app\common\server\JsonServer; |
|
|
use app\common\server\JsonServer; |
|
|
use app\common\server\WeChatPayServer; |
|
|
use app\common\server\WeChatPayServer; |
|
|
use app\common\server\ConfigServer; |
|
|
use app\common\server\ConfigServer; |
|
|
@ -49,16 +54,37 @@ class PayLogic extends Logic |
|
|
* @author suny |
|
|
* @author suny |
|
|
* @date 2021/7/13 6:24 下午 |
|
|
* @date 2021/7/13 6:24 下午 |
|
|
*/ |
|
|
*/ |
|
|
public static function checkPayStatus($trade_id) |
|
|
public static function checkPayStatus($type,$trade_id) |
|
|
{ |
|
|
{ |
|
|
|
|
|
// $trader_order = OrderTrade::find($trade_id);; |
|
|
$where = [ |
|
|
$where = [ |
|
|
'trade_id' => $trade_id, |
|
|
'trade_id' => $trade_id, |
|
|
'pay_status' => PayEnum::ISPAID, |
|
|
'pay_status' => PayEnum::ISPAID, |
|
|
'del' => 0 |
|
|
'del' => 0 |
|
|
]; |
|
|
]; |
|
|
|
|
|
switch ($type) { |
|
|
|
|
|
case 1: |
|
|
|
|
|
$check = OrderUser::where($where)->find(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 2: |
|
|
|
|
|
$check = OrderResource::where($where)->find(); |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
$check = Order::where($where)->find(); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// //普通订单 |
|
|
|
|
|
// if($type == 0){ |
|
|
|
|
|
// $check = Order::where($where)->find(); |
|
|
|
|
|
// } //会员订单 |
|
|
|
|
|
// elseif($type == 1){ |
|
|
|
|
|
// $check = OrderUser::where($where)->find(); |
|
|
|
|
|
// }//资料订单 |
|
|
|
|
|
// elseif($type == 2){ |
|
|
|
|
|
// $check = OrderResource::where($where)->find(); |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
$check = Order::where($where)->find(); |
|
|
|
|
|
if ($check) { |
|
|
if ($check) { |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
@ -80,11 +106,12 @@ class PayLogic extends Logic |
|
|
*/ |
|
|
*/ |
|
|
public static function balancePay($order_id, $form) |
|
|
public static function balancePay($order_id, $form) |
|
|
{ |
|
|
{ |
|
|
|
|
|
$order_type = 0; |
|
|
switch ($form) { |
|
|
switch ($form) { |
|
|
case "trade": |
|
|
case "trade": |
|
|
$order = OrderTrade::find($order_id); |
|
|
$order = OrderTrade::find($order_id); |
|
|
if (self::checkPayStatus($order_id)) { |
|
|
$order_type = $order['type']; |
|
|
|
|
|
if (self::checkPayStatus($order['type'],$order_id)) { |
|
|
$order['pay_status'] = PayEnum::ISPAID; |
|
|
$order['pay_status'] = PayEnum::ISPAID; |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
@ -131,32 +158,115 @@ class PayLogic extends Logic |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//记录余额 |
|
|
//记录余额 |
|
|
$acountLogResult = AccountLogLogic::AccountRecord($order['user_id'], $order['order_amount'], 2, AccountLog::balance_pay_order); |
|
|
$acountLogResult = AccountLogLogic::AccountRecord($order['user_id'], $order['order_amount'], 2, $order_type==1?AccountLog::balance_pay_user:($order_type==2?AccountLog::balance_pay_resource:AccountLog::balance_pay_order)); |
|
|
if ($acountLogResult === false) { |
|
|
if ($acountLogResult === false) { |
|
|
Db::rollback(); |
|
|
Db::rollback(); |
|
|
return JsonServer::error('账户明细记录添加失败'); |
|
|
return JsonServer::error('账户明细记录添加失败'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if ($form == "trade") { |
|
|
if ($form == "trade") { |
|
|
$order_id = Order::where('trade_id', $order_id)->column('id'); |
|
|
|
|
|
|
|
|
if($order_type==0){ |
|
|
|
|
|
$order_id = Order::where('trade_id', $order_id)->column('id'); |
|
|
|
|
|
$orderStatusChange = self::changOrderStatus($order_id); |
|
|
|
|
|
}elseif($order_type==1){ |
|
|
|
|
|
$order_user = OrderUser::where('trade_id', $order_id)->field("id")->find(); |
|
|
|
|
|
$order_id = $order_user['id']; |
|
|
|
|
|
$orderStatusChange = self::changUserOrderStatus($order_id); |
|
|
|
|
|
}elseif($order_type==2){ |
|
|
|
|
|
$order_user = OrderResource::where('trade_id', $order_id)->find(); |
|
|
|
|
|
$order_id = $order_user['id']; |
|
|
|
|
|
$orderStatusChange = self::changResourceOrderStatus($order_id); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
$orderStatusChange = self::changOrderStatus($order_id); |
|
|
|
|
|
if ($orderStatusChange == false) { |
|
|
if ($orderStatusChange == false) { |
|
|
Db::rollback(); |
|
|
Db::rollback(); |
|
|
return JsonServer::error('子订单状态改变失败'); |
|
|
return JsonServer::error('子订单状态改变失败'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 生成分销订单 |
|
|
if($order_type == 0 ){ |
|
|
self::distributionOrderGoods($order_id); |
|
|
// 生成分销订单 |
|
|
// 更新分销会员等级 |
|
|
self::distributionOrderGoods($order_id); |
|
|
DistributionLevelLogic::updateDistributionLevel($order['user_id']); |
|
|
// 更新分销会员等级 |
|
|
|
|
|
DistributionLevelLogic::updateDistributionLevel($order['user_id']); |
|
|
|
|
|
|
|
|
|
|
|
if($form == "trade"){ |
|
|
|
|
|
$orders = Order::where([['id','in',$order_id]])->select(); |
|
|
|
|
|
foreach ($orders as $item) { |
|
|
|
|
|
// 增加商品销量 |
|
|
|
|
|
$order_goods = OrderGoods::where('order_id', $item['id'])->select()->toArray(); |
|
|
|
|
|
foreach ($order_goods as $order_good) { |
|
|
|
|
|
Goods::where('id', $order_good['goods_id']) |
|
|
|
|
|
->inc('sales_actual', $order_good['goods_num']) |
|
|
|
|
|
->update(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//修改用户消费累计额度 |
|
|
|
|
|
$user = User::find($item['user_id']); |
|
|
|
|
|
$user->total_order_amount = ['inc', $item['order_amount']]; |
|
|
|
|
|
$user->save(); |
|
|
|
|
|
|
|
|
|
|
|
//赠送成长值 |
|
|
|
|
|
$growth_ratio = ConfigServer::get('transaction', 'money_to_growth', 0); |
|
|
|
|
|
if ($growth_ratio > 0) { |
|
|
|
|
|
$able_get_growth = floor($item['total_amount'] / $growth_ratio); |
|
|
|
|
|
$user->where('id', $item['user_id']) |
|
|
|
|
|
->inc('user_growth', $able_get_growth) |
|
|
|
|
|
->update(); |
|
|
|
|
|
AccountLogLogic::AccountRecord($item['user_id'], $able_get_growth, 1, AccountLog::order_give_growth, '', $item['id'], $item['order_sn']); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if($form == "trade"){ |
|
|
//赠送积分 |
|
|
$orders = Order::where([['id','in',$order_id]])->select(); |
|
|
$open_award = ConfigServer::get('order_award', 'open_award', 0); |
|
|
foreach ($orders as $item) { |
|
|
if ($open_award == 1) { |
|
|
|
|
|
$award_event = ConfigServer::get('order_award', 'award_event', 0); |
|
|
|
|
|
$award_ratio = ConfigServer::get('order_award', 'award_ratio', 0); |
|
|
|
|
|
if ($award_ratio > 0) { |
|
|
|
|
|
$award_integral = floor($item['order_amount'] * ($award_ratio / 100)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
Order::update(['award_integral_status' => $award_event ?? 0,'award_integral' => $award_integral ?? 0],['id'=>$item['id']]); |
|
|
|
|
|
|
|
|
|
|
|
//通知用户 |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::ORDER_PAY_NOTICE, |
|
|
|
|
|
'mobile' => $user['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
//通知商家 |
|
|
|
|
|
if (!empty($item['shop']['mobile'])) { |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::USER_PAID_NOTICE_SHOP, |
|
|
|
|
|
'mobile' => $item['shop']['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
} |
|
|
|
|
|
// 打印小票 |
|
|
|
|
|
event('Printer', [ |
|
|
|
|
|
'order_id' => $item['id'], |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
OrderLogLogic::record( |
|
|
|
|
|
OrderLogEnum::TYPE_USER, |
|
|
|
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
|
|
|
$item['id'], |
|
|
|
|
|
$item['user_id'], |
|
|
|
|
|
OrderLogEnum::getLogDesc(OrderLogEnum::USER_PAID_ORDER) |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 虚拟商品更新订单信息 |
|
|
|
|
|
GoodsVirtualLogic::afterPayVirtualDelivery($order_id); |
|
|
|
|
|
|
|
|
|
|
|
} else{ |
|
|
// 增加商品销量 |
|
|
// 增加商品销量 |
|
|
$order_goods = OrderGoods::where('order_id', $item['id'])->select()->toArray(); |
|
|
$order_goods = OrderGoods::where('order_id', $order['id'])->select(); |
|
|
foreach ($order_goods as $order_good) { |
|
|
foreach ($order_goods as $order_good) { |
|
|
Goods::where('id', $order_good['goods_id']) |
|
|
Goods::where('id', $order_good['goods_id']) |
|
|
->inc('sales_actual', $order_good['goods_num']) |
|
|
->inc('sales_actual', $order_good['goods_num']) |
|
|
@ -164,18 +274,18 @@ class PayLogic extends Logic |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//修改用户消费累计额度 |
|
|
//修改用户消费累计额度 |
|
|
$user = User::find($item['user_id']); |
|
|
$user = User::find($order['user_id']); |
|
|
$user->total_order_amount = ['inc', $item['order_amount']]; |
|
|
$user->total_order_amount = ['inc', $order['order_amount']]; |
|
|
$user->save(); |
|
|
$user->save(); |
|
|
|
|
|
|
|
|
//赠送成长值 |
|
|
//赠送成长值 |
|
|
$growth_ratio = ConfigServer::get('transaction', 'money_to_growth', 0); |
|
|
$growth_ratio = ConfigServer::get('transaction', 'money_to_growth', 0); |
|
|
if ($growth_ratio > 0) { |
|
|
if ($growth_ratio > 0) { |
|
|
$able_get_growth = floor($item['total_amount'] / $growth_ratio); |
|
|
$able_get_growth = floor($order['total_amount'] / $growth_ratio); |
|
|
$user->where('id', $item['user_id']) |
|
|
$user->where('id', $order['user_id']) |
|
|
->inc('user_growth', $able_get_growth) |
|
|
->inc('user_growth', $able_get_growth) |
|
|
->update(); |
|
|
->update(); |
|
|
AccountLogLogic::AccountRecord($item['user_id'], $able_get_growth, 1, AccountLog::order_give_growth, '', $item['id'], $item['order_sn']); |
|
|
AccountLogLogic::AccountRecord($order['user_id'], $able_get_growth, 1, AccountLog::order_give_growth, '', $order['id'], $order['order_sn']); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -185,112 +295,50 @@ class PayLogic extends Logic |
|
|
$award_event = ConfigServer::get('order_award', 'award_event', 0); |
|
|
$award_event = ConfigServer::get('order_award', 'award_event', 0); |
|
|
$award_ratio = ConfigServer::get('order_award', 'award_ratio', 0); |
|
|
$award_ratio = ConfigServer::get('order_award', 'award_ratio', 0); |
|
|
if ($award_ratio > 0) { |
|
|
if ($award_ratio > 0) { |
|
|
$award_integral = floor($item['order_amount'] * ($award_ratio / 100)); |
|
|
$award_integral = floor($order['order_amount'] * ($award_ratio / 100)); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
Order::update(['award_integral_status' => $award_event ?? 0,'award_integral' => $award_integral ?? 0],['id'=>$item['id']]); |
|
|
Order::update(['award_integral_status' => $award_event ?? 0,'award_integral' => $award_integral ?? 0],['id'=>$order['id']]); |
|
|
|
|
|
|
|
|
|
|
|
// 虚拟商品更新订单信息 |
|
|
|
|
|
GoodsVirtualLogic::afterPayVirtualDelivery($order['id']); |
|
|
|
|
|
|
|
|
//通知用户 |
|
|
//通知用户 |
|
|
event('Notice', [ |
|
|
event('Notice', [ |
|
|
'scene' => NoticeEnum::ORDER_PAY_NOTICE, |
|
|
'scene' => NoticeEnum::ORDER_PAY_NOTICE, |
|
|
'mobile' => $user['mobile'], |
|
|
'mobile' => $user['mobile'], |
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
'params' => ['order_id' => $order['id'], 'user_id' => $order['user_id']] |
|
|
]); |
|
|
]); |
|
|
|
|
|
|
|
|
//通知商家 |
|
|
//通知商家 |
|
|
if (!empty($item['shop']['mobile'])) { |
|
|
if (!empty($order['shop']['mobile'])) { |
|
|
event('Notice', [ |
|
|
event('Notice', [ |
|
|
'scene' => NoticeEnum::USER_PAID_NOTICE_SHOP, |
|
|
'scene' => NoticeEnum::USER_PAID_NOTICE_SHOP, |
|
|
'mobile' => $item['shop']['mobile'], |
|
|
'mobile' => $order['shop']['mobile'], |
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
'params' => ['order_id' => $order['id'], 'user_id' => $order['user_id']] |
|
|
]); |
|
|
]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 打印小票 |
|
|
// 打印小票 |
|
|
event('Printer', [ |
|
|
event('Printer', [ |
|
|
'order_id' => $item['id'], |
|
|
'order_id' => $order['id'], |
|
|
]); |
|
|
]); |
|
|
|
|
|
|
|
|
OrderLogLogic::record( |
|
|
OrderLogLogic::record( |
|
|
OrderLogEnum::TYPE_USER, |
|
|
OrderLogEnum::TYPE_USER, |
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
$item['id'], |
|
|
$order['id'], |
|
|
$item['user_id'], |
|
|
$order['user_id'], |
|
|
OrderLogEnum::getLogDesc(OrderLogEnum::USER_PAID_ORDER) |
|
|
OrderLogEnum::getLogDesc(OrderLogEnum::USER_PAID_ORDER) |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
}elseif($order_type == 1){ |
|
|
// 虚拟商品更新订单信息 |
|
|
self::conplateUserOrder($order_id); |
|
|
GoodsVirtualLogic::afterPayVirtualDelivery($order_id); |
|
|
}elseif($order_type == 2){ |
|
|
|
|
|
self::conplateResourceOrder($order_id); |
|
|
} else{ |
|
|
|
|
|
// 增加商品销量 |
|
|
|
|
|
$order_goods = OrderGoods::where('order_id', $order['id'])->select(); |
|
|
|
|
|
foreach ($order_goods as $order_good) { |
|
|
|
|
|
Goods::where('id', $order_good['goods_id']) |
|
|
|
|
|
->inc('sales_actual', $order_good['goods_num']) |
|
|
|
|
|
->update(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//修改用户消费累计额度 |
|
|
|
|
|
$user = User::find($order['user_id']); |
|
|
|
|
|
$user->total_order_amount = ['inc', $order['order_amount']]; |
|
|
|
|
|
$user->save(); |
|
|
|
|
|
|
|
|
|
|
|
//赠送成长值 |
|
|
|
|
|
$growth_ratio = ConfigServer::get('transaction', 'money_to_growth', 0); |
|
|
|
|
|
if ($growth_ratio > 0) { |
|
|
|
|
|
$able_get_growth = floor($order['total_amount'] / $growth_ratio); |
|
|
|
|
|
$user->where('id', $order['user_id']) |
|
|
|
|
|
->inc('user_growth', $able_get_growth) |
|
|
|
|
|
->update(); |
|
|
|
|
|
AccountLogLogic::AccountRecord($order['user_id'], $able_get_growth, 1, AccountLog::order_give_growth, '', $order['id'], $order['order_sn']); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//赠送积分 |
|
|
|
|
|
$open_award = ConfigServer::get('order_award', 'open_award', 0); |
|
|
|
|
|
if ($open_award == 1) { |
|
|
|
|
|
$award_event = ConfigServer::get('order_award', 'award_event', 0); |
|
|
|
|
|
$award_ratio = ConfigServer::get('order_award', 'award_ratio', 0); |
|
|
|
|
|
if ($award_ratio > 0) { |
|
|
|
|
|
$award_integral = floor($order['order_amount'] * ($award_ratio / 100)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
Order::update(['award_integral_status' => $award_event ?? 0,'award_integral' => $award_integral ?? 0],['id'=>$order['id']]); |
|
|
|
|
|
|
|
|
|
|
|
// 虚拟商品更新订单信息 |
|
|
|
|
|
GoodsVirtualLogic::afterPayVirtualDelivery($order['id']); |
|
|
|
|
|
|
|
|
|
|
|
//通知用户 |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::ORDER_PAY_NOTICE, |
|
|
|
|
|
'mobile' => $user['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $order['id'], 'user_id' => $order['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
//通知商家 |
|
|
|
|
|
if (!empty($order['shop']['mobile'])) { |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::USER_PAID_NOTICE_SHOP, |
|
|
|
|
|
'mobile' => $order['shop']['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $order['id'], 'user_id' => $order['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 打印小票 |
|
|
|
|
|
event('Printer', [ |
|
|
|
|
|
'order_id' => $order['id'], |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
OrderLogLogic::record( |
|
|
|
|
|
OrderLogEnum::TYPE_USER, |
|
|
|
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
|
|
|
$order['id'], |
|
|
|
|
|
$order['user_id'], |
|
|
|
|
|
OrderLogEnum::getLogDesc(OrderLogEnum::USER_PAID_ORDER) |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Db::commit(); |
|
|
Db::commit(); |
|
|
return JsonServer::success('支付成功', [], 20001); |
|
|
return JsonServer::success('支付成功', [], 20001); |
|
|
} catch (\Exception $e) { |
|
|
} catch (\Exception $e) { |
|
|
@ -299,6 +347,91 @@ class PayLogic extends Logic |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static function conplateUserOrder($order_id){ |
|
|
|
|
|
//用户会员卡支付完成后更新相关信息 |
|
|
|
|
|
$item = OrderUser::where('id',$order_id)->find(); |
|
|
|
|
|
$userShip = UserShip::where('id', $item['org_id'])->find(); |
|
|
|
|
|
UserShip::where('id', $item['org_id'])->inc('sales_num', 1)->update(); |
|
|
|
|
|
|
|
|
|
|
|
//修改用户消费累计额度 |
|
|
|
|
|
$user = User::find($item['user_id']); |
|
|
|
|
|
$user->total_order_amount = ['inc', $item['order_amount']]; |
|
|
|
|
|
|
|
|
|
|
|
//修改用户当前会员到期时间 |
|
|
|
|
|
$exp_time = $userShip['type'] == "forever"?0:($user['exp_time']>0 && $user['exp_time']>time()?$user['exp_time']+$userShip['vip_day']*3600*24:time()+$userShip['vip_day']*3600*24); |
|
|
|
|
|
// $exp_time = $user['exp_time']>0 && $user['exp_time']>time()?$user['exp_time']+$userShip['vip_day']*3600*24:time()+$userShip['vip_day']*3600*24; |
|
|
|
|
|
$user->ship_id = $userShip['id']; |
|
|
|
|
|
$user->exp_time = $exp_time; |
|
|
|
|
|
if($userShip['type'] == "free"){ |
|
|
|
|
|
$user->ship_free = 1; |
|
|
|
|
|
} |
|
|
|
|
|
$user->save(); |
|
|
|
|
|
|
|
|
|
|
|
//通知用户 |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::ORDER_USER_NOTICE, |
|
|
|
|
|
'mobile' => $user['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
// 打印小票 |
|
|
|
|
|
event('Printer', [ |
|
|
|
|
|
'order_id' => $item['id'], |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
OrderLogLogic::record( |
|
|
|
|
|
OrderLogEnum::TYPE_USER, |
|
|
|
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
|
|
|
$item['id'], |
|
|
|
|
|
$item['user_id'], |
|
|
|
|
|
"会员卡购买成功" |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static function conplateResourceOrder($order_id){ |
|
|
|
|
|
//用户会员卡支付完成后更新相关信息 |
|
|
|
|
|
$item = OrderResource::where('id',$order_id)->find(); |
|
|
|
|
|
|
|
|
|
|
|
$resource = Resource::where('id', $item['org_id'])->find(); |
|
|
|
|
|
Resource::where('id', $item['org_id'])->inc('sales_num', 1)->update(); |
|
|
|
|
|
|
|
|
|
|
|
//修改用户消费累计额度 |
|
|
|
|
|
$user = User::find($item['user_id']); |
|
|
|
|
|
$user->total_order_amount = ['inc', $item['order_amount']]; |
|
|
|
|
|
$user->save(); |
|
|
|
|
|
|
|
|
|
|
|
//授权下载 |
|
|
|
|
|
$userResource = []; |
|
|
|
|
|
$userResource['user_id'] = $item['user_id']; |
|
|
|
|
|
$userResource['resource_id'] = $item['org_id']; |
|
|
|
|
|
$userResource['type'] = 1; |
|
|
|
|
|
$userResource['create_time'] = time(); |
|
|
|
|
|
$userResourceModel = new UserResource(); |
|
|
|
|
|
$userResourceModel->insert($userResource); |
|
|
|
|
|
|
|
|
|
|
|
//通知用户 |
|
|
|
|
|
event('Notice', [ |
|
|
|
|
|
'scene' => NoticeEnum::ORDER_RESOURCE_NOTICE, |
|
|
|
|
|
'mobile' => $user['mobile'], |
|
|
|
|
|
'params' => ['order_id' => $item['id'], 'user_id' => $item['user_id']] |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
// 打印小票 |
|
|
|
|
|
event('Printer', [ |
|
|
|
|
|
'order_id' => $item['id'], |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
OrderLogLogic::record( |
|
|
|
|
|
OrderLogEnum::TYPE_USER, |
|
|
|
|
|
OrderLogEnum::USER_PAID_ORDER, |
|
|
|
|
|
$item['id'], |
|
|
|
|
|
$item['user_id'], |
|
|
|
|
|
"资料购买成功" |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @notes 微信支付 |
|
|
* @notes 微信支付 |
|
|
* @param $order_id |
|
|
* @param $order_id |
|
|
@ -319,7 +452,7 @@ class PayLogic extends Logic |
|
|
switch ($form) { |
|
|
switch ($form) { |
|
|
case "trade": |
|
|
case "trade": |
|
|
$order = OrderTrade::find($order_id); |
|
|
$order = OrderTrade::find($order_id); |
|
|
if (self::checkPayStatus($order_id)) { |
|
|
if (self::checkPayStatus($order['type'],$order_id)) { |
|
|
$order['pay_status'] = PayEnum::ISPAID; |
|
|
$order['pay_status'] = PayEnum::ISPAID; |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
@ -405,6 +538,53 @@ class PayLogic extends Logic |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* order表状态改变 |
|
|
|
|
|
*/ |
|
|
|
|
|
public static function changUserOrderStatus($order_id) |
|
|
|
|
|
{ |
|
|
|
|
|
$where = ['id', '=', $order_id]; |
|
|
|
|
|
if (is_array($order_id)) { |
|
|
|
|
|
$where = ['id', 'in', $order_id]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$orders = OrderUser::where([ $where ]) |
|
|
|
|
|
->update([ |
|
|
|
|
|
'pay_status' => PayEnum::ISPAID, |
|
|
|
|
|
'order_status' => 3, |
|
|
|
|
|
'pay_way' => OrderEnum::PAY_WAY_BALANCE, |
|
|
|
|
|
'pay_time' => time() |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
if ($orders) { |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* order表状态改变 |
|
|
|
|
|
*/ |
|
|
|
|
|
public static function changResourceOrderStatus($order_id) |
|
|
|
|
|
{ |
|
|
|
|
|
$where = ['id', '=', $order_id]; |
|
|
|
|
|
if (is_array($order_id)) { |
|
|
|
|
|
$where = ['id', 'in', $order_id]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$orders = OrderResource::where([ $where ]) |
|
|
|
|
|
->update([ |
|
|
|
|
|
'pay_status' => PayEnum::ISPAID, |
|
|
|
|
|
'order_status' => 3, |
|
|
|
|
|
'pay_way' => OrderEnum::PAY_WAY_BALANCE, |
|
|
|
|
|
'pay_time' => time() |
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
if ($orders) { |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
/** |
|
|
* @notes 分销逻辑 |
|
|
* @notes 分销逻辑 |
|
|
* @param $order_id |
|
|
* @param $order_id |
|
|
* @param $user_id |
|
|
* @param $user_id |
|
|
|