### 通过顾客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;
}
~~~
- 模版
- 前言
- 项目架构
- 项目规范
- HTML
- CSS
- Javascript
- PHP
- MySQL
- 注意规范
- 开发版本管理
- 开发流程
- 系统配置
- 阿里云服务器配置
- 计划任务配置说明
- 开发示例
- Page分页
- Search_param搜索结果赋值
- Add新增
- Edit编辑
- Ajax表单验证
- Ajax二级联动
- Excel 导出数据首位不去0的方法
- POS总部控制
- 下载CSV格式的模板
- 订单唯一码表和订单SKU表实收金额生成
- 快捷日期选择
- JS函数
- ajax_send
- ajax_result
- createQrCodes
- createBarCodes
- printTpl
- JS插件
- BootstrapValidator表单验证插件
- Address省市区插件
- Bootstrap-datepicker日期插件
- Bootstrap-select多选框插件
- Toastr消息提示插件
- PalyAudit扫描声音提示插件
- WebUploader多图片上传插件
- Ueditor富文本编辑器插件
- Function
- alert
- object_to_array
- array_to_object
- get_address
- set_param_url
- get_shops_name
- get_user_name
- get_warehouse
- get_cheapest_sku
- print_attr(新)
- print_img(新)
- get_spu_no(新)
- get_type_name(新)
- get_brand_en(新)
- get_cat_name(新)
- get_attr_name(新)
- spu_cat_info(新)
- get_time_event_price
- get_vendors
- check_total_reduce
- check_total_discount
- get_inventory
- get_delivery
- get_sale_inventory
- get_customer_name
- phone_protection
- get_order_no
- get_event_name
- get_order_status
- get_item_status
- get_ditch_name
- get_card_no
- get_shop_sales
- get_pay_name
- get_season
- amt_format
- get_cat_parent
- print_attr_id
- round_bcadd
- round_bcsub
- round_bcmul
- round_bcdiv
- get_account_name
- Controller
- Common_BaseController
- check_membership_card
- get_menu_list
- importErrorMassage
- Wpos_IndexController
- get_customer_vip_card
- get_shops_id
- calculate_active_integral
- check_numbers_active
- check_goods_active
- Woms_IndexController
- Model
- View
- category
- cycle_date.html
- shop_select门店多选搜索框
- 品牌A-Z排序多选brand_mc.html
- 供应商代码A-Z排序vendor_no_mc.html
- Lib
- BuyerLib
- WarehouseLib
- EventLib
- getTimeEventPrice
- getVipType
- getEvent
- orderTotalEvent
- orderTimeEvent
- getTotalReduce
- getTotalDiscount
- SaleLib
- CustomerLib
- addCustomerService
- GiftcardLib
- WechatLib
- wxRefund
- OrdersLib
- orderLog
- calculatePayinAmount
- calculateSubtotal
- correctPayinAmount
- saveOrderAddress
- getOrderAddress
- setDeliveryNo
- SyncLib
- updateOuterStock
- UserLib
- createCommission
- FlowLib
- orderList
- addOrder
- addLog
- orderInfo
- checkSku
- orderSave
- orderStop
- orderExecute
- skuEdit
- orderPrinta
- scanGoods
- boxClose
- orderOut
- take
- bview
- check
- deliveryStatus
- checkGoods
- GoodsLib
- createGoodsNo
- createNewGoodsNo
- getSystemStyleNo
- getDim
- MallLib
- smsLog
- GoodsBaseLib
- getBrandInfo
- getBrandsInfo
- getAttrIdArray
- getPrintAttr
- getMustAttr
- getCatIdInfo
- valTypeId
- valsTypeId
- getCatNoInfo
- getCatInfo
- getAttrArr
- getAttrInfo
- getValInfo
- getAttrId
- getValId
- getAttrSeaon
- getValueId
- PointsLog
- pointsIn
- pointsUp
- EcGoodsLib
- getSkuInventory
- Tools
- CsvTools
- csvImport
- csvExport
- ExcelTools
- importExcel
- exportExcel
- exportHeadExcel
- MailTools
- SmsTools
- sendMessage
- UploadTools
- ExportTools
- exportData
- TaobaoTools
- getOnsaleItems
- getSkusItems
- PicturesTools
- uploadPicture
- Plugins
- WxBase
- Taobao
- 问题反馈