Browse Source

Merge branch 'master' of qk:zy_duanju/duanju_manage into test

admin 1 year ago
parent
commit
b71949e3b1

+ 33 - 9
modules/Manage/Http/Controllers/MiniprogramController.php

@@ -18,6 +18,11 @@ class MiniprogramController extends Controller
         
     }
 
+    /**
+     * 小程序列表
+     * @param Request $request
+     * @return void
+     */
     public function index(Request $request)
     {
         $name = $request->get('name');
@@ -33,13 +38,20 @@ class MiniprogramController extends Controller
         if($company){
             $where[] = ['company','like','%'.$company.'%']; 
         }
-        return $this->miniprogram->where($where)->paginate(20)->map(function($item,$k){
+        $result = $this->miniprogram->where($where)->paginate(20);
+        foreach($result as $item){
             $item->type_name = MiniprogramType::from($item->type)->name();
             $item->status_name = $item->status == 1 ?'启用':'禁用';
-            return $item;
-        });
+        }
+        return $result;
     }
 
+    /**
+     * 添加小程序
+     *
+     * @param MiniprogramRequest $request
+     * @return void
+     */
     public function store(MiniprogramRequest $request)
     {
         $validate_result = $request->validated();
@@ -48,12 +60,24 @@ class MiniprogramController extends Controller
 
     }
 
+    /**
+     * 小程序详情
+     *
+     * @param [type] $id
+     * @return void
+     */
     public function show($id)
     {
         return $this->miniprogram->find($id)->toArray();
     }
 
-
+    /**
+     * 更新小程序
+     *
+     * @param [type] $id
+     * @param MiniprogramUpdateRequest $request
+     * @return void
+     */
     public function update($id, MiniprogramUpdateRequest $request)
     {
         $validate_result = $request->validated();
@@ -64,12 +88,12 @@ class MiniprogramController extends Controller
         return [];
     }
 
-    public function destroy($id)
-    {
-
-    }
-
 
+    /**
+     * 小程序类型列表
+     *
+     * @return array [ ['name'=>'微信小程序','id'=>1],[],[] ]
+     */
     public function typeList(){
         $type_list =  MiniprogramType::cases();
         $data = array_map( fn($item)=>['name'=>$item->name(),'value'=>$item->value()],$type_list );

+ 22 - 4
modules/Manage/Http/Controllers/UserMiniprogramController.php

@@ -24,7 +24,13 @@ class UserMiniprogramController extends CatchController
     }
 
 
-
+    /**
+     * 绑定小程序和投放公司的关系
+     * @param [type] $miniprogram_id 
+     * @param Request $request  uid=2,3,4,5 actison=on|off on:分配,off取消分配
+     * @return array
+     * 
+     */
     public function allocationStore($miniprogram_id,Request $request)
     {
         $uids  = $request->post('uids');
@@ -40,6 +46,7 @@ class UserMiniprogramController extends CatchController
 
         return collect(explode(',',$uids))->filter(function (int $value, int $key) use($miniprogram_id,$action){
             $user_access = UserService::userHasRole($value,self::COMPANY_ROLE);
+            //只能分配给投手公司
             if($user_access){
                 $result = $this->userHasMiniprograms->where('uid',$value)->where('miniprogram_id',$miniprogram_id)->first();
                 if($action == 'off'){
@@ -64,12 +71,23 @@ class UserMiniprogramController extends CatchController
             return false;
         });
 
-        //return [];
-
     }
 
 
-
+    /**
+     * 获取投手公司和小程序的绑定关系,用于前端数据回显
+     * @param [type] $miniprogram_id
+     * @return []
+     * response = [
+     *      'on'=>[ ['id'=>1,'username'=>'公司1','user_has_miniprogram'=>1],[]  ],
+     *      'off'=>[['id'=>1,'username'=>'公司1','user_has_miniprogram'=>0],[]],
+     *      'all'=>[ 
+     *          ['id'=>1,'username'=>'公司1','user_has_miniprogram'=>1],
+     *          ['id'=>2,'username'=>'公司1','user_has_miniprogram'=>0] 
+     *          ]
+     *      ]
+     * 
+     */
     public function getAllocationInfo($miniprogram_id){
         $all_company_account = UserService::listByRole(self::COMPANY_ROLE,['users.username','users.id']);
         $result = $all_company_account->map(function ($item,$key) use($miniprogram_id) {

+ 14 - 2
modules/Manage/Http/Requests/MiniprogramRequest.php

@@ -31,11 +31,23 @@ class MiniprogramRequest extends FormRequest
                 'required',
                 Rule::in( array_map( fn($item)=>$item->value(),MiniprogramType::cases())),
             ],
-            'appsecret'=>'required|min:30',
-            'appid'=>'required|unique:miniprogram|min:18',
+            'appsecret'=>'required|min:30|max:64',
+            'appid'=>'required|unique:miniprogram|min:18|max:32',
             'status'=>'in:0,1'
         ];
     }
+
+
+    public function messages()
+    {
+        return [
+            'name.required'=>'小程序名称必填',
+            'appid.min'=>'appid太短',
+            'appid.max'=>'appid过长',
+            'appsecret.min'=>'appsecret太短',
+            'appsecret.max'=>'appsecret过长'
+        ];
+    }
 }
 
 

+ 14 - 2
modules/Manage/Http/Requests/MiniprogramUpdateRequest.php

@@ -31,11 +31,23 @@ class MiniprogramUpdateRequest extends FormRequest
                 'required',
                 Rule::in( array_map( fn($item)=>$item->value(),MiniprogramType::cases())),
             ],
-            'appsecret'=>'required|min:30',
-            'appid'=>'required|min:18',
+            'appsecret'=>'required|min:30|max:64',
+            'appid'=>'required|min:18|max:32',
             'status'=>'in:0,1'
         ];
     }
+
+    
+    public function messages(): array
+    {
+        return [
+            'name.required'=>'小程序名称必填',
+            'appid.min'=>'appid太短',
+            'appid.max'=>'appid过长',
+            'appsecret.min'=>'appsecret太短',
+            'appsecret.max'=>'appsecret过长'
+        ];
+    }
 }
 
 

+ 4 - 3
tests/Feature/MiniprogramTest.php

@@ -21,24 +21,25 @@ class MiniprogramTest extends TestCase
     }
 
 
-    public function ttest_store(): void
+    public function test_store(): void
     {
         $response = $this->postJson('/api/manage/miniprogram/update/13',[
             'name'=>'好看看短剧',
             'company'=>'三个三集团',
             'play_name'=>'三个十千短剧',
             'type'=>1,
-            'appid'=>'wxts5415641fgtjhuswsae13',
+            'appid'=>'wxts5415641fgtjc43twearhygesrthgysedhgyed',
             'appsecret'=>'2f659djhsjsfa256b5523ta1shqa3d313',
             'status'=>1,
             'remark'=>''
         ]);
+        echo $response->getContent();
 
         $response->dd();
     }
 
 
-    public function test_allocation(): void
+    public function ttest_allocation(): void
     {
         $response = $this->postJson('/api/manage/miniprogram/allocation/17',[
             'uids'=>'2,5',