162 行
5.0 KiB
PHP
可执行文件
162 行
5.0 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace Retail\Business;
|
|
|
|
use Common\Business\Store;
|
|
use Common\Model\RetailVipWithLabelModel;
|
|
use Common\Model\VipAndPlusViewModel;
|
|
use Common\User\Guide;
|
|
use think\Exception;
|
|
|
|
use Common\Model\RetailPlusVipModel;
|
|
use Common\Model\RetailSmallProgramUserModel;
|
|
|
|
//[1.8.50]
|
|
|
|
/**
|
|
* 获取PLUS会员数据
|
|
* Class PlusVip
|
|
* getPlusVipList 获取Plus会员列表
|
|
* getPlusVipTotal 获取Plus会员统计
|
|
* @package Retail\Business
|
|
*/
|
|
class PlusVip
|
|
{
|
|
/**
|
|
* 获取PLUS会员列表
|
|
* @param $param
|
|
* $param['merchant_id'] 商户id
|
|
* $param['store_id'] 筛选的门店ID
|
|
* $param['keyword'] 会员搜索的关键词
|
|
* $param['status'] 会员状态
|
|
* $param['section'] 高级筛选条件
|
|
* $param['is_need_count'] 是否需要统计
|
|
* $param['user_type'] 场景 1商户 2门店
|
|
* @return array
|
|
*/
|
|
public function getPlusVipList($param)
|
|
{
|
|
$param['plus_type'] = 2;
|
|
$VipClass = new Vip();
|
|
$mapResult = $VipClass->handleVipMap($param);
|
|
$map = $mapResult['map'];
|
|
$VipAndPlusViewModel = new VipAndPlusViewModel();
|
|
if (!$param['is_export']) {
|
|
$plusList = $VipAndPlusViewModel->getSelect($map, '*', 'id desc', $param['page'] . ',' . $param['limit']);
|
|
} else {
|
|
$plusList = $VipAndPlusViewModel->getSelect($map, '*', 'id desc');
|
|
}
|
|
if (!empty($plusList)) {
|
|
$Guide = new Guide();
|
|
$guide_list = [];
|
|
$VipWithLabelModel = new RetailVipWithLabelModel();
|
|
$Store = new Store();
|
|
$store_name = [];//门店id和name数组 减少重复操作数据库查询
|
|
foreach ($plusList as $key => &$val) {
|
|
$val['index'] = $key + 1;
|
|
switch ($val['status']) {
|
|
case 1:
|
|
$val['state_name'] = '正常';
|
|
break;
|
|
case 3:
|
|
$val['state_name'] = '冻结';
|
|
break;
|
|
case 4:
|
|
$val['state_name'] = '挂失';
|
|
break;
|
|
}
|
|
$val['add_time'] = date('Y-m-d H:i:s', $val['addtime']);
|
|
$val['start_time'] = newDate('Y-m-d H:i:s', $val['start_time']);
|
|
$val['end_time'] = newDate('Y-m-d H:i:s', $val['end_time']);
|
|
// 显示导购员名称
|
|
if (!empty($val['guideid'])) {
|
|
$val['guide_name'] = $Guide->getGuideName($val['guideid'], $guide_list, 1);
|
|
}
|
|
$val['store_name'] = $Store->getStoreName($val['storeid'], $store_name);
|
|
|
|
if ($param['user_type'] == 2) {
|
|
// 获取会员标签--2020-05/07
|
|
$val['user_label'] = $VipWithLabelModel->getVipLabelName($val['vip_id'], $param['store_id']);
|
|
}
|
|
}
|
|
}
|
|
|
|
$data = [
|
|
'list' => $plusList,
|
|
];
|
|
if ($param['is_need_count']) {
|
|
$data['count'] = $VipAndPlusViewModel->getCount($map);
|
|
}
|
|
return callBack(statusCode()['success'], !empty($plusList) ? '数据获取成功' : '暂无数据', $data);
|
|
}
|
|
|
|
/**
|
|
* 获取Plus会员统计
|
|
* @param param
|
|
* [
|
|
* merchant_id 商户id
|
|
* store_id 门店id
|
|
* ]
|
|
* @param data
|
|
*/
|
|
public function getPlusVipTotal($param)
|
|
{
|
|
$param['sum'] = true;
|
|
$param['plus_type'] = 2;
|
|
$VipClass = new Vip();
|
|
$mapResult = $VipClass->handleVipMap($param);
|
|
$VipAndPlusViewModel = new VipAndPlusViewModel();
|
|
|
|
$yesterday_count = $VipAndPlusViewModel->getCount($mapResult['yesterdayMap']);
|
|
$last_week_count = $VipAndPlusViewModel->getCount($mapResult['lastWeekMap']);
|
|
|
|
$available_integral = $VipAndPlusViewModel->getSum($mapResult['map'], 'integral');
|
|
$available_balance = $VipAndPlusViewModel->getSum($mapResult['map'], 'balance');
|
|
|
|
return [
|
|
'status' => 1,
|
|
'message' => '获取成功',
|
|
'data' => [
|
|
'yesterday_count' => $yesterday_count,
|
|
'last_week_count' => $last_week_count,
|
|
'all_integral' => round($available_integral),
|
|
'all_balance' => round($available_balance, 2),
|
|
]
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 修改plus会员所属门店
|
|
* @param $where
|
|
* @param $save
|
|
* @return mixed
|
|
*/
|
|
public function plugVipStoreSave($where,$save){
|
|
//plus会员修改门店
|
|
|
|
$retailPlusVipModel = new RetailPlusVipModel();
|
|
|
|
$retailPlusVipModel->updateOrder($where,$save);
|
|
return true;
|
|
|
|
}
|
|
|
|
/**
|
|
* 修改小程序会员所属门店
|
|
* @param $where
|
|
* @param $save
|
|
* @return mixed
|
|
*/
|
|
public function xcxVipStoreSave($where,$save){
|
|
//plus会员修改门店
|
|
|
|
$retailSmallProgramUserModel = new RetailSmallProgramUserModel();
|
|
|
|
$retailSmallProgramUserModel->updateOrder($where,$save);
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
}
|