getUserLevel($data['user_id'],$data['uniacid']); return !empty($text)?$text['title']:''; } } /** * @param $value * @param $data * @功能说明:获取等级名称 * @author chenniang * @DataTime: 2020-07-16 09:47 */ public function getLevelTopAttr($value,$data){ if(!empty($data['user_id'])&&!empty($data['uniacid'])){ $level_model = new Level(); $text = $level_model->getUserLevel($data['user_id'],$data['uniacid']); return !empty($text)?$text['top']:''; } } /** * @author chenniang * @DataTime: 2020-09-11 11:36 * @功能说明: * */ public function memberUpdateInfo($dis){ $data = $this->where($dis)->find(); if(empty($data)){ $this->memberAdd($dis); $data = $this->where($dis)->find(); } return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-07-15 09:49 * @功能说明:添加 */ public function memberAdd($data){ $data['status'] = 1; $data['create_time'] = time(); $data['update_time'] = time(); $res = $this->insert($data); return $res; } /** * @author chenniang * @DataTime: 2020-04-26 17:08 * @功能说明:详情 */ public function memberInfo($dis){ $data = $this->alias('a') ->join('longbing_card_user b','a.user_id = b.id','left') ->where($dis) ->field(['a.*','b.nickName','b.avatarUrl','ifnull(a.growth,0) as growth','ifnull(a.integral,0) as integral']) ->find(); return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-04-26 17:08 * @功能说明:详情 */ public function memberInfoIndex($dis){ $data = $this->alias('a') ->join('longbing_card_user b','a.user_id = b.id','right') ->where($dis) ->field(['ifnull(a.over_time,0) as over_time','a.id','b.nickName','b.avatarUrl','ifnull(a.stored,0) as balance','ifnull(a.cash_stored,0) as cash_balance','ifnull(a.over_time,0) as over_time','ifnull(a.growth,0) as growth','ifnull(a.integral,0) as integral']) ->find(); return !empty($data)?$data->toArray():[]; } /** * @author chenniang * @DataTime: 2020-07-16 09:35 * @功能说明:编辑 */ public function memberUpdate($dis,$data){ $data['update_time'] = time(); $res = $this->where($dis)->update($data); return $res; } /** * @author chenniang * @DataTime: 2021-10-19 13:50 * @功能说明:会员列表 */ public function memberListV2(){ } /** * @author chenniang * @DataTime: 2020-07-16 09:41 * @功能说明:会员列表 */ public function memberList($dis,$where,$mapor,$page){ $data = $this->alias('a') ->join('longbing_card_user b','a.user_id = b.id') ->where($dis) ->where(function ($query) use ($mapor){ $query->whereOr($mapor); }) ->where(function ($query) use ($where){ $query->whereOr($where); }) ->field(['a.*','b.nickName','b.id as user_id',]) ->group('a.id') ->order(['a.create_time desc','a.id']) ->paginate($page) ->toArray(); $order_model = new AdminShopOrder(); if(!empty($data['data'])){ foreach ($data['data'] as &$v){ $v['member_phone'] = Db::name('longbing_card_user_phone')->where(['user_id'=>$v['user_id']])->value('phone'); $diss = []; $diss[] = ['uniacid','=',$v['uniacid']]; $diss[] = ['user_id','=',$v['user_id']]; $diss[] = ['create_time','>',$v['create_time']]; $diss[] = ['pay_status','=',1]; //消费金额 $v['price'] = $order_model->where($diss)->sum('total_price'); //订单量 $v['order_num'] = $order_model->where($diss)->count(); } } return $data; } /** * @author chenniang * @DataTime: 2021-09-08 10:20 * @功能说明:讲所有用户添加到会员表 */ public function memberInit($uniacid){ $member_user = $this->where(['uniacid'=>$uniacid])->column('user_id'); $no_member_user = Db::name('longbing_card_user')->where(['uniacid'=>$uniacid])->where('id','not in',$member_user)->column('id'); if(!empty($no_member_user)){ foreach ($no_member_user as $value){ $dis = [ 'uniacid' => $uniacid, 'user_id' => $value ]; $this->getMemberInfo($dis); } } return true; } /** * @author chenniang * @DataTime: 2020-07-16 15:30 * @功能说明:统计 */ public function listForm($id){ $order_model = new \app\shop\model\Order(); $car_order_model = new Order(); $record_model = new CarAtvRecord(); $dis[] = ['user_id','=',$id]; $dis[] = ['pay_type','>',1]; // $dis[] = ['create_time','>',$member['create_time']]; //商城消费金额 $shop_price = $order_model->where($dis)->sum('true_price'); //商城订单量 $shop_count = $order_model->where($dis)->count(); //赛车订单 $car_price = $car_order_model->where($dis)->sum('pay_price'); //赛车订单量 $car_count = $car_order_model->where($dis)->count(); //活动订单 $atv_price = $record_model->where($dis)->sum('pay_price'); //活动订单量 $atv_count = $record_model->where($dis)->count(); $data = [ 'price' => round($shop_price+$car_price+$atv_price,2), 'count' => round($shop_count+$car_count+$atv_count,2), ]; return $data; } /** * @author chenniang * @DataTime: 2021-10-19 16:09 * @功能说明:获取总的订单 */ public function totalOrder($user_id,$type=1){ $order_model = new Order(); // $dis = [ // // '' // ] if($type==1){ }else{ } } /** * @author chenniang * @DataTime: 2020-07-28 09:44 * @功能说明:用户信息 */ public function userInfo($user_id,$uniacid){ $dis = [ 'b.id' => $user_id ]; //用户信息 $user_info = $this->memberInfoIndex($dis); //等级模型 $level_model = new Level(); $user_info['now_level'] = $level_model->getUserLevel($user_id,$uniacid); //是否是会员 $user_info['is_member'] = !empty($user_info['now_level'])?1:0; if(!empty($user_info['now_level'])&&$user_info['now_level']['top']==999){ //下一级等级 $user_info['next_level'] = []; }else{ //下一级等级 $user_info['next_level'] = $level_model->getMemberLevel($uniacid,$user_info['growth']); } return $user_info; } /** * @author chenniang * @DataTime: 2020-07-31 09:16 * @功能说明:更新会员 */ public function updateMember($order){ $growth_model = new Growth(); $level_model = new Level(); $integral_model = new Integral(); $member_goods_model = new Goods(); Db::startTrans(); //还未升级以前的等级 $level_start = $level_model->getUserLevel($order['user_id'],$order['uniacid']); //如果空就不是会员 $level_start = !empty($level_start['top'])?$level_start['top']:0; //普通会员给成长值,plus会员给时间 $member_goods_model->ordertypeUpdate($order); //增加成长值 $growth_model->incUserGrowth($order['id'],$order['user_id'],$order['uniacid']); //增加后的等级 $level_end = $level_model->getUserLevel($order['user_id'],$order['uniacid']); $level_end = !empty($level_end['top'])?$level_end['top']:0; //普通会员升级礼包 if($level_end>$level_start){ $level_model->upUserRights($level_end,$order); } //增加积分 $integral_model->incUserIntegral($order['id'],$order['user_id'],$order['uniacid']); Db::commit(); return true; } /** * @author chenniang * @DataTime: 2020-07-31 09:43 * @功能说明:加减成长值 */ public function incDecGrowth($dis,$growth,$file = 'growth',$type = 0){ if($type==0){ $this->where($dis)->update([$file=>Db::raw("$file+$growth")]); }else{ $this->where($dis)->update([$file=>Db::raw("$file-$growth")]); } return true; } /** * @param $dis * @功能说明:获取数据 没有就添加一条 * @author chenniang * @DataTime: 2020-07-31 09:27 */ public function getMemberInfo($dis){ $data = $this->where($dis)->find(); if(empty($data)){ $this->memberAdd($dis); $data = $this->where($dis)->find(); } return $data->toArray(); } /** * @author chenniang * @DataTime: 2020-08-03 11:51 * @功能说明:商品详情 */ public function goodsInfoMember($goods_id,$user_id,$uniacid){ //会员权限 $member_p = new PermissionMember($uniacid); //会员商品折扣模型 $discount_goods_model = new DiscountGoods(); //会员配置模型 $member_config_model = new Config(); //会员等级模型 $level_model = new Level(); $member_config = $member_config_model->configInfo(['uniacid'=>$uniacid]); //sass端授权 $member_auth = $member_p->pAuth(); //会员开关 $data['member_auth'] = $member_config['status']==1?$member_auth:false; //会员商品折扣 $data['goods_discount'] = $discount_goods_model->userGoodsDiscount($goods_id,$user_id,$uniacid); $data['goods_discount'] = $data['goods_discount']*10; //会员等级 $level = $level_model->getUserLevel($user_id,$uniacid); $data['level_title'] = !empty($level)?$level['title']:''; return $data; } /** * @author chenniang * @DataTime: 2020-08-04 09:30 * @功能说明:会员购买的回调 */ public function memberPayResult($order){ $config_model = new Config(); //配置 $config = $config_model->configInfo(['uniacid'=>$order['uniacid']]); if($config['status']==1){ $level_model = new Level(); $integral_model = new Integral(); $growth_model = new Growth(); //配置 $config = $config_model->configInfo(['uniacid'=>$order['uniacid']]); //等级 $level = $level_model->getUserLevel($order['user_id'],$order['uniacid']); //每日限领积分 $day_integral = $integral_model->dayIntegral($order['user_id'],$order['uniacid']); //赠送积分 if(!empty($config['integral_cash'])){ //积分 $integral = $order['total_price']*$config['integral_cash']; //积分倍率 $balance = !empty($level['integral_switch'])?$level['integral']:1; //要加的积分 $integral = $integral*$balance; //最终的积分 $integral = is_numeric($day_integral)&&$day_integral<$integral?$day_integral:$integral; //添加积分记录 $integral_model->integralUserAdd($order['user_id'],$integral,$order['uniacid'],1,1,$order['id']); } //每日限领成长值 $day_growth = $growth_model->dayGrowth($order['user_id'],$order['uniacid']); //赠送增长值(金额) if(!empty($config['growth_cash'])&&!empty($level)){ //成长值 $growth_cash = intval($order['total_price']*$config['growth_cash']); //最终成长值 $growth_cash = is_numeric($day_growth)&&$day_growth<$growth_cash?$day_growth:$growth_cash; //添加成长值记录 $growth_model->addUserGrowth($order['uniacid'],$order['user_id'],$growth_cash,$order['id'],1); } //赠送增长值(订单) 只有会员才送 if(!empty($config['growth_order'])&&!empty($level)){ //成长值 $growth_cash = intval($config['growth_order']); //最终成长值 $growth_cash = is_numeric($day_growth)&&$day_growth<$growth_cash?$day_growth:$growth_cash; //添加成长值记录 $growth_model->addUserGrowth($order['uniacid'],$order['user_id'],$growth_cash,$order['id'],1); } } return true; } /** * @author chenniang * @DataTime: 2020-08-07 17:12 * @功能说明:退款 */ public function refundOrder($order_id){ $integral_model = new Integral(); $growth_model = new Growth(); $dis = [ 'order_id' => $order_id ]; $integral_model->where($dis)->update(['refund'=>1]); $growth_model->where($dis)->update(['refund'=>1]); return true; } /** * @author chenniang * @DataTime: 2020-08-11 11:25 * @功能说明:会员权限 */ public function getAuth($uniacid){ $config_model = new Config(); $config = $config_model->configInfo(['uniacid'=>$uniacid]); $persisson = new PermissionMember($uniacid); $auth = $persisson->pAuth(); $auth = $config['status']==1?$auth:false; return $auth; } }