<?php
|
namespace app\api\logic\order;
|
|
use think\Db;
|
use app\common\logic\Basic as BasicLogic;
|
use app\common\model\order\JdOrder as ModelJdOrder;
|
use app\api\logic\commission\Jd as LogicJdCommission;
|
|
class JdOrder extends BasicLogic
|
{
|
protected $model;
|
|
protected static $userRate = 0; //用户反佣比例
|
|
|
public function __construct(){
|
$this->model = new ModelJdOrder();
|
}
|
|
|
|
/**
|
* 订单入库和更新
|
*
|
* @return void
|
*/
|
public function fanliOrder($order)
|
{
|
$order_row_id = isset($order['id']) ? $order['id'] : '';
|
if(empty($order_row_id)) return ['status'=>false,'info'=>'订单号为空'];
|
Db::startTrans();
|
$find_order = $this->model->where(['order_row_id'=>$order_row_id])->find();
|
$save_order = [
|
'order_id' => isset($order['orderId']) ? $order['orderId'] : '',
|
'union_id' => isset($order['unionId']) ? $order['unionId'] : '',
|
'valid_code' => isset($order['validCode']) ? $order['validCode'] : '',
|
'pop_id' => isset($order['vid']) ? $order['vid'] : '',
|
'position_id' => isset($order['positionId']) ? $order['positionId'] : '',
|
'finish_time' => isset($order['finishTime']) ? $order['finishTime'] : '',
|
'order_emt' => isset($order['orderEmt']) ? $order['orderEmt'] : '',
|
'order_time' => isset($order['orderTime']) ? $order['orderTime'] : '',
|
'pay_month' => isset($order['payMonth']) ? $order['payMonth'] : '',
|
'plus' => isset($order['plus']) ? $order['plus'] : '',
|
'sku_list' => isset($order['sku_list']) ? ( is_array($order['sku_list']) ? implode(',', $order['sku_list']) : $order['sku_list']) : '',
|
'actual_cos_price' => isset($order['actualCosPrice']) ? $order['actualCosPrice'] : '',
|
'actual_fee' => isset($order['actualFee']) ? $order['actualFee'] : '',
|
'commission_rate' => isset($order['commissionShare']) ? $order['commissionShare'] : '',
|
'estimate_cos_price' => isset($order['estimateCosPrice']) ? $order['estimateCosPrice'] : '',
|
'estimate_fee' => isset($order['estimateFee']) ? $order['estimateFee'] : '',
|
'final_rate' => isset($order['finalRate']) ? $order['finalRate'] : '',
|
'sub_side_rate' => isset($order['subSideRate']) ? $order['subSideRate'] : '',
|
'sku_id' => isset($order['goods_id']) ? $order['goods_id'] : '',
|
'sku_num' => isset($order['skuNum']) ? $order['skuNum'] : '',
|
'sku_return_num' => isset($order['skuReturnNum']) ? $order['skuReturnNum'] : '',
|
'price' => isset($order['goods_price']) ? $order['goods_price'] : '',
|
'sku_name' => isset($order['goods_name']) ? $order['goods_name'] : '',
|
'cid1' => isset($order['cid1']) ? $order['cid1'] : '',
|
'frozen_sku_num' => isset($order['skuFrozenNum']) ? $order['skuFrozenNum'] : '',
|
'pid' => isset($order['pid']) ? $order['pid'] : '',
|
'cid2' => isset($order['cid2']) ? $order['cid2'] : '',
|
'site_id' => isset($order['siteId']) ? $order['siteId'] : '',
|
'subsidy_rate' => isset($order['subsidyRate']) ? $order['subsidyRate'] : '',
|
'cid3' => isset($order['cid3']) ? $order['cid3'] : '',
|
'union_alias' => isset($order['unionAlias']) ? $order['unionAlias'] : '',
|
'union_traffic_group' => isset($order['unionTrafficGroup']) ? $order['unionTrafficGroup'] : '',
|
'sub_union_id' => isset($order['subUnionId']) ? $order['subUnionId'] : '',
|
'trace_type' => isset($order['traceType']) ? $order['traceType'] : '',
|
'ext1' => isset($order['ext1']) ? $order['ext1'] : '',
|
'cp_act_id' => isset($order['cpActId']) ? $order['cpActId'] : '',
|
'union_role' => isset($order['unionRole']) ? $order['unionRole'] : '',
|
'gift_coupon_key' => isset($order['giftCouponKey']) ? $order['giftCouponKey'] : '',
|
'gift_coupon_ocs_amount' => isset($order['giftCouponOcsAmount']) ? $order['giftCouponOcsAmount'] : '',
|
'pro_price_amount' => isset($order['proPriceAmount']) ? $order['proPriceAmount'] : '',
|
'order_row_id' => $order_row_id,
|
'image_url' => isset($order['goodsInfo']['imageUrl']) ? $order['goodsInfo']['imageUrl'] : '',
|
'main_sku_id' => isset($order['goodsInfo']['mainSkuId']) ? $order['goodsInfo']['mainSkuId'] : '',
|
'owner' => isset($order['goodsInfo']['owner']) ? $order['goodsInfo']['owner'] : '',
|
'product_id' => isset($order['goodsInfo']['productId']) ? $order['goodsInfo']['productId'] : '',
|
'shop_id' => isset($order['goodsInfo']['shop_id']) ? $order['goodsInfo']['shop_id'] : ''
|
];
|
if(empty($find_order)){
|
$save_order['tk_z_status'] = 1;
|
$save_order['is_distribution'] = (empty($save_order['position_id']) || $save_order['position_id'] == 0) ? 2 : 0; //如果没有渠道关系ID则该订单无须反佣
|
$save_order['create_time'] = time();
|
$res = $this->model->insert($save_order);
|
if(!$res){
|
Db::rollback();
|
return ['status'=>false,'info'=>'订单添加失败,订单order_row_id:'.$order_row_id];
|
}
|
}else{
|
if($find_order['valid_code'] != $save_order['valid_code']){ //订单发生改变,更新订单
|
$save_order['update_time'] = time();
|
$save_order['tk_z_status'] = 2;
|
$res_update = $this->model->where(['order_row_id'=> $order_row_id])->update($save_order);
|
if(!$res_update){
|
Db::rollback();
|
return ['status'=>false,'info'=>'订单更新失败,订单order_row_id:'.$order_row_id];
|
}
|
}
|
}
|
Db::commit();
|
return ['status'=>true,'info'=>'订单逻辑处理完成'];
|
}
|
|
|
/**
|
* 拆分订单
|
*
|
* @return void
|
*/
|
public function chaifenOrder()
|
{
|
$list = $this->model->where(['is_distribution'=>0,'position_id'=>['neq',''],'position_id'=>['neq',0]])->whereOr("is_distribution = 1 And tk_z_status = 2 And position_id !=''")->limit(20)->order('id desc')->select();
|
if(!empty($list)){
|
$LogicJdCommission = new LogicJdCommission();
|
foreach($list as $order){
|
// $result = $LogicJdCommission->fanliCommission($order);
|
$result = $LogicJdCommission->fanliCommissionNew($order);
|
if(!$result){
|
mylog('订单拆分错误',$result['info'],"errorInfo");
|
}
|
}
|
}
|
return ['status'=>true,'info'=>'拆分逻辑执行完成'];
|
}
|
|
}
|