site_id], ['member_id','=',$memberId], ['level_id','=',$levelId], ['level_index','=',$levelIndex], ]; $info = self::where($where)->find(); if($info) { self::update(['member_id'=>$memberId], $where); } else{ $data = [ 'member_id' => $memberId, 'site_id' => $this->site_id, 'level_id' => $levelId, 'level_index' => $levelIndex, ]; self::create($data); } } /** * Common: 获取可用名额 * Author: wu-hui * Time: 2022/12/13 18:15 * @param $memberId * @return int * @throws \think\db\exception\DbException */ public function availableQuotaTotal($memberId){ $set = (new Config())->getConfigInfo('SUPERMEMBER_POPULARIZE'); $fenXiaoId = Db::name('fenxiao') ->where('member_id',$memberId) ->where('is_delete',0) ->value('fenxiao_id'); if($fenXiaoId <= 0) return 0; return (int)Db::name('fenxiao')->alias('fx') ->join('member_level_popularize mlp','mlp.member_id = fx.member_id','LEFT') ->where('fx.parent',$fenXiaoId) ->where('fx.is_delete',0) ->where('mlp.is_use',0) ->where('mlp.level_id',$set['give_member_level_id']) ->where('mlp.level_index',$set['give_member_level_index']) ->count(); } /** * Common: 获取全部下级 * Author: wu-hui * Time: 2022/12/13 18:33 * @param $memberId * @return array * @throws \think\db\exception\DbException */ public function getWholeSubMember($memberId){ // 基本信息 $page = input('page',1); $pageSize = input('page_size',PAGE_LIST_ROWS); $set = (new Config())->getConfigInfo('SUPERMEMBER_POPULARIZE'); $fenXiaoId = Db::name('fenxiao') ->where('member_id',$memberId) ->where('is_delete',0) ->value('fenxiao_id'); if($fenXiaoId <= 0) return []; // 列表获取 $field = [ 'm.member_id', 'fx.fenxiao_id', 'm.nickname', 'm.headimg', ]; $result = Db::name('fenxiao')->alias('fx') ->join('member m','m.member_id = fx.member_id','LEFT') ->field($field) ->where('fx.parent',$fenXiaoId) ->where('fx.is_delete',0) ->order('fx.fenxiao_id','DESC') ->paginate(['list_rows' => $pageSize,'page' => $page]); if($result) { $result = $result->toArray(); // 获取:用户是否购买指定会员卡 $memberIds = array_column($result['data'],'member_id'); $popularizeList = $this->whereIn('member_id',$memberIds) ->where('level_id',$set['give_member_level_id']) ->where('level_index',$set['give_member_level_index']) ->column('id','member_id'); $result['data'] = array_map(function($item) use ($popularizeList){ $item['popularize_id'] = $popularizeList[$item['member_id']] ?? 0; return $item; },$result['data']); } $list = [ 'count' => $result['total'], 'list' => $result['data'], 'page_count' => $result['last_page'], ]; return $this->success($list); } /** * Common: 根据用户id获取最早的指定数量的购买指定会员卡的信息id * Author: wu-hui * Time: 2022/12/14 15:18 * @param $memberId * @param $limit * @return array|int */ public function availableQuotaIds($memberId,$limit){ $set = (new Config())->getConfigInfo('SUPERMEMBER_POPULARIZE'); $fenXiaoId = Db::name('fenxiao') ->where('member_id',$memberId) ->where('is_delete',0) ->value('fenxiao_id'); if($fenXiaoId <= 0) return []; return Db::name('fenxiao')->alias('fx') ->join('member_level_popularize mlp','mlp.member_id = fx.member_id','LEFT') ->where('fx.parent',$fenXiaoId) ->where('fx.is_delete',0) ->where('mlp.is_use',0) ->where('mlp.level_id',$set['give_member_level_id']) ->where('mlp.level_index',$set['give_member_level_index']) ->order('id','ASC') ->limit($limit) ->column('mlp.id'); } }