where('is_del', 0); } /** * 获取门店信息 * @param int $id * @return array|\think\Model|null * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function getStoreDispose($id = 0, $store_id = 0) { if ($id) $storeInfo = self::verificWhere()->where('id', $id)->find(); else // $storeInfo = self::verificWhere()->find(); $storeInfo = []; if ($storeInfo) { if ($store_id && $store_id != $storeInfo) { goto end; } $storeInfo['latlng'] = self::getLatlngAttr(null, $storeInfo); $storeInfo['valid_time'] = $storeInfo['valid_time'] ? explode(' - ', $storeInfo['valid_time']) : []; $storeInfo['day_time'] = $storeInfo['day_time'] ? explode(' - ', $storeInfo['day_time']) : []; $storeInfo['address'] = $storeInfo['address'] ? explode(',', $storeInfo['address']) : []; $storeInfo['store'] = SystemStore::get($storeInfo['store_id'])->toArray(); } else { end: $storeInfo['latlng'] = []; $storeInfo['valid_time'] = []; $storeInfo['day_time'] = []; $storeInfo['address'] = []; $storeInfo['id'] = 0; $storeInfo['store'] = []; } return $storeInfo; } /** * 获取门店列表 * @param $where * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function getStoreList($where) { $model = new self(); if (isset($where['store_id']) && $where['store_id'] != '') { $model = $model->where('store_id', $where['store_id']); } if (isset($where['name']) && $where['name'] != '') { $model = $model->where('id|name', 'like', '%' . $where['name'] . '%'); } if (isset($where['type']) && $where['type'] != '' && ($data = self::setData($where['type']))) { $model = $model->where($data); } $count = $model->count(); $data = $model->page((int)$where['page'], (int)$where['limit'])->select()->each(function ($item) { $item['deposit'] = StoreOrder::where('store_id', $item['store_id']) ->where('point_id', $item['id']) ->where('paid', 1) ->where('is_del', 0) ->where('is_system_del', 0) ->where('refund_status', 0)->sum('deposit'); $item['deposit_back'] = StoreOrder::where('store_id', $item['store_id']) ->where('point_id', $item['id']) ->where('paid', 1) ->where('is_del', 0) ->where('is_system_del', 0) ->where('refund_status', 0)->sum('deposit_back'); $item['store'] = SystemStore::get($item['store_id'])->value('name'); }); if ($where['excel'] == 1) { $export = []; foreach ($data as $index => $item) { $export[] = [ $item['name'], $item['store'], $item['phone'], $item['address'] .= ' ' . $item['detailed_address'], $item['deposit'], $item['deposit_back'], $item['day_time'], $item['valid_time'] ]; } PHPExcelService::setExcelHeader(['自提点名称', '所属门店', '自提点电话', '自提点地址', '总押金', '已退押金', '营业时间', '核销日期']) ->setExcelTile('自提点导出', '自提点信息' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time())) ->setExcelContent($export) ->ExcelSave(); } return compact('count', 'data'); } /** * 获取连表查询条件 * @param $type * @return array */ public static function setData($type) { switch ((int)$type) { case 1: $data = ['is_show' => 1, 'is_del' => 0]; break; case 2: $data = ['is_show' => 0, 'is_del' => 0]; break; case 3: $data = ['is_del' => 1]; break; }; return isset($data) ? $data : []; } public static function dropList() { $model = new self(); $model = $model->where('is_del', 0); $list = $model->select() ->toArray(); return $list; } }