请问一下这段代码是什么意思呢?谢谢

浏览:545 发布日期:2017/02/10 分类:求助交流
public function save() {
        if ( !is_login() ) {
            $this->error( "您还没有登陆",U("User/login") );
        }
        
        $order=D("order");
        
        //获取支付订单号
        $tag=I('post.tag');
        $tag=safe_replace($tag);//过滤
        $data['tag']=$tag;//支付订单号
        
        //防止重复提交
        if(M("order")->where("tag='$tag'")->find()){
            M("order")->where("tag='$tag'")->delete(); 
         }
        //获取发货仓
        $place=I('post.place');
        $data['place']=safe_replace($place);//过滤

        //获取会员uid
        $uid=is_login();
        $data['uid']=$uid;
            
        //验证价格并清空购物车
        $list=M("shoplist")->where("tag='$tag'")->select();
                 //遍历
        foreach($list as $k=>$val){
                    //获取购物清单数据表产品id,字段goodid                
            $id=$val["goodid"];        
            //提交的价格
            $goodprice=$val["price"];            
            $Document = D('Document');
            $info= $Document->detail($id);        
            //系统价格
            if($info['groupprice']){
                $string=$info['groupprice'].'、'.$info['price'];
                $array= explode('、',$string);            
                //验证,多个价格
                if (!in_array($goodprice,$array)) {
                      $this->error('商品价格与系统不符,商品id'.$val["goodid"].'商品价格'.$safeprice.'系统价格'.$string);
                }
            }        
            //验证,普通价格
            else if($goodprice!==$info['price']){
                $this->error('商品价格与系统不符,商品id'.$val["goodid"].'商品价格'.$safeprice.'系统价格'.$safe['price']);
            }
           else{
             #your code
               addUserLog('价格正确', $uid)  ;//日志
           }
                        //删除购物车中产品id
          M("shopcart")->where("goodid='$id'and uid='$uid'")->delete();
       }


        //订单号
        $data['orderid']=date('Ym',time()).time().$uid;//订单号


        //计算商品总额
        $total=$this->getPricetotal($tag);
        $data['total']=$total;


        //计算运费
        if ($total<C('LOWWEST')){
             $trans=C('SHIPMONEY');
        }else{
             $trans=0;
        }
        $data['ship_price']=$trans;//运费


        //计算积分
        if(I('post.score')){
            $uid=is_login();
            $score=get_score($uid);     // 用intval过滤$_POST["score"];
            //读取配置,1000积分兑换1元
            $ratio= $score/C('RATIO');
            M("member")->where("uid='$uid'")->setField('score',0);
        }else{
            $ratio=0;
        }
        /*积分明细记录*/
        $content='购物-'.$data['orderid'];
        $result=addScoreLog($uid,$content,$score,2); 
        $data['score']=$score;
        $data['score_money']=$ratio;
        $title='消耗积分'.$score.'抵消金额'.$ratio;
        addUserLog($title, $uid)  ;//日志


        //计算优惠券
        $ucpid=I('post.ucpid',0,'intval'); 
        if($ucpid){
           $info=M("UserCoupon")->where("id='$ucpid' and status='1' and uid='$uid'")->find();
        }    
        //判断优惠券是否可用
        $xfee=$total+$trans-$ratio;
        //计算优惠券可使用的金额,home/common/function
        if($ucpid&&$info['lowpayment']<$xfee){
            if(!is_numeric($ucpid)){
               $this->error('ID错误!');
            }
            $decfee=$info['price'];
            $data['coupon']=$info['code'];//优惠券代码
            $data['coupon_money']=$decfee;//优惠券金额
             M("UserCoupon")->where("id='$ucpid' and uid='$uid'")->setField('status',2);//设置优惠券已用
        }
        
        
        //计算使用地址id
        $addressid=I('post.addressid'); 
        $addressid=safe_replace($addressid);//过滤
        $data['addressid']=$addressid;
            
        //计算应付金额
        $all=$total+$trans-$ratio-$decfee; 
//        //满3999减100,满4999减200
//        if($all>3998&&$all<4999){
//           $total_money=$all-100;
//           addUserLog('满3999减100', $uid)  ;//日志
//        }
//        else if($all>4998){
//           $total_money=$all-200;
//           addUserLog('满4999减200', $uid)  ;//日志
//        }
//        else{
//         $total_money=$all;
//        }
        $data['total_money']=$all;//应付金额        
       
        //创建时间
        $data['create_time']=NOW_TIME;
        //支付类型PayType,1-货到付款
        if($_POST["PayType"]=="1"){
            
            //创建订单
            $data['status']=1;
            $data['ispay']=-1;//货到付款
            $orderid=$order->add($data);
            M("shoplist")->where("tag='$tag'")->setField('orderid',$orderid);

            //保存货到付款支付数据
            $pay=M("pay");
            $pay->create();
            $pay->money=$all;
            $pay->ratio=$ratio;
            $pay->total=$total;
            $pay->out_trade_no=$tag;
            $pay->yunfee=$trans;
            $pay->coupon=$decfee;
            $pay->uid=$uid;
            $pay->addressid=$senderid;
            $pay->create_time=NOW_TIME;
            $pay->type=2;//货到付款
            $pay->status=2;
            $pay->add();
                        
            //发送邮件
            $mail=get_email($uid);//获取会员邮箱
            $title="交易提醒";
            $content="您在<a href=\"".C('DAMAIN')."\" target='_blank'>".C('SITENAME').'</a>提交了订单,订单号'.$tag;
            if ( C('MAIL_PASSWORD')){
                    SendMail($mail,$title,$content);
            }
            //输出支付订单号和支付金额
            $info['total_money']=$all;
            
            $info['orderid']=$data['orderid'];
            $this->assign('info',$info);

            //保存日志
            addUserLog('货到付款订单已提交', $uid)  ;
            $this->meta_title = '提交成功';
            $this->display('Pay/success');
        }
        //支付类型PayType,2-在线支付
        if($_POST["PayType"]=="2")  {
           
            //创建订单
            $data['ispay']="1";
            $data['status']="-1";//待支付
            //根据订单id保存对应的费用数据
            $orderid=$order->add($data);
            M("shoplist")->where("tag='$tag'")->setField('orderid',$orderid);
        //发起支付时thinkpay会自动创建
        //      $pay=M("pay");
        //      $pay->create();
        //      $pay->money=$all;
        //      $pay->ratio=$ratio;
        //      $pay->total=$total;
        //      $pay->out_trade_no=$tag;
        //      $pay->yunfee=$trans;
        //      $pay->coupon=$deccode;
        //      $pay->uid=$uid;
        //      $pay->addressid=$senderid;
        //        $pay->create_time=NOW_TIME;
        //        $pay->type=1;//在线支付
        //      $pay->status=-1;//待支付
        //      $pay->add();



            //记录日志
            addUserLog('在线支付订单已提交', $uid)  ;
            /* 创建财付通支付链接*/
            $reqUrl=create_tencent_url($tag,$all);
            $this->assign('reqUrl',$reqUrl);

            $this->meta_title = '订单支付';
            $info['total_money']=$all;
            $info['orderid']= $data['orderid'];
            //输出支付订单号和支付金额
            $this->assign('info',$info);
            $this->assign('goodprice',$all);


            //支付页
            $this->display('Pay/index');
        }
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>