$siteId ]; if(isset($params['member_id']) && $params['member_id'] !== '') $where[] = ['a.member_id', '=', $params['member_id']]; if(isset($params['level_id']) && $params['level_id'] !== '') $where[] = ['a.level_id','=',$params['level_id']]; $join = [ ['team_level tl','tl.id = a.level_id','left'], ['member m', 'a.member_id = m.member_id', 'left'], ]; $field = 'a.*,tl.title,tl.weight,m.nickname,m.username,m.headimg'; $result = model('team')->pageList($where,$field,'a.id DESC',$page,$pageLimit,'a',$join); // 获取部分统计信息 $memberModel = new \addon\team\model\Member(); foreach($result['list'] as &$item){ $item['one_people'] = $memberModel->getPeopleNum($item['member_id'],$item['site_id']);// 直推人数 $item['team_people'] = $memberModel->getPeopleNum($item['member_id'],$item['site_id'],'team');// 团队人数 $item['one_money'] = $memberModel->getMoneyNum($item['member_id'],$item['site_id']);// 直推业绩 $item['team_money'] = $memberModel->getMoneyNum($item['member_id'],$item['site_id'],'team');// 团队业绩 } return $this->success($result); } /** * Common: 获取等级变更记录 * Author: wu-hui * Time: 2024/08/09 14:55 * @param $params * @return array */ public function levelChangeLogRecord($params){ $page = $params['page'] ?? 1; $pageLimit = $params['limit'] ?? PAGE_LIST_ROWS; // 生成查询条件 $where = [ 'team_id' => $params['team_id'] ]; $result = model('team_log')->pageList($where,'*','id DESC',$page,$pageLimit); return $this->success($result); } /** * Common: 团队长等级改变 * Author: wu-hui * Time: 2024/08/09 10:51 * @param $memberId * @param $levelId * @param $completeItems * @return array */ public function TeamUpgrade($memberId, $levelId, $completeItems){ Db::startTrans(); try{ if($memberId <= 0 || $levelId <= 0) throw new Exception('必要参数不存在!'); // 获取已存在的团长信息 $where = [ [ 'a.member_id', '=', $memberId], ]; $join = [ [ 'team_level tl', 'tl.id = a.level_id', 'left' ] ]; $field = 'a.id,a.member_id,a.level_id,tl.title,tl.weight'; $teamInfo = model('team')->getInfo($where,$field,'a',$join); // 获取等级信息 $levelInfo = model('team_level')->getInfo([ [ 'id', '=', $levelId] ],'id,site_id,title,weight'); $siteId = $levelInfo['site_id'] ?? 0; // 判断:增加 or 修改信息 $log = [ 'team_id' => $teamInfo['id'] ?? 0, 'site_id' => $siteId, 'member_id' => $memberId, 'front_level_id' => $teamInfo['level_id'] ?? 0, 'front_level_title' => $teamInfo['title'] ?? '', 'front_level_weight' => $teamInfo['weight'] ?? 0, 'after_level_id' => $levelInfo['id'], 'after_level_title' => $levelInfo['title'], 'after_level_weight' => $levelInfo['weight'], 'reason' => implode(',',$completeItems) ]; if(!$teamInfo){ // 不存在团队长信息 增加信息 $log['team_id'] = model('team')->add([ 'site_id' => $siteId, 'member_id' => $memberId, 'level_id' => $levelId, ]); } else{ model('team')->update(['level_id' => $levelId],[ ['member_id','=',$memberId], ]); } // 记录日志 model('team_log')->add($log); Db::commit(); return $this->success('操作成功'); } catch(\Exception $e){ Db::rollback(); return $this->error('', $e->getMessage()); } } }