51 lines
1.5 KiB
PHP
51 lines
1.5 KiB
PHP
<?php namespace Gdoo\Promotion\Models;
|
|
|
|
use DB;
|
|
use Gdoo\Index\Models\BaseModel;
|
|
use Gdoo\Promotion\Models\Promotion;
|
|
use Gdoo\Promotion\Models\PromotionCashData;
|
|
|
|
class PromotionCash extends BaseModel
|
|
{
|
|
protected $table = 'promotion_cash';
|
|
|
|
public function datas()
|
|
{
|
|
return $this->hasMany(PromotionCashData::class, 'cash_id');
|
|
}
|
|
|
|
public function promotion()
|
|
{
|
|
return $this->belongsTo(Promotion::class);
|
|
}
|
|
|
|
// 促销兑现单生成客户订单
|
|
public function makeCustomerOrder($cashId)
|
|
{
|
|
// 客户订单数
|
|
$cash = PromotionCash::with('datas')->find($cashId);
|
|
|
|
$total_num = DB::table('order')->count('id');
|
|
|
|
$master['customer_id'] = $cash->promotion->customer_id;
|
|
$master['flow_step_id'] = 1;
|
|
$master['number'] = 'CXDX-'.date('Y-m').'-'.($total_num + 1);
|
|
$master['add_time'] = time();
|
|
$orderId = DB::table('order')->insertGetId($master);
|
|
|
|
foreach ($cash->datas as $data) {
|
|
$row = [
|
|
'order_id' => $orderId,
|
|
'customer_id' => $cash->promotion->customer_id,
|
|
'product_id' => $data['product_id'],
|
|
'price' => $data['price'],
|
|
'amount' => $data['quantity'],
|
|
'type' => $data['type_id'],
|
|
'content' => $data['remark'],
|
|
];
|
|
DB::table('order_data')->insert($row);
|
|
}
|
|
return true;
|
|
}
|
|
}
|