zqwang 1 rok pred
rodič
commit
61a4abef4f

+ 20 - 2
modules/Channel/Http/Controllers/OrdersController.php

@@ -81,11 +81,29 @@ class OrdersController extends CatchController
         return OrderService::userUseProgramsList($uid,$name,$limit);
     }
 
+    /**
+     *  订单优化师列选择项
+     * name: promotionsUsers
+     * @param Request $request
+     * date 2023/05/26 09:12
+     */
     public function promotionsUsers(Request $request){
-        $title = $request->input('name');
+
+        $name = $request->input('name');
+        $pid = $request->input('user_id');
+        $limit = $request->input('limit',20);
         $userContext = $this->getUserContext(null);
-        $pid = 0;
 
+        // 公司账户处理
+        if ($userContext['loginUserRoles']->contains('company')) {
+            $pid = $userContext['operateUser']->id;
+        }
+
+        // 投手处理
+        if ($userContext['loginUserRoles']->contains('optimizer')) {
+            return [['user_id' => $userContext['operateUser']->id,'name' => $userContext['operateUser']->username]];
+        }
+        return  OrderService::promotionsUsers($pid,$name,$limit);
     }
 
     public function promotionsOptions(Request $request)

+ 32 - 6
modules/Channel/Services/Order/OrderService.php

@@ -164,12 +164,12 @@ class OrderService
             if ($name) {
                 $list->where('name', "like", "%" . $name . "%");
             }
-            return $list->limit($limit)->get();
+            return $list->orderBy('miniprogram.id', 'desc')->limit($limit)->get();
         } else {
             if ($name) {
                 return DB::table('miniprogram')->where('name', "like", "%" . $name . "%")->select("id as miniprogram_id", "name", "play_name")->limit($limit)->get();
             }
-            return DB::table('miniprogram')->select("id as miniprogram_id", "name", "play_name")->limit($limit)->get();
+            return DB::table('miniprogram')->select("id as miniprogram_id", "name", "play_name")->orderBy('id', 'desc')->limit($limit)->get();
 
         }
 
@@ -183,7 +183,7 @@ class OrderService
      * @return \Illuminate\Support\Collection
      * date 2023/05/23 18:13
      */
-    public static function promotionsOptions(mixed $uid, mixed $title,$limit = 10)
+    public static function promotionsOptions(mixed $uid, mixed $title, $limit = 10)
     {
         $operateUser = User::find($uid);
         $operateUserRoles = $operateUser->roles->pluck('identify');
@@ -192,20 +192,46 @@ class OrderService
             if ($title) {
                 $list->where('name', 'like', "%" . $title . "%");
             }
-            return $list->where('uid', $uid)->limit($limit)->get();
+            return $list->where('uid', $uid)->orderBy('id', 'desc')->limit($limit)->get();
         } else if ($operateUserRoles->contains('company')) {
             $list = DB::table('promotions')->join('users', 'users.id', "promotions.uid")
                 ->where('users.pid', $uid)->orWhere("promotions.uid", $uid)->select('promotions.id as promotion_id', 'promotions.name');
             if ($title) {
                 $list->where('promotions.name', 'like', "%" . $title . "%");
             }
-            return $list->limit($limit)->get();
+            return $list->orderBy('promotions.id','desc')->limit($limit)->get();
 
         } else {
             if ($title) {
                 $list->where('name', 'like', "%" . $title . "%");
             }
-            return $list->limit($limit)->get();
+            return $list->orderBy('id', 'desc')->limit($limit)->get();
         }
     }
+
+    /***
+     * 订单列表优化是选择项
+     * name: promotionsUsers
+     * @param mixed $pid
+     * @param mixed $name
+     * @param mixed $limit
+     * date 2023/05/26 09:22
+     */
+    public static function promotionsUsers(mixed $pid, mixed $name, mixed $limit = 10)
+    {
+        if ($pid > 0) {
+            $list = DB::table('users')->where('pid', $pid)->select('id as user_id', 'username as  name');
+            if ($name) {
+                $list->where('username', 'like', "%" . $name . "%");
+            }
+            return $list->orderBy('id', 'desc')->limit($limit)->get();
+        }
+
+        $list = DB::table('users')->join('user_has_roles','users.id',"user_has_roles.user_id")->join('roles','roles.id','user_has_roles.role_id')
+            ->select('users.id as user_id', 'users.username as  name')->where('roles.identify','optimizer');
+        if ($name){
+            $list->where('users.username', 'like', "%" . $name . "%");
+        }
+        return $list->orderBy('users.id', 'desc')->limit($limit)->get();
+    }
 }