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

106 lines
3.1 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,31,32,33,34,36,37,38])
->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(isset($where['with_goods_mer_id']) && $where['with_goods_mer_id'] !== '',function($query) use ($where){
if(is_array($where['with_goods_mer_id'] )) $query->whereIn('with_goods_mer_id',$where['with_goods_mer_id']);
else $query->where('with_goods_mer_id',$where['with_goods_mer_id']);
})
->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;
}
}