decrypt($userkey,$GLOBALS['TS_SITE']['site_pkey']); $isUser = $this->findCount('user',array( 'userid'=>$userid, )); if($isUser == 0){ echo json_encode(array( 'status'=> 0, 'msg'=> '非法操作', 'data'=> '', )); exit; }else{ return $userid; } } /** * @param $string * @param string $action * @return string */ public function strCode($string, $action = 'ENCODE'){ $action != 'ENCODE' && $string = base64_decode($string); $code = ''; $key = $GLOBALS['TS_SITE']['site_pkey']; $keyLen = strlen($key); $strLen = strlen($string); for ($i = 0; $i < $strLen; $i++) { $k = $i % $keyLen; $code .= $string[$i] ^ $key[$k]; } return ($action != 'DECODE' ? base64_encode($code) : $code); } /** * @param $phone * @param $code * @return bool */ public function verifyPhoneCode($phone, $code){ $strPhoneCode = $this->find('phone_code',array( 'phone'=>$phone, )); #空数据 if($strPhoneCode==''){ return false;exit; } #空验证码 if($strPhoneCode['code']==''){ return false;exit; } #手机验证码错误次数>=2 if($strPhoneCode['nums']>=2){ $this->update('phone_code',array( 'phone'=>$phone, ),array( 'code'=>'', 'nums'=>0, )); return false;exit; } #手机验证码错误 if($strPhoneCode['code']!=$code){ $this->update('phone_code',array( 'phone'=>$phone, ),array( 'nums'=>$strPhoneCode['nums']+1, )); return false;exit; } return true; } /** * 验证Email验证码 */ public function verifyEmailCode($email, $code){ $strEmailCode = $this->find('email_code',array( 'email'=>$email, )); #空数据 if($strEmailCode==''){ return false;exit; } #空验证码 if($strEmailCode['code']==''){ return false;exit; } #验证码错误次数>=2 if($strEmailCode['nums']>=2){ $this->update('email_code',array( 'email'=>$email, ),array( 'code'=>'', 'nums'=>0, )); return false;exit; } #验证码错误 if($strEmailCode['code']!=$code){ $this->update('email_code',array( 'email'=>$email, ),array( 'nums'=>$strEmailCode['nums']+1, )); return false;exit; } return true; } /** * 删除点赞 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param integer $userid * @return void */ public function delLove($ptable,$pkey,$pid,$userid=0){ if($userid){ $this->delete('love',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, 'userid'=>$userid, )); }else{ $this->delete('love',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, )); } return true; } /** * 添加项目数据到ts_topic表 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param string $pjson * @param [type] $groupid * @param [type] $userid * @param [type] $title * @param [type] $gaiyao * @return void */ public function addPtable($ptable,$pkey,$pid,$pjson,$groupid,$userid,$title,$gaiyao){ $topicid = $this->create('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, 'pjson'=>$pjson, 'groupid'=>$groupid, 'userid'=>$userid, 'title'=>$title, 'gaiyao'=>$gaiyao, 'isaudit'=>0, 'addtime'=>time(), 'uptime'=>time(), )); return $topicid; } /** * 更新项目数据到ts_topic表 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param string $pjson * @param [type] $title * @param [type] $gaiyao * @return void */ public function editPtable($ptable,$pkey,$pid,$pjson,$title,$gaiyao){ $this->update('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, ),array( 'pjson'=>$pjson, 'title'=>$title, 'gaiyao'=>$gaiyao, )); } /** * 更新项目浏览数到ts_topic表 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param [type] $count_view * @return void */ public function upPtableView($ptable,$pkey,$pid,$count_view){ $this->update('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, ),array( 'count_view'=>$count_view, )); } /** * 更新项目评论数到ts_topic表 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param [type] $count_comment * @return void */ public function upPtableComment($ptable,$pkey,$pid,$count_comment){ if($ptable!='topic'){ $this->update('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, ),array( 'count_comment'=>$count_comment, 'uptime'=>time(), )); } } /** * 更新项目点赞数到ts_topic表 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param [type] $count_love * @return void */ public function upPtableLove($ptable,$pkey,$pid,$count_love){ if($ptable!='topic'){ $this->update('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, ),array( 'count_love'=>$count_love, )); } } /** * 从ts_topic表删除项目数据 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @return void */ public function delPtable($ptable,$pkey,$pid){ $this->delete('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, )); } /** * 用户内容添加、修改、删除记录 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param [type] $userid * @param [type] $title * @param [type] $content * @param [type] $status * @return void */ public function addLogs($ptable,$pkey,$pid,$userid,$title,$content,$status){ $this->create('logs',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, 'userid'=>$userid, 'title'=>$title, 'content'=>$content, 'status'=>$status, 'addtime'=>time(), )); } /** * 更新项目推荐 * * @param [type] $ptable * @param [type] $pkey * @param [type] $pid * @param integer $isrecommend 1推荐0不推荐 * @return void */ public function upPtableRecommend($ptable,$pkey,$pid,$isrecommend=1){ if($ptable!='topic'){ $this->update('topic',array( 'ptable'=>$ptable, 'pkey'=>$pkey, 'pid'=>$pid, ),array( 'isrecommend'=>$isrecommend, )); } } /** * ThinkSAAS分块上传文件 * upsize和upcount为空的情况下就是单个文件,并且该文件比设定的大小要小 * * @param [type] $userid 用户ID * @param [type] $upsize 总共分几段上传 * @param [type] $upcount 每次分段的size * @param array $uptype 上传文件类型 * @return void */ public function chunkUpload($userid,$files,$upsize,$upcount,$uptype=array()){ $upid = $this->create('upload',array( 'userid'=>$userid, 'addtime'=>date('Y-m-d H:i:s'), )); #分块上传到本地服务器 $arrUpload = tsUploadLocal($files,$upid,'upload',$uptype); if($arrUpload['size']){ $this->update('upload',array( 'upid'=>$upid, ),array( 'fileurl'=>$arrUpload['url'], 'filename'=>$arrUpload['name'], 'filesize'=>$arrUpload['size'], 'filetype'=>$arrUpload['type'], )); if($arrUpload['size']<$upsize || $upsize==''){ $arrUp = $this->findAll('upload',array( 'userid'=>$userid, ),'upid asc'); if(count($arrUp)==$upcount || ($arrUp && $upcount=='')){ return $arrUp; }else{ return 1; } }else{ return 1; } }else{ return 0; } } /** * 合并上传文件 * * @param [type] $userid * @param [type] $projectid * @param [type] $dir * @param array $arrUp * @return void */ public function mergeUpload($projectid,$dir,$arrUp=array()){ $path = getDirPath($projectid); $dest_dir = 'uploadfile/' . $dir . '/' . $path; createFolders($dest_dir); $name = $projectid . '.' . $arrUp[0]['filetype']; $dest = $dest_dir . '/' . $name; #删除原文件 unlink($dest); $fp = fopen($dest, "ab"); $filesize = 0; foreach($arrUp as $key=>$item){ $upfile = 'uploadfile/upload/'.$item['fileurl']; $handle = fopen($upfile,"rb"); fwrite($fp, fread($handle,$item['filesize'])); fclose($handle); unset($handle); unlink($upfile);//合并完毕的文件就删除 $filesize = $item['filesize']; $filesize++; #删除ts_upload $this->delete('upload',array( 'upid'=>$item['upid'], )); } return array( 'name' => $arrUp[0]['filename'], 'path' => $path, 'url' => $path . '/' . $name, 'type' => $arrUp[0]['filetype'], 'size' => $filesize, ); } /** * 删除用户分段上传的文件ts_upload * * @param [type] $userid * @return void */ public function delUpload($userid){ $arrUp = $this->findAll('upload',array( 'userid'=>$userid, ),'upid asc'); foreach($arrUp as $key=>$item){ $upfile = 'uploadfile/upload/'.$item['fileurl']; unlink($upfile); } #删除ts_upload $this->delete('upload',array( 'userid'=>$userid, )); } /** * 更新APP用户组权限 * * 权限参数说明,app,action必须,其他参数可选 * app-action-ts * app-action-mg-ts 当action=admin * app-action-api-ts 当action=api * */ public function upAppPermissions($ugid,$app,array $arrOption){ foreach($arrOption as $key=>$item){ $status = $item; if($ugid==1) $status=1; $arrKey = explode('_',$key); $key_app = $arrKey[0]; $key_ac = $arrKey[1]; $key_mg = ''; $key_api = ''; $key_ts = ''; if($key_ac=='admin'){ $key_mg = $arrKey[2]; $key_ts = $arrKey[3]; }elseif($key_ac=='api'){ $key_api = $arrKey[2]; $key_ts = $arrKey[3]; }else{ $key_ts = $arrKey[2]; } if($key_ts==null) $key_ts=''; $this->replace('permissions',array( 'ugid'=>$ugid, 'app'=>$key_app, 'action'=>$key_ac, 'mg'=>$key_mg, 'api'=>$key_api, 'ts'=>$key_ts, ),array( 'ugid'=>$ugid, 'app'=>$key_app, 'action'=>$key_ac, 'mg'=>$key_mg, 'api'=>$key_api, 'ts'=>$key_ts, 'status'=>$status, )); } //存储permissions到本地文件 $arrPermissions = $this->findAll('permissions',array( 'app'=>$app, )); foreach($arrPermissions as $key=>$item){ $option = $item['app'].'_'.$item['action']; if($item['mg']) $option .= '_'.$item['mg']; if($item['api']) $option .= '_'.$item['api']; if($item['ts']) $option .= '_'.$item['ts']; $arrData[$item['ugid']][$option] = $item['status']; } fileWrite($app.'_permissions.php','data',$arrData); $GLOBALS['tsMySqlCache']->set($app.'_permissions',$arrData); } }