文件
mashangyoujiu/Application/Retail/Business/PlusVip.class.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;
}
}