1321 lines
39 KiB
PHP
1321 lines
39 KiB
PHP
<?php
|
||
|
||
/**
|
||
* Created by PhpStorm.
|
||
* User: win7
|
||
* Date: 2017-07-04
|
||
* Time: 14:52
|
||
*/
|
||
class card extends BaseMethod
|
||
{
|
||
|
||
/**
|
||
* 为玩家充卡
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function addCard($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agent_id = @$request_data['agentid'];
|
||
$open_id = @$request_data['openid'];
|
||
$player_id = @$request_data['playerid'];
|
||
$amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0;
|
||
$channel_id = @$request_data['channelid'];
|
||
$from_sales = @$request_data['fromsales']; /// 来源代理号
|
||
|
||
if (empty($agent_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($open_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($player_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_PLAYERIDERROR, ERRORINFO_PLAYERIDERROR);
|
||
return false;
|
||
}
|
||
if ($amount <= 0)
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR);
|
||
return false;
|
||
}
|
||
if (empty($channel_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($from_sales))
|
||
{
|
||
$sql = 'select saus_salesid from sales_user where saus_agentid = ? and saus_channelid = ? and saus_openid = ?;';
|
||
$sales_info = $this->PDO_Request($sql, $agent_id, $channel_id, $open_id);
|
||
$from_sales = $sales_info[0]['saus_salesid'];
|
||
//$outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR);
|
||
//return false;
|
||
}
|
||
|
||
$this->PDO_BeginTransaction();
|
||
try
|
||
{
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
saus_roomcard,
|
||
saus_salesid as mysalesid,
|
||
saus_power as salespower,
|
||
saus_status,
|
||
saus_invitecode,
|
||
saus_salesman,
|
||
user_id,
|
||
player_id
|
||
from
|
||
sales_user
|
||
where
|
||
saus_agentid = ? and saus_channelid = ? and saus_salesid = ?
|
||
EOL;
|
||
|
||
$dbSalesInfo = $this->PDO_Request($command, $agent_id, $channel_id, $from_sales);
|
||
if (!is_array($dbSalesInfo))
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
if (count($dbSalesInfo) < 1)
|
||
throw new Exception(ERRORINFO_SALESIDERROR, ERRORCODE_SALESIDERROR);
|
||
|
||
if (intval($dbSalesInfo[0]['saus_status']) == 1)
|
||
throw new Exception(ERRORINFO_SALESCLOSEERROR, ERRORCODE_SALESCLOSEERROR);
|
||
|
||
if (intval($dbSalesInfo[0]['saus_salesman']) == 0)
|
||
throw new Exception(ERRORINFO_NOTSALESERROR, ERRORCODE_NOTSALESERROR);
|
||
|
||
$user_id = $dbSalesInfo[0]['user_id'];
|
||
if (empty($user_id))
|
||
{
|
||
if ($dbSalesInfo[0]['saus_roomcard'] < $amount)
|
||
throw new Exception(ERRORINFO_ROOMCARDENOUGHERROR, ERRORCODE_ROOMCARDENOUGHERROR);
|
||
}
|
||
else
|
||
{
|
||
$user_info = $this->pdo_request(/** @lang text */'select card, enabled from ct_user_account where agent_id = ? and channel_id = ? and user_id = ?',
|
||
$agent_id, $channel_id, $user_id);
|
||
if (empty($user_info))
|
||
throw new Exception(ERRORINFO_SALESNOTEXISTERROR, ERRORCODE_SALESNOTEXISTERROR);
|
||
|
||
if (0 == $user_info[0]['enabled']) /// 判断状态
|
||
throw new Exception(ERRORINFO_SALESCLOSEERROR, ERRORCODE_SALESCLOSEERROR);
|
||
|
||
if ($user_info[0]['card'] < $amount) /// 房卡存量
|
||
throw new Exception(ERRORINFO_ROOMCARDENOUGHERROR, ERRORCODE_ROOMCARDENOUGHERROR);
|
||
}
|
||
|
||
$salePower = $dbSalesInfo[0]['salespower'];
|
||
if (empty($salePower))
|
||
{
|
||
$dbAgentInfo = $this->PDO_Request(/** @lang text */ 'select agen_salespower from agent where agen_agentid = ?;', $agent_id);
|
||
if (!is_array($dbAgentInfo) || count($dbAgentInfo) < 1)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
$salePower = $dbAgentInfo[0]['agen_salespower'];
|
||
}
|
||
|
||
/// 这里校验用户信息的有效性
|
||
$dbPlayerInfo = $this->PDO_Request(/** @lang text */
|
||
'select play_invitecode as playerinvitecode, play_unionid from player where play_agentid = ? and play_channelid=? and play_playerid = ?',
|
||
$agent_id, $channel_id, $player_id);
|
||
//if (!is_array($dbPlayerInfo))
|
||
if (!$this->PDO_IsDone())
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
elseif (empty($dbPlayerInfo))
|
||
throw new Exception(ERRORINFO_PLAYER_NOT_EXISTS, ERRORCODE_PLAYER_NOT_EXISTS);
|
||
|
||
switch (intval(substr($salePower, 1, 1)))
|
||
{
|
||
case 0: /// 无权限
|
||
throw new Exception(ERRORINFO_NOPOWERERROR, ERRORCODE_NOPOWERERROR);
|
||
break;
|
||
|
||
case 1: /// 需要判断是否绑定自己
|
||
if($player_id == $dbSalesInfo[0]['player_id']) {
|
||
break;
|
||
}
|
||
elseif ($dbPlayerInfo[0]['playerinvitecode'] != $from_sales)
|
||
{
|
||
$playerSalesInfo = $this->GetHelper()->PDO_Request(
|
||
'select saus_invitecode from sales_user where saus_agentid=? and saus_channelid=? and saus_unionid=?;',
|
||
$agent_id, $channel_id, $dbPlayerInfo[0]['play_unionid']);
|
||
|
||
if (!is_array($playerSalesInfo) || count($playerSalesInfo) < 1)
|
||
throw new Exception(ERRORINFO_ONLYBINDSELFERROR, ERRORCODE_ONLYBINDSELFERROR);
|
||
|
||
if ($playerSalesInfo[0]['saus_invitecode'] != $from_sales)
|
||
throw new Exception(ERRORINFO_ONLYBINDSELFERROR, ERRORCODE_ONLYBINDSELFERROR);
|
||
}
|
||
break;
|
||
|
||
case 2: /// 可以给所有玩家转卡
|
||
break;
|
||
|
||
default:
|
||
throw new Exception(ERRORINFO_NOPOWERERROR, ERRORCODE_NOPOWERERROR);
|
||
break;
|
||
}
|
||
|
||
/// 加入充卡记录
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'insert into sales_sellbill(sase_agentid, sase_openid, sase_playerid, sase_amount, sase_selltime, channel_id, from_sales) values(?, ?, ?, ?, ?, ?, ?);',
|
||
$agent_id, $open_id, $player_id, $amount, date('Y-m-d H:i:s', time()), $channel_id, $from_sales);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 当传入了用户id的时候,则需要更新用户账户表中的数据
|
||
if (!empty($user_id))
|
||
{
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update ct_user_account set card = card - ? where agent_id = ? and channel_id = ? and user_id = ?',
|
||
$amount, $agent_id, $channel_id, $user_id);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 如果当前代理子账户余额不足,则扣除绑定的其他子账户中的房卡
|
||
if ($dbSalesInfo[0]['saus_roomcard'] < $amount)
|
||
{
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = 0 where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$agent_id, $channel_id, $from_sales);
|
||
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 扣除掉其他绑定了同一个账号的子代理账号
|
||
$need_amount = $amount - $dbSalesInfo[0]['saus_roomcard'];
|
||
$command = /** @lang text */<<<EOL
|
||
|
||
update
|
||
sales_user a,
|
||
(
|
||
select
|
||
_u.idx,
|
||
_u.saus_salesid,
|
||
_u.saus_roomcard,
|
||
if(@c + _u.saus_roomcard < {$need_amount}, @n := _u.saus_roomcard, @n := {$need_amount} - @c) n,
|
||
if(@c + _u.saus_roomcard < {$need_amount}, @c := @c + _u.saus_roomcard, @c := {$need_amount}) c
|
||
from
|
||
sales_user _u,
|
||
(select @n := 0) _n,
|
||
(select @c := 0) _c
|
||
where
|
||
_u.saus_agentid = ? and _u.saus_channelid = ? and _u.user_id = ? and
|
||
@c < {$need_amount}
|
||
order by
|
||
_u.idx
|
||
) b
|
||
set
|
||
a.saus_roomcard = a.saus_roomcard - b.n
|
||
where
|
||
a.idx = b.idx
|
||
|
||
EOL;
|
||
|
||
if (!$this->pdo_execute($command, $agent_id, $channel_id, $user_id))
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
else
|
||
{
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = saus_roomcard - ? where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$amount, $agent_id, $channel_id, $from_sales);
|
||
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
}
|
||
else
|
||
{
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = saus_roomcard - ? where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$amount, $agent_id, $channel_id, $from_sales);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
|
||
/// 记录日志
|
||
$log_res = $this->PDO_Execute(/** @lang text */
|
||
'insert into ct_user_process_log(from_agent, from_channel, from_user, to_agent, to_channel, to_user, oper_type, oper_data, remark, oper_time, is_process) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)',
|
||
$agent_id, $channel_id, $from_sales, $agent_id, $channel_id, $player_id, 2, $amount, '', time(), 0);
|
||
|
||
if (!$log_res)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
$this->PDO_Commit();
|
||
}
|
||
catch(Exception $e)
|
||
{
|
||
$this->PDO_Rollback();
|
||
$outParam->SetErrors($e->GetCode(), $e->GetMessage());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array(
|
||
'state' => 0,
|
||
'roomcard' => ($dbSalesInfo[0]['saus_roomcard'] - $amount),
|
||
'amount' => $amount,
|
||
'playerid' => $player_id,
|
||
'playername' => $player_id,
|
||
'playerroomcard' => 0,
|
||
);
|
||
return true;
|
||
}
|
||
|
||
|
||
/**
|
||
* 获取充卡名单
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function addList($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agentID = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
if (empty($agentID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$openID = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
if (empty($openID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$addList = $this->PDO_Request(
|
||
'call cp_sales_get_topupname(?,?);',
|
||
$agentID,
|
||
$openID
|
||
);
|
||
|
||
if (!is_array($addList) || count($addList) < 1)
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array(
|
||
'state' => 0,
|
||
'players' => $addList,
|
||
);
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 代理后台查询给玩家的充卡记录
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function addRecord($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agent_id = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
$channel_id = isset($request_data['channelid']) ? $request_data['channelid'] : '';
|
||
//$open_id = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
$begin_time = isset($request_data['begintime']) ? $request_data['begintime'] : '';
|
||
$end_time = isset($request_data['endtime']) ? $request_data['endtime'] : '';
|
||
$page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']);
|
||
$page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']);
|
||
|
||
$sales_id = @$request_data['salesid']; /// 代理号
|
||
$user_id = @$request_data['userid']; /// 用户编号(新用户表,绑定手机后自动生成。)
|
||
|
||
if (empty($agent_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
|
||
if ($begin_time > $end_time)
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR);
|
||
return false;
|
||
}
|
||
|
||
if (empty($user_id)) /// 如果没有userid,则按原方式获取记录
|
||
{
|
||
$str_time = '';
|
||
$array_param = array($agent_id, $channel_id, $sales_id, );
|
||
if (!empty($begin_time))
|
||
{
|
||
$str_time .= ' and date_format(a.sase_selltime, \'%Y-%m-%d\') >= ? ';
|
||
$array_param[] = $begin_time;
|
||
}
|
||
if (!empty($end_time))
|
||
{
|
||
$str_time .= ' and date_format(a.sase_selltime, \'%Y-%m-%d\') <= ? ';
|
||
$array_param[] = $end_time;
|
||
}
|
||
|
||
$start = ($page_index - 1) * $page_size;
|
||
|
||
$strPage = '';
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
$strPage .= " limit {$start},{$page_size} ";
|
||
}
|
||
|
||
/// 转卡流水
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
date_format(a.sase_selltime, '%Y-%m-%d %H:%i') time,
|
||
a.sase_playerid playerid,
|
||
d.play_nickname name,
|
||
d.play_avatar avatar,
|
||
a.sase_amount amount
|
||
from
|
||
sales_sellbill a
|
||
inner join
|
||
sales_user b
|
||
on
|
||
a.sase_agentid = b.saus_agentid and
|
||
a.channel_id = b.saus_channelid and
|
||
a.from_sales = b.saus_salesid
|
||
left join
|
||
sales_user c
|
||
on
|
||
a.sase_agentid = c.saus_agentid and
|
||
a.channel_id = c.saus_channelid and
|
||
a.sase_playerid = c.player_id
|
||
left join
|
||
player d
|
||
on
|
||
a.sase_agentid = d.play_agentid and
|
||
a.channel_id = d.play_channelid and
|
||
a.sase_playerid = d.play_playerid
|
||
where
|
||
#ifnull(b.statistic_type, 0) = 0 and
|
||
#ifnull(c.statistic_type, 0) = 0 and
|
||
a.sase_agentid = ? and
|
||
a.channel_id = ? and
|
||
a.from_sales = ? {$str_time}
|
||
order by
|
||
a.sase_selltime desc
|
||
{$strPage}
|
||
|
||
EOL;
|
||
|
||
$record = $this->PDO_Request($command, $array_param);
|
||
|
||
if (!$this->pdo_isdone())
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = 1;
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
/// 流水总条数
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
count(0) num
|
||
from
|
||
sales_sellbill a
|
||
inner join
|
||
sales_user b
|
||
on
|
||
a.sase_agentid = b.saus_agentid and
|
||
a.channel_id = b.saus_channelid and
|
||
a.from_sales = b.saus_salesid
|
||
left join
|
||
sales_user c
|
||
on
|
||
a.sase_agentid = c.saus_agentid and
|
||
a.channel_id = c.saus_channelid and
|
||
a.sase_playerid = c.player_id
|
||
left join
|
||
player d
|
||
on
|
||
a.sase_agentid = d.play_agentid and
|
||
a.channel_id = d.play_channelid and
|
||
a.sase_playerid = d.play_playerid
|
||
where
|
||
#ifnull(b.statistic_type, 0) = 0 and
|
||
#ifnull(c.statistic_type, 0) = 0 and
|
||
a.sase_agentid = ? and
|
||
a.channel_id = ? and
|
||
a.from_sales = ? {$str_time}
|
||
EOL;
|
||
|
||
$dbData = $this->PDO_Request($command, $array_param);
|
||
if (!$this->pdo_isdone() || count($dbData) < 1)
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = intval($dbData[0]['num']) / $page_size + 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
$str_time = '';
|
||
$array_param = array($agent_id, $channel_id, $user_id, );
|
||
if (!empty($begin_time))
|
||
{
|
||
$str_time .= ' and date_format(a.sase_selltime, \'%Y-%m-%d\') >= ? ';
|
||
$array_param[] = $begin_time;
|
||
}
|
||
if (!empty($end_time))
|
||
{
|
||
$str_time .= ' and date_format(a.sase_selltime, \'%Y-%m-%d\') <= ? ';
|
||
$array_param[] = $end_time;
|
||
}
|
||
|
||
$start = ($page_index - 1) * $page_size;
|
||
|
||
$strPage = '';
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
$strPage .= " limit {$start},{$page_size} ";
|
||
}
|
||
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
date_format(a.sase_selltime, '%Y-%m-%d %H:%i') time,
|
||
a.sase_playerid playerid,
|
||
d.play_nickname name,
|
||
d.play_avatar avatar,
|
||
a.sase_amount amount
|
||
from
|
||
sales_sellbill a
|
||
inner join
|
||
sales_user b
|
||
on
|
||
a.sase_agentid = b.saus_agentid and
|
||
a.channel_id = b.saus_channelid and
|
||
a.from_sales = b.saus_salesid
|
||
left join
|
||
sales_user c
|
||
on
|
||
a.sase_agentid = c.saus_agentid and
|
||
a.channel_id = c.saus_channelid and
|
||
a.sase_playerid = c.player_id
|
||
left join
|
||
player d
|
||
on
|
||
a.sase_agentid = d.play_agentid and
|
||
a.channel_id = d.play_channelid and
|
||
a.sase_playerid = d.play_playerid
|
||
where
|
||
ifnull(b.statistic_type, 0) = 0 and
|
||
ifnull(c.statistic_type, 0) = 0 and
|
||
a.sase_agentid = ? and
|
||
a.channel_id = ? and
|
||
b.user_id = ? {$str_time}
|
||
order by
|
||
a.sase_selltime desc
|
||
{$strPage}
|
||
|
||
EOL;
|
||
|
||
$record = $this->PDO_Request($command, $array_param);
|
||
if (!$this->pdo_isdone())
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = 1;
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
count(0) num
|
||
from
|
||
sales_sellbill a
|
||
inner join
|
||
sales_user b
|
||
on
|
||
a.sase_agentid = b.saus_agentid and
|
||
a.channel_id = b.saus_channelid and
|
||
a.from_sales = b.saus_salesid
|
||
left join
|
||
sales_user c
|
||
on
|
||
a.sase_agentid = c.saus_agentid and
|
||
a.channel_id = c.saus_channelid and
|
||
a.sase_playerid = c.player_id
|
||
left join
|
||
player d
|
||
on
|
||
a.sase_agentid = d.play_agentid and
|
||
a.channel_id = d.play_channelid and
|
||
a.sase_playerid = d.play_playerid
|
||
where
|
||
ifnull(b.statistic_type, 0) = 0 and
|
||
ifnull(c.statistic_type, 0) = 0 and
|
||
a.sase_agentid = ? and
|
||
a.channel_id = ? and
|
||
b.user_id = ? {$str_time}
|
||
EOL;
|
||
|
||
$dbData = $this->PDO_Request($command, $array_param);
|
||
if (!$this->pdo_isdone() || count($dbData) < 1)
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = intval($dbData[0]['num']) / $page_size + 1;
|
||
}
|
||
}
|
||
|
||
|
||
$outParam->biz_content = array(
|
||
'detail' => $record,
|
||
'page_index' => $page_index,
|
||
'page_size' => $page_size,
|
||
'page_count' => $page_count,
|
||
);
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 获取购卡记录
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function buyCardRecord($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agentID = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
if (empty($agentID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$openID = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
if (empty($openID))
|
||
{
|
||
/*$outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR);
|
||
return false;*/
|
||
}
|
||
$str_time = '';
|
||
$array_param = array(
|
||
$agentID,
|
||
$openID,
|
||
);
|
||
|
||
$beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : '';
|
||
if (!empty($beginTime))
|
||
{
|
||
$str_time .= ' and date_format(sabu_paytime, \'%Y-%m-%d\') >= ? ';
|
||
$array_param[] = $beginTime;
|
||
}
|
||
|
||
$endTime = isset($request_data['endtime']) ? $request_data['endtime'] : '';
|
||
if (!empty($endTime))
|
||
{
|
||
$str_time .= ' and date_format(sabu_paytime, \'%Y-%m-%d\') <= ? ';
|
||
$array_param[] = $endTime;
|
||
}
|
||
|
||
if ($beginTime > $endTime)
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR);
|
||
return false;
|
||
}
|
||
|
||
// 查询类型 0-玩家购买 1-代理购买
|
||
$type = isset($request_data['type']) ? $request_data['type'] : 0;
|
||
|
||
if($type == 1) {
|
||
$record = $this->PDO_Request(/** @lang text */
|
||
"select
|
||
date_format(sabu_paytime, '%Y-%m-%d %H:%i') as time, sabu_paymoney as money, sabu_amount as amount
|
||
from
|
||
sales_buybill
|
||
where
|
||
sabu_agentid = ? and sabu_openid = ? and sabu_billtype = 1 and sabu_paystate = 1 {$str_time}
|
||
order by time desc limit 50;", $array_param);
|
||
} else {
|
||
|
||
$record = $this->PDO_Request(/** @lang text */
|
||
"select
|
||
date_format(sabu_paytime, '%Y-%m-%d %H:%i') as time, sabu_playerid as playerid, sabu_paymoney as money, sabu_amount as amount
|
||
from
|
||
sales_buybill
|
||
where
|
||
sabu_agentid = ? and sabu_openid = ? and sabu_billtype = 0 and sabu_paystate = 1 {$str_time}
|
||
order by time desc limit 50;", $array_param);
|
||
}
|
||
|
||
|
||
if (!is_array($record))
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array('detail' => $record);
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 给个人代理转卡
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function transCard($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agent_id = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
$channel_id = isset($request_data['channelid']) ? $request_data['channelid'] : '';
|
||
$open_id = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
$sales_id = isset($request_data['salesid']) ? $request_data['salesid'] : '';
|
||
$amount = isset($request_data['amount']) ? intval($request_data['amount']) : 0;
|
||
|
||
$from_sales = @$request_data['fromsales']; /// 来源代理号
|
||
|
||
if (empty($agent_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($channel_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_CHANNELIDERROR, ERRORINFO_CHANNELIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($sales_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR);
|
||
return false;
|
||
}
|
||
if (empty($amount))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AMOUNTERROR, ERRORINFO_AMOUNTERROR);
|
||
return false;
|
||
}
|
||
if (empty($from_sales))
|
||
{
|
||
$sql = /** @lang text */'select saus_salesid from sales_user where saus_agentid = ? and saus_channelid = ? and saus_openid = ?;';
|
||
$sales_info = $this->PDO_Request($sql, $agent_id, $channel_id, $open_id);
|
||
$from_sales = $sales_info[0]['saus_salesid'];
|
||
//$outParam->SetErrors($from_sales, ERRORINFO_SALESIDERROR);
|
||
//return false;
|
||
}
|
||
|
||
$this->PDO_BeginTransaction();
|
||
try
|
||
{
|
||
//$dbAgentInfo = $this->PDO_Request(/** @lang text */
|
||
// 'select agen_salespower as agentsalespower from agent where agen_agentid = ?;', $agent_id);
|
||
$dbAgentInfo = $this->PDO_Request(/** @lang text */
|
||
'select default_sales_power as agentsalespower from ct_agent_list where agent_id = ?;', $agent_id);
|
||
if (!is_array($dbAgentInfo) || count($dbAgentInfo) < 1)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
saus_salesid salesid,
|
||
saus_power salespower,
|
||
saus_roomcard roomcard,
|
||
saus_status,
|
||
saus_salesman,
|
||
user_id
|
||
from
|
||
sales_user
|
||
where
|
||
saus_agentid = ? and saus_channelid = ? and saus_salesid = ?
|
||
EOL;
|
||
$dbSalesInfo = $this->PDO_Request($command, $agent_id, $channel_id, $from_sales);
|
||
if (!is_array($dbSalesInfo) || count($dbSalesInfo) < 1)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
if (intval($dbSalesInfo[0]['saus_status']) == 1)
|
||
throw new Exception(ERRORINFO_SALESCLOSEERROR, ERRORCODE_SALESCLOSEERROR);
|
||
|
||
if (intval($dbSalesInfo[0]['saus_salesman']) == 0)
|
||
throw new Exception(ERRORINFO_NOTSALESERROR, ERRORCODE_NOTSALESERROR);
|
||
|
||
$user_id = $dbSalesInfo[0]['user_id'];
|
||
if (empty($user_id))
|
||
{
|
||
if (intval($dbSalesInfo[0]['roomcard']) < $amount)
|
||
throw new Exception(ERRORINFO_AMOUNTERROR, ERRORCODE_AMOUNTERROR);
|
||
$room_card = $dbSalesInfo[0]['roomcard'];
|
||
}
|
||
else
|
||
{
|
||
$user_info = $this->pdo_request(/** @lang text */
|
||
'select card, enabled from ct_user_account where agent_id = ? and channel_id = ? and user_id = ?',
|
||
$agent_id, $channel_id, $user_id);
|
||
if (empty($user_info))
|
||
throw new Exception(ERRORINFO_SALESNOTEXISTERROR, ERRORCODE_SALESNOTEXISTERROR);
|
||
|
||
if (0 == $user_info[0]['enabled']) /// 判断状态
|
||
throw new Exception(ERRORINFO_SALESCLOSEERROR, ERRORCODE_SALESCLOSEERROR);
|
||
|
||
if ($user_info[0]['card'] < $amount) /// 房卡存量
|
||
throw new Exception(ERRORINFO_AMOUNTERROR, ERRORCODE_AMOUNTERROR);
|
||
|
||
$room_card = $user_info[0]['card'];
|
||
}
|
||
|
||
/// 要转到的代理信息
|
||
$to_sales = $this->pdo_request(/** @lang text */
|
||
'select idx, user_id, saus_salesid, saus_nickname, saus_roomcard, saus_invitecode, saus_parentid from sales_user where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?',
|
||
$agent_id, $channel_id, $sales_id
|
||
);
|
||
if (!$this->pdo_isdone())
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
if (empty($to_sales))
|
||
throw new Exception(ERRORINFO_INVITECODE_NOT_EXISTS, ERRORCODE_INVITECODE_NOT_EXISTS);
|
||
else
|
||
$to_sales = $to_sales[0];
|
||
|
||
$salePower = $dbSalesInfo[0]['salespower'];
|
||
if (empty($salePower))
|
||
{
|
||
//$dbAgentInfo = $this->PDO_Request(/** @lang text */'select agen_salespower from agent where agen_agentid = ?;', $agent_id);
|
||
$dbAgentInfo = $this->PDO_Request(/** @lang text */'select default_sales_power as agen_salespower from ct_agent_list where agent_id = ?;', $agent_id);
|
||
if (!is_array($dbAgentInfo) || count($dbAgentInfo) < 1)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
$salePower = $dbAgentInfo[0]['agen_salespower'];
|
||
}
|
||
|
||
switch (intval(substr($salePower, 0, 1)))
|
||
{
|
||
case 0: /// 无权限
|
||
throw new Exception(ERRORINFO_NOPOWERERROR, ERRORCODE_NOPOWERERROR);
|
||
break;
|
||
|
||
case 1: /// 需要判断是否绑定自己
|
||
if ($to_sales['saus_parentid'] != $from_sales)
|
||
throw new Exception(ERRORINFO_ONLYBINDSELFERROR, ERRORCODE_ONLYBINDSELFERROR);
|
||
break;
|
||
|
||
case 2: /// 可以给所有代理转卡
|
||
break;
|
||
|
||
default:
|
||
throw new Exception(ERRORINFO_NOPOWERERROR, ERRORCODE_NOPOWERERROR);
|
||
break;
|
||
}
|
||
|
||
/// 加入转卡记录
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'insert into sales_transferbill(satr_agentid,satr_openid,channel_id,from_sales,satr_salesid,satr_amount,satr_transfertime) values(?, ?, ?, ?, ?, ?, now());',
|
||
$agent_id, $open_id, $channel_id, $from_sales, $sales_id, $amount);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 当传入了用户id的时候,则需要更新用户账户表中的数据
|
||
if (!empty($user_id))
|
||
{
|
||
/// 多判断一次数量是否足够
|
||
$ret = $this->pdo_request(/** @lang text */
|
||
'select card from ct_user_account where agent_id = ? and channel_id = ? and user_id = ?',
|
||
$agent_id, $channel_id, $user_id);
|
||
if (!$this->pdo_isdone())
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
if ($ret[0]['card'] < $amount)
|
||
throw new Exception(ERRORINFO_AMOUNTERROR, ERRORCODE_AMOUNTERROR);
|
||
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update ct_user_account set card = card - ? where agent_id = ? and channel_id = ? and user_id = ?',
|
||
$amount, $agent_id, $channel_id, $user_id);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 如果当前代理子账户余额不足,则扣除绑定的其他子账户中的房卡
|
||
if ($dbSalesInfo[0]['roomcard'] < $amount)
|
||
{
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = 0 where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$agent_id, $channel_id, $from_sales);
|
||
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
/// 扣除掉其他绑定了同一个账号的子代理账号
|
||
$need_amount = $amount - $dbSalesInfo[0]['roomcard'];
|
||
$command = /** @lang text */<<<EOL
|
||
|
||
update
|
||
sales_user a,
|
||
(
|
||
select
|
||
_u.idx,
|
||
_u.saus_salesid,
|
||
_u.saus_roomcard,
|
||
if(@c + _u.saus_roomcard < {$need_amount}, @n := _u.saus_roomcard, @n := {$need_amount} - @c) n,
|
||
if(@c + _u.saus_roomcard < {$need_amount}, @c := @c + _u.saus_roomcard, @c := {$need_amount}) c
|
||
from
|
||
sales_user _u,
|
||
(select @n := 0) _n,
|
||
(select @c := 0) _c
|
||
where
|
||
_u.saus_agentid = ? and _u.saus_channelid = ? and _u.user_id = ? and
|
||
@c < {$need_amount}
|
||
order by
|
||
_u.idx
|
||
) b
|
||
set
|
||
a.saus_roomcard = a.saus_roomcard - b.n
|
||
where
|
||
a.idx = b.idx
|
||
|
||
EOL;
|
||
if (!$this->pdo_execute($command, $agent_id, $channel_id, $user_id))
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
else
|
||
{
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = saus_roomcard - ? where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$amount, $agent_id, $channel_id, $from_sales);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
}
|
||
else
|
||
{
|
||
/// 多判断一次数量是否足够
|
||
$ret = $this->pdo_request(/** @lang text */
|
||
'select saus_roomcard card from sales_user where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?',
|
||
$agent_id, $channel_id, $from_sales);
|
||
if (!$this->pdo_isdone())
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
if ($ret[0]['card'] < $amount)
|
||
throw new Exception(ERRORINFO_AMOUNTERROR, ERRORCODE_AMOUNTERROR);
|
||
|
||
/// 更新代理信息表
|
||
$ret = $this->PDO_Execute(/** @lang text */
|
||
'update sales_user set saus_roomcard = saus_roomcard - ? where saus_agentid = ? and saus_channelid = ? and saus_salesid = ?;',
|
||
$amount, $agent_id, $channel_id, $from_sales);
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
}
|
||
|
||
/// 更新转到的代理信息表
|
||
if (empty($to_sales['user_id'])) {
|
||
$command = /** @lang text */<<<EOL
|
||
update sales_user set saus_roomcard = saus_roomcard + ? where idx = ?
|
||
EOL;
|
||
$ret = $this->pdo_execute($command, $amount, $to_sales['idx']);
|
||
} else {
|
||
$command = /** @lang text */<<<EOL
|
||
update
|
||
sales_user a,
|
||
ct_user_account b
|
||
set
|
||
a.saus_roomcard = a.saus_roomcard + ?,
|
||
b.card = b.card + ?
|
||
where
|
||
a.saus_agentid = b.agent_id and a.saus_channelid = b.channel_id and a.user_id = b.user_id and
|
||
a.idx = ?
|
||
EOL;
|
||
$ret = $this->pdo_execute($command, $amount, $amount, $to_sales['idx']);
|
||
}
|
||
if (!$ret)
|
||
throw new Exception($this->GetErrorInfo(), $this->GetErrorCode());
|
||
|
||
$this->PDO_Commit();
|
||
} catch (Exception $e) {
|
||
$this->PDO_Rollback();
|
||
$outParam->SetErrors($e->GetCode(), $e->GetMessage());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array(
|
||
'state' => 0,
|
||
'roomcard' => $room_card - $amount,
|
||
'amount' => $amount,
|
||
'salesid' => $to_sales['saus_salesid'],
|
||
'salesname' => $to_sales['saus_nickname'],
|
||
'salesroomcard' => $to_sales['saus_roomcard'] + $amount,
|
||
);
|
||
return true;
|
||
}
|
||
|
||
/**
|
||
* 获取转卡名单
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function transList($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agentID = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
if (empty($agentID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$openID = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
if (empty($openID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_OPENIDERROR, ERRORINFO_OPENIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$db_data = $this->PDO_Request(
|
||
'call cp_sales_get_transfername(?,?);',
|
||
$agentID,
|
||
$openID
|
||
);
|
||
|
||
if (!is_array($db_data))
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array(
|
||
'state' => 0,
|
||
'salesman' => $db_data,
|
||
);
|
||
return true;
|
||
|
||
}
|
||
|
||
|
||
/**
|
||
* 获取转卡记录
|
||
* 被请求方法示例:参数固定为RequestParameter和ReturnParameter对象,返回值固定为true(成功)和false(失败)
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function transRecord($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agent_id = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
//$open_id = isset($request_data['openid']) ? $request_data['openid'] : '';
|
||
$begin_time = isset($request_data['begintime']) ? $request_data['begintime'] : '';
|
||
$end_time = isset($request_data['endtime']) ? $request_data['endtime'] : '';
|
||
$page_index = empty($request_data['page_index']) ? 1 : intval($request_data['page_index']);
|
||
$page_size = empty($request_data['page_size']) ? 10 : intval($request_data['page_size']);
|
||
|
||
$from_sales = @$request_data['fromsales']; /// 来源代理号
|
||
$user_id = @$request_data['userid']; /// 用户编号(新用户表,绑定手机后自动生成。)
|
||
|
||
if (empty($agent_id))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
if ($begin_time > $end_time)
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR);
|
||
return false;
|
||
}
|
||
|
||
if (true /*empty($user_id)*/)
|
||
{
|
||
$str_time = '';
|
||
$array_param = array($agent_id, $from_sales, );
|
||
|
||
if (!empty($begin_time))
|
||
{
|
||
$str_time .= ' and date_format(a.satr_transfertime, \'%Y-%m-%d\') >= ? ';
|
||
$array_param[] = $begin_time;
|
||
}
|
||
|
||
if (!empty($end_time))
|
||
{
|
||
$str_time .= ' and date_format(a.satr_transfertime, \'%Y-%m-%d\') <= ? ';
|
||
$array_param[] = $end_time;
|
||
}
|
||
|
||
$start = ($page_index - 1) * $page_size;
|
||
|
||
$strPage = '';
|
||
if (!empty($request_data['page_index']))
|
||
$strPage .= " limit {$start},{$page_size} ";
|
||
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
date_format(a.satr_transfertime, '%Y-%m-%d %H:%i') as time,
|
||
a.satr_salesid as salesid,
|
||
b.saus_nickname as name,
|
||
b.saus_avatar as avatar,
|
||
a.satr_amount as amount
|
||
from
|
||
sales_transferbill a
|
||
left join sales_user b on a.satr_agentid = b.saus_agentid and a.satr_salesid = b.saus_salesid
|
||
where
|
||
a.satr_agentid = ? and a.from_sales = ? {$str_time}
|
||
order by
|
||
satr_transfertime desc
|
||
{$strPage}
|
||
|
||
EOL;
|
||
|
||
$db_data = $this->PDO_Request($command, $array_param);
|
||
if (!$this->PDO_IsDone())
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = 1;
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
count(0) num
|
||
from
|
||
sales_transferbill a
|
||
left join sales_user b on a.satr_agentid = b.saus_agentid and a.satr_salesid = b.saus_salesid
|
||
where
|
||
a.satr_agentid = ? and a.from_sales = ? {$str_time}
|
||
|
||
EOL;
|
||
$dbCount = $this->PDO_Request($command, $array_param);
|
||
if (!is_array($dbCount) || count($dbCount) < 1)
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = intval($dbCount[0]['num']) / $page_size + 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
$str_time = '';
|
||
$array_param = array($agent_id, $user_id, );
|
||
|
||
if (!empty($begin_time))
|
||
{
|
||
$str_time .= ' and date_format(a.satr_transfertime, \'%Y-%m-%d\') >= ? ';
|
||
$array_param[] = $begin_time;
|
||
}
|
||
|
||
if (!empty($end_time))
|
||
{
|
||
$str_time .= ' and date_format(a.satr_transfertime, \'%Y-%m-%d\') <= ? ';
|
||
$array_param[] = $end_time;
|
||
}
|
||
|
||
$start = ($page_index - 1) * $page_size;
|
||
|
||
$strPage = '';
|
||
if (!empty($request_data['page_index']))
|
||
$strPage .= " limit {$start},{$page_size} ";
|
||
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
date_format(a.satr_transfertime, '%Y-%m-%d %H:%i') as time,
|
||
a.satr_salesid as salesid,
|
||
b.saus_nickname as name,
|
||
b.saus_avatar as avatar,
|
||
a.satr_amount as amount
|
||
from
|
||
sales_transferbill a left join sales_user b on a.satr_agentid = b.saus_agentid and a.from_sales = b.saus_salesid
|
||
where
|
||
a.satr_agentid = ? and b.user_id = ? {$str_time}
|
||
order by
|
||
satr_transfertime desc
|
||
{$strPage}
|
||
|
||
EOL;
|
||
|
||
$db_data = $this->PDO_Request($command, $array_param);
|
||
if (!$this->PDO_IsDone())
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = 1;
|
||
if (!empty($request_data['page_index']))
|
||
{
|
||
$command = /** @lang text */<<<EOL
|
||
select
|
||
count(0) num
|
||
from
|
||
sales_transferbill a left join
|
||
sales_user b on a.satr_agentid = b.saus_agentid and a.satr_salesid = b.saus_salesid
|
||
where
|
||
a.satr_agentid = ? and b.user_id = ? {$str_time}
|
||
|
||
EOL;
|
||
$dbCount = $this->PDO_Request($command, $array_param);
|
||
if (!is_array($dbCount) || count($dbCount) < 1)
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$page_count = intval($dbCount[0]['num']) / $page_size + 1;
|
||
}
|
||
}
|
||
|
||
$outParam->biz_content = array(
|
||
'detail' => $db_data,
|
||
'page_index' => $page_index,
|
||
'page_size' => $page_size,
|
||
'page_count' => $page_count,
|
||
);
|
||
return true;
|
||
}
|
||
|
||
|
||
/**
|
||
* 个人代理间的转卡记录
|
||
* @param RequestParameter $inParam
|
||
* @param ReturnParameter $outParam
|
||
* @return bool
|
||
*/
|
||
public function getTransRecord($inParam, $outParam)
|
||
{
|
||
$request_data = isset($inParam->biz_content) ? $inParam->biz_content : '';
|
||
|
||
if (!is_array($request_data))
|
||
{
|
||
//参数格式错误
|
||
$outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR);
|
||
return false;
|
||
}
|
||
|
||
$agentID = isset($request_data['agentid']) ? $request_data['agentid'] : '';
|
||
if (empty($agentID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_AGENTIDERROR, ERRORINFO_AGENTIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$salesID = isset($request_data['salesid']) ? $request_data['salesid'] : '';
|
||
if (empty($salesID))
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_SALESIDERROR, ERRORINFO_SALESIDERROR);
|
||
return false;
|
||
}
|
||
|
||
$str_time = '';
|
||
$array_param = array(
|
||
$agentID,
|
||
$salesID,
|
||
);
|
||
|
||
$beginTime = isset($request_data['begintime']) ? $request_data['begintime'] : '';
|
||
if (!empty($beginTime))
|
||
{
|
||
$str_time .= ' and date_format(saab_asktime, \'%Y-%m-%d\') >= ? ';
|
||
//$array_param[] = $beginTime;
|
||
}
|
||
|
||
$endTime = isset($request_data['endtime']) ? $request_data['endtime'] : '';
|
||
if (!empty($endTime))
|
||
{
|
||
$str_time .= ' and date_format(saab_asktime, \'%Y-%m-%d\') <= ? ';
|
||
//$array_param[] = $endTime;
|
||
}
|
||
|
||
if ($beginTime > $endTime)
|
||
{
|
||
$outParam->SetErrors(ERRORCODE_TIMEERROR, ERRORINFO_TIMEERROR);
|
||
return false;
|
||
}
|
||
|
||
$command = /** @lang text */
|
||
"
|
||
SELECT
|
||
date_format(saab_asktime, '%Y-%m-%d %H:%i') as time, saab_askid as salesid,
|
||
saab_asknickname as name, saab_askavatar as avatar, saab_amount as amount
|
||
FROM
|
||
sales_ask_bill
|
||
WHERE
|
||
saab_agentid = ? and saab_salesid = ? and saab_state = 1 and saab_type = 1{$str_time}
|
||
ORDER BY saab_asktime desc";
|
||
|
||
$db_data = $this->PDO_Request($command, $array_param);
|
||
|
||
if (!is_array($db_data))
|
||
{
|
||
$outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo());
|
||
return false;
|
||
}
|
||
|
||
$outParam->biz_content = array('detail' => $db_data);
|
||
return true;
|
||
}
|
||
|
||
} |