['d.level_id', 'd.is_freeze'], 'between_time' => 'd.distribution_time' ]; } /** * @notes 附加搜索 * @author Tab * @date 2021/9/22 10:46 */ public function attachSearch() { // 只显示分销会员 $this->searchWhere[] = ['d.is_distribution', '=', YesNoEnum::YES]; // 根据用户信息搜索 if (isset($this->params['user_info']) && !empty($this->params['user_info'])) { $this->searchWhere[] = ['u.sn|u.nickname', 'like', '%' . trim($this->params['user_info']) . '%']; } } /** * @notes 导出表名 * @return string * @author Tab * @date 2021/8/5 15:15 */ public function setFileName(): string { return '分销商表'; } /** * @notes 导出字段名 * @return array * @author Tab * @date 2021/8/5 15:16 */ public function setExcelFields(): array { return [ 'user_info' => '用户信息', 'distribution_level_name' => '分销等级', 'earnings' => '已入账佣金', 'wait_earnings' => '待结算佣金', 'first_leader_name' => '上级分销商', 'is_freeze_desc' => '分销状态', 'distribution_time' => '成为分销会员时间', ]; } /** * @notes 列表 * @return array * @author Tab * @date 2021/7/27 17:19 */ public function lists(): array { $this->attachSearch(); $field = 'u.id,u.sn, u.avatar, u.nickname, u.level,u.code, u.first_leader,u.user_delete,u.admin_update_leader'; $field .= ', d.id as distributoin_id, d.is_distribution, d.level_id, d.distribution_time,d.is_freeze'; $this->sortOrder = ['u.id' => 'desc']; $lists = User::alias('u') ->leftJoin('distribution d', 'd.user_id = u.id') ->field($field) ->where($this->searchWhere) ->order($this->sortOrder) ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); foreach ($lists as &$item) { $item['distribution_time'] = $item['distribution_time'] ? date('Y-m-d H:i:s', $item['distribution_time']) : ''; $item['avatar'] = trim($item['avatar']) ? FileService::getFileUrl($item['avatar']) : ''; $item['user_level_name'] = UserLevel::getLevelName($item['level']); $item['is_distribution_desc'] = $item['is_distribution'] ? '分销会员' : '非分销会员'; $item['distribution_level_name'] = DistributionLevel::getLevelName($item['level_id']); $item['first_leader_name'] = User::getFirstLeader($item)['name']; $item['fans'] = User::getFans($item['id']); $item['earnings'] = DistributionOrderGoods::getEarnings($item['id']); $item['wait_earnings'] = DistributionOrderGoods::getUnReturnedCommission($item['id']); $item['is_freeze_desc'] = $item['is_freeze'] ? '冻结' : '正常'; $item['user_info'] = $item['nickname'] . '(' . $item['sn'] . ')'; } return $lists; } /** * @notes 记录数 * @return int * @author Tab * @date 2021/7/27 17:19 */ public function count(): int { $this->attachSearch(); $count = User::alias('u') ->leftJoin('distribution d', 'd.user_id = u.id') ->where($this->searchWhere) ->count(); return $count; } }