| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace App\Repositories;
- use App\Constants\CreatorConstant;
- use App\Model\CreatorRuleModel;
- use KZ2\Repositories\Model\Repository;
- use Psr\SimpleCache\CacheInterface;
- class CreatorRuleRepository extends Repository
- {
- public function model()
- {
- return CreatorRuleModel::class;
- }
- /**
- * 无缓存获取规则,返回数组.
- * @return array|mixed[]
- */
- public function getRulesWithoutCache()
- {
- $items = CreatorRuleModel::query()->orderBy('level', 'ASC')->get();
- $result = [];
- if ($items->count()) {
- $result = $items->toArray();
- }
- return $result;
- }
- /**
- * 获取规则(带缓存, 并格式化数据).
- * @return mixed
- */
- public function getRules()
- {
- $cacheRepo = make(CacheInterface::class);
- $arrItems = $cacheRepo->rememberForever(CreatorConstant::CACHE_KEY_RULE, function () {
- $lists = $this->getRulesWithoutCache();
- if (!empty($lists)) {
- foreach ($lists as &$v) {
- $tmpLevel = intval($v['level']);
- $v['level_name'] = $v['level'];
- $v['coin_desc'] = sprintf('累计%d元', $v['lowest_coin'] / 10);
- if ($tmpLevel == 0) {
- $v['level_name'] = '未认证';
- $v['coin_desc'] = '无';
- } elseif ($tmpLevel == 1) {
- $v['coin_desc'] = '认证通过即可';
- }
- unset($v['id'], $v['created_at'], $v['updated_at']);
- }
- }
- return $lists;
- });
- return $arrItems;
- }
- /**
- * 根据等级获取规则.
- * @param $level
- * @return \Hyperf\Database\Model\Builder|\Hyperf\Database\Model\Model|object|null
- */
- public function getRuleByLevel($level)
- {
- return CreatorRuleModel::query()->where(['level' => $level])->first();
- }
- }
|