diff --git a/app/controller/api/Auth.php b/app/controller/api/Auth.php index d7b202c3..b07e887a 100644 --- a/app/controller/api/Auth.php +++ b/app/controller/api/Auth.php @@ -1007,6 +1007,7 @@ class Auth extends BaseController $typeId = $this->request->param('type_id', 0); $startDate = $this->request->param('start_date', ''); $endDate = $this->request->param('end_date', ''); + $sql = $this->request->param('sql', 0); $queryBuilder = Db::name('ProductOrderLog')->where('status', 1); //根据商户分类店铺类型筛选商户 $queryMerBuilder = Db::name('Merchant'); @@ -1019,19 +1020,49 @@ class Auth extends BaseController $merIdArray = $queryMerBuilder->fetchSql(false)->column('mer_id'); $queryBuilder = $queryBuilder->whereIn('mer_id', $merIdArray); if ($cityCode) { - $queryBuilder = $queryBuilder->where('city_code', $cityCode); + $cityCodeArray = explode(',', $cityCode ); + if (count($cityCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('city_code', $cityCode); + } + if (count($cityCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('city_code', $cityCodeArray); + } } if ($districtCode) { - $queryBuilder = $queryBuilder->where('district_code', $districtCode); + $districtCodeArray = explode(',', $districtCode); + if (count($districtCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('district_code', $districtCode); + } + if (count($districtCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('district_code', $districtCodeArray); + } } if ($streetCode) { - $queryBuilder = $queryBuilder->where('street_code', $streetCode); + $streetCodeArray = explode(',', $streetCode); + if (count($streetCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('street_code', $streetCode); + } + if (count($streetCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('street_code', $streetCodeArray); + } } if ($villageCode) { - $queryBuilder = $queryBuilder->where('village_code', $villageCode); + $villageCodeArray = explode(',', $villageCode); + if (count($villageCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('village_code', $villageCode); + } + if (count($villageCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('village_code', $villageCodeArray); + } } if ($brigadeId) { - $queryBuilder = $queryBuilder->where('brigade_id', $brigadeId); + $brigadeIdArray = explode(',', $brigadeId); + if (count($brigadeIdArray) == 1) { + $queryBuilder = $queryBuilder->where('brigade_id', $brigadeId); + } + if (count($brigadeIdArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('brigade_id', $brigadeIdArray); + } } if ($startDate) { $queryBuilder = $queryBuilder->whereTime('create_time', '>=', trim($startDate)); @@ -1039,7 +1070,7 @@ class Auth extends BaseController if ($endDate) { $queryBuilder = $queryBuilder->whereTime('create_time', '<=', trim($endDate) . ' 23:59:59'); } - $count = $queryBuilder->fetchSql(false)->count(); + $count = $queryBuilder->fetchSql((bool)$sql)->count(); $list = $queryBuilder->setOption('field', [])->field(['id', 'order_id', 'product_num', 'product_price', 'total_price', 'city_code', 'district_code', 'street_code', 'village_code', 'brigade_id', 'create_time'])->order('id', 'desc')->page($page, $limit)->fetchSql(false)->select(); $orderIdList = []; if ($list) { @@ -1065,7 +1096,17 @@ class Auth extends BaseController $typeId = $this->request->param('type_id', 0); $startDate = $this->request->param('start_date', ''); $endDate = $this->request->param('end_date', ''); - $villageId = Db::name('GeoVillage')->where('village_code', $villageCode)->fetchSql(false)->value('village_id', 0); + $sql = $this->request->param('sql', 0); + $villageIdArray = []; + if ($villageCode) { + $villageCodeArray = explode(',', $villageCode); + if (count($villageCodeArray) == 1) { + $villageIdArray = Db::name('GeoVillage')->where('village_code', $villageCodeArray)->fetchSql(false)->column('village_id'); + } + if (count($villageCodeArray) > 1) { + $villageIdArray = Db::name('GeoVillage')->whereIn('village_code', $villageCodeArray)->fetchSql(false)->column('village_id'); + } + } $queryBuilder = Db::name('Merchant'); if ($categoryId) { $queryBuilder = $queryBuilder->where('category_id', $categoryId); @@ -1074,13 +1115,25 @@ class Auth extends BaseController $queryBuilder = $queryBuilder->where('type_id', $typeId); } if ($districtCode) { - $queryBuilder = $queryBuilder->where('area_id', $districtCode); + $districtCodeArray = explode(',', $districtCode); + if (count($districtCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('area_id', $districtCode); + } + if (count($districtCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('area_id', $districtCodeArray); + } } if ($streetCode) { - $queryBuilder = $queryBuilder->where('street_id', $streetCode); + $streetCodeArray = explode(',', $streetCode); + if (count($streetCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('street_id', $streetCode); + } + if (count($streetCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('street_id', $streetCodeArray); + } } - if ($villageId) { - $queryBuilder = $queryBuilder->where('village_id', $villageId); + if (count($villageIdArray)) { + $queryBuilder = $queryBuilder->whereIn('village_id', $villageIdArray); } if ($startDate) { $queryBuilder = $queryBuilder->whereTime('create_time', '>=', trim($startDate)); @@ -1088,7 +1141,7 @@ class Auth extends BaseController if ($endDate) { $queryBuilder = $queryBuilder->whereTime('create_time', '<=', trim($endDate) . ' 23:59:59'); } - $merNum = $queryBuilder->fetchSql(false)->count(); + $merNum = $queryBuilder->fetchSql((bool)$sql)->count(); $data = [ 'where' => $this->request->param(), 'mer_num' => $merNum @@ -1106,7 +1159,17 @@ class Auth extends BaseController $typeId = $this->request->param('type_id', 0); $startDate = $this->request->param('start_date', ''); $endDate = $this->request->param('end_date', ''); - $villageId = Db::name('GeoVillage')->where('village_code', $villageCode)->fetchSql(false)->value('village_id', 0); + $sql = $this->request->param('sql', 0); + $villageIdArray = []; + if ($villageCode) { + $villageCodeArray = explode(',', $villageCode); + if (count($villageCodeArray) == 1) { + $villageIdArray = Db::name('GeoVillage')->where('village_code', $villageCodeArray)->fetchSql(false)->column('village_id'); + } + if (count($villageCodeArray) > 1) { + $villageIdArray = Db::name('GeoVillage')->whereIn('village_code', $villageCodeArray)->fetchSql(false)->column('village_id'); + } + } $queryBuilder = Db::name('Merchant'); if ($categoryId) { $queryBuilder = $queryBuilder->where('category_id', $categoryId); @@ -1115,13 +1178,25 @@ class Auth extends BaseController $queryBuilder = $queryBuilder->where('type_id', $typeId); } if ($districtCode) { - $queryBuilder = $queryBuilder->where('area_id', $districtCode); + $districtCodeArray = explode(',', $districtCode); + if (count($districtCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('area_id', $districtCode); + } + if (count($districtCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('area_id', $districtCodeArray); + } } if ($streetCode) { - $queryBuilder = $queryBuilder->where('street_id', $streetCode); + $streetCodeArray = explode(',', $streetCode); + if (count($streetCodeArray) == 1) { + $queryBuilder = $queryBuilder->where('street_id', $streetCode); + } + if (count($streetCodeArray) > 1) { + $queryBuilder = $queryBuilder->whereIn('street_id', $streetCodeArray); + } } - if ($villageId) { - $queryBuilder = $queryBuilder->where('village_id', $villageId); + if (count($villageIdArray)) { + $queryBuilder = $queryBuilder->whereIn('village_id', $villageIdArray); } $merIdArray = $queryBuilder->fetchSql(false)->column('mer_id'); $prodQueryBuilder = Db::name('StoreProduct')->where('is_show', 1)->where('status', 1)->whereIn('mer_id', $merIdArray); @@ -1131,10 +1206,11 @@ class Auth extends BaseController if ($endDate) { $prodQueryBuilder = $prodQueryBuilder->whereTime('create_time', '<=', trim($endDate) . ' 23:59:59'); } - $goodsNum = $prodQueryBuilder->fetchSql(false)->count(); + $goodsNum = $prodQueryBuilder->fetchSql((bool)$sql)->count(); $data = [ 'where' => $this->request->param(), - 'goods_num' => $goodsNum + 'goods_num' => $goodsNum, + 'merid' => $merIdArray ]; return app('json')->success($data); }