|
|
@ -16,6 +16,7 @@ use app\common\enum\TeamEnum; |
|
|
use app\common\logic\OrderLogLogic; |
|
|
use app\common\logic\OrderLogLogic; |
|
|
use app\common\logic\OrderRefundLogic; |
|
|
use app\common\logic\OrderRefundLogic; |
|
|
use app\common\model\Cart; |
|
|
use app\common\model\Cart; |
|
|
|
|
|
use app\common\model\content\Resource; |
|
|
use app\common\model\Freight; |
|
|
use app\common\model\Freight; |
|
|
use app\common\model\goods\Goods; |
|
|
use app\common\model\goods\Goods; |
|
|
use app\common\model\Delivery; |
|
|
use app\common\model\Delivery; |
|
|
@ -25,7 +26,9 @@ use app\common\model\order\Order; |
|
|
use app\common\model\order\OrderGoods; |
|
|
use app\common\model\order\OrderGoods; |
|
|
use app\common\model\order\OrderLog; |
|
|
use app\common\model\order\OrderLog; |
|
|
use app\common\model\order\OrderRefund; |
|
|
use app\common\model\order\OrderRefund; |
|
|
|
|
|
use app\common\model\order\OrderResource; |
|
|
use app\common\model\order\OrderTrade; |
|
|
use app\common\model\order\OrderTrade; |
|
|
|
|
|
use app\common\model\order\OrderUser; |
|
|
use app\common\model\Pay; |
|
|
use app\common\model\Pay; |
|
|
use app\common\model\RechargeOrder; |
|
|
use app\common\model\RechargeOrder; |
|
|
use app\common\model\shop\Shop; |
|
|
use app\common\model\shop\Shop; |
|
|
@ -35,6 +38,7 @@ use app\common\model\team\TeamFound; |
|
|
use app\common\model\team\TeamJoin; |
|
|
use app\common\model\team\TeamJoin; |
|
|
use app\common\model\user\User; |
|
|
use app\common\model\user\User; |
|
|
use app\common\model\user\UserLevel; |
|
|
use app\common\model\user\UserLevel; |
|
|
|
|
|
use app\common\model\user\UserShip; |
|
|
use app\common\server\UrlServer; |
|
|
use app\common\server\UrlServer; |
|
|
use app\common\model\seckill\SeckillGoods; |
|
|
use app\common\model\seckill\SeckillGoods; |
|
|
use app\common\model\bargain\BargainLaunch; |
|
|
use app\common\model\bargain\BargainLaunch; |
|
|
@ -781,6 +785,238 @@ class OrderLogic extends Logic |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* @param $post |
|
|
|
|
|
* @return array |
|
|
|
|
|
* 添加免费试用会员开卡 |
|
|
|
|
|
*/ |
|
|
|
|
|
public static function addFreeUserOrder($post) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
$OrderTrade = new OrderTrade(); |
|
|
|
|
|
$order_amount = 0; |
|
|
|
|
|
$total_amount = 0; |
|
|
|
|
|
//计算商品总价格 |
|
|
|
|
|
$user = User::where('id', $post['user_id'])->find(); |
|
|
|
|
|
|
|
|
|
|
|
$userShip = UserShip::where(['id'=>$post['org_id'],'del'=>0])->findOrEmpty()->toArray(); |
|
|
|
|
|
if(!$userShip) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
$trade_order_data = []; |
|
|
|
|
|
$trade_order_data['t_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
|
|
|
|
|
|
// 拿shop_id,连接成字符串存入order_trade表shop_id中 |
|
|
|
|
|
$shop_id = ''; |
|
|
|
|
|
$shop_id = 0; |
|
|
|
|
|
$trade_order_data['shop_id'] = $shop_id; |
|
|
|
|
|
$trade_order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$trade_order_data['goods_price'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['order_amount'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['total_amount'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['discount_amount'] = 0; |
|
|
|
|
|
$trade_order_data['type'] = 1; |
|
|
|
|
|
$trade_order_data['create_time'] = time(); |
|
|
|
|
|
$order_trade_create = $OrderTrade->create($trade_order_data); |
|
|
|
|
|
if (false === $order_trade_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//创建子订单 |
|
|
|
|
|
|
|
|
|
|
|
$Order = new OrderUser(); |
|
|
|
|
|
$order_data = []; |
|
|
|
|
|
$order_data['trade_id'] = $order_trade_create->id; |
|
|
|
|
|
$order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$order_data['order_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
$order_data['order_type'] = 0; |
|
|
|
|
|
$order_data['org_id'] = $post['org_id']; |
|
|
|
|
|
$order_data['order_source'] = $post['client']; |
|
|
|
|
|
$order_data['order_status'] = 3; |
|
|
|
|
|
$order_data['pay_status'] = 1; |
|
|
|
|
|
$order_data['pay_way'] = 0; |
|
|
|
|
|
$order_data['pay_money'] = 0; |
|
|
|
|
|
$order_data['money'] = $userShip['price']; |
|
|
|
|
|
$order_data['vip_day'] = $userShip['vip_day']; |
|
|
|
|
|
$order_data['transaction_id'] = ''; |
|
|
|
|
|
$order_data['pay_time'] = time(); |
|
|
|
|
|
$order_data['is_free'] = 1; |
|
|
|
|
|
$order_data['is_permanent'] = 0; |
|
|
|
|
|
$over_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); |
|
|
|
|
|
$order_data['overdue_time'] = $over_time; |
|
|
|
|
|
$order_data['create_time'] = time(); |
|
|
|
|
|
$order_create = $Order->create($order_data); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//修改用户当前会员到期时间 |
|
|
|
|
|
$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); |
|
|
|
|
|
$user->ship_id = $userShip['id']; |
|
|
|
|
|
$user->exp_time = $exp_time; |
|
|
|
|
|
$user->ship_free = 1; |
|
|
|
|
|
$user->save(); |
|
|
|
|
|
|
|
|
|
|
|
if (false === $order_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
return ['trade_id' => $order_trade_create->id, 'order_id' => $order_create->id, 'type' => 'trade']; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @param $post |
|
|
|
|
|
* @return array |
|
|
|
|
|
* 添加会员开卡的订单 |
|
|
|
|
|
*/ |
|
|
|
|
|
public static function addUserOrder($post) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
$OrderTrade = new OrderTrade(); |
|
|
|
|
|
$order_amount = 0; |
|
|
|
|
|
$total_amount = 0; |
|
|
|
|
|
//计算商品总价格 |
|
|
|
|
|
$user = User::where('id', $post['user_id'])->find(); |
|
|
|
|
|
|
|
|
|
|
|
$userShip = UserShip::where(['id'=>$post['org_id'],'del'=>0])->findOrEmpty()->toArray(); |
|
|
|
|
|
if(!$userShip) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 记录访问足迹 |
|
|
|
|
|
event('Footprint', [ |
|
|
|
|
|
'type' => FootprintEnum::PLACE_ORDER, |
|
|
|
|
|
'user_id' => $post['user_id'], |
|
|
|
|
|
'total_money' => $total_amount |
|
|
|
|
|
]); |
|
|
|
|
|
$trade_order_data = []; |
|
|
|
|
|
$trade_order_data['t_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
|
|
|
|
|
|
// 拿shop_id,连接成字符串存入order_trade表shop_id中 |
|
|
|
|
|
$shop_id = ''; |
|
|
|
|
|
|
|
|
|
|
|
$shop_id = 0; |
|
|
|
|
|
$trade_order_data['shop_id'] = $shop_id; |
|
|
|
|
|
$trade_order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$trade_order_data['goods_price'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['order_amount'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['total_amount'] = $userShip['pre_price']; |
|
|
|
|
|
$trade_order_data['discount_amount'] = 0; |
|
|
|
|
|
$trade_order_data['type'] = 1; |
|
|
|
|
|
$trade_order_data['create_time'] = time(); |
|
|
|
|
|
$order_trade_create = $OrderTrade->create($trade_order_data); |
|
|
|
|
|
if (false === $order_trade_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//创建子订单 |
|
|
|
|
|
|
|
|
|
|
|
$Order = new OrderUser(); |
|
|
|
|
|
|
|
|
|
|
|
$order_data = []; |
|
|
|
|
|
$order_data['trade_id'] = $order_trade_create->id; |
|
|
|
|
|
$order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$order_data['order_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
$order_data['order_type'] = 1; |
|
|
|
|
|
$order_data['org_id'] = $post['org_id']; |
|
|
|
|
|
$order_data['order_source'] = $post['client']; |
|
|
|
|
|
$order_data['order_status'] = OrderEnum::ORDER_STATUS_NO_PAID; |
|
|
|
|
|
$order_data['pay_status'] = OrderEnum::PAY_STATUS_NO_PAID; |
|
|
|
|
|
$order_data['pay_way'] = 0; |
|
|
|
|
|
|
|
|
|
|
|
$order_data['pay_money'] = $userShip['pre_price']; |
|
|
|
|
|
$order_data['money'] = $userShip['price']; |
|
|
|
|
|
$order_data['vip_day'] = $userShip['vip_day']; |
|
|
|
|
|
$order_data['transaction_id'] = ''; |
|
|
|
|
|
$order_data['pay_time'] = 0; |
|
|
|
|
|
$order_data['is_free'] = $userShip['type']=='free'?1:0; |
|
|
|
|
|
$order_data['is_permanent'] = $userShip['type']=='forever'?1:0; |
|
|
|
|
|
$over_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); |
|
|
|
|
|
$order_data['overdue_time'] = $over_time; |
|
|
|
|
|
$order_data['create_time'] = time(); |
|
|
|
|
|
|
|
|
|
|
|
$order_create = $Order->create($order_data); |
|
|
|
|
|
|
|
|
|
|
|
if (false === $order_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
return ['trade_id' => $order_trade_create->id, 'order_id' => $order_create->id, 'type' => 'trade']; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* @param $post |
|
|
|
|
|
* @return array |
|
|
|
|
|
* 添加购买资料的订单 |
|
|
|
|
|
*/ |
|
|
|
|
|
public static function addResourceOrder($post) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
$OrderTrade = new OrderTrade(); |
|
|
|
|
|
$order_amount = 0; |
|
|
|
|
|
$total_amount = 0; |
|
|
|
|
|
//计算商品总价格 |
|
|
|
|
|
$user = User::where('id', $post['user_id'])->find(); |
|
|
|
|
|
|
|
|
|
|
|
$resource = Resource::where(['id'=>$post['org_id'],'del'=>0])->findOrEmpty()->toArray(); |
|
|
|
|
|
if(!$resource) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 记录访问足迹 |
|
|
|
|
|
event('Footprint', [ |
|
|
|
|
|
'type' => FootprintEnum::PLACE_ORDER, |
|
|
|
|
|
'user_id' => $post['user_id'], |
|
|
|
|
|
'total_money' => $resource['price'] |
|
|
|
|
|
]); |
|
|
|
|
|
$trade_order_data = []; |
|
|
|
|
|
$trade_order_data['t_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
|
|
|
|
|
|
// 拿shop_id,连接成字符串存入order_trade表shop_id中 |
|
|
|
|
|
$shop_id = ''; |
|
|
|
|
|
|
|
|
|
|
|
$shop_id = 0; |
|
|
|
|
|
$trade_order_data['shop_id'] = $shop_id; |
|
|
|
|
|
$trade_order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$trade_order_data['goods_price'] = $resource['price']; |
|
|
|
|
|
$trade_order_data['order_amount'] = $resource['price']; |
|
|
|
|
|
$trade_order_data['total_amount'] = $resource['price']; |
|
|
|
|
|
$trade_order_data['discount_amount'] = 0; |
|
|
|
|
|
$trade_order_data['type'] = 2; |
|
|
|
|
|
$trade_order_data['create_time'] = time(); |
|
|
|
|
|
$order_trade_create = $OrderTrade->create($trade_order_data); |
|
|
|
|
|
if (false === $order_trade_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//创建子订单 |
|
|
|
|
|
|
|
|
|
|
|
$Order = new OrderResource(); |
|
|
|
|
|
|
|
|
|
|
|
$order_data = []; |
|
|
|
|
|
$order_data['trade_id'] = $order_trade_create->id; |
|
|
|
|
|
$order_data['user_id'] = $post['user_id']; |
|
|
|
|
|
$order_data['order_sn'] = createSn('order_trade', 't_sn'); |
|
|
|
|
|
$order_data['org_id'] = $post['org_id']; |
|
|
|
|
|
$order_data['order_source'] = $post['client']; |
|
|
|
|
|
$order_data['order_status'] = OrderEnum::ORDER_STATUS_NO_PAID; |
|
|
|
|
|
$order_data['pay_status'] = OrderEnum::PAY_STATUS_NO_PAID; |
|
|
|
|
|
$order_data['pay_way'] =0; |
|
|
|
|
|
$order_data['pay_money'] = $resource['price']; |
|
|
|
|
|
$order_data['money'] = $resource['price']; |
|
|
|
|
|
$order_data['transaction_id'] = ''; |
|
|
|
|
|
$order_data['pay_time'] = 0; |
|
|
|
|
|
$order_data['create_time'] = time(); |
|
|
|
|
|
|
|
|
|
|
|
$order_create = $Order->create($order_data); |
|
|
|
|
|
|
|
|
|
|
|
if (false === $order_create) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return ['trade_id' => $order_trade_create->id, 'order_id' => $order_create->id, 'type' => 'trade']; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
* @notes 添加父订单 |
|
|
* @notes 添加父订单 |
|
|
* @param $post |
|
|
* @param $post |
|
|
* @param $address |
|
|
* @param $address |
|
|
@ -858,6 +1094,7 @@ class OrderLogic extends Logic |
|
|
$trade_order_data['total_amount'] = $total_amount; |
|
|
$trade_order_data['total_amount'] = $total_amount; |
|
|
$trade_order_data['discount_amount'] = $discount_amount; |
|
|
$trade_order_data['discount_amount'] = $discount_amount; |
|
|
$trade_order_data['create_time'] = time(); |
|
|
$trade_order_data['create_time'] = time(); |
|
|
|
|
|
$trade_order_data['type'] = 0; |
|
|
$order_trade_create = $OrderTrade->create($trade_order_data); |
|
|
$order_trade_create = $OrderTrade->create($trade_order_data); |
|
|
if (false === $order_trade_create) { |
|
|
if (false === $order_trade_create) { |
|
|
return false; |
|
|
return false; |
|
|
@ -1259,6 +1496,7 @@ class OrderLogic extends Logic |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$data = [ |
|
|
$data = [ |
|
|
'list' => $lists, |
|
|
'list' => $lists, |
|
|
'page' => $page, |
|
|
'page' => $page, |
|
|
@ -1266,6 +1504,7 @@ class OrderLogic extends Logic |
|
|
'count' => $count, |
|
|
'count' => $count, |
|
|
'more' => is_more($count, $page, $size) |
|
|
'more' => is_more($count, $page, $size) |
|
|
]; |
|
|
]; |
|
|
|
|
|
|
|
|
return $data; |
|
|
return $data; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -1632,9 +1871,17 @@ class OrderLogic extends Logic |
|
|
{ |
|
|
{ |
|
|
switch ($from) { |
|
|
switch ($from) { |
|
|
case 'trade' : //如果是父订单类型下单,$id为父订单id |
|
|
case 'trade' : //如果是父订单类型下单,$id为父订单id |
|
|
|
|
|
$trader_order = OrderTrade::where('id', $id)->findOrEmpty(); |
|
|
|
|
|
$table = "order"; |
|
|
|
|
|
if($trader_order['type'] == 1){ |
|
|
|
|
|
$table = "order_user"; |
|
|
|
|
|
}elseif($trader_order['type'] == 2){ |
|
|
|
|
|
$table = "order_resource"; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
$result = OrderTrade::alias('ot') |
|
|
$result = OrderTrade::alias('ot') |
|
|
->where(['ot.id' => $id,'o.pay_status' => 1]) |
|
|
->where(['ot.id' => $id,'o.pay_status' => 1]) |
|
|
->join('order o','o.trade_id = ot.id') |
|
|
->join($table.' o','o.trade_id = ot.id') |
|
|
->field(['ot.id', 'ot.t_sn as order_sn', 'o.pay_time', 'o.pay_way', 'ot.total_amount']) |
|
|
->field(['ot.id', 'ot.t_sn as order_sn', 'o.pay_time', 'o.pay_way', 'ot.total_amount']) |
|
|
->findOrEmpty() |
|
|
->findOrEmpty() |
|
|
->toArray(); |
|
|
->toArray(); |
|
|
|