|
@@ -61,7 +61,7 @@ class MemberService extends BaseService
|
|
|
if($status>0){
|
|
if($status>0){
|
|
|
$where['a.status'] = $status;
|
|
$where['a.status'] = $status;
|
|
|
}
|
|
}
|
|
|
- $list = $this->model->with(['level','parent'])
|
|
|
|
|
|
|
+ $list = $this->model->with(['level','parent','pledge'])
|
|
|
->from('member as a')
|
|
->from('member as a')
|
|
|
->leftJoin('member as b','b.id','a.parent_id')
|
|
->leftJoin('member as b','b.id','a.parent_id')
|
|
|
->where($where)
|
|
->where($where)
|
|
@@ -105,8 +105,9 @@ class MemberService extends BaseService
|
|
|
$item['team_num'] = TeamService::make()->getTeamUserCountByType($item['id'], 2, 0);
|
|
$item['team_num'] = TeamService::make()->getTeamUserCountByType($item['id'], 2, 0);
|
|
|
$item['team_performance'] = TeamService::make()->getTeamPerformanceByType($item['id'], 2);
|
|
$item['team_performance'] = TeamService::make()->getTeamPerformanceByType($item['id'], 2);
|
|
|
$item['pledge_total'] = PledgeOrderService::make()->getTotalByUser($item['id']);
|
|
$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['recharge_total'] = BalanceLogService::make()->getTotalByUser($item['id']);
|
|
|
$item['withdraw_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 = $this->model->where(['id'=> $uid,'mark'=>1])->select(['id','parent_ids','bonus_rate','room_bonus_rate'])->first();
|
|
|
$info = $info? $info->toArray() : [];
|
|
$info = $info? $info->toArray() : [];
|
|
|
$userParentId = isset($info['parent_id'])? $info['parent_id'] : 0;
|
|
$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;
|
|
$bonusRate = isset($data['bonus_rate'])? floatval($data['bonus_rate']) : 0;
|
|
|
if($bonusRate){
|
|
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) {
|
|
if ($maxBonusRate > 0 && $bonusRate > $maxBonusRate) {
|
|
|
DB::rollBack();
|
|
DB::rollBack();
|
|
|
$this->error = lang(2037,['rate'=>$maxBonusRate]);
|
|
$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;
|
|
$roomBonusRate = isset($data['room_bonus_rate'])? floatval($data['room_bonus_rate']) : 0;
|
|
|
if($roomBonusRate){
|
|
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) {
|
|
if ($maxBonusRate > 0 && $roomBonusRate > $maxBonusRate) {
|
|
|
DB::rollBack();
|
|
DB::rollBack();
|
|
|
$this->error = lang(2038,['rate'=>$maxBonusRate]);
|
|
$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)){
|
|
if(in_array($uid, $parents)){
|
|
|
DB::rollBack();
|
|
DB::rollBack();
|
|
|
$this->error = 2039;
|
|
$this->error = 2039;
|
|
|
- return false;
|
|
|
|
|
|
|
+ return message($this->error, false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 更新自己推荐关系
|
|
// 更新自己推荐关系
|
|
|
$data['parent_id'] = $parentId;
|
|
$data['parent_id'] = $parentId;
|
|
|
$data['parent_ids'] = $parentIds? trim($parentIds,',').",{$parentId}," : "{$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();
|
|
$users = $this->model->whereRaw("FIND_IN_SET({$uid},parent_ids)")->select(['id','parent_id','parent_ids'])->get();
|
|
|
foreach($users as $item){
|
|
foreach($users as $item){
|
|
|
$parentIds = $item['parent_ids'];
|
|
$parentIds = $item['parent_ids'];
|
|
|
if($parentIds){
|
|
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){
|
|
if($newParentIds){
|
|
|
- $updateArr[] = [
|
|
|
|
|
|
|
+ $updateData = [
|
|
|
'parent_ids'=> $newParentIds,
|
|
'parent_ids'=> $newParentIds,
|
|
|
'update_time'=> time(),
|
|
'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);
|
|
$result = parent::edit($data);
|
|
|
$success = isset($result['success']) ? $result['success'] : false;
|
|
$success = isset($result['success']) ? $result['success'] : false;
|
|
|
if(!$success){
|
|
if(!$success){
|
|
@@ -257,17 +264,16 @@ class MemberService extends BaseService
|
|
|
$keyword = getter($param, "keyword");
|
|
$keyword = getter($param, "keyword");
|
|
|
$parentId = getter($param, "parent_id");
|
|
$parentId = getter($param, "parent_id");
|
|
|
$userId = getter($param, "user_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]);
|
|
$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){
|
|
if($userId){
|
|
|
- $query->whereNotIn('id', [$userId]);
|
|
|
|
|
// $query->whereRaw("NOT FIND_IN_SET({$userId},parent_ids)");
|
|
// $query->whereRaw("NOT FIND_IN_SET({$userId},parent_ids)");
|
|
|
|
|
+// $query->where(['id'=> $parentId]);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
->where(function($query) use($keyword){
|
|
->where(function($query) use($keyword){
|
|
@@ -275,7 +281,7 @@ class MemberService extends BaseService
|
|
|
$query->where('nickname','like',"{$keyword}%")->orWhere('wallet_url','like',"{$keyword}%");
|
|
$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();
|
|
->get();
|
|
|
$datas = $datas? $datas->toArray() : [];
|
|
$datas = $datas? $datas->toArray() : [];
|
|
|
if($datas){
|
|
if($datas){
|