浏览代码

优化师选择选,推广选择项增加小程序参数

zqwang 1 年之前
父节点
当前提交
8c41cf43eb

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

@@ -92,6 +92,7 @@ class OrdersController extends CatchController
         $name = $request->input('name');
         $pid = $request->input('user_id');
         $limit = $request->input('limit',20);
+        $miniprogram_id = $request->input('miniprogram_id',0);
         $userContext = $this->getUserContext(null);
         // 公司账户处理
         if ($userContext['loginUserRoles']->contains('company')) {
@@ -102,25 +103,45 @@ class OrdersController extends CatchController
         if ($userContext['loginUserRoles']->contains('optimizer')) {
             return [['user_id' => $userContext['operateUser']->id,'name' => $userContext['operateUser']->username]];
         }
-        return  OrderService::promotionsUsers($pid,$name,$limit);
+        return  OrderService::promotionsUsers($pid,$name,$miniprogram_id,$limit);
     }
 
+    /**
+     *  订单列表推广选择项
+     * name: promotionsOptions
+     * @param Request $request
+     * @return \Illuminate\Support\Collection
+     * date 2023/05/26 15:42
+     */
     public function promotionsOptions(Request $request)
     {
         $title = $request->input('name');
         $uid = $request->input("user_id", 0);
+        $miniprogram_id = $request->input('miniprogram_id',0);
         if (!$uid) {
             $uid = $this->getCurrentUser()->id;
         }
         $limit =  $request->input("limit", 20);
-        return OrderService::promotionsOptions($uid, $title,$limit);
+        return OrderService::promotionsOptions($uid, $title,$miniprogram_id,$limit);
     }
 
+    /**
+     *  订单充值类型选择项
+     * name: orderTypes
+     * @return \string[][]
+     * date 2023/05/26 15:43
+     */
     public function orderTypes()
     {
         return OrderService::getOrderType();
     }
 
+    /**
+     *  订单支付状态现在项
+     * name: orderStatus
+     * @return \string[][]
+     * date 2023/05/26 15:43
+     */
     public function orderStatus()
     {
         return OrderService::getOrderPayType();

+ 28 - 3
modules/Channel/Services/Order/OrderService.php

@@ -183,15 +183,19 @@ 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,mixed $miniprogram_id,mixed $limit = 10)
     {
         $operateUser = User::find($uid);
         $operateUserRoles = $operateUser->roles->pluck('identify');
         $list = DB::table('promotions')->select('id as promotion_id', 'name');
         if ($operateUserRoles->contains('optimizer')) {
+            if ($miniprogram_id){
+                $list->where('miniprogram_id',$miniprogram_id);
+            }
             if ($title) {
                 $list->where('name', 'like', "%" . $title . "%");
             }
+
             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")
@@ -199,9 +203,15 @@ class OrderService
             if ($title) {
                 $list->where('promotions.name', 'like', "%" . $title . "%");
             }
+            if ($miniprogram_id){
+                $list->where('promotions.miniprogram_id',$miniprogram_id);
+            }
             return $list->orderBy('promotions.id','desc')->limit($limit)->get();
 
         } else {
+            if ($miniprogram_id){
+                $list->where('miniprogram_id',$miniprogram_id);
+            }
             if ($title) {
                 $list->where('name', 'like', "%" . $title . "%");
             }
@@ -210,25 +220,40 @@ class OrderService
     }
 
     /***
-     * 订单列表优化选择项
+     * 订单列表优化选择项
      * 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)
+    public static function promotionsUsers(mixed $pid, mixed $name,mixed $miniprogram_id, 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 . "%");
             }
+            if ($miniprogram_id >  0){
+                $list->whereExists(function ($query)use($miniprogram_id){
+                 $query->select(DB::raw(1))->form('user_has_miniprograms')
+                     ->whereRaw('user_has_miniprograms.uid','users.id')
+                     ->where('user_has_miniprograms.miniprogram_id',$miniprogram_id);
+                });
+            }
+
             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 ($miniprogram_id >  0){
+            $list->whereExists(function ($query)use($miniprogram_id){
+                $query->select(DB::raw(1))->form('user_has_miniprograms')
+                    ->whereRaw('user_has_miniprograms.uid','users.id')
+                    ->where('user_has_miniprograms.miniprogram_id',$miniprogram_id);
+            });
+        }
         if ($name){
             $list->where('users.username', 'like', "%" . $name . "%");
         }

+ 15 - 2
modules/Channel/Services/WechatMinprogram/WechatMinprogramUserService.php

@@ -10,13 +10,11 @@
 namespace Modules\Channel\Services\WechatMinprogram;
 
 use Carbon\Carbon;
-use Illuminate\Pagination\LengthAwarePaginator;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Redis;
 use Illuminate\Support\Str;
 use Modules\Channel\Models\MiniprogramUserVip;
 use Modules\Channel\Models\Order;
-use Modules\Channel\Models\UidLogs;
 use Modules\Channel\Models\Videos;
 use Modules\Channel\Models\VideoSeries;
 use Modules\Manage\Models\Miniprogram;
@@ -53,6 +51,13 @@ class WechatMinprogramUserService
 
     }
 
+    /**
+     *  用户等级文字
+     * name: getLevelText
+     * @param $uid
+     * @return array
+     * date 2023/05/26 15:41
+     */
     private static function getLevelText($uid)
     {
         $record = self::userVipRecord($uid);
@@ -156,6 +161,14 @@ class WechatMinprogramUserService
         return $result;
     }
 
+    /***
+     *  用户消费记录
+     * name: getUserConsumeRecord
+     * @param mixed $uid
+     * @param int $limit
+     * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
+     * date 2023/05/26 15:40
+     */
     public static function getUserConsumeRecord(mixed $uid,$limit = 15)
     {
         $tableName = 'coin_cost_record_' . ($uid % 8);