autoaction / adratings
自动操作 AD 评分
v1.3.1
2022-08-17 19:49 UTC
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^5.3
This package is auto-updated.
Last update: 2024-09-18 00:18:50 UTC
README
负责计算 AD Ratings 的包
示例 01: 简单的计算示例
use AutoAction\AdRatings\Core\CalculateAdRatings;
use AutoAction\AdRatings\Dto\ToCalculateDto;
// Carregar os DTO com os dados de calculo
$dto = new ToCalculateDto({AMOUNT}, {POINT_PER_ITEM}, {MAX_POINT});
// Executar o calculo do Ratings
$calculate = new CalculateAdRatings($dto);
echo $calculate->getCalculation();
示例 02: 实现中查找数据库配置值
use AutoAction\AdRatings\Core\AdRatingsComposite;
use AutoAction\AdRatings\Core\DataMemory;
use AutoAction\AdRatings\Enum\GroupsEnum;
// Dados de configuração:
// 1. Criar uma classe que irá buscar no banco de dados ou qualquer outro lugar as configurações
// 2. Esta classe deverá implementar 'AutoAction\AdRatings\Core\ConfigDataInterface'
// 3. O primeiro parâmetro da classe deve ser o grupo e o segundo a quantidade de itens
$data = new DataMemory(GroupsEnum::PHOTOS, 15);
// Injetar as configurações no Composite e executar o composite
$composite = new AdRatingsComposite($data);
$composite->execute();
// Recuperar o calculo
$calculate = $composite->getCalculateAdRatings();
// Recuperar o valor calculado
echo $calculate->getCalculation();
根据评分进行自动报价触发验证
use AutoAction\AdRatings\Core\AdRatingsShootLimitClient;
use AutoAction\AdRatings\Core\HasConfigAdRatings;
use AutoAction\AdRatings\Dto\InputRatingsDto;
use AutoAction\AdRatings\Dto\InputRatingShootLimitDto;
use AutoAction\AdRatings\Enum\KindsEnum;
use AutoAction\AdRatings\Exception\ShootLimitDisabledException;
// buscar as configurações iniciais
$hasConfig = new HasConfigAdRatings(KindsEnum::KIND_CAR);
$hasConfig->setHasCar(true);
$hasConfig->setHasHeavy(true);
$hasConfig->setHasMotorcycle(true);
// inicializa client
$client = new AdRatingsShootLimitClient($this->getConfig());
// carregar dados da avaliação
$client->addInputRating(new InputRatingsDto(1, 1.0));
$client->addInputRating(new InputRatingsDto(2, 4.0));
$client->addInputRating(new InputRatingsDto(3, 3.5));
$client->addInputRating(new InputRatingsDto(4, 1.5));
// carregar dados de limite do esquema de configuração
$client->addInputRatingShootLimit(new InputRatingShootLimitDto(1, 1.0));
$client->addInputRatingShootLimit(new InputRatingShootLimitDto(2, 4.0));
// executar a verificação
$client->execute();
// verificar se o rating é válido
echo $client->isValid();