Explorar el Código

wesmiler 报恩寺项目提交

wesmiler hace 4 años
padre
commit
75449ddef2

+ 13 - 1
app/Http/Controllers/Api/v1/EnshrineController.php

@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api\v1;
 
 use App\Http\Controllers\Api\BaseController;
 use App\Http\Validator\EnshrineNoticeValidator;
+use App\Http\Validator\EnshrineValidator;
 use App\Services\EnshrineNoticeService;
 use App\Services\EnshrineService;
 use Illuminate\Http\Request;
@@ -40,7 +41,6 @@ class EnshrineController extends BaseController
         return $this->service->getDataList($this->userId);
     }
 
-
     /**
      * 供奉物品
      * @return array
@@ -66,6 +66,18 @@ class EnshrineController extends BaseController
     }
 
     /**
+     * 超度牌位
+     * @return mixed
+     */
+    public function chaodu(Request $request, EnshrineValidator $validator){
+        $params = $validator->check($request->all(),'publish');
+        if(!is_array($params)){
+            return message($params, false);
+        }
+        return $this->service->chaodu($this->userId);
+    }
+
+    /**
      * 保存供奉操作记录
      * @return array
      */

+ 50 - 0
app/Http/Validator/EnshrineValidator.php

@@ -0,0 +1,50 @@
+<?php
+namespace App\Http\Validator;
+class EnshrineValidator extends BaseValidator
+{
+    // 当前模型所有验证规则
+    public static $rules = [
+        'id' => 'required',
+        'used_name' => 'required|string|min:2|max:20',
+        'user_name' => 'required|string|min:2|max:20',
+        'relation' => 'required|string|min:2|max:30',
+        'description' => 'required|string|min:2|max:150',
+
+    ];
+
+    // 当前模型所有错误提示信息
+    public static $msgs = [
+        'required' => ':attribute不能为空',
+        'string' => ':attribute必须是字符串',
+        'min' => ':attribute长度不能小于:min位',
+        'max' => ':attribute长度不能大于:max位',
+        'exists' => ':attribute不存在',
+        'rule' => ':attribute格式不正确',
+    ];
+
+    // 当前模型所有验证字段
+    public static $fields = [
+        'id' => 'ID',
+        'used_name' => '被超度者',
+        'user_name' => '超度者',
+        'relation' => '关系',
+        'description' => '内容',
+    ];
+
+    // 当前模型所有验证场景
+    public static $scenes = [
+        'info'=> ['id'],
+        'chaodu'=> ['used_name','user_name','description','relation'],
+    ];
+
+    /**
+     * 验证
+     * @param $request
+     * @param string $scene
+     * @return int|mixed
+     */
+    public static function check($request, $scene=''){
+        $validator = new BaseValidator(self::$rules, self::$msgs, self::$fields, self::$scenes);
+        return $validator->checkParams($request, $scene);
+    }
+}

+ 48 - 1
app/Services/EnshrineService.php

@@ -250,7 +250,7 @@ class EnshrineService extends BaseService
             case 1: // 祈福
                 $limitNum = ConfigService::make()->getConfigByCode('qifu_limit');
                 if($limitNum) {
-                    $num = $this->model::where(['user_id'=> $userId,'mark'=> 1,'status'=> 1])
+                    $num = $this->model::where(['user_id'=> $userId,'type'=> 1,'mark'=> 1,'status'=> 1])
                         ->count('id');
                     if($num >= $limitNum){
                         return message("最多只能同时供奉{$limitNum}尊佛像,请送圣后再操作", false);
@@ -324,6 +324,53 @@ class EnshrineService extends BaseService
     }
 
     /**
+     * 新增牌位
+     * @param $userId
+     * @return array
+     */
+    public function chaodu($userId){
+        $params = request()->all();
+
+        $memberInfo = MemberModel::where(['id'=> $userId,'mark'=> 1,'status'=> 1])
+            ->select(['id','nickname'])
+            ->first();
+        if(!$memberInfo){
+            return message('您的账号不可操作或已冻结,请联系客服', false);
+        }
+
+        // 验证是否正在供奉该佛像
+        $limitNum = ConfigService::make()->getConfigByCode('chaodu_limit');
+        if($limitNum) {
+            $num = $this->model::where(['user_id'=> $userId,'type'=> 2,'mark'=> 1,'','status'=> 1])
+                ->count('id');
+            if($num >= $limitNum){
+                return message("最多只能同时超度{$limitNum}个牌位,请到期后再操作", false);
+            }
+        }
+
+        $data = [
+            'fo_id'=> 0,
+            'type'=> 2,
+            'user_id'=> $userId,
+            'used_name'=> isset($params['used_name'])? trim($params['used_name']) : '',
+            'user_name'=> isset($params['user_name'])? trim($params['user_name']) : '',
+            'relation'=> isset($params['relation'])? trim($params['relation']) : '',
+            'description'=> isset($params['description'])? trim($params['description']) : '',
+            'image'=> isset($params['image'])? trim($params['image']) : '',
+            'create_time'=> time(),
+            'update_time'=> time(),
+            'mark'=> 1,
+            'status'=> 1,
+        ];
+
+        if($this->model::insertGetId($data)){
+            return message('超度成功',true);
+        }else{
+            return message('超度失败',true);
+        }
+    }
+
+    /**
      * 供奉操作记录
      * @param $userId
      * @return array

+ 1 - 0
routes/api.php

@@ -165,4 +165,5 @@ Route::post('/enshrine/catchXuyuan', [\App\Http\Controllers\Api\v1\EnshrineContr
 Route::post('/enshrine/noticePublish', [\App\Http\Controllers\Api\v1\EnshrineController::class, 'noticePublish']);
 Route::post('/enshrine/notice', [\App\Http\Controllers\Api\v1\EnshrineController::class, 'notice']);
 Route::post('/enshrine/noticeDel', [\App\Http\Controllers\Api\v1\EnshrineController::class, 'noticeDel']);
+Route::post('/enshrine/chaodu', [\App\Http\Controllers\Api\v1\EnshrineController::class, 'chaodu']);