🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 通过顾客ID判断是否需要发卡或升级 **位置:** Common\Controller\BaseController.class.php **参数:** * 判断顾客是否满足会员发卡、会员升级条件 * @param $customer_id int 顾客ID * @return $data array **调用:** * $mi_result = $this->check_membership_card($customer_id); **完整代码:** ~~~ /** * * 判断顾客是否满足会员发卡、会员升级条件 * Lanson 2017-08-02 * @param $customer_id int 顾客ID * @return $data array * */ public function check_membership_card($customer_id) { //连表查询所有顾客的相关信息,包括已成为会员的顾客信息 $customer_data = M('mbship_customer cus') ->field("*,cus.id as id") //->join("coscia_member_vip_card_info as vip_info on cus.id = vip_info.customer_id","left") //->join("coscia_member_putinfo as info on info.id = vip_info.putinfo_id","left") //->join("coscia_member_put as put on put.id = info.put_id","left") //->join("coscia_vip_type as ber on ber.id = put.member_id","left") //->join("coscia_shops as shops on shops.id = vip_info.shops_id","left") //->join("coscia_brand as brand on brand.id = vip_info.brand_id","left") ->where("cus.id = '{$customer_id}'") ->find(); // 判断是顾客身份还是会员身份 0是普通顾客 4是电商顾客 1是会员 2是老系统会员 if ($customer_data['identity'] == 0 || $customer_data['identity'] == 4) { $vip_name['card_no'] = ''; $vip_name['identity'] = $customer_data['identity']; $vip_name['id'] = $customer_data['id']; } elseif ($customer_data['identity'] == 1) { $vip_name = $customer_data; } elseif ($customer_data['identity'] == 2) { $vip_name = $customer_data; } $vip_member = array(); if ($vip_name) { //当天 /*$numbers_day = M('commodity_numbers as num')->field('sum(numbers_money) as sum') ->where(array('customer_id'=>$vip_name['id'],'numbers_time'=>array('between',array(strtotime(date('Y-m-d',time())),strtotime(date('Y-m-d 23:59:59',time()))))))->select();*/ // 一个月内消费最高那天满足发卡规则的金额 $numbers_last_mount = M('commodity_numbers as num')->field("num.numbers_money,from_unixtime(num.numbers_time, '%Y-%m-%d') as time") ->where(array('customer_id'=>$vip_name['id'],'numbers_time'=>array('between',array(strtotime(date('Y-m-d H:i:s',strtotime("-1 month"))),strtotime(date('Y-m-d 23:59:59',time()))))))->select(); $numbers_day_max = array(); foreach ($numbers_last_mount as $key => $value) { $numbers_day_max[$value['time']] += $value['numbers_money']; } $numbers_day_max = max($numbers_day_max); //半年 $numbers_month = M('commodity_numbers as num')->field('sum(numbers_money) as sum') ->where(array('customer_id'=>$vip_name['id'],'numbers_time'=>array('between',array(strtotime(date('Y-m-d H:i:s',strtotime("-6 month"))),strtotime(date('Y-m-d 23:59:59',time()))))))->select(); //一年 $numbers_year = M('commodity_numbers as num')->field('sum(num.numbers_money) as sum') ->where(array('customer_id'=>$vip_name['id'],'numbers_time'=>array('between',array(strtotime(date('Y-m-d H:i:s',strtotime("-1 year"))),strtotime(date('Y-m-d H:i:s',time()))))))->select(); if (($vip_name['identity'] = 1 || $vip_name['identity'] = 2 )) { // 通过卡的状态来查询最高级会员卡的信息 $vip_name = M('mbship_customer cus') ->field("*,cus.id as id") ->join("coscia_member_vip_card_info as vip_info on cus.id = vip_info.customer_id","left") ->join("coscia_member_putinfo as info on info.id = vip_info.putinfo_id","left") ->join("coscia_member_put as put on put.id = info.put_id","left") ->join("coscia_vip_type as ber on ber.id = put.member_id","left") ->join("coscia_shops as shops on shops.id = vip_info.shops_id","left") ->where("cus.id = '{$customer_id}' and info.putinfo_status = '已使用'") ->find(); //调查升降级规则 $change = M('member_change as ch') ->field('*,ch.id as id') ->where(array('member_rank' => array('gt',$vip_name['member_rank']))) ->join('coscia_vip_type as mem on mem.id = ch.change_upgrade','left') ->order('mem.member_rank ASC') ->select(); $guize = 0; $guize_year = 0; //半年 foreach ($change as $key => $value) { $guize += $value['change_money']; $guize_year += $value['change_yearey']; if ($numbers_month[0]['sum'] >= $guize || $numbers_year[0]['sum'] >= $guize_year) { $vip_member = $value['member_name']; $vip_name_id = $value['change_upgrade']; } } if (!empty($vip_member)) { $data = array('success' => true,'shunt' => 'update','card_name' => $vip_member,'card_id' => $vip_name_id ,'msg' => '满足升级条件'); } else { $data = array('success' => false ,'msg' => '不满足升级条件'); } //以上满足升级条例 } else { if ($vip_name['identity'] == 0 || $vip_name['identity'] == 4) { $change = M('member_card_rule as rule') ->join('coscia_vip_type as mem on mem.id = rule.rule_name','left') ->order('mem.member_rank ASC') ->select(); foreach ($change as $key => $value) { $rule_day = $value['rule_day'];//当天 $rule_month = $value['rule_halfayear']; //半年 $rule_year = $value['rule_year'];//一年 if ($numbers_day_max >= $rule_day || $numbers_month[0]['sum'] >= $rule_month || $numbers_year[0]['sum'] >= $rule_year) { $vip_member = $value['member_name']; $vip_name_id = $value['rule_name']; } } if (!empty($vip_member)) { $data = array('success'=>true,'shunt'=>'facard','card_name'=>$vip_member,'card_id' => $vip_name_id, 'msg'=>'满足发卡条件'); } else { $data = array('success'=>false,'msg'=>'不满足发卡条件'); } } } } else { $data = array('success'=>false,'msg'=>'无'); } return $data; } ~~~