138 行
4.6 KiB
PHP
可执行文件
138 行
4.6 KiB
PHP
可执行文件
<?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;
|
||
}
|
||
}
|