File: /var/www/html/wp-content/plugins/ganryu_shop/model/Point.php
<?php
require_once dirname(__FILE__).'/Abstract.php';
class ganryu_shop_model_Point extends ganryu_shop_model_Abstract{
function checkPointType($category, $type){
$checkar = array(
'shopping'=>array(
'shopping_buy'
),
'pointuse'=>array(
'pointuse_shopping'
),
'pointbonus'=>array(
'pointbonus_first'
),
'share'=>array(
'share_articlesns'
),
'system'=>array(
'system_adjust'
),
);
if (!array_key_exists($category, $checkar)){
return false;
}
if (!in_array($type, $checkar[$category])){
return false;
}
return true;
}
function addPoint($userid, $data){
$res = $this->checkPointType($data['point_category'],$data['point_type']);
if (!$res){
return false;
}
$tbll = $this->tablename('user_point_log');
$tblu = $this->tablename('user_point');
$sql = "
insert into $tbll(
userid,
point_category,
point_type,
point_value,
point_name,
extent_info,
create_date
)
values(
:userid,
:point_category,
:point_type,
:point_value,
:point_name,
:extent_info,
now()
)
";
$bind = array(
'userid'=>$userid,
'point_category'=>$data['point_category'],
'point_type'=>$data['point_type'],
'point_value'=>$data['point_value'],
'point_name'=>$data['point_name'],
'extent_info'=>$data['extent_info'],
);
$res = $this->query($sql, $bind);
if (!$res){
return false;
}
$sql = "
select
userid
from
$tblu
where
userid = :userid
";
$bind = array(
'userid'=>$userid
);
$res= $this->selectRow($sql, $bind);
if ($res === false){
return false;
}
if (!$res){
$sql = "
insert into $tblu(
userid,
current_point
)
values(
:userid,
:pt
)
";
$bind = array(
'userid'=>$userid,
'pt'=>$data['point_value']
);
$res = $this->query($sql, $bind);
if (!$res){
return false;
}
}
else{
$sql = "
update $tblu set
current_point = current_point + (:pt)
where
userid = :userid
";
$bind = array(
'userid'=>$userid,
'pt'=>$data['point_value']
);
$res = $this->query($sql, $bind);
if (!$res){
return false;
}
}
return true;
}
function getUserPoint($userid){
$tbl = $this->tablename('user_point');
$sql = "
select
current_point
from
$tbl
where
userid = :userid
";
$bind = array('userid'=>$userid);
$res = $this->selectRow($sql, $bind);
if ($res === false){
return false;
}
if (!$res){
return array('current_point'=>0);
}
return $res;
}
function searchPointLog($pg, $num, $data){
$tbl = $this->tablename('user_point_log');
$wsql = "";
$b = array();
if (isset($data['userid']) && $data['userid']){
$wsql = " and userid = :userid";
$b['userid'] = $data['userid'];
}
if (isset($data['point_category']) && $data['point_category']){
$wsql = " and point_category = :point_category";
$b['point_category'] = $data['point_category'];
}
$wblock = "
from
$tbl
where
1 $wsql
";
$sql = "
select
count(*) ct
$wblock
";
$bind = $b;
$res = $this->selectRow($sql, $bind);
if ($res === false){
return false;
}
$ct = $res?$res['ct']+0:0;
if (!$ct){
return $this->searchResult0();
}
$sql = "
select
logid,
point_category,
point_type,
point_name,
point_value,
extent_info,
date_format(create_date, '%Y%m%d%H%i%s') create_date
$wblock
order by create_date desc
";
$sql .= $this->searchLimit($pg, $num);
$res = $this->selectAll($sql, $bind);
if ($res === false){
return false;
}
return $this->searchResult($res, $pg, $num, $ct);
}
function getAddTargetUser($targetid, $type="list"){
$w = array();
$b = array();
if ($targetid == "all"){
}
else{
$pidx = 0;
$idar = preg_split('/,/', $targetid);
foreach ($idar as $idtx){
$par = preg_split('/-/', $idtx, 2);
if (count($par) == 1){
if (!grys_check_number($par[0])){
return false;
}
$w[] = "(ID = :id".$pidx.")";
$b['id'.$pidx] = $par[0];
$pidx++;
}
else if (count($par) == 2){
if (!grys_check_number($par[0]) || !grys_check_number($par[1])){
return false;
}
$w[] = "(ID >= :id".$pidx." and ID <= :id".($pidx+1).")";
$b['id'.$pidx] = $par[0];
$b['id'.($pidx+1)] = $par[1];
$pidx+=2;
}
}
if (!$w){
return false;
}
}
$wsql = join(' or ', $w);
if ($wsql) $wsql = " and $wsql";
$sql = "
select
count(*) ct
from
wp_users
where
user_status = 0
$wsql
";
$bind = $b;
$res = $this->selectRow($sql, $bind);
if ($res === false){
return false;
}
if (!$res){
$ct = 0;
}
else{
$ct = $res['ct'];
}
if ($type == "count"){
return $ct;
}
if ($ct == 0){
return array();
}
$sql = "
select
ID
from
wp_users
where
user_status = 0
$wsql
";
$res = $this->selectAll($sql, $bind);
if ($res === false){
return false;
}
return $res;
}
}