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