美文网首页
B2B2C平台如何判断,取消组合订单和单独订单的接口

B2B2C平台如何判断,取消组合订单和单独订单的接口

作者: 寄去远方的盛夏 | 来源:发表于2017-10-25 13:45 被阅读24次

因为我们平台是多商家面向多用户的商城系统,如果你买了多个商家的商品,那么在发货的时候是一个件一个物流单号。而如果像一般商城一样,将用户从购物车内的商品添加到订单列表时,是拆分成单个订单插入的。

那么在取消的时候,就涉及到一个问题,如何取消一个组合订单就可以取消组合订单里面的全部小订单
1,首先在下单的时候就就给从购物车口添加的订单加上标记,用以区分是不是从购物车添加的订单
2,新建一张表,存的是购物车组合订单的信息,标记信息和订单表内的标记信息一直,是一对多的关系
3,发送查询一对多的sql语句,并返回查询结果

public function get_group_order_detail_by_id($record_id){
        //$sql = "select * from 'group_order' where 'adam_id'=(select 'adam_id' from 'usercardrecord' where 'record_id'=".$record_id.")";
        $adam_id = D('Usercardrecord')->where('record_id='.$record_id)->find()['adam_id'];
        $max_order = D('Group_order')->where('adam_id="'.$adam_id.'"')->select();
        if(!empty($max_order)){
            return $max_order;
        }
    }

4,首先判断App传来的值是组合订单还是单独订单我用标记来区分

public function max_group_order_del(){
        if(IS_POST){
            //如果订单标识符内没有值,则是小订单
            if($_POST['adam_id'] == '0'){
                //获取订单详情
                $now_order = D('Group_order')->get_order_detail_by_id($_SESSION["user"]["uid"],intval($_POST['order_id']));

                if(empty($now_order)){
                    $this->returnAjax('当前订单不存在',0);
                }else if($now_order['paid']){//付款字段
                    $this->returnAjax('当前订单已付款,不能取消',0);
                }
                $condition_group_order['order_id'] = $now_order['order_id'];
                $data_group_order['status'] = 4;
                if(D('Group_order')->where($condition_group_order)->data($data_group_order)->save()){
                    $this->returnAjax("取消订单成功",1);
                }else{
                    $this->returnAjax('删除失败!请重试。',0);
                }

            }else if($_POST['adam_id'] == '1'){
                //查询订单状态
                $max_order = D('Group_order')->get_group_order_detail_by_id(intval($_POST['record_id']));
                //如果当没有查到订单信息则返回错误
                if(empty($max_order)){
                    $this->returnAjax('当前订单不存在',0);
                }else if($max_order['paid']){//付款字段
                    $this->returnAjax('当前订单已付款,不能取消',0);
                }
                //循环取消大订单内的订单
                foreach($max_order as $key=>$value){

                    $data_group_order['status'] = 4;
                    $status = D('Group_order')->where('order_id='.$value['order_id'])->data($data_group_order)->save();
                }

                if(!empty($status)){
                    $this->returnAjax('取消订单成功',1);
                }else{
                    $this->returnAjax('删除失败!请重试。',0);
                }
            }else{
                $this->returnAjax('操作错误',0);
            }

        }else{
            $this->returnAjax("非法请求",0);
        }
    }

相关文章

网友评论

      本文标题:B2B2C平台如何判断,取消组合订单和单独订单的接口

      本文链接:https://www.haomeiwen.com/subject/ltcqpxtx.html