<?php
/**
 * 物流入口文件
 * @Copyright (C) 2016 汉潮 All rights reserved.
 * @License http://www.hanchao9999.com
 * @Author 郭江文海 <237872111@qq.com>
 */
namespace Common\Model;
use Think\Model;
class DistributeModel extends Model{

    /**
     * 构造方法，用于判断是否开启物流功能
     */
    public function __construct(){
       $return = array('status'=>0,'msg'=>'','info'=>'');
       if(C('DIS_TRIBUTE') != 1){
            $return['msg'] = "物流功能尚未开启";
            return $return;
       }
    }

    /** 
     * 新增订单
     * @param $data=array(
     *          'order_id'=>订单ID
     *          'wuliu'=>物流标识
     *       )
     * @return array
     */
    public function add_order($data){
        $return = array('status'=>0,'msg'=>'','info'=>array());
        if(!$data['wuliu']){
            $return['msg'] = '参数错误';     
            return $return;          
        }else{
            $orders = M('OrderInfo')->where(array('id'=>$data['order_id']))->find();
            $save_data = array();
            $save_data['distribute'] = $data['wuliu'];
            M('OrderInfo')->where(array('id'=>$data['order_id']))->save($save_data);
            $dis = new \Common\Vendor\Distribute($data['wuliu']);
            return $dis->add_order($orders);
        }
    }

    /** 
     * 重发订单
     * @param $order_id 第三方订单ID
     * @return array
     */
    public function readd_order($order_id){
        $return = array('status'=>0,'msg'=>'');
        $orders = M('OrderInfo')->where(array('id'=>$order_id))->find();
        if(!$orders['distribute']){
            $return['msg'] = '生成失败';
            return;
        }else{
            $dis = new \Common\Vendor\Distribute($orders['distribute']);
            return $dis->readd_order($orders);
        }
    }


    /** 
     *订单详情查询
     * @param $data=array(
     *          'order_sn'=>订单编号
     *          'distribute'=>物流标识
     *       )
     * @return 
     */
    public function details_order($data){
        $return = array('status'=>0,'msg'=>'','info'=>array());
        if(!$data['distribute']){
            $return['info']['errorCode'] = 2;
            $return['info']['statusMsg'] = '未生成';     
            return $return;          
        }else{
            $dis = new \Common\Vendor\Distribute($data['distribute']);
            return $dis->details_order($data['order_sn']);
        }
    }


    /** 
     *模拟处理订单状态
     * @param $data=array(
     *          'order_sn'=>订单编号
     *          'distribute'=>物流标识
     *          'status'=>订单操作
     *       )
     * @return
     */
    public function status_order($data){
        $dis = new \Common\Vendor\Distribute("Dada");
        return $dis->status_order($data);
    }

    /** 
     *获取取消原因
     * @param 
     * @return 
     */
    public function cancel_reasons_order(){
        $dis = new \Common\Vendor\Distribute("Dada");
        return $dis->cancel_reasons_order();
    }


    /** 
     * 取消订单
     * @param $order_id 第三方订单编号
     * @return status 响应状态，成功为"success"，失败为"fail"
     */
    public function cancel_order($order_id){
        $dis = new \Common\Vendor\Distribute;
        return $dis->cancel_order($order_id);
    }


    /** 
     *获取城市信息
     * @return array()
     */
    public function city_list(){
        $dis = new \Common\Vendor\Distribute('Dada');
        return $dis->city_list();
    }


    /** 
     * 注册商户
     * @param $mobile:注册商户手机号,用于登陆商户后台
     * @param $city_name:商户城市名称(如,上海)
     * @param $enterprise_name:企业全称
     * @param $enterprise_address: 企业地址
     * @param $contact_name:联系人姓名
     * @param $contact_phone:联系人电话
     * @param $email:邮箱地址
     */
    public function merchant_add($data){
        $return = array('status'=>0,'msg'=>'');
        if(!$data['distribute']){
            $return['msg'] = "参数错误";
            return $return;
        }else{
            $dis = new \Common\Vendor\Distribute($data['distribute']);
            return $dis->merchant_add($data);
        }
    }

    /** 
     * 新增门店
     * @param $station_name:门店名称
     * @param $business:业务类型(食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19, 
     * 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,数码-28,小龙虾-29, 其他-5)
     * @param $city_name:城市名称(如,上海
     * @param $area_name:区域名称(如,浦东新区)
     * @param $station_address:门店地址
     * @param $lng:门店经度
     * @param $lat:门店纬度
     * @param $contact_name:联系人姓名
     * @param $phone:联系人电话
     * @param $origin_shop_id:门店编码,可自定义,但必须唯一;若不填写,则系统自动生成
     * @param $id_card:联系人身份证
     * @param $username:达达商家app账号(若不需要登陆app,则不用设置)
     * @param $password:达达商家app密码(若不需要登陆app,则不用设置)
     */
    public function shop_add($data){
        $return = array('status'=>0,'msg'=>'');
        if(!$data['code']){
            $return['msg']="参数错误";
            return $return;
        }
        $dis = new \Common\Vendor\Distribute($data['code']);
        return $dis->shop_add($data);
    }

    /** 
     * 编辑门店
     * @param $origin_shop_id:门店编码
     * @param $new_shop_id:新的门店编码
     * @param $station_name:门店名称
     * @param $business:业务类型(食品小吃-1,饮料-2,鲜花-3,文印票务-8,便利店-9,水果生鲜-13,同城电商-19,
     * 医药-20,蛋糕-21,酒品-24,小商品市场-25,服装-26,汽修零配-27,数码-28,小龙虾-29, 其他-5)
     * @param $city_name:城市名称(如,上海)
     * @param $area_name:区域名称(如,浦东新区)
     * @param $station_address:门店地址
     * @param $lng:门店经度
     * @param $lat:门店纬度
     * @param $contact_name:联系人姓名
     * @param $phone:联系人电话
     * @param $status:门店状态（1-门店激活，0-门店下线）
     */
    public function shop_update($data){
        if(!$data['code']){
            $return['msg']="参数错误";
            return $return;
        }
        $dis = new \Common\Vendor\Distribute($data['code']);
        return $dis->shop_update($data);
    }

    /** 
     * 门店详情
     * @param $origin_shop_id:门店编码
     */
    public function shop_detail($data){
       /* if(!$data['code']){
            $return['msg']="参数错误";
            return $return;
        }
        $dis = new \Common\Vendor\Distribute($data['code']);
        return $dis->shop_detail($data);*/
    }

    /**
     * 骑士对订单的操作后，修改系统订单状态
     * @param $data['code'] 物流名称
     * @param $data['order_id'] 订单id
     * @return array
     */ 
    public function order_status($data){
        $dis = new \Common\Vendor\Distribute('Local');
        return $dis->order_status($data);
    }

}

?>