Initial import from local backup (Documents-Playground/pakerpale)
This commit is contained in:
135
application/models/Notification_model.php
Normal file
135
application/models/Notification_model.php
Normal file
@@ -0,0 +1,135 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Notification model class
|
||||
*
|
||||
* Copyright (c) CIBoard <www.ciboard.co.kr>
|
||||
*
|
||||
* @author CIBoard (develop@ciboard.co.kr)
|
||||
*/
|
||||
|
||||
class Notification_model extends CB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 테이블명
|
||||
*/
|
||||
public $_table = 'notification';
|
||||
|
||||
/**
|
||||
* 사용되는 테이블의 프라이머리키
|
||||
*/
|
||||
public $primary_key = 'not_id'; // 사용되는 테이블의 프라이머리키
|
||||
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
|
||||
public function get_notification_list($limit = '', $offset = '', $mem_id = 0, $nottype = '')
|
||||
{
|
||||
$mem_id = (int) $mem_id;
|
||||
if (empty($mem_id) OR $mem_id < 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->db->select('notification.*, member.mem_id, member.mem_userid, member.mem_nickname, member.mem_is_admin, member.mem_icon');
|
||||
$this->db->from($this->_table);
|
||||
$this->db->join('member', 'notification.target_mem_id = member.mem_id', 'left');
|
||||
|
||||
$this->db->where(array('notification.mem_id' => $mem_id));
|
||||
if ($nottype === 'Y') {
|
||||
$this->db->where(array('not_read_datetime >' => '0000-00-00 00:00:00'));
|
||||
}
|
||||
if ($nottype === 'N') {
|
||||
$this->db->group_start();
|
||||
$this->db->where(array('not_read_datetime <=' => '0000-00-00 00:00:00'));
|
||||
$this->db->or_where(array('not_read_datetime' => null));
|
||||
$this->db->group_end();
|
||||
}
|
||||
|
||||
$this->db->order_by('not_id', 'desc');
|
||||
if ($limit) {
|
||||
$this->db->limit($limit, $offset);
|
||||
}
|
||||
$qry = $this->db->get();
|
||||
$result['list'] = $qry->result_array();
|
||||
|
||||
$this->db->select('count(*) as rownum');
|
||||
$this->db->from($this->_table);
|
||||
$this->db->join('member', 'notification.target_mem_id = member.mem_id', 'left');
|
||||
$this->db->where(array('notification.mem_id' => $mem_id));
|
||||
if ($nottype === 'Y') {
|
||||
$this->db->where(array('not_read_datetime >' => '0000-00-00 00:00:00'));
|
||||
}
|
||||
if ($nottype === 'N') {
|
||||
$this->db->group_start();
|
||||
$this->db->where(array('not_read_datetime <=' => '0000-00-00 00:00:00'));
|
||||
$this->db->or_where(array('not_read_datetime' => null));
|
||||
$this->db->group_end();
|
||||
}
|
||||
$qry = $this->db->get();
|
||||
$rows = $qry->row_array();
|
||||
$result['total_rows'] = $rows['rownum'];
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
public function unread_notification_num($mem_id = 0)
|
||||
{
|
||||
$mem_id = (int) $mem_id;
|
||||
if (empty($mem_id) OR $mem_id < 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->db->where(array('mem_id' => $mem_id ));
|
||||
$this->db->group_start();
|
||||
$this->db->where(array('not_read_datetime <=' => '0000-00-00 00:00:00'));
|
||||
$this->db->or_where(array('not_read_datetime' => null));
|
||||
$this->db->group_end();
|
||||
|
||||
return $this->db->count_all_results($this->_table);
|
||||
}
|
||||
|
||||
|
||||
public function mark_read($not_id, $mem_id)
|
||||
{
|
||||
$where = array(
|
||||
'not_id' => $not_id,
|
||||
'mem_id' => $mem_id,
|
||||
);
|
||||
$updatedata = array(
|
||||
'not_read_datetime' => cdate('Y-m-d H:i:s'),
|
||||
);
|
||||
$this->db->where($where);
|
||||
$this->db->group_start();
|
||||
$this->db->where(array('not_read_datetime <=' => '0000-00-00 00:00:00'));
|
||||
$this->db->or_where(array('not_read_datetime' => null));
|
||||
$this->db->group_end();
|
||||
$this->db->set($updatedata);
|
||||
|
||||
return $this->db->update($this->_table);
|
||||
}
|
||||
|
||||
|
||||
public function mark_allread($mem_id)
|
||||
{
|
||||
$where = array(
|
||||
'mem_id' => $mem_id,
|
||||
);
|
||||
$updatedata = array(
|
||||
'not_read_datetime' => cdate('Y-m-d H:i:s'),
|
||||
);
|
||||
$this->db->where($where);
|
||||
$this->db->group_start();
|
||||
$this->db->where(array('not_read_datetime <=' => '0000-00-00 00:00:00'));
|
||||
$this->db->or_where(array('not_read_datetime' => null));
|
||||
$this->db->group_end();
|
||||
$this->db->set($updatedata);
|
||||
|
||||
return $this->db->update($this->_table);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user