wugg vor 3 Jahren
Ursprung
Commit
2ce6f8cdc2
2 geänderte Dateien mit 370 neuen und 11 gelöschten Zeilen
  1. 1 1
      app/admin/controller/Good.php
  2. 369 10
      app/admin/controller/Sale.php

+ 1 - 1
app/admin/controller/Good.php

@@ -174,7 +174,7 @@ class Good extends \app\BaseController
             $data['exam_status']=$good_platform['exam_status'];
             $data['is_online']=$good_platform['is_online'];
             $data['plat_code']=$good_platform['plat_code'];
-            $data['exclusive']=$this->exclusive[$data['is_exclusive' ]];
+            $data['exclusive']=makeExcluse($good_platform['is_exclusive']);
         $unit =Db::name("unit")->where(["id"=>$data['good_unit']])->find();
         $data['unit'] = isset($unit['unit'])?$unit['unit']:'';
         $data['cat_info'] = made($data['cat_id'],[]);

+ 369 - 10
app/admin/controller/Sale.php

@@ -722,6 +722,10 @@ class Sale extends BaseController
         $feedbackid = Db::name("project_plan_rela")->where(["planNo"=>$planNo,"is_del"=>0])->column("feedback_id");
        if($feedbackid==false){
            return error_show(1004,"未找到方案反馈信息");
+       }
+       $project = Db::name("project")->where(["projectNo"=>$plan['projectNo'],"is_del"=>0])->find();
+       if($project==false){
+           return error_show(1004,"未找到方案信息");
        }
         $arrtime=isset($this->post['arrtime'])&&$this->post['arrtime']!="" ?$this->post['arrtime']:"";
         if($arrtime==""){
@@ -731,24 +735,379 @@ class Sale extends BaseController
         if($planinfo==""){
             return error_show(1002, "参数planinfo不能为空");
         }
-
-        foreach ($planinfo as $value){
-            $feedback = Db::name("project_plan")->where(["pgNo"=>$value['pgNo'],"projectNo"=>$plan['project'],"is_del"=>0])->find();
-            if($feedback==false){
-                return error_show(1002, "反馈数据未找到");
-            }
-            if($feedback['data_source']==1){
-                $feed=$this->project_good($feedback);
+        $token=isset($this->post['token'])&&$this->post['token']!=""? trim($this->post['token']):"";
+        if($token==""){
+            return error_show(102, "参数token不能为空");
+        }
+        $apply_id = GetUserInfo($token);
+        if (empty($apply_id) || $apply_id['code'] != 0) {
+            return error_show(102, "申请人数据不存在");
+        }
+        $rm = isset($apply_id["data"]['id']) ? $apply_id["data"]['id'] : "";
+        $ri = isset($apply_id["data"]['nickname']) ? $apply_id["data"]['nickname'] : "";
+        Db::startTrans();
+        try {
+            foreach ($planinfo as $value){
+                $good=[];
+                $feedback = Db::name("project_feedback")->where(["pgNo"=>$value['pgNo'],"projectNo"=>$plan['projectNo'], "is_del"=>0])->find();
+                if($feedback==false){
+                    Db::rollback();
+                    return error_show(1002, "反馈数据未找到");
+                }
+                $good['spuCode'] = $feedback['spuCode'];
+                $good['skuCode'] = $feedback['skuCode'];
+                $good['good_num'] = $value['good_num'];
+                $good['sendtype'] = $value['sendtype'];
+                $good['sale_price']=$feedback['sale_price'];
+                $good['companyNo']=$project['companyNo'];
+                $good['customerNo']=$project['khNo'];
+                $good['pgNo']=$feedback['pgNo'];
+                $good['arrtime']=$arrtime;
+                $good['apply_id']=$rm;
+                $good['apply_name']=$ri;
+                $good['sendtype']=$value['sendtype'];
+
+                if($value['sendtype']==1){
+                    if(!isset($value['addrlist'])||empty($value['addrlist'])){
+                        Db::rollback();
+                        return error_show(1002, "订单地址不能为空");
+                    }
+                    $good['addrlist'] = $value['addrlist'];
+                }
+                if($feedback['data_source']==1){
+                    $feed=$this->project_good($good);
+                }else{
+                    $feed=$this->project_zx($good);
+                }
                 if($feed==false){
+                    Db::rollback();
                     return error_show(1002, "咨询订单生成失败");
                 }
+                $feedback['status']=2;
+                $feedback['updatetime']=date("Y-m-d H:i:s");
+                $fed =Db::name("project_feedback")->save($feedback);
+                if($fed==false){
+                    Db::rollback();
+                    return error_show(1002, "项目订单生成失败");
+                }
             }
+
+            Db::commit();
+            return app_show(0, "咨询订单生成成功");
+        }catch (\Exception $e){
+            Db::rollback();
+            return error_show(1002, $e->getMessage());
         }
+
     }
 
 
-    public function project_zx($data){}
-    public function project_good($data){}
+    public function project_zx($data){
+        $goodinfo = Db::name("consult_bids")->where(["spuCode"=>$data['spuCode'],"is_del"=>0])->find();
+        if($goodinfo==false){
+            return false;
+        }
+        $orderCode=makeNo("QR");
+        $cgd=[
+            "supplierNo"=>$goodinfo['supplierNo'],
+            "companyNo"=>$data['companyNo'],
+            "spuCode"=>$data['spuCode'],
+            "skuCode"=>"",
+            "orderCode"=>$orderCode,
+            "good_name"=>$goodinfo['good_name'],
+            "sale_price"=>$data['sale_price'],
+            "total_fee"=>$goodinfo['total_fee'],
+            "pakge_fee"=>$goodinfo['pakge_fee'],
+            "cert_fee"=>$goodinfo['cert_fee'],
+            "open_fee"=>$goodinfo['open_fee'],
+            "cost_fee"=>$goodinfo['cost_fee'],
+            "mark_fee"=>$goodinfo['mark_fee'],
+            "demo_fee"=>$goodinfo['demo_fee'],
+            "good_num"=>$data['good_num'],
+            "good_type"=>1,
+            "order_type"=>4,
+        ];
+        $datas=[
+            "orderCode"=>$orderCode,
+            "good_code"=>$data['spuCode'],
+            "skuCode"=>"",
+            "customer_code"=>$data['khNo'],
+            "good_name"=>isset($goodinfo['good_name'])&&$goodinfo['good_name']!==''?$goodinfo['good_name']:'',
+            "good_num"=>$data['good_num'],
+            "cat_id"=>$goodinfo['cat_id'],
+            "apply_id"=>$data['rm'],
+            "apply_name"=>$data['ri'],
+            "origin_price"=>$goodinfo['nake_fee'],
+            "sale_price"=>$data['sale_price'],
+            "post_fee"=>0,
+            "status"=>0,
+            "send_num"=>0,
+            "wsend_num"=>$data['good_num'],
+            "send_status"=>1,
+            "good_type"=>1,
+            "send_type"=>$data['sendtype'],
+            "supplierNo"=>$data['companyNo'],
+            "is_del"=>0,
+            "zxNo"=>$data["pgNo"],
+            "platform_order"=>"",
+            "platform_id"=>0,
+            "remark"=>"",
+            "is_stock"=>$goodinfo['is_stock'],
+            "is_activity"=>0,
+            "proof_id"=>0,
+            "order_type"=>4,
+            "addtime"=>date("Y-m-d H:i:s"),
+            "updatetime"=>date("Y-m-d H:i:s"),
+            'total_price'=>round($data['sale_price']*$data['good_num'],2),
+        ];
+        $datainfo = Db::name('sale')->insert($datas, true);
+        if($datainfo>0){
+            $bol = $this->createCgd($cgd);
+            if ($bol == false) {
+                return false;
+            }
+            $goodinfo['status']=6;
+            $goodinfo['updatetime']=date("Y-m-d H:i:s");
+            $sa=Db::name("consult_bids")->save($goodinfo);
+            if($sa==false){
+              return false;
+            }
+            if ($data['sendtype']==1&&!empty($data['addrlist'])) {
+                $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
+                    ->find();
+                if ($order == false) {
+                    return false;
+                }
+                foreach ($data['addrlist'] as $value) {
+                    $temp = [];
+                    $addrs = [];
+                    if ($value['addr_code'] !== '' && is_array($value['addr_code'])) {
+                        $addrs['provice_code'] = $value['addr_code'][0];
+                        $addrs['city_code'] = $value['addr_code'][1];
+                        $addrs['area_code'] = $value['addr_code'][2];
+                        $addr = json_encode($addrs);
+                    } else {
+                        $addr = isset($value['addr_code']) ? $value['addr_code'] : '';
+                    }
+                    $temp['orderCode'] = $orderCode;
+                    $temp['contactor'] = $value['contactor'];
+                    $temp['mobile'] = $value['mobile'];
+                    $temp['addr'] = $value['addr'];
+                    $temp['addr_code'] = $addr;
+                    $temp['customer_code'] = $data['khNo'];
+                    $temp['receipt_quantity'] = $value['receipt_quantity'];
+                    $temp['post_fee'] = 0;
+                    $temp['is_del'] = 0;
+                    $temp['addtime'] = date("Y-m-d H:i:s");
+                    $temp['updatetime'] = date("Y-m-d H:i:s");
+                    $temp['arrive_time'] = $data['arrtime'];
+                    $vmp = Db::name('order_addr')->insert($temp, true);
+                    if ($vmp > 0) {
+                        $outCode = makeNo("CK");
+                        $out = [
+                            "orderCode" => $orderCode,
+                            "outCode" => $outCode,
+                            "apply_id"=>$data['rm'],
+                            "apply_name"=>$data['ri'],
+                            "addrid" => $vmp,
+                            "post_name" => "",
+                            "post_code" => "",
+                            "post_fee" => 0,
+                            "sendtime" => date("Y-m-d H:i:s"),
+                            "send_num" => $value['receipt_quantity'],
+                            "check_num" => 0,
+                            "error_num" => 0,
+                            "wsm_code" => "",
+                            "order_type" => 4,
+                            "status" => 0,
+                            "addtime" => date("Y-m-d H:i:s"),
+                            "updatetime" => date("Y-m-d H:i:s")
+                        ];
+                        $ou = Db::name("order_out")->insert($out);
+                        if ($ou == false) {
+                            return false;
+                        }
+                        $order['send_num'] += $value['receipt_quantity'];
+                        $order['wsend_num'] -= $value['receipt_quantity'];
+                        if ($order['wsend_num'] < 0) {
+                            return false;
+                        }
+                        $ups = Db::name("order_num")->save($order);
+                        if ($ups) {
+                            $tep = [
+                                "cgdNo" => $order['cgdNo'],
+                                "outCode" => $outCode,
+                                "send_num" => $value['receipt_quantity'],
+                                "status" => 1,
+                                "addtime" => date("Y-m-d H:i:s"),
+                                "updatetime" => date("Y-m-d H:i:s")
+                            ];
+                            $sen = Db::name("order_send")->save($tep);
+                            if ($sen == false) {
+                                return false;
+                            }
+                        }
+
+                    } else {
+                        return false;
+                    }
+                }
+            }
+        }
+    }
+    public function project_good($data){
+        $good=Db::name('good')->alias("a")->leftJoin("good_platform b","a.spuCode=b.spuCode")->where(["b
+        .skuCode"=>$data['skuCode'],"a.is_del"=>0,"b.is_del"=>0])->find();
+        if($good==false){
+            return false;
+        }
+        $orderCode=makeNo("QR");
+        $datas=[
+            "orderCode"=>$orderCode,
+            "good_code"=>$data['spuCode'],
+            "skuCode"=>$data['skuCode'],
+            "customer_code"=>$data['khNo'],
+            "good_name"=>isset($good['good_name'])&&$good['good_name']!==''?$good['good_name']:'',
+            "good_num"=>$data['good_num'],
+            "cat_id"=>$good['cat_id'],
+            "apply_id"=>$data['rm'],
+            "apply_name"=>$data['ri'],
+            "origin_price"=>$good['nake_fee'],
+            "sale_price"=>$data['sale_price'],
+            "post_fee"=>0,
+            "status"=>0,
+            "send_num"=>0,
+            "wsend_num"=>$data['good_num'],
+            "send_status"=>1,
+            "good_type"=>1,
+            "send_type"=>$data['sendtype'],
+            "supplierNo"=>$data['companyNo'],
+            "is_del"=>0,
+            "zxNo"=>$data["pgNo"],
+            "platform_order"=>"",
+            "platform_id"=>0,
+            "remark"=>"",
+            "is_stock"=>$good['is_stock'],
+            "is_activity"=>0,
+            "proof_id"=>0,
+            "order_type"=>$good['is_stock']==1?2:4,
+            "addtime"=>date("Y-m-d H:i:s"),
+            "updatetime"=>date("Y-m-d H:i:s"),
+            'total_price'=>round($data['sale_price']*$data['good_num'],2),
+        ];
+        $datainfo = Db::name('sale')->insert($datas, true);
+        if($datainfo>0) {
+            $cgd=[
+                "supplierNo"=>$good['supplierNo'],
+                "companyNo"=>$data['companyNo'],
+                "orderCode"=>$orderCode,
+                "spuCode"=>$good['spuCode'],
+                "skuCode"=>$good['skuCode'],
+                "good_name"=>$good['good_name'],
+                "sale_price"=>$good['sale_price'],
+                "total_fee"=>$good['total_fee'],
+                "pakge_fee"=>$good['packing_fee'],
+                "cert_fee"=>$good['cert_fee'],
+                "open_fee"=>$good['open_fee'],
+                "cost_fee"=>$good['cost_fee'],
+                "mark_fee"=>$good['mark_fee'],
+                "demo_fee"=>$good['demo_fee'],
+                "good_num"=>$data['good_num'],
+                "good_type"=>1,
+                "order_type"=>2,
+            ];
+            if($good['is_stock']==0) {
+                $bol = $this->createCgd($cgd);
+                if ($bol == false) {
+                    return false;
+                }
+            }
+                if ($data['sendtype']==1&&!empty($data['addrlist'])) {
+                    $order = Db::name("order_num")->where(["orderCode" => $orderCode, "status" => 1])->where([["wsend_num", ">=", 0]])
+                        ->find();
+                    if ($order == false) {
+                     return false;
+                    }
+                    foreach ($data['addrlist'] as $value) {
+                        $temp = [];
+                        $addrs = [];
+                        if ($value['addr_code'] !== '' && is_array($value['addr_code'])) {
+                            $addrs['provice_code'] = $value['addr_code'][0];
+                            $addrs['city_code'] = $value['addr_code'][1];
+                            $addrs['area_code'] = $value['addr_code'][2];
+                            $addr = json_encode($addrs);
+                        } else {
+                            $addr = isset($value['addr_code']) ? $value['addr_code'] : '';
+                        }
+                        $temp['orderCode'] = $orderCode;
+                        $temp['contactor'] = $value['contactor'];
+                        $temp['mobile'] = $value['mobile'];
+                        $temp['addr'] = $value['addr'];
+                        $temp['addr_code'] = $addr;
+                        $temp['customer_code'] = $data['khNo'];
+                        $temp['receipt_quantity'] = $value['receipt_quantity'];
+                        $temp['post_fee'] = 0;
+                        $temp['is_del'] = 0;
+                        $temp['addtime'] = date("Y-m-d H:i:s");
+                        $temp['updatetime'] = date("Y-m-d H:i:s");
+                        $temp['arrive_time'] = $data['arrtime'];
+                        $vmp = Db::name('order_addr')->insert($temp, true);
+                        if ($vmp > 0) {
+                            if($good['is_stock']!=1){
+                                $outCode = makeNo("CK");
+                                $out = [
+                                    "orderCode" => $orderCode,
+                                    "outCode" => $outCode,
+                                    "apply_id"=>$data['rm'],
+                                    "apply_name"=>$data['ri'],
+                                    "addrid" => $vmp,
+                                    "post_name" => "",
+                                    "post_code" => "",
+                                    "post_fee" => 0,
+                                    "sendtime" => date("Y-m-d H:i:s"),
+                                    "send_num" => $value['receipt_quantity'],
+                                    "check_num" => 0,
+                                    "error_num" => 0,
+                                    "wsm_code" => "",
+                                    "order_type" => 4,
+                                    "status" => 0,
+                                    "addtime" => date("Y-m-d H:i:s"),
+                                    "updatetime" => date("Y-m-d H:i:s")
+                                ];
+                                $ou = Db::name("order_out")->insert($out);
+                                if ($ou == false) {
+                                    return false;
+                                }
+                                $order['send_num'] += $value['receipt_quantity'];
+                                $order['wsend_num'] -= $value['receipt_quantity'];
+                                if ($order['wsend_num'] < 0) {
+                                    return false;
+                                }
+                                $ups = Db::name("order_num")->save($order);
+                                if ($ups) {
+                                    $tep = [
+                                        "cgdNo" => $order['cgdNo'],
+                                        "outCode" => $outCode,
+                                        "send_num" => $value['receipt_quantity'],
+                                        "status" => 1,
+                                        "addtime" => date("Y-m-d H:i:s"),
+                                        "updatetime" => date("Y-m-d H:i:s")
+                                    ];
+                                    $sen = Db::name("order_send")->save($tep);
+                                    if ($sen == false) {
+                                        return false;
+                                    }
+                                }
+                            }
+                        } else {
+                            return false;
+                        }
+                    }
+                }
+            }
+
+        return true;
+    }