adminSiteId) $params['site_id'] = $siteId; // 生成查询条件 $where = []; if(isset($params['member_id']) && $params['member_id'] !== '') $where[] = ['a.member_id','=',$params['member_id']]; if(isset($params['site_id']) && $params['site_id'] !== '') $where[] = ['a.site_id','=',$params['site_id']]; // 关联查询 $join = [ [ 'member m', 'm.member_id = a.member_id', 'left' ], [ 'site s', 's.site_id = a.site_id', 'left' ], [ 'fenxiao_level fl', 'fl.level_id = a.level_id', 'left' ] ]; $field = [ 'a.*', 'm.nickname', 'm.username', 'm.headimg', 's.site_name', 's.contacts_name', 'fl.level_name', 'fl.level_num', ]; $result = model('commission_weight_value')->pageList($where,$field,'a.id DESC',$page,PAGE_LIST_ROWS,'a',$join); $result['is_admin'] = $siteId == $this->adminSiteId; return $this->success($result); } /** * Common: 获取用户权重值变更记录明细 * Author: wu-hui * Time: 2024/05/04 16:07 * @param $page * @param $params * @return array */ public function getLogPageList($page, $params){ // 生成查询条件 $where = []; if(isset($params['member_id']) && $params['member_id'] !== '') $where[] = ['member_id','=',$params['member_id']]; if(isset($params['site_id']) && $params['site_id'] !== '') $where[] = ['site_id','=',$params['site_id']]; if(isset($params['level_id']) && $params['level_id'] !== '') $where[] = ['level_id','=',$params['level_id']]; // 关联查询 $result = model('commission_weight_value_log')->pageList($where,true,'id DESC',$page,PAGE_LIST_ROWS); return $this->success($result); } /** * Common: 根据用户ID 获取所有有效上级持有权重值信息 * Author: wu-hui * Time: 2024/05/04 13:45 * @param int $memberId * @param int $siteId * @param array $userHoldList * @return array */ public function getUserHoldList(int $memberId,int $siteId,array $userHoldList = []){ // 获取用户所有上级 if(count($userHoldList) <= 0){ // 获取全部上级 $fenXiaoId = model('fenxiao')->getValue(['member_id'=>$memberId],'fenxiao_id'); $allSuperiorList = (new Fenxiao())->getAllSuperior($fenXiaoId); unset($allSuperiorList[$memberId]);// 删除本人 if(count($allSuperiorList) <= 0) return [];// 不存在上级 // 循环处理 仅小区业绩消费才会获得权重值奖励 $userHoldList = [];// 符合条件的用户 $currentFenXiaoId = $fenXiaoId; foreach($allSuperiorList as $userInfo){ // 判断:当前用户是否为上级的大区业绩的线 if(!(new Fenxiao())->isBigAreaPart((int)$currentFenXiaoId,(int)$userInfo['fenxiao_id'])){ $userHoldList[] = $userInfo; } $currentFenXiaoId = $userInfo['fenxiao_id']; } } // 获取持有信息 $where = [ ['site_id', '=', $siteId], ['member_id', 'in', array_column($userHoldList,'member_id')] ]; $field = 'id,site_id,member_id,level_id,quantity,CONCAT(member_id, "_", level_id) AS only_key'; $holdList = model('commission_weight_value')->getList($where,$field); // 判断:是否有不存在的用户持有信息 有则先添加 $holdList = array_column($holdList,null,'only_key'); $onlyKeyList = array_column($holdList,'only_key'); $insertData = []; // 判断:是否存在持有信息 不存在添加 $currentLevelList = []; foreach($userHoldList as $userItem){ $onlyKey = $userItem['member_id'].'_'.$userItem['level_id']; if(!in_array($onlyKey,$onlyKeyList)){ // 不存在 需要添加 $defaultData = [ 'site_id' => $siteId, 'member_id' => $userItem['member_id'], 'level_id' => $userItem['level_id'], 'quantity' => 0, ]; $insertData[] = $defaultData; } else{ $currentLevelList[] = $holdList[$onlyKey]; } } // 存在新增加内容 增加然后再次执行 if(count($insertData) > 0) { model('commission_weight_value')->addList($insertData); return $this->getUserHoldList($memberId,$siteId,$userHoldList); } return $currentLevelList; } }