Parcourir la source

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

admin il y a 1 an
Parent
commit
1d3823a73e

+ 109 - 1
modules/Manage/Http/Controllers/MiniprogramController.php

@@ -11,17 +11,25 @@ use Modules\Manage\Http\Requests\MiniprogramUpdateRequest;
 use Modules\Manage\Models\Miniprogram;
 use Modules\Channel\Models\UserHasMiniprograms;
 use Illuminate\Support\Facades\DB;
-use Log;
+use Modules\User\Http\Controllers\UserTrait;
+use Modules\Common\Errors\Errors;
+use Modules\Channel\Exceptions\ChannelBusinessException;
 use Modules\Channel\Services\User\UserService;
 
+
 class MiniprogramController extends CatchController
 {
 
+    use UserTrait;
     public function __construct(protected readonly Miniprogram $miniprogram,protected readonly UserHasMiniprograms $userHasMiniprograms)
     {
         
     }
 
+    const  COMPANY_ROLE = 'company';
+    const  ADMINISTRATOR_ROLE = 'administrator';
+    const  OPTIMIZER_ROLE = 'optimizer';
+
     /**
      * 小程序列表
      * @param Request $request
@@ -130,4 +138,104 @@ class MiniprogramController extends CatchController
     public function companyList(){
         return $this->miniprogram->select(DB::raw('distinct company'))->get()->pluck('company');
     }
+
+
+
+    /**
+     * 绑定小程序和投放公司的关系 或者投放公司把小程序分配给优化师
+     * @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)
+    {
+        $uid = $this->getLoginUser()->id;
+        if(!UserService::userHasRoles($uid,[self::COMPANY_ROLE,self::ADMINISTRATOR_ROLE])){
+            ChannelBusinessException::throwError(Errors::PARAM_EMPTY);
+        }
+        $uids = $request->post('uids');
+        $action = $request->post('action');
+        if(empty($miniprogram_id) || empty($uids) || empty($action) || !in_array($action,['on','off'])){
+            ChannelBusinessException::throwError(Errors::PARAM_EMPTY);
+        }
+
+        $miniprogram_info =  $this->miniprogram->find($miniprogram_id);
+        if(!$miniprogram_info || $miniprogram_info->status == 0){
+            ChannelBusinessException::throwError(Errors::MINIPROGRAM_STATUS_ERROR);
+        }
+
+        return collect(explode(',',$uids))->filter(function (int $value, int $key) use($miniprogram_id,$action){
+            $user_access = UserService::userHasRoles($value,[self::COMPANY_ROLE,self::OPTIMIZER_ROLE]);
+            //只能分配给投手公司或者优化师
+            if($user_access){
+                $result = $this->userHasMiniprograms->where('uid',$value)->where('miniprogram_id',$miniprogram_id)->first();
+                if($action == 'off'){
+                    if($result){
+                        $result->is_enabled = 0;
+                        $result->save();
+                    }
+                    return true;
+                }
+                if($result){
+                    if($result->is_enabled == 0){
+                        $result->is_enabled = 1;
+                        $result->save();
+                    }
+                    return true;
+                }
+                $this->userHasMiniprograms->create([
+                    'uid'=>$value,'miniprogram_id'=>$miniprogram_id,'is_enabled'=>1
+                ]);
+                return true;
+            }
+            return false;
+        });
+
+    }
+
+
+    /**
+     * 获取投手公司和小程序的绑定关系,用于前端数据回显
+     * @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){
+        $uid = $this->getLoginUser()->id;
+        if(UserService::userHasRole($uid,self::ADMINISTRATOR_ROLE)){
+            $all_company_account = UserService::listByRole(self::COMPANY_ROLE,['users.username','users.id']);
+        }else{
+            $all_company_account = UserService::getOptimizers($uid,['users.username','users.id']);
+        }
+       
+        $result = $all_company_account->map(function ($item,$key) use($miniprogram_id) {
+            $info = $this->userHasMiniprograms->where('uid',$item->id)->where('miniprogram_id',$miniprogram_id)->where('is_enabled',1)->count();
+            if($info){
+                $item->user_has_miniprogram = 1;
+                $item->user_has_miniprogram_flag = 'on';
+            }else{
+                $item->user_has_miniprogram = 0;
+                $item->user_has_miniprogram_flag = 'off';
+            }
+            return $item;
+        });
+        $group = $result->groupBy('user_has_miniprogram_flag')->toArray();
+        if(!isset($group['on'])){
+            $group['on'] = [];
+        }
+        if(!isset($group['off'])){
+            $group['off'] = [];
+        }
+        $group['all'] = $result->toArray();
+        return $group;
+    }
 }

+ 0 - 132
modules/Manage/Http/Controllers/UserMiniprogramController.php

@@ -1,132 +0,0 @@
-<?php
-
-namespace Modules\Manage\Http\Controllers;
-
-use Log;
-use Illuminate\Http\Request;
-use Catch\Base\CatchController;
-use Modules\Common\Errors\Errors;
-use Modules\Manage\Models\Miniprogram;
-use Modules\User\Http\Controllers\UserTrait;
-use Modules\Channel\Services\User\UserService;
-use Modules\Channel\Models\UserHasMiniprograms;
-use Modules\Channel\Exceptions\ChannelBusinessException;
-
-class UserMiniprogramController extends CatchController
-{
-    use UserTrait;
-
-    const  COMPANY_ROLE = 'company';
-    const  ADMINISTRATOR_ROLE = 'administrator';
-    const  OPTIMIZER_ROLE = 'optimizer';
-
-
-
-    public function __construct(
-        protected readonly UserHasMiniprograms $userHasMiniprograms,
-        protected readonly Miniprogram $miniprogram
-        )
-    {
-        
-    }
-
-
-    /**
-     * 绑定小程序和投放公司的关系 或者投放公司把小程序分配给优化师
-     * @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)
-    {
-        $uid = $this->getLoginUser()->id;
-        if(!UserService::userHasRoles($uid,[self::COMPANY_ROLE,self::ADMINISTRATOR_ROLE])){
-            ChannelBusinessException::throwError(Errors::PARAM_EMPTY);
-        }
-        $uids = $request->post('uids');
-        $action = $request->post('action');
-        if(empty($miniprogram_id) || empty($uids) || empty($action) || !in_array($action,['on','off'])){
-            ChannelBusinessException::throwError(Errors::PARAM_EMPTY);
-        }
-
-        $miniprogram_info =  $this->miniprogram->find($miniprogram_id);
-        if(!$miniprogram_info || $miniprogram_info->status == 0){
-            ChannelBusinessException::throwError(Errors::MINIPROGRAM_STATUS_ERROR);
-        }
-
-        return collect(explode(',',$uids))->filter(function (int $value, int $key) use($miniprogram_id,$action){
-            $user_access = UserService::userHasRoles($value,[self::COMPANY_ROLE,self::OPTIMIZER_ROLE]);
-            //只能分配给投手公司或者优化师
-            if($user_access){
-                $result = $this->userHasMiniprograms->where('uid',$value)->where('miniprogram_id',$miniprogram_id)->first();
-                if($action == 'off'){
-                    if($result){
-                        $result->is_enabled = 0;
-                        $result->save();
-                    }
-                    return true;
-                }
-                if($result){
-                    if($result->is_enabled == 0){
-                        $result->is_enabled = 1;
-                        $result->save();
-                    }
-                    return true;
-                }
-                $this->userHasMiniprograms->create([
-                    'uid'=>$value,'miniprogram_id'=>$miniprogram_id,'is_enabled'=>1
-                ]);
-                return true;
-            }
-            return false;
-        });
-
-    }
-
-
-    /**
-     * 获取投手公司和小程序的绑定关系,用于前端数据回显
-     * @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){
-        $uid = $this->getLoginUser()->id;
-        if(UserService::userHasRole($uid,self::ADMINISTRATOR_ROLE)){
-            $all_company_account = UserService::listByRole(self::COMPANY_ROLE,['users.username','users.id']);
-        }else{
-            $all_company_account = UserService::getOptimizers($uid,['users.username','users.id']);
-        }
-       
-        $result = $all_company_account->map(function ($item,$key) use($miniprogram_id) {
-            $info = $this->userHasMiniprograms->where('uid',$item->id)->where('miniprogram_id',$miniprogram_id)->where('is_enabled',1)->count();
-            if($info){
-                $item->user_has_miniprogram = 1;
-                $item->user_has_miniprogram_flag = 'on';
-            }else{
-                $item->user_has_miniprogram = 0;
-                $item->user_has_miniprogram_flag = 'off';
-            }
-            return $item;
-        });
-        $group = $result->groupBy('user_has_miniprogram_flag')->toArray();
-        if(!isset($group['on'])){
-            $group['on'] = [];
-        }
-        if(!isset($group['off'])){
-            $group['off'] = [];
-        }
-        $group['all'] = $result->toArray();
-        return $group;
-    }
-
-}

+ 2 - 3
modules/Manage/routes/route.php

@@ -3,7 +3,6 @@
 use Illuminate\Support\Facades\Route;
 
 use Modules\Manage\Http\Controllers\MiniprogramController;
-use Modules\Manage\Http\Controllers\UserMiniprogramController;
 
 Route::prefix('manage')->group(function(){
     Route::prefix('miniprogram')->group(function () {
@@ -24,9 +23,9 @@ Route::prefix('manage')->group(function(){
          Route::post('update/{id}',[MiniprogramController::class,'update']);
 
          //小程序分配列表
-         Route::get('allocation/{miniprogram_id}',[UserMiniprogramController::class,'getAllocationInfo']);
+         Route::get('allocation/{miniprogram_id}',[MiniprogramController::class,'getAllocationInfo']);
         //分配小程序
-         Route::post('allocation/{miniprogram_id}',[UserMiniprogramController::class,'allocationStore']);
+         Route::post('allocation/{miniprogram_id}',[MiniprogramController::class,'allocationStore']);
 
 
         //分配小程序