| 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;        }    }}
 |