文件
mashangyoujiu/Application/Common/Order/VipChangeRecord.class.php

165 行
7.2 KiB
PHP
可执行文件

<?php
namespace Common\Order;
use Common\Business\Store;
use Common\Model\RetailVipChangeModel;
use Common\User\Cashier;
use Common\User\Manager;
//[1.8.50]
/**
* 会员变更记录类
* Class VipEditRecord
* @package Common\Order
*/
class VipChangeRecord
{
/**
* 获取会员变更记录
* @param $param
* $param['merchant_id'] 商户ID
* $param['store_id'] 指定查询的门店ID
* $param['get_vip_type'] 获取会员类型 1指定门店会员 2商户所有会员
* $param['start_time'] 开始时间
* $param['end_time'] 结束时间
* $param['keyword'] 会员关键词
* $param['page'] 页
* $param['limit'] 每页数量
* $param['need_count'] 是否需要统计数量
* @return mixed
*/
public function getRecordList($param)
{
$merchant_id = $param['merchant_id'];//商户ID
$get_vip_type = $param['get_vip_type'];//获取的会员类型 1指定门店会员 2商户所有会员
$store_id = $param['store_id'];//指定查询的门店ID
if (!$merchant_id || !$get_vip_type || $get_vip_type == 1 && !$store_id) {
return callBack(statusCode()['error'], '缺少必要参数,详情请见data', array(
'merchant_id' => $merchant_id,
'get_vip_type' => $get_vip_type,
'store_id' => $store_id,
));
}
$ChangeModel = new RetailVipChangeModel(); // 变更记录模型
// 判断时间搜索条件
if ($timeMap = handleSQLSearchTime($param['start_time'], $param['end_time'])) {
$map['c.add_time'] = $timeMap;
}
// 判断门店搜索条件
if ($store_id && $get_vip_type == 1) {
$map['c.store_id'] = $store_id;
}
// 判断姓名,昵称搜索
if (trim($param['keyword'])) {
$map['v.mobile_phone|v.card_key|v.name|v.nickname'] = ['like', '%' . trim($param['keyword']) . '%'];
}
// 其他查询条件
$map['v.status'] = ['neq', 2];//会员状态不为删除
$map['v.merchantid'] = $merchant_id;
//读取的字段
$field = ['c.*,v.name,v.nickname'];
$list = $ChangeModel->getLinkSelect($map, $field, $param['page'], $param['limit']);
$count = 0;//数据总条数
if ($list && $param['need_count']) {
$count = $ChangeModel->getLinkCount($map);
}
// 处理数据
$store_name = array();//临时存储门店名称列表
$manager_name = array();//临时存储店长名称列表
$cashier_name = array();//临时存储收银员名称列表
$Store = new Store();//门店类
$Manager = new Manager();//店长类
$Cashier = new Cashier();//收银员类
foreach ($list as $key => &$val) {
$val['index'] = $key + 1;
$val['name'] = $val['name'] && $val['name'] != '' ? $val['name'] : '未设置';
$val['nickname'] = $val['nickname'] && $val['nickname'] != '' ? $val['nickname'] : '未设置';
// 操作时间
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
// 操作门店
if ($val['store_id']) {
$val['store_name'] = $Store->getStoreName($val['store_id'], $store_name);
} else {
$val['store_name'] = '商户操作';
}
// 操作类型
switch ($val['operator']) {
case '1':
// 商户操作
$val['operator_type'] = '商户';
$val['operator_name'] = '商户';
break;
case '2':
// 店长操作
$val['operator_type'] = '店长';
$val['operator_name'] = $Manager->getManagerName($val['operator_id'], $manager_name);
break;
case '3':
// 收银员操作
$val['operator_type'] = '收银员';
$val['operator_name'] = $Cashier->getCashierName($val['operator_id'], $cashier_name);
break;
default:
// 未知类型
$val['operator_type'] = '其他';
$val['operator_name'] = '其他';
break;
}
//处理变更字段信息
// 手机号
if (($val['before_phone'] && $val['before_phone'] != '') || ($val['after_phone'] && $val['after_phone'] != '')) {
$val['before_phone'] = $val['before_phone'] && $val['before_phone'] != '' ? $val['before_phone'] : '未设置';
$val['after_phone'] = $val['after_phone'] && $val['after_phone'] != '' ? $val['after_phone'] : '解除手机号';
} else {
$val['before_phone'] = '';
$val['after_phone'] = '';
}
// 实体卡
if (($val['before_card_key'] && $val['before_card_key'] != '') || ($val['after_card_key'] && $val['after_card_key'] != '')) {
$val['before_card_key'] = $val['before_card_key'] && $val['before_card_key'] != '' ? $val['before_card_key'] : '未绑定实体卡';
$val['after_card_key'] = $val['after_card_key'] && $val['after_card_key'] != '' ? $val['after_card_key'] : '解绑实体卡';
} else {
$val['before_card_key'] = '';
$val['after_card_key'] = '';
}
// 等级
if (($val['before_grade'] && $val['before_grade'] != '') || ($val['after_grade'] && $val['after_grade'] != '')) {
$val['before_grade'] = $val['before_grade'] ? $val['before_grade'] : '无等级';
$val['after_grade'] = $val['after_grade'] ? $val['after_grade'] : '重置等级';
} else {
$val['before_grade'] = '';
$val['after_grade'] = '';
}
// 余额
if (($val['before_balance'] && floatval($val['before_balance']) != 0) || ($val['after_balance'] && floatval($val['after_balance']) != 0)) {
$val['before_balance'] = $val['before_balance'] && floatval($val['before_balance']) != 0 ? $val['before_balance'] : '0.00';
$val['after_balance'] = $val['after_balance'] && floatval($val['after_balance']) != 0 ? $val['after_balance'] : '0.00';
} else {
$val['before_balance'] = '';
$val['after_balance'] = '';
}
//PLUS会员结束时间
if ($val['before_plus_end_time'] || $val['after_plus_end_time']) {
$val['before_plus_end_time'] = newDate('Y-m-d H:i:s', $val['before_plus_end_time']);
$val['after_plus_end_time'] = newDate('Y-m-d H:i:s', $val['after_plus_end_time']);
} else {
$val['before_plus_end_time'] = '';
$val['after_plus_end_time'] = '';
}
// 密码
$val['password'] = $val['password_state'] == 0 ? '未修改' : '修改';
}
return callBack(statusCode()['success'], $list ? '获取数据成功' : '暂无数据', ['list' => $list, 'count' => $count]);
}
}