123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- namespace app\common\model;
- use app\common\library\Redis;
- use think\Model;
- class Activity extends Model
- {
- // 表名
- protected $table = 'activity';
-
- // 自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
-
- // 追加属性
- protected $append = [
- 'starttime_text',
- 'endtime_text',
- 'status_text',
- 'pop_status_text'
- ];
-
-
- public function getStatusList()
- {
- return ['1' => __('正常'),'0' => __('隐藏')];
- }
- public function getPopStatusList()
- {
- return ['1' => __('开启'),'0' => __('关闭')];
- }
- public function getStarttimeTextAttr($value, $data)
- {
- $value = $value ? $value : $data['starttime'];
- return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
- }
- public function getPopRangeList()
- {
- return ['0' => __('最近阅读'),'1' => __('男生'),'2' => __('女生'),'3' => __('个人中心'),'4' => __('分类'),'5' => __('免费'),'6' => __('完本')];
- }
- public function getEndtimeTextAttr($value, $data)
- {
- $value = $value ? $value : $data['endtime'];
- return is_numeric($value) ? date("Y-m-d H:i:s", intval($value)) : $value;
- }
- public function getStatusTextAttr($value, $data)
- {
- $value = $value ? $value : $data['status'];
- $list = $this->getStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function getPopStatusTextAttr($value, $data)
- {
- $value = $value ? $value : $data['pop_status'];
- $list = $this->getPopStatusList();
- return isset($list[$value]) ? $list[$value] : '';
- }
- protected function setStarttimeAttr($value)
- {
- return $value && !is_numeric($value) ? strtotime($value) : $value;
- }
- protected function setEndtimeAttr($value)
- {
- return $value && !is_numeric($value) ? strtotime($value) : $value;
- }
- protected function setPopstarttimeAttr($value)
- {
- return $value && !is_numeric($value) ? strtotime($value) : $value;
- }
- protected function setPopendtimeAttr($value)
- {
- return $value && !is_numeric($value) ? strtotime($value) : $value;
- }
- /**
- * 检查是不是渠道自定义活动
- * @param $activity_id
- * @return bool
- */
- public function checkIsChannelActivity($activity_id)
- {
- if (!$res = model('Activity')->where('id', $activity_id)->find()) {
- return false;
- }
- if (intval($res['type']) == 1) {
- return true;
- }
- return false;
- }
- /**
- * 检查是不是赠币活动
- * @param $activity_id
- * @return bool
- */
- public function checkIsGiveActivity($activity_id)
- {
- if (!$res = model('Activity')->getInfo($activity_id)) {
- return false;
- }
- if (intval($res['type']) == 3) {
- return true;
- }
- return false;
- }
- /**
- * 加活动信息
- * @param $activity_id
- * @return array
- * @throws \think\Exception
- */
- public function getInfo($activity_id)
- {
- $row = [];
- $key = 'A-I:'.$activity_id;
- $redis = Redis::instance();
- if ($redis->exists($key)) {
- $redis_key_type = $redis->type($key);
- if($redis_key_type == \Redis::REDIS_STRING){
- $row = [];
- }else{
- $row = $redis->hGetAll($key);
- }
- } else {
- $rowModel = model('Activity')->where('id', $activity_id)->find();
- if ($rowModel) {
- $row = $rowModel->toArray();
- $redis->hMSet($key, $row);
- $redis->expire($key, 600);
- } else {
- $redis->set($key, 'null', 600);
- }
- }
- return $row;
- }
- }
|