| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | <?php/** * PtbRate.php UTF-8 * * * @date    : 2018/5/18 22:34 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : wuyonghong <wyh@huosdk.com> * @version : HUOSDK 8.0 */namespace huo\controller\rate;use huo\controller\agent\Agent;use huo\controller\agent\AgentCache;use huo\controller\common\Base;use huo\logic\agent\AgentRateLogic;use huo\model\agent\AgentRateModel;use huolib\constant\AgentConst;use huolib\status\CommonStatus;use huolib\status\MemberStatus;use huolib\status\RateStatus;use huolib\status\SettleStatus;class PtbRate extends Base {    private $agent_rate     = 1.0;    private $sub_agent_rate = 1.0;    private $agent_id;    public function __construct($agent_id = 0) {        $this->agent_id = $agent_id;        $this->setRate();        if (!empty($agent_id)) {            $this->setARate($agent_id);        }    }    /**     * @return void     */    public function setRate() {        $_data = (new AgentRateLogic())->getDefaultInfo();        if (!empty($_data)) {            $this->agent_rate = $_data['agent_rate'];            $this->sub_agent_rate = $_data['sub_agent_rate'];        }    }    /**     *     * @param int $agent_id     *     * @return false true 设置成功 false 设置失败     */    public function setARate($agent_id) {        $_agent_logic = new AgentRateLogic();        $_data = $_agent_logic->getInfoByAgentId($agent_id);        if (!empty($_data)) {            $this->agent_rate = $_data['agent_rate'];            $this->sub_agent_rate = $_data['sub_agent_rate'];        } else {            $_agent_class = new Agent();            $_role_type = $_agent_class->getRoleType($agent_id);            if (AgentConst::isSubAgent($_role_type)) {                $_parent_id = $_agent_class->getParentId($agent_id);                $_data = $_agent_logic->getInfoByAgentId($_parent_id);                if (!empty($_data)) {                    $this->agent_rate = $_data['sub_agent_rate'];                } else {                    $this->agent_rate = $this->sub_agent_rate;                }                $this->sub_agent_rate = 1;            }        }        return true;    }    /**     * 获取折扣     *     * @param int $agent_id     *     * @return float     *     */    public function getRate($agent_id = 0) {        if (!empty($agent_id)) {            $this->setARate($agent_id);        }        return $this->agent_rate;    }    /**     * @return float     */    public function getAgentRate() {        return $this->agent_rate;    }    /**     * 修改渠道折扣,不存在则新增     *     * @param       $agent_id     * @param       $agent_rate     * @param float $agent_sub_rate     *     * @return array|bool     */    public function updateRate($agent_id, $agent_rate, $agent_sub_rate = 1.00) {        $_agent_data = AgentCache::ins()->getInfoByAgentId($agent_id);        if (empty($_agent_data)) {            $_code = MemberStatus::INVALID_PARAMS;            return $this->huoError($_code, MemberStatus::getMsg($_code));        }        $_data = [            'agent_id'       => $agent_id,            'agent_rate'     => $agent_rate,            'sub_agent_rate' => $agent_sub_rate,        ];        $_rate_check = new RateCheck();        $_rs = $_rate_check->checkDataParam($_data);        if (RateStatus::NO_ERROR != $_rs) {            return $_rate_check->retMsg($_rs);        }        $_agent_rate = (new AgentRateModel())->getDetail($agent_id);        if (!empty($_agent_rate)) {            $_rs = (new AgentRateModel())->updateData($_data, $agent_id);            if (false === $_rs) {                $_code = SettleStatus::INNER_ERROR;                return $this->huoError($_code, SettleStatus::getMsg($_code));            }        } else {            $_rs = (new AgentRateModel())->addData($_data);            if (false === $_rs) {                $_code = SettleStatus::INNER_ERROR;                return $this->huoError($_code, SettleStatus::getMsg($_code));            }        }        $_code = CommonStatus::NO_ERROR;        return $this->huoSuccess($_code, CommonStatus::getMsg($_code));    }}
 |