文件
mashangyoujiu/Application/Common/Business/VipRechargeRecord.class.php

216 行
7.5 KiB
PHP
可执行文件

<?php
namespace Common\Business;
use Common\Model\RetailRechargeOrderModel;
//[1.7.14]
/**
* 会员充值记录类
* Class VipRechargeRecord
* [
* 会员的充值次数 vipRechargeNum
* 会员充值记录列表 getVipRechargeRecordList
* 会员充值记录列表参数验证 VipRechargeRecordVerify
* 会员充值记录列表的where条件 getVipRechargeRecordTerm
* ]
* @package Common\Business
*/
class VipRechargeRecord
{
/**
* 会员的充值次数
* @param $param
* [
* merchant_id
* store_id
* vip_id 会员id
* activity_id 活动id
* ]
* @return int
* [
* data 充值次数
* ]
*/
public function vipRechargeNum($param)
{
$where = [
'merchant_id' => $param['merchant_id'],
'store_id' => $param['store_id'],
'vid' => $param['vip_id'],
'status' => 1,
'vip_recharge_id' => $param['activity_id']
];
try {
$OrderModel = new RetailRechargeOrderModel();
$num = $OrderModel->getCount($where);
return callBack(statusCode()['success'], "会员的充值次数查询成功", $num);
} catch (\Exception $e) {
return callBack(statusCode()['error'], "会员的充值次数查询失败");
}
}
/**
* 会员充值记录列表
* @param $parameter
* [
* user_type 1商户 2门店
* request_type 1web端 2移动端
* merchant_id
* store_id
* searchText 会员名称 手机号
* scene_type 1收银机 2商户后台 3门店后台 4小程序 5公众号
* repay_name 0:直接到账 1:分期到账
* start_time 开始时间 移动端
* end_time 结束时间 移动端
* page
* limit
* ]
* @return array
* [
* status
* message
* data=>[
* list 记录列表
* count 总条数
* ]
* ]
*/
public function getVipRechargeRecordList($parameter)
{
$result = $this->VipRechargeRecordVerify($parameter); //参数验证
if ($result['status'] != 1) {
return $result; //验证失败返回
}
$page = $parameter['page'] ? $parameter['page'] : 1;
$limit = $parameter['limit'] ? $parameter['limit'] : 10;
$where = $this->getVipRechargeRecordTerm($parameter); //查询条件
$fields = 'r.add_time,r.money,r.all_money,r.give_money,r.repay_name,r.scene_type,v.mobile_phone,v.card_key,v.name,v.nickname,s.storetag';
try {
$vipRechargeRecordModel = new RetailRechargeOrderModel();
$list = $vipRechargeRecordModel->getVipRechargeRecordList($fields, $where, $page, $limit);
} catch (\Exception $e) {
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => [], 'count' => 0]];
}
if ($list) {
$count = $vipRechargeRecordModel->getVipRechargeRecordCount($where); //获取记录总条数
foreach ($list as &$val) {
$val['money'] = round($val['money'], 2);
$val['all_money'] = round($val['all_money'], 2);
$val['give_money'] = round($val['give_money'], 2);
$val['name'] = $val['name'] ? $val['name'] : $val['nickname'];
$val['mobile_phone'] = $val['mobile_phone'] ? $val['mobile_phone'] : $val['card_key'];
$val['add_time'] = date('Y-m-d H:i:s', $val['add_time']);
switch ($val['repay_name']) {
case 0:
$val['repay_name'] = '直接到账';
break;
case 1:
$val['repay_name'] = '分期到账';
break;
}
switch ($val['scene_type']) {
case 1:
$val['scene_name'] = '收银机';
break;
case 2:
$val['scene_name'] = '商户后台';
break;
case 3:
$val['scene_name'] = '门店后台';
break;
case 4:
$val['scene_name'] = '小程序';
break;
case 5:
$val['scene_name'] = '公众号';
break;
case 6:
$val['scene_name'] = '小助手';
break;
}
}
}
return ['status' => 1, 'message' => '查询成功', 'data' => ['list' => $list, 'count' => $count ? $count : 0]];
}
/**
* 会员充值记录列表的where条件
* @param $parameter
* [
* user_type 1商户 2门店
* request_type 1web端 2移动端
* merchant_id
* store_id
* searchText 会员名称 手机号
* scene_type 1收银机 2商户后台 3门店后台 4小程序 5公众号
* repay_name 0:直接到账 1:分期到账
* start_time 开始时间 移动端
* end_time 结束时间 移动端
* ]
* @return array
*/
public function getVipRechargeRecordTerm($parameter)
{
$where = [
'r.merchant_id' => $parameter['merchant_id'],
'r.status' => 1,
'r.state' => 1,
'r.refund_status' => 1,
'r.type' => array('in', '1,3')
];
switch ($parameter['user_type']) {
case 2:
//门店
$where['r.store_id'] = $parameter['store_id'];
break;
}
if (!empty($parameter['searchText'])) {
$where['v.name|v.nickname|v.mobile_phone|v.card_key'] = ['like', "%{$parameter['searchText']}%"];
}
if (!empty($parameter['scene_type'])) {
$where['r.scene_type'] = ['in', $parameter['scene_type']];
}
if (in_array($parameter['repay_name'], [0, 1]) && $parameter['repay_name'] != '') {
$where['r.repay_name'] = $parameter['repay_name'];
}
switch ($parameter['request_type']) {
case 2:
//移动端
$start_time = $parameter['start_time'] ? strtotime($parameter['start_time']) : '';
$end_time = $parameter['end_time'] ? strtotime($parameter['end_time']) : '';
break;
}
if (!empty($start_time) && !empty($end_time)) {
$where['r.add_time'] = ['between', [$start_time, $end_time]];
} else if (!empty($start_time)) {
$where['r.add_time'] = ['egt', $start_time];
} else if (!empty($end_time)) {
$where['r.add_time'] = ['elt', $end_time];
}
return $where;
}
/**
* 会员充值记录列表参数验证
* @param $parameter
* [
* user_type 1商户 2门店
* request_type 1web端 2移动端
* merchant_id
* store_id
* ]
* @return array
*/
public function VipRechargeRecordVerify($parameter)
{
if (!in_array($parameter['request_type'], [1, 2]) || !in_array($parameter['user_type'], [1, 2]) || empty($parameter['merchant_id']) || ($parameter['user_type'] == 2 && empty($parameter['store_id']))) {
return ['status' => 0, 'message' => '未知请求来源'];
}
return ['status' => 1, 'message' => '验证通过'];
}
}