wesmiler 1 år sedan
förälder
incheckning
fde1088fe8

BIN
addons/admin/dist/static/img/logo.24b94ca0.png


BIN
addons/admin/dist/static/media/withdraw_check.f0b8259e.mp3


+ 15 - 0
app/Models/MemberModel.php

@@ -46,6 +46,21 @@ class MemberModel extends BaseModel
     }
 
     /**
+     * 质押订单
+     * @return \Illuminate\Database\Eloquent\Relations\HasOne
+     */
+    public function pledge()
+    {
+        return $this->hasOne(PledgeOrderModel::class, 'user_id','id')
+            ->where(function($query){
+                $query->where('expired_at','>', date('Y-m-d H:i:s'))
+                    ->orWhere(['status'=>1]);
+            })
+            ->where(['mark'=>1])
+            ->select(['id','user_id','order_no','money','expired_at','status']);
+    }
+
+    /**
      * 获取会员信息
      * @param int $id 会员ID
      * @return array|string

+ 1 - 1
app/Services/Api/TeamService.php

@@ -190,7 +190,7 @@ class TeamService extends BaseService
             })->count();
 
         if ($data) {
-            RedisService::set($cacheKey, $data, rand(3, 5));
+            RedisService::set($cacheKey, $data, rand(5, 10));
         }
         return $data;
     }

+ 0 - 2
app/Services/Common/AdService.php

@@ -48,8 +48,6 @@ class AdService extends BaseService
         // 图片处理
         $cover = trim($data['cover']);
         if (strpos($cover, "temp")) {
-            $data['cover'] = save_image($cover, 'ad');
-        } else {
             $data['cover'] = str_replace(IMG_URL, "", $data['cover']);
         }
 

+ 33 - 27
app/Services/Common/MemberService.php

@@ -61,7 +61,7 @@ class MemberService extends BaseService
         if($status>0){
             $where['a.status'] = $status;
         }
-        $list = $this->model->with(['level','parent'])
+        $list = $this->model->with(['level','parent','pledge'])
             ->from('member as a')
             ->leftJoin('member as b','b.id','a.parent_id')
             ->where($where)
@@ -105,8 +105,9 @@ class MemberService extends BaseService
                 $item['team_num'] = TeamService::make()->getTeamUserCountByType($item['id'], 2, 0);
                 $item['team_performance'] = TeamService::make()->getTeamPerformanceByType($item['id'], 2);
                 $item['pledge_total'] = PledgeOrderService::make()->getTotalByUser($item['id']);
-                $pledgeData = \App\Services\Api\PledgeOrderService::make()->checHasPledge($item['id']);
-                $item['is_pledge'] = $pledgeData? 1 : 0;
+
+                $pledge = isset($item['pledge'])? $item['pledge'] : [];
+                $item['is_pledge'] = $pledge? 1 : 0;
                 $item['recharge_total'] = BalanceLogService::make()->getTotalByUser($item['id']);
                 $item['withdraw_total'] = BalanceLogService::make()->getTotalByUser($item['id']);
 
@@ -159,27 +160,27 @@ class MemberService extends BaseService
             $info = $this->model->where(['id'=> $uid,'mark'=>1])->select(['id','parent_ids','bonus_rate','room_bonus_rate'])->first();
             $info = $info? $info->toArray() : [];
             $userParentId = isset($info['parent_id'])? $info['parent_id'] : 0;
-            $parentIds = isset($info['parent_ids'])? $info['parent_ids'] : '';
+            $userParentIds = isset($info['parent_ids'])? $info['parent_ids'] : '';
 
             // 最大设置比例
             $bonusRate = isset($data['bonus_rate'])? floatval($data['bonus_rate']) : 0;
             if($bonusRate){
-                $maxBonusRate = \App\Services\Api\MemberService::make()->getUpBonusRate($uid, $parentIds);
+                $maxBonusRate = \App\Services\Api\MemberService::make()->getUpBonusRate($uid, $userParentIds);
                 if ($maxBonusRate > 0 && $bonusRate > $maxBonusRate) {
                     DB::rollBack();
                     $this->error = lang(2037,['rate'=>$maxBonusRate]);
-                    return false;
+                    return message($this->error, false);
                 }
             }
 
             // 工作室分红
             $roomBonusRate = isset($data['room_bonus_rate'])? floatval($data['room_bonus_rate']) : 0;
             if($roomBonusRate){
-                $maxBonusRate = \App\Services\Api\MemberService::make()->getUpRoomBonusRate($uid, $parentIds);
+                $maxBonusRate = \App\Services\Api\MemberService::make()->getUpRoomBonusRate($uid, $userParentIds);
                 if ($maxBonusRate > 0 && $roomBonusRate > $maxBonusRate) {
                     DB::rollBack();
                     $this->error = lang(2038,['rate'=>$maxBonusRate]);
-                    return false;
+                    return message($this->error, false);
                 }
             }
 
@@ -195,37 +196,43 @@ class MemberService extends BaseService
                 if(in_array($uid, $parents)){
                     DB::rollBack();
                     $this->error = 2039;
-                    return false;
+                    return message($this->error, false);
                 }
 
                 // 更新自己推荐关系
                 $data['parent_id'] = $parentId;
                 $data['parent_ids'] = $parentIds? trim($parentIds,',').",{$parentId}," : "{$parentId},";
-                $userParentIds = $data['parent_ids'];
+                $userNewParentIds = $data['parent_ids'];
 
                 // 更新下级团队用户推荐关系
-                $updateArr = [];
                 $users = $this->model->whereRaw("FIND_IN_SET({$uid},parent_ids)")->select(['id','parent_id','parent_ids'])->get();
                 foreach($users as $item){
                     $parentIds = $item['parent_ids'];
                     if($parentIds){
-                        $newParentIds = $userParentIds? trim($userParentIds,',').",{$uid}," : "{$uid},";
-                        $newParentIds = $parentIds? preg_replace("/*{$uid},/","{$newParentIds}", $newParentIds) : '';
+                        $oldParentIds = $userParentIds? trim($userParentIds,',').",{$uid}," : "{$uid},";
+                        $newParentIds = $userNewParentIds? trim($userNewParentIds,',').",{$uid}," : "{$uid},";
+                        $newParentIds = $parentIds? str_replace("{$oldParentIds}","{$newParentIds}", $parentIds) : '';
                         if($newParentIds){
-                            $updateArr[] = [
+                            $updateData = [
                                 'parent_ids'=> $newParentIds,
                                 'update_time'=> time(),
                             ];
+                            if(!$this->model->where(['id'=> $item['id']])->update($updateData)){
+                                DB::rollBack();
+                                return message(1014, false);
+                            }
                         }
                     }
                 }
-
-                // 批量更新
-                if($updateArr){
-                    $this->model->whereRaw("FIND_IN_SET({$uid},parent_ids)")->update($updateArr);
-                }
             }
 
+
+            unset($data['parent']);
+            unset($data['pt_recharge']);
+            unset($data['team_recharge']);
+            unset($data['level']);
+            unset($data['pledge']);
+
             $result = parent::edit($data);
             $success = isset($result['success']) ? $result['success'] : false;
             if(!$success){
@@ -257,17 +264,16 @@ class MemberService extends BaseService
         $keyword = getter($param, "keyword");
         $parentId = getter($param, "parent_id");
         $userId = getter($param, "user_id");
-        $datas = $this->model->where(function($query) use($parentId){
-                if($parentId){
-                    $query->where(['id'=> $parentId,'mark'=>1]);
-                }else{
+        $datas = $this->model->where(function($query) use($userId){
                     $query->where(['status'=> 1,'mark'=>1]);
-                }
+                    if($userId){
+                        $query->whereNotIn('id', [$userId]);
+                    }
             })
-            ->where(function($query) use($userId){
+            ->where(function($query) use($userId, $parentId){
                 if($userId){
-                    $query->whereNotIn('id', [$userId]);
 //                    $query->whereRaw("NOT FIND_IN_SET({$userId},parent_ids)");
+//                    $query->where(['id'=> $parentId]);
                 }
             })
             ->where(function($query) use($keyword){
@@ -275,7 +281,7 @@ class MemberService extends BaseService
                     $query->where('nickname','like',"{$keyword}%")->orWhere('wallet_url','like',"{$keyword}%");
                 }
             })
-            ->select(['id','wallet_urls','code','nickname','status'])
+            ->select(['id','wallet_url','code','nickname','status'])
             ->get();
         $datas = $datas? $datas->toArray() : [];
         if($datas){

+ 1 - 1
app/Services/Common/PledgeOrderService.php

@@ -164,7 +164,7 @@ class PledgeOrderService extends BaseService
         }
 
         $data = $this->model->where(['user_id'=> $userId,'mark'=>1])->sum('money');
-        RedisService::set($cacheKey, $data, rand(3,5));
+        RedisService::set($cacheKey, $data, rand(5,10));
         return $data;
     }