175 lines
6.1 KiB
PHP
175 lines
6.1 KiB
PHP
<?php
|
|
/** ZJMall商城系统 - 团队十年电商经验汇集巨献!
|
|
* =========================================================
|
|
* Copy right 2022-2032 四川正今科技有限公司, 保留所有权利。
|
|
* ----------------------------------------------
|
|
* 官方网址: https://www.zjphp.com
|
|
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
|
|
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
|
|
* 唯一发布渠道官方颁发授权证书,无纸质授权凭证书视为侵权行为。
|
|
* =========================================================
|
|
*/
|
|
|
|
namespace app\model\newModel\member;
|
|
|
|
use app\model\NewBaseModel;
|
|
use app\model\newModel\Config;
|
|
use app\model\newModel\goods\Goods;
|
|
use app\model\order\OrderCreate as OrderCreateModel;
|
|
use think\facade\Db;
|
|
|
|
class MemberLevelPopularize extends NewBaseModel{
|
|
|
|
protected $pk = 'id'; // 默认主键id
|
|
protected $name = 'member_level_popularize';
|
|
protected $autoWriteTimestamp = true; // 开启自动时间戳
|
|
protected $createTime = 'create_time'; // 默认添加时间字段
|
|
protected $updateTime = 'update_time'; // 默认编辑时间字段
|
|
protected $deleteTime = false; // 软删除字段
|
|
|
|
/**
|
|
* Common: 编辑信息
|
|
* Author: wu-hui
|
|
* Time: 2022/12/13 18:05
|
|
* @param $memberId
|
|
* @param $levelId
|
|
* @param $levelIndex
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\DbException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
*/
|
|
public function editPopularizeInfo($memberId,$levelId,$levelIndex){
|
|
$where = [
|
|
['site_id','=',$this->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');
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |