242 lines
6.6 KiB
PHP
Executable File
242 lines
6.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* 寄卖订单模型
|
|
*/
|
|
|
|
namespace app\common\model;
|
|
|
|
use think\model\concern\SoftDelete;
|
|
use think\db;
|
|
class ConsignmentOrder extends Model
|
|
{
|
|
use SoftDelete;
|
|
public $softDelete = true;
|
|
protected $name = 'consignment_order';
|
|
protected $autoWriteTimestamp = true;
|
|
|
|
//可搜索字段
|
|
protected $searchField = ['mobile',];
|
|
|
|
//订单状态
|
|
public function getOrderStatusTextAttr($value, $data)
|
|
{
|
|
return self::JMORDER_TEXT[$data['order_status']];
|
|
}
|
|
|
|
//是否退回获取器
|
|
public function getIsReturnTextAttr($value, $data)
|
|
{
|
|
return self::BOOLEAN_TEXT[$data['is_return']];
|
|
}//订单取消时间获取器
|
|
public function getCancelTimeAttr($value)
|
|
{
|
|
return date('Y-m-d H:i:s',$value);
|
|
}
|
|
|
|
//订单取消时间修改器
|
|
public function setCancelTimeAttr($value)
|
|
{
|
|
return strtotime($value);
|
|
}
|
|
|
|
//订单关联商品
|
|
public function consignmentOrderGoods()
|
|
{
|
|
return $this->hasMany('consignment_order_goods', 'order_id', 'id');
|
|
}
|
|
|
|
//订单用户
|
|
public function user()
|
|
{
|
|
return $this->hasOne('user', 'id', 'user_id')
|
|
->field('id,sn,nickname,avatar,mobile,create_time');
|
|
}
|
|
//订单流程
|
|
public function logs()
|
|
{
|
|
return $this->hasMany('consignment_order_log', 'order_id', 'id')->order('id desc');
|
|
}
|
|
|
|
/**
|
|
* Notes: 结算详情
|
|
* @param $json_value
|
|
* @param $user_id
|
|
* @return array
|
|
*/
|
|
public static function info($json_value, $user_id)
|
|
{
|
|
try{
|
|
$goods_lists = array();
|
|
$total_num = 0;//商品总数量
|
|
foreach ($json_value as $good) {
|
|
$goods_lists[] = $good;
|
|
//订单汇总信息
|
|
$total_num ++;
|
|
}
|
|
if (empty($goods_lists)) {
|
|
$data=[
|
|
'code' =>0,
|
|
'msg' =>'无商品',
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
//寄卖数量限制
|
|
$jmnum =ShopConfig::get('website', 'jmnum');
|
|
if($jmnum>$total_num){
|
|
$data=[
|
|
'code' =>0,
|
|
'msg' =>'寄卖满'.$jmnum.'件才可下单',
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
$result = [
|
|
'goods_lists' => array_values($goods_lists),
|
|
];
|
|
$data=[
|
|
'code' =>1,
|
|
'msg' =>'',
|
|
'data' =>$result,
|
|
];
|
|
return $data;
|
|
} catch (Exception $e) {
|
|
$data=[
|
|
'code' =>0,
|
|
'msg' =>$e->getMessage(),
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 添加订单
|
|
* @param $user_id
|
|
* @param $data
|
|
* @param $post
|
|
*/
|
|
public static function add($user_id, $data)
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
$goods_lists = $data['goods_lists'];
|
|
if (empty($data['goods_lists'])) {
|
|
$data=[
|
|
'code' =>0,
|
|
'msg' =>'无商品',
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
$order = self::addOrder($user_id, $data);
|
|
$order_id = $order['order_id'];
|
|
$addOrderGoods=self::addOrderGoods($order_id, $goods_lists);
|
|
if($addOrderGoods['code']==0){
|
|
return $addOrderGoods;
|
|
}
|
|
self::addOrderAfter($order_id, $user_id, $data);
|
|
Db::commit();
|
|
$data=[
|
|
'code' =>1,
|
|
'msg' =>'',
|
|
'data' =>$order,
|
|
];
|
|
return $data;
|
|
} catch (Exception $e) {
|
|
Db::rollback();
|
|
$data=[
|
|
'code' =>0,
|
|
'msg' =>$e->getMessage(),
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 添加订单记录
|
|
* @param $user_id
|
|
* @param $data
|
|
* @param $user_address
|
|
* @param array $extra
|
|
*/
|
|
public static function addOrder($user_id, $data)
|
|
{
|
|
|
|
$order_data = [
|
|
'order_sn' => createSn('order', 'order_sn', '', 4),
|
|
'user_id' => $user_id,
|
|
'order_status' =>0,
|
|
'create_time' => time(),
|
|
];
|
|
$order_id = Db::name('consignment_order')->insertGetId($order_data);
|
|
return [
|
|
'order_id' => $order_id,
|
|
'order_sn' => $order_data['order_sn'],
|
|
];
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 添加订单商品记录
|
|
* @param $order_id
|
|
* @param $goods_lists
|
|
*/
|
|
public static function addOrderGoods($order_id, $goods_lists)
|
|
{
|
|
foreach ($goods_lists as $k1 => $good) {
|
|
$goods_data = [
|
|
'order_id' => $order_id,
|
|
'item_value' => $good['item_value'],
|
|
'goods_name' => $good['goods_name'],
|
|
'item_value' => $good['item_value'],
|
|
'goods_price' => $good['goods_price'],
|
|
'goods_img' => $good['img'][0],
|
|
'brand_name' => $good['brand_name'],
|
|
'phase_name' => $good['phase_name'],
|
|
'class_name' => $good['class_name'],
|
|
'channel_name' => $good['channel_name'],
|
|
'create_time' => time(),
|
|
];
|
|
$goods_id = Db::name('consignment_order_goods')->insertGetId($goods_data);
|
|
foreach ($good['img'] as $key => $value) {
|
|
$goods_img[] = [
|
|
'type' =>2,
|
|
'union_id' => $goods_id,
|
|
'thumb_image' => $value,
|
|
'ori_image' => $value,
|
|
'create_time' => time(),
|
|
];
|
|
}
|
|
}
|
|
Db::name('mall_image')->insertAll($goods_img);
|
|
$data=[
|
|
'code' =>1,
|
|
'msg' =>'',
|
|
'data' =>'',
|
|
];
|
|
return $data;
|
|
}
|
|
|
|
|
|
/**
|
|
* Notes: 下单后操作
|
|
* @param $order_id
|
|
* @param $user_id
|
|
* @param $type
|
|
* @param $data
|
|
*/
|
|
public static function addOrderAfter($order_id, $user_id, $data)
|
|
{
|
|
//记录日志
|
|
ConsignmentOrderLog::record(
|
|
$order_id,
|
|
'寄卖下单成功',
|
|
'24小时内平台估价'
|
|
);
|
|
}
|
|
}
|