insert($data); //id $level_id = $this->getLastInsID(); //修改相关数据 $this->updateSome($goods_id,$rights,$level_id,$data,$coupon,$stored); return $res; } /** * @author chenniang * @DataTime: 2020-09-10 15:13 * @功能说明:初始化 */ public function initLevel($dis){ //初始化普通会员 if($dis['type']==0){ for ($i=1;$i<11;$i++){ $insert[$i]['uniacid'] = $dis['uniacid']; $insert[$i]['status'] = 0; $insert[$i]['create_time'] = time(); $insert[$i]['update_time'] = time(); $insert[$i]['top'] = $i; } $this->saveAll($insert); }else{ //初始化puls会员 $insert['uniacid'] = $dis['uniacid']; $insert['status'] = 0; $insert['create_time'] = time(); $insert['update_time'] = time(); $insert['type'] = 1; $insert['top'] = 999; $insert['over_time'] = -1; $this->insert($insert); } return true; } /** * @author chenniang * @DataTime: 2020-04-26 17:12 * @功能说明:列表 */ public function levelList($dis,$page=10){ $data = $this->where($dis)->order('id')->paginate($page)->toArray(); $right_model = new Rights(); if(!empty($data['data'])){ foreach ($data['data'] as &$v){ $v['rights'] = $right_model->customRights($v['id']); //商品折扣 if($v['discount_switch']==1){ array_unshift($v['rights'],'商品打折'); } //积分倍率 if($v['integral_switch']==1){ array_unshift($v['rights'],'积分倍率'.$v['integral'].'倍'); } //赠送积分 if($v['send_integral_switch']==1){ array_unshift($v['rights'],'赠送积分'.$v['send_integral']); } // //赠送优惠券 if($v['coupon_switch']==1){ array_unshift($v['rights'],'赠送卡券'); } $user_model = new User(); //会员人数 $v['member_num'] = $user_model->where(['member_level'=>$v['id']])->count(); } } return $data; } /** * @author chenniang * @DataTime: 2020-04-26 17:08 * @功能说明:详情 */ public function levelInfo($dis){ $data = $this->where($dis)->find(); return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-04-26 17:13 * @功能说明:删除直播 */ public function levelUpdate($dis,$data){ $data['update_time'] = time(); $goods_id = []; $rights = []; $coupon = []; $stored = []; //关联的权益 if(isset($data['rights'])){ $rights = $data['rights']; unset($data['rights']); } //关联的优惠券 if(isset($data['coupon'])){ $coupon = $data['coupon']; unset($data['coupon']); } $res = $this->where($dis)->update($data); $this->updateSome($rights,$data['id'],$data,$coupon); return $res; } /** * @param $level_id * @param $data * @功能说明:修改相关数据 * @author chenniang * @DataTime: 2020-07-15 13:40 */ public function updateSome($rights,$level_id,$data,$coupon=[]){ //关联的商品模型 $rights_model = new RightsRelation(); $rights_model->where(['member_id'=>$level_id])->delete(); //添加关联的商品 if(!empty($rights)){ array_walk($rights, function ($value, $key) use (&$rights, $level_id,$data) { $rights[$key] = [ //商品id 'rights_id' => $value['id'], //等级id 'member_id' => $level_id, 'uniacid' => $data['uniacid'], 'type' => $value['type'] ]; }); //添加 $res = $rights_model->saveAll($rights); } //优惠券关联模型 $coupon_model = new Coupon(); //添加 $coupon_model->addCoupon($coupon,$level_id,$data); return true; } /** * @author chenniang * @DataTime: 2020-07-16 11:08 * @功能说明:获取成长值区间 */ public function getGrowth($level){ $data = $this->where(['id'=>$level])->find(); $dis[]= ['uniacid','=',$data['uniacid']]; $dis[]= ['growth','>',$data['growth']]; $top = $this->where($dis)->order('growth')->find(); $info['start_growth'] = $data['growth']; $info['end_growth'] = !empty($top['growth'])?$top['growth']:0; return $info; } /** * @author chenniang * @DataTime: 2020-07-17 13:22 * @功能说明:会员商品 */ public function memberGoods($uniacid,$level_id){ $dis[] = ['uniacid','=',$uniacid]; $dis[] = ['status','=',1]; $dis[] = ['is_member','=',1]; $id = $this->haveSelectGoods($uniacid,$level_id); $dis[] = ['id','not in',$id]; $data = Db::name('longbing_card_goods')->where($dis)->field('name,id')->select(); return $data; } /** * @author chenniang * @DataTime: 2020-09-09 13:39 * @功能说明:下拉框 */ public function storedSelect($uniacid,$level_id){ $id = $this->haveSelectStored($uniacid,$level_id); $dis[] = ['uniacid','=',$uniacid]; $dis[] = ['status','=',1]; $dis[] = ['id','not in',$id]; $data = Db::name('longbing_card_member_stored')->where($dis)->order('top desc,id desc')->select()->toArray(); return $data; } /** * @author chenniang * @DataTime: 2020-09-09 14:09 * @功能说明:已经选了储值 */ public function haveSelectStored($uniacid,$level_id){ $dis[] = ['a.uniacid','=',$uniacid]; $dis[] = ['b.uniacid','=',$uniacid]; $dis[] = ['a.member_id','<>',$level_id]; $store_level_model = new StoredLevel(); $id = $store_level_model->alias('a') ->join('longbing_card_member_level b','a.member_id = b.id') ->where($dis) ->column('a.stored_id'); return $id; } /** * @author chenniang * @DataTime: 2020-08-06 15:21 * @功能说明:已经选了的商品 */ public function haveSelectGoods($uniacid,$level_id){ $dis[] = ['a.uniacid','=',$uniacid]; $dis[] = ['b.uniacid','=',$uniacid]; $dis[] = ['a.member_id','<>',$level_id]; $goods_model = new Goods(); $id = $goods_model->alias('a') ->join('longbing_card_member_level b','a.member_id = b.id') ->where($dis) ->column('goods_id'); return $id; } /** * @param $uniacid * @功能说明:会员权益 * @author chenniang * @DataTime: 2020-07-22 14:23 */ public function memberRights($uniacid,$type = 0){ $dis[] = ['uniacid','=',$uniacid]; $dis[] = ['status','=',1]; $dis[] = ['type','=',$type]; $rights_model = new Rights(); $data = $rights_model->where($dis)->field('title,id,is_up')->select(); return $data; } /** * @author chenniang * @DataTime: 2020-07-27 14:14 * @功能说明:检测状态 */ public function checkStatus($id,$status){ $info = $this->levelInfo(['id'=>$id]); if(empty($info)){ return [ 'code' => 400,'msg' => '未找到' ]; } //开启 if($status==1){ $dis[] = ['uniacid','=',$info['uniacid']]; $dis[] = ['status','=',0]; $dis[] = ['type','=',0]; $data = $this->where($dis)->order('top')->find(); if($data['id']!=$id){ return [ 'code' => 400,'msg' => '请先开启上级或下级']; } } //关闭 if($status==0){ $dis[] = ['uniacid','=',$info['uniacid']]; $dis[] = ['status','=',1]; $dis[] = ['type','=',0]; $data = $this->where($dis)->order('top desc')->find(); if($data['id'] != $id){ return [ 'code' => 400,'msg' => '请先关闭上级或下级']; } } return [ 'code' => 200,'msg' => '' ]; } /** * @author chenniang * @DataTime: 2020-07-28 11:23 * @功能说明:获取等级 */ public function getMemberLevel($uniacid,$growth,$type = 0){ $where = [ 'uniacid' => $uniacid, 'status' => 1, 'type' => 0 ]; if($type==0){ $data = $this->where($where)->where('growth','>',$growth)->order('growth')->find(); }else{ $data = $this->where($where)->where('growth','<=',$growth)->order('growth desc')->find(); } return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2021-11-10 14:09 * @功能说明:获取用户等级 */ public function getUserLevelV2($user_id){ $dis = [ 'b.id' => $user_id ]; $data = $this->alias('a') ->join('massage_service_user_list b','a.id = b.member_level') ->where($dis) ->field('a.*') ->find(); return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-09-18 10:14 * @功能说明:获取plus会员 */ public function getPlusLvel($uniacid){ $where = [ 'uniacid' => $uniacid, 'status' => 1, 'type' => 1, 'top' => 999 ]; $data = $this->where($where)->order('growth')->find(); return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-07-30 09:45 * @功能说明:获取用户的等级 */ public function getUserLevel($uid,$uniacid){ $member_model = new Member(); $over_time = $member_model->where(['user_id'=>$uid])->value('over_time'); //查看是否是plus会员 -1是永久有效 if($over_time>time()||$over_time==-1){ $level = $this->getPlusLvel($uniacid); if(!empty($level)){ return $level; } } $growth = $member_model->where(['user_id'=>$uid])->value('growth'); $growth = !empty($growth)?$growth:0; $level = $this->getMemberLevel($uniacid,$growth,1); return $level; } /** * @author chenniang * @DataTime: 2020-08-07 09:39 * @功能说明: */ public function getAllLevel($uniacid){ $where = [ 'uniacid' => $uniacid, 'status' => 1, // 'type' => 0 ]; $son_level = $this->where($where)->column('id'); return $son_level; } /** * @author chenniang * @DataTime: 2020-07-30 09:53 * @功能说明:获取下级或者上级的等级 */ public function getSonLevel($level,$uniacid,$type=0){ $where = [ 'uniacid' => $uniacid, 'status' => 1, ]; if($type==0){ $son_level = $this->where($where)->where('top','<',$level['top'])->column('id'); }else{ $icon = $level['top']==999?'>=':'>'; $son_level = $this->where($where)->where('top',$icon,$level['top'])->column('id'); } return $son_level; } /** * @author chenniang * @DataTime: 2020-07-31 10:39 * @功能说明:升级用户的权益 */ public function upUserRights($level,$order){ $uniacid = $order['uniacid']; $user_id = $order['user_id']; $integral_model = new Integral(); $member_model = new Member(); $coupon_model = new Coupon(); $level_info = $this->levelInfo(['top'=>$level,'uniacid'=>$uniacid]); //增加积分记录 $integral_model->integralUserAdd($user_id,$level_info['send_integral'],$uniacid); //加会员的积分 $dis = [ 'user_id' => $user_id ]; $member_model->incDecGrowth($dis,$level_info['send_integral'],'integral'); //赠送优惠券 $coupon_model->insertCoupon($level_info,$order); //第一次升级时候 修改创建时间 $member_model->where(['user_id'=>$order['user_id'],'is_vip'=>0])->update(['create_time'=>time(),'is_vip'=>1]); return true; } /** * @author chenniang * @DataTime: 2020-08-04 17:22 * @功能说明:会员成长值 */ public function memberGrowth($uniacid){ $data = $this->where(['uniacid'=>$uniacid,'status'=>1,'type'=>0])->min('growth'); return $data; } /** * @author chenniang * @DataTime: 2020-09-18 17:02 * @功能说明: */ public function upUserRightsEnd($update,$order){ $user_id = $order['user_id']; $uniacid = $order['uniacid']; $member_model = new Member(); //还未升级以前的等级 $level_start = $this->getUserLevel($user_id,$uniacid); //如果空就不是会员 $level_start = !empty($level_start['top'])?$level_start['top']:0; //更新会员信息 $member_model->where(['user_id'=>$user_id])->update($update); //增加后的等级 $level_end = $this->getUserLevel($user_id,$uniacid); $level_end = !empty($level_end['top'])?$level_end['top']:0; //普通会员升级礼包 if($level_end>$level_start){ $this->upUserRights($level_end,$order); } return true; } }