// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\services\user; use app\dao\system\AwardLakeDao; use app\dao\user\UserIntegralDao; use app\services\BaseServices; use crmeb\traits\ServicesTrait; use app\webscoket\SocketPush; use think\db\exception\DataNotFoundException; use think\db\exception\DbException; use think\db\exception\ModelNotFoundException; /** * * Class UserRechargeServices * @package app\services\user * @mixin UserIntegralDao */ class UserAwardIntegralServices extends BaseServices { use ServicesTrait; private $lake_dao; /** * UserRechargeServices constructor. * @param UserIntegralDao $dao */ public function __construct(UserIntegralDao $dao, AwardLakeDao $awardLakeDao) { $this->dao = $dao; $this->lake_dao = $awardLakeDao; } /** * 获取单条数据 * @param int $id * @param array $field */ public function getIntegral(int $id, array $field = []) { return $this->dao->get($id, $field); } /** * 获取单条数据 * @return float */ public function getIntegralSum($where) { return $this->dao->sum($where, 'num', true); } /** * 获取单条数据 * @return float */ public function getLake() { return $this->lake_dao->sum([], 'num'); } /** * 获取单条数据 * @param int $link_id * @return string|null * @throws DataNotFoundException * @throws DbException * @throws ModelNotFoundException */ public function getPrice(int $link_id = 0) { if ($link_id > 0) { $info = $this->dao->getOne(['link_id' => $link_id]); if ($info) return (string)($info['price'] ?: 0); } $lake_sum = $this->getLake(); $sum_integral = $this->getIntegralSum(['status' => 0]); return bcdiv((string)$lake_sum, (string)$sum_integral, 8); } }