moonsflyer преди 9 месеца
родител
ревизия
f580edebdd
променени са 3 файла, в които са добавени 149 реда и са изтрити 0 реда
  1. 13 0
      app/adminapi/controller/asset/AssetController.php
  2. 25 0
      app/adminapi/lists/asset/AssetLists.php
  3. 111 0
      app/adminapi/validate/asset/AssetValidate.php

+ 13 - 0
app/adminapi/controller/asset/AssetController.php

@@ -17,6 +17,7 @@ namespace app\adminapi\controller\asset;
 use app\adminapi\controller\BaseAdminController;
 use app\adminapi\lists\asset\AssetLists;
 use app\adminapi\logic\notice\NoticeLogic;
+use app\adminapi\validate\asset\AssetValidate;
 use app\adminapi\validate\notice\NoticeValidate;
 
 /**
@@ -38,6 +39,18 @@ class AssetController extends BaseAdminController
     }
 
     /**
+     * @notes  添加资产
+     * @return \think\response\Json
+     * @author heshihu
+     * @date 2022/2/22 9:57
+     */
+    public function add()
+    {
+        $params = (new AssetValidate())->post()->goCheck('add');
+        AssetLists::add($params);
+        return $this->success('添加成功', [], 1, 1);
+    }
+    /**
      * @notes 查看通知设置详情
      * @return \think\response\Json
      * @author 段誉

+ 25 - 0
app/adminapi/lists/asset/AssetLists.php

@@ -16,8 +16,11 @@ namespace app\adminapi\lists\asset;
 
 use app\adminapi\lists\BaseAdminDataLists;
 use app\common\lists\ListsSearchInterface;
+use app\common\model\article\Article;
 use app\common\model\notice\NoticeSetting;
 use app\common\model\asset\AssetInfo;
+use app\common\service\FileService;
+
 /**
  * 资产管理
  * Class AssetLists
@@ -70,4 +73,26 @@ class AssetLists extends BaseAdminDataLists implements ListsSearchInterface
     {
         return (new AssetInfo())->where($this->searchWhere)->count();
     }
+
+    /**
+     * @notes  添加资产
+     * @param array $params
+     * @author heshihu
+     * @date 2022/2/22 9:57
+     */
+    public static function add(array $params)
+    {
+        AssetInfo::create([
+            'name' => $params['name'],
+            'images' => $params['images'] ?? '',
+            'address' => $params['address'] ?? '',
+            'contacts' => $params['contacts']?? '', // 联系人
+            'mobile' => $params['mobile'] ?? '',
+            'area' => $params['area'] ?? '',
+            'content' => $params['content'] ?? '',
+//            'image' => $params['image'] ? FileService::setFileUrl($params['image']) : '',
+            'status' => $params['status'] ?? 1,
+            'sort' => $params['sort'] ?? 0, // 排序
+        ]);
+    }
 }

+ 111 - 0
app/adminapi/validate/asset/AssetValidate.php

@@ -0,0 +1,111 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\adminapi\validate\asset;
+
+use app\common\validate\BaseValidate;
+use app\common\model\asset\AssetInfo;
+/**
+ * 资产管理验证
+ * Class ArticleValidate
+ * @package app\adminapi\validate\article
+ */
+class AssetValidate extends BaseValidate
+{
+    protected $rule = [
+        'id' => 'require|checkAssetInfo',
+        'name' => 'require|length:1,255',
+        'images' => 'require',
+        'address' => 'require',
+        'contacts' => 'require',
+        'mobile' => 'require',
+        'status' => 'in:0,1',
+    ];
+
+    protected $message = [
+        'id.require' => '资产id不能为空',
+        'name.require' => '资产名称不能为空',
+        'name.length' => '资产名称长度须在1-255位字符',
+        'images.require' => '资产图片不能为空',
+        'address.require' => '资产地址不能为空',
+        'contacts.require' => '资产联系人不能为空',
+        'mobile.require' => '联系方式不能为空',
+    ];
+
+    /**
+     * @notes  添加场景
+     * @return ArticleValidate
+     * @author heshihu
+     * @date 2022/2/22 9:57
+     */
+    public function sceneAdd()
+    {
+        return $this->remove(['id'])
+            ->remove('id','require|checkAssetInfo');
+    }
+
+    /**
+     * @notes  详情场景
+     * @return ArticleValidate
+     * @author heshihu
+     * @date 2022/2/22 10:15
+     */
+    public function sceneDetail()
+    {
+        return $this->only(['id']);
+    }
+
+    /**
+     * @notes  更改状态场景
+     * @return ArticleValidate
+     * @author heshihu
+     * @date 2022/2/22 10:18
+     */
+    public function sceneStatus()
+    {
+        return $this->only(['id', 'status']);
+    }
+
+    public function sceneEdit()
+    {
+    }
+
+    /**
+     * @notes  删除场景
+     * @return ArticleValidate
+     * @author heshihu
+     * @date 2022/2/22 10:17
+     */
+    public function sceneDelete()
+    {
+        return $this->only(['id']);
+    }
+
+    /**
+     * @notes  检查指定资讯是否存在
+     * @param $value
+     * @return bool|string
+     * @author heshihu
+     * @date 2022/2/22 10:11
+     */
+    public function checkAssetInfo($value)
+    {
+        $article = AssetInfo::findOrEmpty($value);
+        if ($article->isEmpty()) {
+            return '资产不存在';
+        }
+        return true;
+    }
+
+}