文件
mashangyoujiu/Application/Common/Model/VipAndPlusViewModel.class.php

138 行
4.6 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace Common\Model;
//[1.8.20]
use Common\Business\Store;
use Common\Business\VipInfo;
class VipAndPlusViewModel extends BaseViewModel
{
public $viewFields = array(
'RetailVip' => array(
'_table' => 'ls_retail_vip',
'id', 'name', 'nickname', 'mobile_phone', 'plus_type', 'card_key', 'balance', 'integral', 'grade_integral', 'addtime' => 'add_time', 'merchantid', 'storeid' => 'store_id', 'status', 'plus_id', 'guideid',
'_type' => 'LEFT'
),
'RetailPlusVip' => array(
'_table' => 'ls_retail_plus_vip',
'vip_id', 'xcx_vip_id', 'start_time', 'end_time', 'storeid', 'state', 'addtime',
'_on' => 'RetailPlusVip.id = RetailVip.plus_id',
),
);
/**
* 多条排序查询(select)ram $map
* @param $map
* @param string $field
* @param string $order
* @param string $page
* @param string $limit
* @return bool|mixed
*/
public function getOrderSelect($map, $field = '*', $order = 'id desc', $page = '', $limit = '')
{
if (!$map) {
return false;
}
if (!$page || !$limit) {
$select = $this->field($field)->where($map)->order($order)->select();
} else {
$select = $this->field($field)->where($map)->order($order)->page($page, $limit)->select();
}
return $select;
}
/**
* 处理多条数据
* @param array $vip_data 原始数据
* @return array $vip_data 原始数据
*/
public function handleData($vip_data)
{
if (!$vip_data) {
return $vip_data;
}
// 实例化模型
$Store = new Store();
$store_name = [];
$RetailVipLabelModel = new RetailVipLabelModel();
$VipInfo = new VipInfo();
// 处理数据
foreach ($vip_data as $key => &$val) {
$val['index'] = $key + 1;
// 会员名称
$val['name'] = $val['name'] ? $val['name'] : '';
// 会员昵称
$val['nickname'] = $val['nickname'] ? $val['nickname'] : '';
$val['name'] = $val['name'] ? $val['name'] : $val['nickname'];
// 会员手机号
$val['mobile_phone'] = $val['mobile_phone'] ? $val['mobile_phone'] : '';
// 会员实体卡
$val['card_key'] = $val['card_key'] ? $val['card_key'] : '';
// 门店名称(普通会员)
$val['store_name'] = $Store->getStoreName($val['store_id'], $store_name);
$val['plus_store_name'] = $val['store_name'];
// 等级名称
if ($val['plus_type'] == 3) {
$grade_info = $VipInfo->singleVipGrade([
'merchant_id' => $val['merchantid'],
'grade_integral' => $val['grade_integral'],
'get_default' => true,
]);
$val['grade'] = $grade_info['grade_name'];
$val['grade_id'] = $grade_info['id'];
} else {
$val['grade'] = "Plus会员";
$val['grade_id'] = 0;
}
// 余额
$val['balance'] = $val['balance'] ? floatval($val['balance']) : 0;
// 积分
$val['integral'] = $val['integral'] ? floatval($val['integral']) : 0;
// 时间
$val['add_time'] = date('Y-m-d', $val['plus_type'] == 2 ? $val['addtime'] : $val['add_time']);
unset($val['addtime']);
// 状态
switch ($val['status']) {
case 1:
$val['status_name'] = '正常';
break;
case 2:
$val['status_name'] = '已删除';
break;
case 3:
$val['status_name'] = '冻结';
break;
case 4:
$val['status_name'] = '挂失';
break;
default:
$val['status_name'] = '未知';
}
if ($val['end_time']) {
$val['end_time'] = date('Y-m-d H:i:s', $val['end_time']);
} else {
$val['end_time'] = '';
}
//会员标签
$label_map = [
'rvwl.is_del' => 1,
'rvl.is_del' => 1,
'vid' => $val['id'],
];
$label_field = [
'rvl.name',
];
$val['label_list'] = $RetailVipLabelModel->getUserLabelList($label_map, $label_field);
}
return $vip_data;
}
}