admin-api/app/common/dao/store/order/StoreGroupOrderDao.php

101 lines
2.7 KiB
PHP

<?php
namespace app\common\dao\store\order;
use app\common\dao\BaseDao;
use app\common\model\store\order\StoreGroupOrder;
/**
* Class StoreGroupOrderDao
* @package app\common\dao\store\order
* @author xaboy
* @day 2020/6/9
*/
class StoreGroupOrderDao extends BaseDao
{
/**
* @return string
* @author xaboy
* @day 2020/6/9
*/
protected function getModel(): string
{
return StoreGroupOrder::class;
}
/**
* @param null $uid
* @return int
* @author xaboy
* @day 2020/6/11
*/
public function orderNumber($uid = null)
{
return $this->search(['uid' => $uid,'is_del' => 0,'paid' => 0],0)->count();
}
/**
* @param array $where
* @return \think\db\BaseQuery
* @author xaboy
* @day 2020/6/9
*/
public function search(array $where,$is_points = null)
{
$query = StoreGroupOrder::getDB()->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) {
$query->where('paid', $where['paid']);
})
->whereNotIn('activity_type', [30])
->when(isset($where['paid']) && $where['paid'] !== '', function ($query) use ($where) {
$query->where('paid', $where['paid']);
})
->when(isset($where['uid']) && $where['uid'] !== '', function ($query) use ($where) {
$query->where('uid', $where['uid']);
})
->when(!is_null($is_points), function ($query) use ($is_points) {
if ($is_points) {
$query->where('activity_type', 20);
} else {
$query->where('activity_type', '<>',20);
}
})
->when(isset($where['is_del']) && $where['is_del'] !== '', function ($query) use ($where) {
$query->where('is_del', $where['is_del']);
}, function ($query) {
$query->where('is_del', 0);
});
return $query->order('create_time DESC');
}
/**
* @param $time
* @param bool $is_remind
* @return array
* @author xaboy
* @day 2020/6/9
*/
public function getTimeOutIds($time, $is_remind = false)
{
return StoreGroupOrder::getDB()->where('is_del', 0)->where('paid', 0)
->when($is_remind, function ($query) {
$query->where('is_remind', 0);
})->where('create_time', '<=', $time)->column('group_order_id');
}
public function isRemind($id)
{
return StoreGroupOrder::getDB()->where('group_order_id', $id)->update(['is_remind' => 1]);
}
public function totalNowMoney($uid)
{
return StoreGroupOrder::getDB()->where('pay_type', 0)->where('uid', $uid)->sum('pay_price') ?: 0;
}
}