123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <?php
- /**
- * AgentWallet.php UTF-8
- *
- *
- * @date : 2018/5/18 19:31
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : wuyonghong <wyh@huosdk.com>
- * @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;
- }
- }
- }
|