|
|
@@ -16,8 +16,10 @@ namespace app\adminapi\lists\works;
|
|
|
|
|
|
|
|
|
use app\adminapi\lists\BaseAdminDataLists;
|
|
|
+use app\common\model\goods_category\GoodsCategory;
|
|
|
use app\common\model\works\ServiceWork;
|
|
|
use app\common\lists\ListsSearchInterface;
|
|
|
+use think\db\Query;
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -38,12 +40,47 @@ class ServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterfac
|
|
|
public function setSearch(): array
|
|
|
{
|
|
|
return [
|
|
|
- '=' => ['work_sn', 'real_name', 'mobile', 'address', 'title', 'category_type', 'goods_category_ids', 'goods_category_id', 'base_service_fee', 'service_fee', 'work_status', 'service_status', 'dispatch_time', 'receive_time', 'appointment_time', 'finished_images', 'finished_time', 'master_worker_id', 'work_amount', 'create_time', 'update_time'],
|
|
|
+ '=' => ['work_sn', 'real_name', 'mobile', 'address', 'title', 'category_type', 'base_service_fee', 'service_fee', 'work_status', 'service_status', 'finished_images', 'master_worker_id', 'work_amount'],
|
|
|
|
|
|
];
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ public function queryWhere(){
|
|
|
+ $where = [];
|
|
|
+ if(isset($this->params['dispatch_time']) && !empty($this->params['dispatch_time'])){
|
|
|
+ $time = [strtotime($this->params['dispatch_time'][0]), strtotime($this->params['dispatch_time'][1])];
|
|
|
+ $where[] = ['dispatch_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if(isset($this->params['receive_time']) && !empty($this->params['receive_time'])){
|
|
|
+ $time = [strtotime($this->params['receive_time'][0]), strtotime($this->params['receive_time'][1])];
|
|
|
+ $where[] = ['receive_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if(isset($this->params['appointment_time']) && !empty($this->params['appointment_time'])){
|
|
|
+ $time = [strtotime($this->params['appointment_time'][0]), strtotime($this->params['appointment_time'][1])];
|
|
|
+ $where[] = ['appointment_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if(isset($this->params['finished_time']) && !empty($this->params['finished_time'])){
|
|
|
+ $time = [strtotime($this->params['finished_time'][0]), strtotime($this->params['finished_time'][1])];
|
|
|
+ $where[] = ['finished_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if(isset($this->params['create_time']) && !empty($this->params['create_time'])){
|
|
|
+ $time = [strtotime($this->params['create_time'][0]), strtotime($this->params['create_time'][1])];
|
|
|
+ $where[] = ['create_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if(isset($this->params['update_time']) && !empty($this->params['update_time'])){
|
|
|
+ $time = [strtotime($this->params['update_time'][0]), strtotime($this->params['update_time'][1])];
|
|
|
+ $where[] = ['update_time', 'between', $time];
|
|
|
+ }
|
|
|
+ if (isset($this->params['update_time']) && !empty($this->params['goods_category_id'])) {
|
|
|
+ $goodsCategoryId = end($this->params['goods_category_id']);
|
|
|
+ $goodsCategoryData = GoodsCategory::where(['status'=>1])->order(['pid' => 'asc','weigh' => 'desc', 'id' => 'desc'])
|
|
|
+ ->select()->toArray();
|
|
|
+ $ids =get_tree_ids($goodsCategoryData,$goodsCategoryId);
|
|
|
+ $ids[] = $goodsCategoryId;
|
|
|
+ $where[] = ['goods_category_id','in' ,$ids];
|
|
|
+ }
|
|
|
+ return $where;
|
|
|
+ }
|
|
|
/**
|
|
|
* @notes 获取列表
|
|
|
* @return array
|
|
|
@@ -55,7 +92,16 @@ class ServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterfac
|
|
|
*/
|
|
|
public function lists(): array
|
|
|
{
|
|
|
- return ServiceWork::where($this->searchWhere)
|
|
|
+ return ServiceWork::with([
|
|
|
+ 'worker'=>function(Query $query) {
|
|
|
+ $query->field("id,worker_number,real_name");
|
|
|
+ },
|
|
|
+ 'goodsCategory' =>function (Query $query) {
|
|
|
+ $query->field('id,name');
|
|
|
+ }
|
|
|
+ ])
|
|
|
+ ->where($this->searchWhere)
|
|
|
+ ->where($this->queryWhere())
|
|
|
->field(['id', 'work_sn', 'real_name', 'mobile', 'address', 'title', 'category_type', 'goods_category_ids', 'goods_category_id', 'base_service_fee', 'service_fee', 'work_status', 'service_status', 'dispatch_time', 'receive_time', 'appointment_time', 'finished_images', 'finished_time', 'master_worker_id', 'work_amount', 'create_time', 'update_time'])
|
|
|
->limit($this->limitOffset, $this->limitLength)
|
|
|
->order(['id' => 'desc'])
|
|
|
@@ -72,7 +118,7 @@ class ServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterfac
|
|
|
*/
|
|
|
public function count(): int
|
|
|
{
|
|
|
- return ServiceWork::where($this->searchWhere)->count();
|
|
|
+ return ServiceWork::where($this->searchWhere)->where($this->queryWhere())->count();
|
|
|
}
|
|
|
|
|
|
}
|