Files
dev-chiefworks f76abffdcd first commit
2022-05-31 16:21:53 -04:00

100 lines
3.8 KiB
PHP

<?php if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
class screen_cards_model extends CI_Model
{
private $read_replica;
public function __construct()
{
$this->read_replica = $this->load->database('savvy_replica', TRUE);
parent::__construct();
}
public function getQueryAll()
{
$query = "SELECT id, screen_name, trigger_id,
'<div class=\"onoffswitch\">
<input type=\"checkbox\" name=\"onoffswitch_'||id||'\" class=\"onoffswitch-checkbox\"
onchange=\"fnToggle('||id||', '||status||');\"
id=\"myonoffswitch_'||id||'\"'|| CASE WHEN status = 1 THEN 'checked' ELSE '' END || '>
<label class=\"onoffswitch-label\" for=\"myonoffswitch_'||id||'\">
<span class=\"onoffswitch-inner\"></span>
<span class=\"onoffswitch-switch\"></span>
</label>
</div>'
as status,
'<a class=\"btn btn-primary\" href=\"javascript:void(0);\" onclick=\"fnShowEdit('||id||')\">Edit</a>' ||
'<a class=\"btn btn-danger\" href=\"javascript:void(0);\" onclick=\"fnDelete('||id||')\">Delete</a>'
as action
FROM screen_cards ORDER By id asc";
return $query;
}
public function getById($id)
{
$this->read_replica->select('id, screen_name, trigger_id, status');
$this->read_replica->from('screen_cards');
$this->read_replica->where('id', $id);
$this->read_replica->order_by('id', 'asc');
return $this->read_replica->get()->row();
}
public function toggle($id, $cur_status)
{
//1. check
$this->read_replica->select('status');
$this->read_replica->from('screen_cards');
$this->read_replica->where('id', $id);
$db_status = $this->read_replica->get()->row('status');
$this->read_replica->reset_query();
//2. update
$new_status = $db_status == 1 ? 0 : 1;
$data = array(
'status' => $new_status,
);
$this->db->where('id', $id);
$rs = $this->db->update('screen_cards', $data);
return $rs;
}
public function create_or_update($data)
{
$is_exists = $this->is_exists($data['id'], $data['screen_name'], $data['trigger_id']);
if($is_exists){
return false;
}
if (empty($data['id'])) {
$data = array(
'screen_name' => $data['screen_name'],
'trigger_id' => $data['trigger_id'],
'status' => isset($data['status']) && $data['status'] == 1 ? 1 : 0,
);
$rs = $this->db->insert('screen_cards', $data);
} else {
$this->db->set('screen_name', $data['screen_name']);
$this->db->set('trigger_id', $data['trigger_id']);
$this->db->set('status', isset($data['status']) && $data['status'] == 1 ? 1 : 0);
$this->db->where('id', $data['id']);
$rs = $this->db->update('screen_cards');
}
return $rs;
}
public function delete($id)
{
$rs = $this->db->delete('screen_cards', array('id' => $id));
return $rs;
}
public function is_exists($id, $screen_name, $trigger_id){
if(!empty($id)){
$query = $this->read_replica->query('SELECT EXISTS(SELECT * FROM screen_cards WHERE id != ? AND screen_name = ? AND trigger_id = ?) AS check;', [$id, $screen_name, $trigger_id]);
}else{
$query = $this->read_replica->query('SELECT EXISTS(SELECT * FROM screen_cards WHERE screen_name = ? AND trigger_id = ?) AS check;', [$screen_name, $trigger_id]);
}
$rs = (array)$query->row();
return $rs['check'] == 't';
}
}