123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019-06-10
- * Time: 17:40
- */
- namespace App\Repositories;
- use App\Models\Meta;
- use BaconQrCode\Encoder\QrCode;
- use Dingo\Api\Http\Response;
- use Illuminate\Support\Carbon;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Database\QueryException;
- use Illuminate\Support\Facades\Log;
- class MetaRepository {
- public function __construct(Meta $meta){
- $this->meta = $meta;
- }
- //列表
- public function index($request){
- $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
- $where = [];
- if(isset($request['patch_num']) && $request['patch_num']){
- $where[] = ['patch_num','like',"%".$request['patch_num']];
- }
- return $this->meta->where($where)->orderBy('id', 'desc')->paginate($perPage);
- }
- //详情
- public function view($request){
- return $this->meta->where(['id'=>$request['patch_num']])->first();
- }
- //创建
- public function create($request){
- $category = $this->meta->where(['patch_num'=>$request['patch_num']])->first();
- if($category){
- return Response::create([
- 'message' => '该批次已存在',
- 'status_code' => 500
- ]);
- }
- if(count($request['farm'])>10){
- return Response::create([
- 'message' => '农场图片不能超过10张',
- 'status_code' => 500
- ]);
- }
- $data = [
- 'patch_num' => $request['patch_num'],
- 'produce_date' => $request['produce_date'],
- 'variety' => $request['variety'],
- 'variety_img' => $request['variety_img'],
- 'age' => $request['age'],
- 'food' => $request['food'],
- 'food_img' => $request['food_img'],
- 'water' => $request['water'],
- 'water_img' => $request['water_img'],
- 'logistical' => $request['logistical']??'',
- 'farm' => \GuzzleHttp\json_encode($request['farm']),
- 'report' => $request['report'],
- ];
- DB::beginTransaction();
- try{
- $meta = $this->meta->create($data);
- DB::commit();
- QrCode::size(200)->generate("http://uptoyo.com/".$meta['id'],public_path().'/qrcodes/'.$meta['patch_num'].'.png');
- return Response::create();
- }catch (QueryException $exception){
- DB::rollBack();
- Log::debug('新增元数据失败:'.$exception->getMessage());
- return Response::create([
- 'message' => '新增元数据失败,请重试',
- 'error' => $exception->getMessage(),
- 'status_code' => 500
- ]);
- }
- }
- //修改
- public function update($request){
- $category = $this->meta->where('id', $request['id'])->first();
- if(isset($request['is_suggest']) && $request['is_suggest'] !== null){
- $category->is_suggest = $request['is_suggest'];
- }
- $res = $category->save();
- if($res){
- return Response::create();
- }
- }
- }
|