119 lines
2.6 KiB
PHP
119 lines
2.6 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\model;
|
||
|
|
||
|
use app\exception\RepositoryException;
|
||
|
use Exception;
|
||
|
use think\Collection;
|
||
|
use think\db\exception\DataNotFoundException;
|
||
|
use think\db\exception\DbException;
|
||
|
use think\db\exception\ModelNotFoundException;
|
||
|
use think\facade\Db;
|
||
|
use think\model\relation\HasOne;
|
||
|
|
||
|
/**
|
||
|
* 拼团列表
|
||
|
*
|
||
|
* Class OrderGroupList
|
||
|
* @package app\model
|
||
|
*/
|
||
|
class OrderGroupList extends Base
|
||
|
{
|
||
|
/**
|
||
|
* 历史记录
|
||
|
*
|
||
|
* @param array $where
|
||
|
* @param array $field
|
||
|
* @return OrderActivity[]|array|Collection
|
||
|
* @throws DataNotFoundException
|
||
|
* @throws DbException
|
||
|
* @throws ModelNotFoundException
|
||
|
*/
|
||
|
public static function history(array $where, array $field = [])
|
||
|
{
|
||
|
return self::where($where)->field($field)->select();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 设为已付款
|
||
|
*
|
||
|
* @param string $orderCoding
|
||
|
* @return bool
|
||
|
*/
|
||
|
public static function setPaid(string $orderCoding): bool
|
||
|
{
|
||
|
return self::where('coding', $orderCoding)->save([
|
||
|
'is_paid' => self::COMMON_ON,
|
||
|
'paid_at' => date('Y-m-d H:i:s')
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 订单相关信息取消(软删除)
|
||
|
*
|
||
|
* @param string $orderCoding
|
||
|
* @return bool
|
||
|
*/
|
||
|
public static function cancel(string $orderCoding): bool
|
||
|
{
|
||
|
return self::where('coding', $orderCoding)->save([
|
||
|
'deleted_at' => date('Y-m-d H:i:s')
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 活动商品信息
|
||
|
*
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function activity(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(SpuActivity::class, 'id', 'spu_activity_id');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 用户头像
|
||
|
*
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function accountCover(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(Account::class, 'id', 'account_id')->bind([
|
||
|
'cover' => 'headimgurl',
|
||
|
'name' => 'nickname',
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 创建拼团
|
||
|
*
|
||
|
* @param array $groupList
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public static function createGroup(array $groupList)
|
||
|
{
|
||
|
(new self())->saveAll($groupList);
|
||
|
self::where('group_id', 0)->save(['group_id' => Db::raw('`id`')]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 订单信息
|
||
|
*
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function orderInfo(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(Order::class, 'coding', 'coding');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 用户信息
|
||
|
*
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function account(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(Account::class, 'id', 'account_id')->withField(['id', 'nickname', 'real_name']);
|
||
|
}
|
||
|
}
|