* @version : HUOSDK 8.0 */ namespace huo\controller\agent; use huo\controller\common\Base; use huolib\constant\SettleConst; use huolib\status\SettleStatus; use huolib\tool\StrUtils; class AgentWallet extends Base { /** * 更新渠道钱包 * * @param int $agent_id * @param float $amount * @param int $type * @param int $frozen * * @return int */ public function updateWallet( $agent_id, $amount, $type = SettleConst::SETTLE_WALLET_NO, $frozen = SettleConst::SETTLE_WALLET_NO_LOCK ) { $_ac_class = AgentCache::ins(); $_ae_data = $_ac_class->getAgentExtByAgentId($agent_id); $_total = $_ae_data['share_total']; $_remain = $_ae_data['share_remain']; $_frozen = $_ae_data['frozen_amount']; switch ($type) { case SettleConst::SETTLE_WALLET_DEDUCT: $_remain = $_remain - $amount; break; case SettleConst::SETTLE_WALLET_ADD: $_remain = $_remain + $amount; if (SettleConst::SETTLE_WALLET_UNLOCK != $frozen) { $_total = $_total + $amount; } break; default: } switch ($frozen) { case SettleConst::SETTLE_WALLET_LOCK: $_frozen += $amount; break; case SettleConst::SETTLE_WALLET_UNLOCK: $_frozen -= $amount; break; default: } if (StrUtils::compareNumber($_remain, 0) < 0) { return SettleStatus::REMAIN_NOT_ENOUGH; } if (StrUtils::compareNumber($_frozen, 0) < 0) { return SettleStatus::FROZEN_AMOUNT_NOT_ENOUGH; } $_ae_data['share_total'] = $_total; $_ae_data['share_remain'] = $_remain; $_ae_data['frozen_amount'] = $_frozen; $_rs = $_ac_class->updateAgentExt($agent_id, $_ae_data); if (false == $_rs) { return SettleStatus::INNER_ERROR; } else { return SettleStatus::NO_ERROR; } } /** * 更新渠道平台币 * * @param int $agent_id * @param float $ptb_cnt * @param int $type * @param int $frozen * @param int $frozen * * @return int */ public function updatePtb( $agent_id, $ptb_cnt, $type = SettleConst::SETTLE_WALLET_NO, $frozen = SettleConst::SETTLE_WALLET_NO_LOCK ) { $_ac_class = AgentCache::ins(); $_ae_data = $_ac_class->getAgentExtByAgentId($agent_id); if (empty($_ae_data)) { return SettleStatus::REMAIN_NOT_ENOUGH; } $_total = $_ae_data['ptb_total']; $_remain = $_ae_data['ptb_remain']; $_frozen = $_ae_data['frozen_ptb']; switch ($type) { case SettleConst::SETTLE_WALLET_DEDUCT: $_remain = $_remain - $ptb_cnt; break; case SettleConst::SETTLE_WALLET_ADD: $_remain = $_remain + $ptb_cnt; if (SettleConst::SETTLE_WALLET_UNLOCK != $frozen) { $_total = $_total + $ptb_cnt; } break; default: } switch ($frozen) { case SettleConst::SETTLE_WALLET_LOCK: $_frozen += $ptb_cnt; break; case SettleConst::SETTLE_WALLET_UNLOCK: $_frozen -= $ptb_cnt; break; default: } if (StrUtils::compareNumber($_remain, 0) < 0) { return SettleStatus::REMAIN_NOT_ENOUGH; } if (StrUtils::compareNumber($_frozen, 0) < 0) { return SettleStatus::FROZEN_AMOUNT_NOT_ENOUGH; } $_ae_data['ptb_total'] = $_total; $_ae_data['ptb_remain'] = $_remain; $_ae_data['frozen_ptb'] = $_frozen; $_rs = $_ac_class->updateAgentExt($agent_id, $_ae_data); if (false == $_rs) { return SettleStatus::INNER_ERROR; } else { return SettleStatus::NO_ERROR; } } /** * 更新提现 * * @param int $agent_id 渠道ID * @param float $amount 变化金额 * * @return int */ public function updateSettle($agent_id, $amount) { $_ac_class = AgentCache::ins(); $_ag_data = $_ac_class->getAgentExtByAgentId($agent_id); $_ag_data['settle_cnt']++; $_ag_data['last_settle_time'] = time(); $_ag_data['last_settle_amount'] = $amount; $_rs = $_ac_class->updateAgentExt($agent_id, $_ag_data); if (false == $_rs) { return SettleStatus::INNER_ERROR; } else { return SettleStatus::NO_ERROR; } } }