216 行
7.5 KiB
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' => '验证通过'];
|
|
}
|
|
} |