123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace App\Repositories\V2;
- use App\Models\Floor;
- use Illuminate\Support\Facades\Log;
- use Symfony\Component\HttpKernel\Exception\HttpException;
- use Dingo\Api\Http\Response;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Database\QueryException;
- /**
- * Created by PhpStorm.
- * User: durong
- * Date: 2019/6/3
- * Time: 下午2:36
- */
- class FloorRepository
- {
- public function __construct(Floor $floor)
- {
- $this->floor = $floor;
- }
- public function index($request)
- {
- $where = [];
- if(isset($request['id'])){
- $where[] = ['id', '=', $request['id']];
- }
- return $this->floor->where($where)->orderBy('id', 'asc')->paginate(20);
- }
- public function create($request)
- {
- $data = [
- 'name' => $request['name'],
- 'floor_location' => $request['floor_location'],
- 'group_ids' => implode(',',$request['group_ids']),//多个banner用英文,隔开
- 'floor_type' => $request['floor_type'],
- 'is_open' => $request['is_open']
- ];
- if (!$this->floor->create($data)) {
- throw new HttpException(500, '添加失败');
- }
- }
- public function edit($request)
- {
- $floor = $this->floor->where('id', $request['id'])->first();
- $floor->name = $request['name'];
- $floor->floor_location = $request['floor_location'];
- $floor->group_ids = implode(',',$request['group_ids']);
- $floor->floor_type = $request['floor_type'];
- $floor->is_open = $request['is_open'] ?? 0;
- DB::beginTransaction();
- try{
- $res = $floor->save();
- if($res){
- DB::commit();
- return Response::create();
- }
- DB::rollBack();
- return Response::create([
- 'message' => '编辑失败,请重试',
- 'status_code' => 500
- ]);
- }catch (QueryException $exception){
- Log::debug('编辑楼层:'.$exception->getMessage());
- DB::rollBack();
- return Response::create([
- 'message' => '编辑失败,请重试',
- 'error' => $exception->getMessage(),
- 'status_code' => 500
- ]);
- }
- }
- public function editStatus($request)
- {
- $floor = $this->floor->find($request['id']);
- $floor->is_open = $request['is_open'];
- $floor->updated_at = date('Y-m-d H:i:s');
- $res = $floor->save();
- if (!$res) {
- throw new HttpException(500, '修改状态失败');
- }
- }
- public function floorBind($request)
- {
- $banner_id = $request['banner_id'];
- $floor_array = $this->floor->select('id','group_ids')->where('floor_type',0)->get();
- $floor_ids = [];
- foreach ($floor_array->toArray() as $value){
- if ($banner_id == $value['group_ids']){
- $floor_ids[] = $value['id'];
- }
- }
- if (count($floor_ids)>0){
- $edit_floor = $this->floor->whereIn('id',$floor_ids)->update(['is_open'=>0]);
- if (!$edit_floor){
- throw new HttpException(500, '该楼层关闭失败');
- }
- }
- }
- }
|