model = new ModelPddOrder(); } /** * 订单入库和更新 * * @return void */ public function fanliOrder($order) { $order_sn = isset($order['order_sn']) ? $order['order_sn'] : ''; if(empty($order_sn)) return ['status'=>false,'info'=>'订单号为空']; Db::startTrans(); $find_order = $this->model->where(['order_sn'=>$order_sn])->find(); $custom_parameters = isset($order['custom_parameters']) ? $order['custom_parameters'] : ""; $uid_arr = json_decode($custom_parameters,true); $uid = !$uid_arr ? "" : $uid_arr['uid']; $save_order = [ 'auth_duo_id' => isset($order['auth_duo_id']) ? $order['auth_duo_id'] : '', 'order_id' => isset($order['order_id']) ? $order['order_id'] : (!empty($find_order) ? $find_order['order_id'] : ''), 'batch_no' => isset($order['batch_no']) ? $order['batch_no'] : '', 'cpa_new' => isset($order['cpa_new']) ? $order['cpa_new'] : '', 'custom_parameters' => isset($order['custom_parameters']) ? $order['custom_parameters'] : '', 'fail_reason' => isset($order['fail_reason']) ? $order['fail_reason'] : '', 'goods_id' => isset($order['goods_id']) ? $order['goods_id'] : '', 'goods_name' => isset($order['goods_name']) ? $order['goods_name'] : '', 'goods_price' => isset($order['goods_price']) ? $order['goods_price'] : '', 'goods_quantity' => isset($order['goods_quantity']) ? $order['goods_quantity'] : '', 'goods_thumbnail_url' => isset($order['goods_thumbnail_url']) ? $order['goods_thumbnail_url'] : '', 'group_id' => isset($order['group_id']) ? $order['group_id'] : '', 'order_amount' => isset($order['order_amount']) ? $order['order_amount'] : '', 'order_create_time' => isset($order['order_create_time']) ? $order['order_create_time'] : '', 'order_group_success_time' => isset($order['order_group_success_time']) ? $order['order_group_success_time'] : '', 'order_modify_at' => isset($order['order_modify_at']) ? $order['order_modify_at'] : '', 'order_pay_time' => isset($order['order_pay_time']) ? $order['order_pay_time'] : '', 'order_receive_time' => isset($order['order_receive_time']) ? $order['order_receive_time'] : '', 'order_settle_time' => isset($order['order_settle_time']) ? $order['order_settle_time'] : '', 'order_sn' => isset($order['order_sn']) ? $order['order_sn'] : '', 'order_status' => isset($order['order_status']) ? $order['order_status'] : '', 'order_status_desc' => isset($order['order_status_desc']) ? $order['order_status_desc'] : '', 'order_verify_time' => isset($order['order_verify_time']) ? $order['order_verify_time'] : (!empty($find_order) ? $find_order['order_verify_time'] : ''), 'promotion_amount' => isset($order['promotion_amount']) ? $order['promotion_amount'] : '', 'promotion_rate' => isset($order['promotion_rate']) ? $order['promotion_rate'] : '', 'p_id' => isset($order['p_id']) ? $order['p_id'] : '', 'type' => isset($order['type']) ? $order['type'] : '', 'zs_duo_id' => isset($order['zs_duo_id']) ? $order['zs_duo_id'] : '', 'cat_ids' => isset($order['cat_ids']) ? (is_array($order['cat_ids']) ? implode(',', $order['cat_ids']) : $order['cat_ids']) : '', 'is_direct' => isset($order['is_direct']) ? $order['is_direct'] : '', 'sep_duo_id' => isset($order['sep_duo_id']) ? $order['sep_duo_id'] : '', 'sep_market_fee' => isset($order['sep_market_fee']) ? $order['sep_market_fee'] : '', 'sep_pid' => isset($order['sep_pid']) ? $order['sep_pid'] : '', 'sep_rate' => isset($order['sep_rate']) ? $order['sep_rate'] : '', 'sep_parameters' => isset($order['sep_parameters']) ? $order['sep_parameters'] : '', 'price_compare_status' => isset($order['price_compare_status']) ? $order['price_compare_status'] : '', 'uid' => $uid, 'pid' => isset($order['pid']) ? $order['pid'] : '' ]; if(empty($find_order)){ $save_order['tk_z_status'] = 1; $save_order['is_distribution'] = (empty($save_order['uid']) || $save_order['uid'] == 0) ? 2 : 0; //如果没有渠道关系ID则该订单无须反佣 $save_order['create_time'] = time(); $res = $this->model->insert($save_order); if(!$res){ Db::rollback(); return ['status'=>false,'info'=>'订单添加失败,订单order_sn:'.$order_sn]; } }else{ if($find_order['order_status'] != $save_order['order_status']){ //订单发生改变,更新订单 $save_order['update_time'] = time(); $save_order['tk_z_status'] = 2; $res_update = $this->model->where(['order_sn'=> $order_sn])->update($save_order); if(!$res_update){ Db::rollback(); return ['status'=>false,'info'=>'订单更新失败,订单order_sn:'.$order_sn]; } } } Db::commit(); return ['status'=>true,'info'=>'订单逻辑处理完成']; } /** * 拆分订单 * * @return void */ public function chaifenOrder() { $list = $this->model->where(['is_distribution'=>0,'uid'=>['neq',''],'uid'=>['neq',0]])->whereOr("is_distribution = 1 And tk_z_status = 2 And uid !=''")->limit(20)->order('id desc')->select(); if(!empty($list)){ $LogicPddCommission = new LogicPddCommission(); foreach($list as $order){ $result = $LogicPddCommission->fanliCommission($order); if(!$result){ mylog('订单拆分错误',$result['info'],"errorInfo"); } } } return ['status'=>true,'info'=>'拆分逻辑执行完成']; } }