Explorar el Código

Merge branch 'develop'

zhangchangchun hace 5 años
padre
commit
efd2c9d881

+ 66 - 0
app/Http/Controllers/UpgradeController.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-08-21
+ * Time: 10:22
+ */
+
+namespace App\Http\Controllers;
+
+use App\Repositories\UpgradeRepository;
+use App\Transformers\UpgradeTransformer;
+use Illuminate\Http\Request;
+use League\Fractal\Manager;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Validation\Rule;
+
+
+class UpgradeController extends Controller {
+    public function __construct(UpgradeRepository $upgradeRepository) {
+        $this->upgradeRepository = $upgradeRepository;
+    }
+
+    public function create(Request $request) {
+        $validator = Validator::make($request->all(), [
+            'os' => ['required', Rule::in('ios','android')],
+            'version' => 'required|string',
+            'version_code' => 'required|integer',
+            'url' => 'required|url',
+            'title' => 'max:80',
+            //'content' => 'min:20',
+            'is_forced_update' => [Rule::in([0, 1])],
+        ]);
+        if ($validator->fails()) {
+            return $this->response->error($validator->errors()->first(), 500);
+        }
+        return  $this->upgradeRepository->create($request->all());
+    }
+
+
+    public function index(Request $request){
+        $upgrade = $this->upgradeRepository->index($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($upgrade, new UpgradeTransformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($upgrade));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'filters' => [
+                'os',
+            ],
+            'columns' => [
+                'id',
+                'version',
+                'version_code',
+                'url',
+                'title',
+                'content',
+                'is_forced_update',
+                'created_at',
+            ]
+        ];
+        return $data;
+    }
+}

+ 17 - 0
app/Models/Upgrade.php

@@ -0,0 +1,17 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-08-21
+ * Time: 10:25
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class Upgrade extends Model {
+    protected $table = 'upgrade';
+    protected $guarded = [];
+}

+ 66 - 0
app/Repositories/UpgradeRepository.php

@@ -0,0 +1,66 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-08-21
+ * Time: 10:26
+ */
+
+namespace App\Repositories;
+
+
+use App\Models\Upgrade;
+use Illuminate\Support\Facades\DB;
+use Dingo\Api\Http\Response;
+
+class UpgradeRepository {
+    public function __construct(Upgrade $upgrade) {
+        $this->upgrade = $upgrade;
+    }
+    //列表
+    public function index($request){
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+        $where = [];
+        if(isset($request['os'])){
+            $where[] = ['os', $request['os']];
+        }
+        return $this->upgrade->where($where)->orderBy('id', 'desc')->paginate($perPage);
+    }
+    //详情
+    public function view($request){
+        return $this->upgrade->where(['id'=>$request['id']])->first();
+    }
+    //创建
+    public function create($request){
+        $upgrade = $this->upgrade->where(['os'=>$request['os'],'version'=>$request['version']])->first();
+        if($upgrade){
+            return Response::create([
+                'message'  => '该版本已存在',
+                'status_code'   => 500
+            ]);
+        }
+        $data = [
+            'os' => $request['os'],
+            'version' => $request['version'],
+            'version_code' => $request['version_code'],
+            'url' => $request['url'],
+            'title' => $request['title'],
+            'content' => $request['content'],
+            'is_forced_update' => $request['is_forced_update'],
+        ];
+        DB::beginTransaction();
+        try{
+            $this->upgrade->create($data);
+            DB::commit();
+            return Response::create();
+        }catch (QueryException $exception){
+            DB::rollBack();
+            Log::debug('新增版本:'.$exception->getMessage());
+            return Response::create([
+                'message'  => '新增升级版本失败,请重试',
+                'error' => $exception->getMessage(),
+                'status_code'   => 500
+            ]);
+        }
+    }
+}

+ 31 - 0
app/Transformers/UpgradeTransformer.php

@@ -0,0 +1,31 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-08-21
+ * Time: 10:59
+ */
+
+namespace App\Transformers;
+
+
+use App\Models\Upgrade;
+use League\Fractal\TransformerAbstract;
+use Illuminate\Support\Carbon;
+
+class UpgradeTransformer extends TransformerAbstract {
+    public function transform(Upgrade $upgrade)
+    {
+        return [
+            'id'  => $upgrade['id'],
+            'os'    => $upgrade['os'],
+            'version'    => $upgrade['version'],
+            'version_code'    => $upgrade['version_code'],
+            'url'    => $upgrade['url'],
+            'title'    => $upgrade['title'],
+            'content'    => $upgrade['content'],
+            'is_forced_update'    => $upgrade['is_forced_update'],
+            'created_at' => Carbon::parse($upgrade['created_at'])->toDateTimeString(),
+        ];
+    }
+}

+ 38 - 0
database/migrations/2019_08_21_101106_create_upgrade_table.php

@@ -0,0 +1,38 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateUpgradeTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('upgrade', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->string('os',20)->nullable()->comment('客户端名称');
+            $table->string('version',50)->nullable()->comment('版本号');
+            $table->integer('version_code')->default(0)->comment('系统版本构建');
+            $table->string('url')->nullable()->comment('下载地址');
+            $table->string('title',100)->comment('标题');
+            $table->string('content')->comment('说明');
+            $table->tinyInteger('is_forced_update')->default(0)->comment('是否强制更新 1强制更新');
+            $table->timestamps();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('upgrade');
+    }
+}

+ 30 - 0
database/migrations/2019_08_21_163735_update_upgrade_table.php

@@ -0,0 +1,30 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class UpdateUpgradeTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('upgrade', function (Blueprint $table) {
+            $table->text('content')->comment('说明')->change();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        //
+    }
+}

+ 5 - 0
routes/api.php

@@ -69,6 +69,11 @@ $api->version('v1', [
         $api->put('message/send', 'MessageRuleController@send');
         //隐藏消息规则
         $api->put('message/hide', 'MessageRuleController@hide');
+        //新增升级app配置列表
+        $api->get('upgrade', 'UpgradeController@index');
+        //创建版本号
+        $api->post('upgrade', 'UpgradeController@create');
+
 
     });
     //配置文件