123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace App\Repositories;
- use Symfony\Component\HttpKernel\Exception\HttpException;
- use App\Models\ConfigPickupNode;
- use Dingo\Api\Http\Response;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Database\QueryException;
- class ConfigPickupNodeRepository {
- public function __construct(ConfigPickupNode $configPickupNode) {
- $this->configPickupNode = $configPickupNode;
- }
- //列表
- public function index($request)
- {
- $perPage = isset($request['per_page']) ? $request['per_page'] : env('PER_PAGE');
- $where = [];
- if(isset($request['id'])){
- $where[] = ['id', '=', $request['id']];
- }
- if(isset($request['name'])){
- $where[] = ['name', 'like', "%{$request['name']}%"];
- }
- if(isset($request['city_id'])){
- $where[] = ['city_id', '=', $request['city_id']];
- }
- if(isset($request['status'])){
- $where[] = ['status', '=', $request['status']];
- }
- return $this->configPickupNode->where($where)->paginate($perPage);
- }
- /**
- * 添加自提点
- */
- public function create($request)
- {
- if($this->configPickupNode->where('name', trim($request['name']))->exists()){
- throw new HttpException(500, '该自提点已经存在');
- }
- $data = [
- 'name' => $request['name'],
- 'city_id' => $request['city_id'],
- 'city_name' => $request['city_name'],
- 'address' => $request['address'],
- 'work_time' => $request['work_time'],
- 'manager_name' => $request['manager_name']??'',
- 'manager_mobile' => $request['manager_mobile'],
- 'receive_type' => $request['receive_type'],
- 'longitude' => $request['longitude'],
- 'latitude' => $request['latitude'],
- 'store_ids' => $request['store_ids'],
- 'pickup_group_id' => $request['pickup_group_id'],
- 'pickup_code' => $request['pickup_code'],
- 'status' => $request['status']?$request['status']:0
- ];
- if (!$this->configPickupNode->create($data)) {
- throw new HttpException(500, '添加失败');
- }
- }
- public function edit($request)
- {
- $pickupNode = $this->configPickupNode->where('id', $request['id'])->first();
- $pickupNode->name = $request['name'];
- $pickupNode->city_id = $request['city_id'];
- $pickupNode->city_name = $request['city_name'];
- $pickupNode->address = $request['address'];
- $pickupNode->work_time = $request['work_time'];
- $pickupNode->manager_name = $request['manager_name']??'';
- $pickupNode->manager_mobile = $request['manager_mobile'];
- $pickupNode->receive_type = $request['receive_type'];
- $pickupNode->longitude = $request['longitude'];
- $pickupNode->latitude = $request['latitude'];
- $pickupNode->store_ids = $request['store_ids'];
- $pickupNode->pickup_group_id = $request['pickup_group_id'];
- $pickupNode->status = $request['status']?$request['status']:0;
- DB::beginTransaction();
- try{
- $res = $pickupNode->save();
- if($res){
- DB::commit();
- return Response::create();
- }
- DB::rollBack();
- return Response::create([
- 'message' => '编辑失败,请重试',
- 'status_code' => 500
- ]);
- }catch (QueryException $exception){
- DB::rollBack();
- return Response::create([
- 'message' => '编辑失败,请重试',
- 'error' => $exception->getMessage(),
- 'status_code' => 500
- ]);
- }
- }
- }
|