| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | <?phpnamespace App\Service\Order;use App\Model\Orders;use App\Model\OrdersHouse;use App\Model\OrdersProduct;use App\Model\OrdersProductBom;use App\Model\OrdersProductPart;use App\Service\Service;use Illuminate\Support\Facades\DB;/** * order表相关保存订单基本信息 * @package App\Models */class OrderService extends Service{    public function orderSave($data)    {        list ($status,$msg) = $this->orderRule($data);        if(!$status) return [$status,$msg];        $order = new Orders();        $order_no = setOrderNo();        if(isset($data['order_no']))        {            $order_no = $data['order_no'];            $order = $order->where('order_no',$order_no)->first();        }        $order->order_no = $order_no;        $order->out_order_no = $data['out_order_no'] ?? $order_no;        $order->project_title = $data['project_title'];        $order->address = $data['address'];        $order->mobile = $data['mobile'];        $order->crt_id = 1;        $order->save();        return [true,$order_no];    }    public function orderHouseSave($data)    {        $orderHouse = new OrdersHouse();        $title = $data['title'] ?? '';        $house = $data['house'] ?? '';        $unit = $data['unit'] ?? '';        $layer = $data['layer'] ?? '';        $number = $data['number'] ?? '';        $order_no = $data['order_no'];        $first = $orderHouse->where([            'title' => $title,            'house' => $house,            'unit' => $unit,            'layer' => $layer,            'number' => $number,            'order_no' => $order_no,        ])->first();        if(!empty($first)) return [true,$first->id];        $orderHouse->order_no = $order_no;        $orderHouse->title = $title;        $orderHouse->house = $house;        $orderHouse->unit = $unit;        $orderHouse->layer = $layer;        $orderHouse->number = $number;        $orderHouse->save();        return [true,$orderHouse->id];    }    public function orderProductSave($data)    {        $orderProduct = new OrdersProduct();        $order_no = $data['order_no'];        $house_id = $data['house_id'];        $first = $orderProduct->where([            'figure_number' => $data['figure_number'],            'house_id' => $house_id,            'order_no' => $order_no,        ])->first();        if(!empty($first)) $orderProduct = $first;        $orderProduct->order_no = $order_no;        $orderProduct->house_id = $house_id;        $orderProduct->product_title = $data['product_title']??'';        $orderProduct->price = $data['price']??0;        $orderProduct->unit = $data['unit']??'';        $orderProduct->figure_number = $data['figure_number'];        $orderProduct->save();        return [true,$orderProduct->id];    }    public function orderProductBomSave($data)    {        $order_no = $data['order_no'];        $house_id = $data['house_id'];        $o_p_id = $data['o_p_id'];        OrdersProductBom::where([            'order_no' => $order_no,            'house_id' => $house_id,            'o_p_id' => $o_p_id,        ])->delete();        $insert = [];        foreach ($data['bom'] as $v){            $insert[] = [                'order_no' => $order_no,                'o_p_id' => $o_p_id,                'house_id' => $house_id,                'bom_title' => $v['bom_title']??'',                'product_title' => $v['product_title']??'',                'route_id' => $v['route_id']??0,                'crt_time' => time(),                'upd_time' => time(),                'procedure_properties' => $v['procedure_properties'] ?? '',                'measure' => $v['measure']??'',                'price' => $v['price'],                'bom_id' => $v['bom_id']            ];        }        OrdersProductBom::insert($insert);        return [true,''];    }    public function orderRule($data)    {        if ($this->isEmpty($data, 'project_title')) return [false, '名称不存在!'];        if ($this->isEmpty($data, 'address')) return [false, '单位不存在!'];        if ($this->isEmpty($data, 'mobile')) return [false, '芯片设置不存在!'];//        if($this->isEmpty($data,'icon')) return [201,'d不存在!'];//        if($this->isEmpty($data,'uri')) return [false,'路由不存在!'];        return [true, ''];    }}
 |