| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <?php
- namespace App\Services;
- use App\Constants\HttpStatus;
- use App\Constants\Util;
- use App\Models\ActivityReward;
- use App\Models\Config;
- use App\Models\Role;
- use Exception;
- class ActivityRewardService extends BaseService
- {
- public static string $MODEL = ActivityReward::class;
- /**
- * @description: 查询单条数据
- * @param array $search
- * @return ActivityReward|null
- */
- public static function findOne(array $search): ActivityReward|null
- {
- return static::$MODEL::where(static::getWhere($search))->first();
- }
- public static function getWhere(array $search = []): array
- {
- $where = [];
- if (isset($search['id']) && !empty($search['id'])) {
- $where[] = ['id', '=', $search['id']];
- }
- if (isset($search['status']) && $search['status'] != '') {
- $where[] = ['status', '=', $search['status']];
- }
- if (isset($search['title']) && !empty($search['title'])) {
- $where[] = ['title', 'like', "%{$search['title']}%"];
- }
- if (isset($search['start_time']) && !empty($search['start_time'])) {
- if (is_array($search['start_time'])) {
- if (count($search['start_time']) == 2) {
- $where[] = ['start_time', $search['start_time'][0], $search['start_time'][1]];
- } else {
- $where[] = ['start_time', '=', $search['start_time'][0]];
- }
- } else {
- $where[] = ['start_time', '=', $search['start_time']];
- }
- }
- if (isset($search['end_time']) && !empty($search['end_time'])) {
- if (is_array($search['end_time'])) {
- if (count($search['end_time']) == 2) {
- $where[] = ['end_time', $search['end_time'][0], $search['end_time'][1]];
- } else {
- $where[] = ['end_time', '=', $search['end_time'][0]];
- }
- } else {
- $where[] = ['end_time', '=', $search['end_time']];
- }
- }
- return $where;
- }
- public static function deleteAll(array $search = []): bool
- {
- $count = static::$MODEL::where(static::getWhere($search))->delete();
- if ($count < 1) throw new Exception('删除失败', HttpStatus::CUSTOM_ERROR);
- return true;
- }
- /**
- * Update or create
- * @param array $params
- * @return bool
- * @throws Exception
- */
- public static function submit(array $params = []): bool
- {
- if (isset($params['start_time']))
- $params['start_time'] = strtotime($params['start_time'] . " 00:00:00");
- if (isset($params['end_time']))
- $params['end_time'] = strtotime($params['end_time'] . " 23:59:59");
- if (isset($params['detail_image']))
- $params['detail_image'] = Util::replacePartInUrl($params['detail_image']);
- if (!empty($params['id'])) {
- $info = static::findOne(['id' => $params['id']]);
- if (!$info) throw new Exception("操作失败", HttpStatus::CUSTOM_ERROR);
- $info->update($params);
- } else {
- static::$MODEL::create($params);
- }
- return true;
- }
- public static function promotionalActivity($chatId): array
- {
- $keyboard = [];
- $url = Config::where('field','activity_home_url ')->first()->val;
- $keyboard[] = [
- ['text'=>'活动首页','url'=>$url]
- ];
- $msg = [];
- $msg['chat_id'] = $chatId;
- $msg['text'] = "点击下方按钮进入活动首页";
- $msg['reply_markup'] = json_encode(['inline_keyboard' => $keyboard]);
- return $msg;
- }
- }
|