first commit
This commit is contained in:
106
application/models/Pray_model.php
Executable file
106
application/models/Pray_model.php
Executable file
@@ -0,0 +1,106 @@
|
||||
<?php if (!defined('BASEPATH')) {
|
||||
exit('No direct script access allowed');
|
||||
}
|
||||
|
||||
|
||||
class Pray_model extends MY_Model
|
||||
{
|
||||
|
||||
private $table = 'cm_pray';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function getPrayQuery()
|
||||
{
|
||||
return $this->db->from($this->table)->order_by('dateUpdated', 'desc');
|
||||
}
|
||||
|
||||
public function getPaging($limit, $offset = 0)
|
||||
{
|
||||
if (!isAdminSite()) {
|
||||
$this->db->where('dateDeleted is null');
|
||||
}
|
||||
return $this->db->from($this->table . ' py')
|
||||
->select("py.*, if(u.nickname = '' or u.nickname is null, u.userName, u.nickName) as nickname")
|
||||
->join('cm_user u', 'py.userID=u.userID', 'left')
|
||||
->order_by('dateUpdated', 'desc')
|
||||
->limit($limit)->offset($offset);
|
||||
}
|
||||
|
||||
public function getCountPaging()
|
||||
{
|
||||
if (!isAdminSite()) {
|
||||
$this->db->where('dateDeleted is null');
|
||||
}
|
||||
return $this->db->from($this->table)
|
||||
->count_all_results();
|
||||
}
|
||||
|
||||
public function getAll($limit, $offiset)
|
||||
{
|
||||
return $this->getPostQuery()->limit($limit)->offset($offiset);
|
||||
}
|
||||
|
||||
public function getOne($prayId)
|
||||
{
|
||||
return $this->db->where('prayID', $prayId)->get($this->table)->row();
|
||||
}
|
||||
|
||||
public function save($data)
|
||||
{
|
||||
$this->db->insert($this->table, $data);
|
||||
return $this->db->insert_id();
|
||||
}
|
||||
|
||||
public function update($prayId, $data)
|
||||
{
|
||||
$this->db->where('prayID', $prayId)->update($this->table, $data);
|
||||
return $this->db->affected_rows();
|
||||
}
|
||||
|
||||
public function delete($prayId)
|
||||
{
|
||||
return $this->db->where('prayID', $prayId)->delete($this->table);
|
||||
}
|
||||
|
||||
public function bookmark($data)
|
||||
{
|
||||
$this->db->insert('cm_pray_ranking', $data);
|
||||
return $this->db->insert_id();
|
||||
}
|
||||
|
||||
public function getBookmarksAndRankings(&$prayers)
|
||||
{
|
||||
if (count($prayers)) {
|
||||
$userID = getSessionUser()->is ? getSessionUser()->userID : 0;
|
||||
array_map(function ($rating) use (&$prayers, $userID) {
|
||||
foreach ($prayers as $k => $v) {
|
||||
if ($v->prayID == $rating->prayID) {
|
||||
if ($rating->title == 1) {
|
||||
$prayers[$k]->like++;
|
||||
} else if($rating->title == 3){
|
||||
if($rating->userID == $userID) {
|
||||
$prayers[$k]->bookmark = 1;
|
||||
}
|
||||
$prayers[$k]->bookmarks++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}, $this->getRankingsByPrayId(array_column($prayers, 'prayID')));
|
||||
}
|
||||
}
|
||||
|
||||
private function getRankingsByPrayId($prayId)
|
||||
{
|
||||
$prayId = is_array($prayId) ? $prayId : [$prayId];
|
||||
return $this->db->where_in('prayID', $prayId)
|
||||
->get('cm_pray_ranking')->result();
|
||||
}
|
||||
|
||||
public function getPrayRankingCountByTitle($prayId, $title) {
|
||||
return $this->db->where('prayID', $prayId)->where('title', $title)->count_all_results('cm_pray_ranking');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user