Unsubscribe
'.$tt2;
$maidata['email'] = $v['email'];
@@ -1130,7 +1175,6 @@ class Journal extends Controller {
* @method POST
*
* @param name:journal_notices_id type:int require:1 desc:期刊id
- *
*/
public function delNotices(){
$data = $this->request->post();
@@ -1149,7 +1193,6 @@ class Journal extends Controller {
* @param name:title type:string require:1 desc:消息标题
* @param name:content type:string require:1 desc:内容
* @param name:ctime type:string require:1 desc:时间
- *
*/
public function changeNotices(){
$data = $this->request->post();
@@ -1347,6 +1390,134 @@ class Journal extends Controller {
return jsonSuccess([]);
}
+ /**
+ * @title 获取期刊缩略图
+ * @description 获取期刊缩略图
+ * @author wangjinlei
+ * @url /master/Journal/getJournalIcon
+ * @method POST
+ *
+ * @param name:issn type:int require:1 desc:issn号
+ *
+ * @return icon:图片地址#
+ */
+ public function getJournalIcon(){
+ $data = $this->request->post();
+ $journal_info = $this->journal_obj->where('issn',$data['issn'])->find();
+
+ $re['icon'] = $journal_info['licon'];
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 通用话题--获取通用话题列表
+ * @description 通用话题--获取通用话题列表
+ * @author wangjinlei
+ * @url /master/Journal/getBaseTopicList
+ * @method POST
+ *
+ * @return topics:通用话题#
+ */
+ public function getBaseTopicList(){
+ $father = $this->base_topic_obj->where('parent_id',0)->where('state',0)->order('sort desc')->select();
+ foreach ($father as $k => $v){
+ $cache = $this->base_topic_obj->where('parent_id',$v['base_topic_id'])->where('state',0)->order('sort desc')->select();
+ $father[$k]['children'] = $cache;
+ }
+ $re['topics'] = $father;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 通用话题--增加通用话题
+ * @description 通用话题--增加通用话题
+ * @author wangjinlei
+ * @url /master/Journal/addBaseTopic
+ * @method POST
+ *
+ * @param name:title type:string require:1 desc:话题名称标题
+ * @param name:parent_id type:int require:1 desc:父级话题id
+ * @param name:sort type:int require:1 desc:权重值
+ * @param name:icon type:string require:1 desc:图标
+ *
+ */
+ public function addBaseTopic(){
+ $data = $this->request->post();
+ $check = $this->base_topic_obj->where('title',$data['title'])->where('state',0)->find();
+ if($check != null){
+ return jsonError('此话题已存在,话题名不能重复!!');
+ }
+
+ $insert['title'] = trim($data['title']);
+ $insert['parent_id'] = $data['parent_id'];
+ $insert['sort'] = $data['sort'];
+ $insert['icon'] = $data['icon'];
+
+ $this->base_topic_obj->insert($insert);
+
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 通用话题--编辑通用话题
+ * @description 通用话题--编辑通用话题
+ * @author wangjinlei
+ * @url /master/Journal/editBaseTopic
+ * @method POST
+ *
+ * @param name:base_topic_id type:int require:1 desc:通用话题id
+ * @param name:title type:string require:1 desc:话题名称标题
+ * @param name:sort type:int require:1 desc:权重值
+ */
+ public function editBaseTopic(){
+ $data = $this->request->post();
+ $update['title'] = trim($data['title']);
+ $update['sort'] = $data['sort'];
+ if(isset($data['icon'])){
+ $update['icon'] = $data['icon'];
+ }
+ $this->base_topic_obj->where('base_topic_id',$data['base_topic_id'])->update($update);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 通用话题--删除通用话题
+ * @description 通用话题--删除通用话题
+ * @author wangjinlei
+ * @url /master/Journal/delBaseTopic
+ * @method POST
+ *
+ * @param name:base_topic_id type:int require:1 desc:通用话题id
+ */
+ public function delBaseTopic(){
+ $data = $this->request->post();
+ $this->base_topic_obj->where('base_topic_id',$data['base_topic_id'])->update(['state'=>1]);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 通用话题--图片上传
+ * @description 通用话题--图片上传
+ * @author wangjinlei
+ * @url /master/Journal/baseTopic_up_file
+ * @method POST
+ *
+ * @param name:name type:string require:1 default:baseTopic desc:文件域名称
+ *
+ * @return upurl:图片地址
+ */
+ public function baseTopic_up_file() {
+ $file = request()->file('baseTopic');
+ if ($file) {
+ $info = $file->move(ROOT_PATH . 'public' . DS . 'baseTopic');
+ if ($info) {
+ return json(['code'=>0 , 'msg'=>'success', 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
+ } else {
+ return json(['code' => 1, 'msg' => $file->getError()]);
+ }
+ }
+ }
+
/**
* @title 增加期刊paper文章
* @description 增加期刊paper文章
@@ -1406,6 +1577,7 @@ class Journal extends Controller {
$data = $this->request->post();
$update['title'] = $data['title'];
$update['content'] = $data['content'];
+ $update['sort']=$data['sort'];
$this->journal_paper_art_obj->where('journal_paper_art_id',$data['journal_paper_art_id'])->update($update);
return jsonSuccess([]);
}
diff --git a/application/master/controller/Mysystem.php b/application/master/controller/Mysystem.php
index 656a590..97cb722 100644
--- a/application/master/controller/Mysystem.php
+++ b/application/master/controller/Mysystem.php
@@ -395,12 +395,14 @@ class Mysystem extends Controller {
*
* @param name:title type:string require:1 desc:消息标题
* @param name:content type:string require:1 desc:内容
+ * @param name:icon type:string require:1 desc:图标
* @param name:ctime type:string require:1 desc:时间
*/
public function addNotices(){
$data = $this->request->post();
$insert['title'] = $data['title'];
$insert['content'] = $data['content'];
+ $insert['icon'] = $data['icon'];
$insert['ctime'] = $data['ctime']==''?time():strtotime($data['ctime']);
$this->sys_not_obj->insert($insert);
return jsonSuccess([]);
@@ -430,11 +432,13 @@ class Mysystem extends Controller {
*
* @param name:system_notices_id type:int require:1 desc:消息标题
* @param name:title type:string require:1 desc:消息标题
+ * @param name:icon type:string require:1 desc:图标
* @param name:content type:string require:1 desc:内容
*/
public function editNotices(){
$data = $this->request->post();
$update['title'] = $data['title'];
+ $update['icon'] = $data['icon'];
$update['content'] = $data['content'];
$this->sys_not_obj->where('system_notices_id',$data['system_notices_id'])->update($update);
return jsonSuccess([]);
diff --git a/application/master/controller/Propa.php b/application/master/controller/Propa.php
new file mode 100644
index 0000000..0be1f23
--- /dev/null
+++ b/application/master/controller/Propa.php
@@ -0,0 +1,502 @@
+admin_obj = Db::name('admin');
+ $this->journal_obj = Db::name('journal');
+ $this->article_obj = Db::name('article');
+ $this->article_author_obj = Db::name('article_author');
+ $this->journal_topic_obj = Db::name('journal_topic');
+ $this->journal_stage_obj = Db::name('journal_stage');
+ $this->journal_notices_obj = Db::name('journal_notices');
+ $this->journal_abs_obj = Db::name('journal_abstracting');
+ $this->journal_special_obj = Db::name('journal_special');
+ $this->journal_special_editor_obj = Db::name('journal_special_editor');
+ $this->journal_special_to_editor_obj = Db::name('journal_special_to_editor');
+ $this->journal_special_alert_obj = Db::name('journal_special_alert');
+ $this->article_to_topic_obj = Db::name('article_to_topic');
+ $this->sys_scient_obj = Db::name('system_scient');
+ $this->sys_book_obj = Db::name('system_books');
+ $this->propa_email_model_obj = Db::name('propa_email_model');
+ $this->propa_email_obj = Db::name('propa_email');
+ $this->propa_email_type_obj = Db::name('propa_email_type');
+ $this->propa_email_log_obj = Db::name('propa_email_log');
+ }
+
+ /**
+ * @title 获取编辑名下期刊列表
+ * @description 获取编辑名下期刊列表
+ * @author wangjinlei
+ * @url /master/Propa/getEditorJournals
+ * @method POST
+ *
+ * @param name:editor_id type:int require:1 desc:编辑id
+ *
+ * @return journals:期刊列表#
+ */
+ public function getEditorJournals(){
+ $data = $this->request->post();
+ $journals = $this->journal_obj->where('editor_id',$data['editor_id'])->where('state',0)->select();
+
+ $re['journals'] = $journals;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 获取期刊详情
+ * @description 获取期刊详情
+ * @author wangjinlei
+ * @url /master/Propa/getJournalDetail
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ *
+ * @return journal:期刊信息#
+ */
+ public function getJournalDetail(){
+ $data = $this->request->post();
+ $info = $this->journal_obj->where('journal_id',$data['journal_id'])->where('state',0)->find();
+ $re['journal'] = $info;
+ return jsonSuccess($re);
+ }
+
+
+ /**
+ * @title 添加推广邮箱(单个邮箱)
+ * @description 添加推广邮箱(单个邮箱)
+ * @author wangjinlei
+ * @url /master/Propa/addPropaEmail
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ * @param name:pet_id type:int require:1 desc:分类id
+ * @param name:email type:string require:1 desc:邮箱地址
+ *
+ */
+ public function addPropaEmail(){
+ $data = $this->request->post();
+ $count = $this->propa_email_obj->where('journal_id',$data['journal_id'])->where('pet_id',$data['pet_id'])->where('state',0)->count();
+ if($count>=200){
+ return jsonError("超过最大上限数量,最大上限200");
+ }
+ $check = $this->propa_email_obj
+ ->where('email',trim($data['email']))
+ ->where('pet_id',$data['pet_id'])
+ ->where('journal_id',$data['journal_id'])
+ ->where('state',0)
+ ->find();
+ if($check!=null){
+ return jsonError('has add');
+ }
+ $insert['journal_id'] = $data['journal_id'];
+ $insert['pet_id'] = $data['pet_id'];
+ $insert['email'] = trim($data['email']);
+ $this->propa_email_obj->insert($insert);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 添加推广邮箱(txt)
+ * @description 添加推广邮箱(txt)
+ * @author wangjinlei
+ * @url /master/Propa/addPropaEmailByTxt
+ * @method POST
+ *
+ * @param name:fileDir type:string require:1 desc:上传文件的返回地址
+ * @param name:journal_id type:int require:1 desc:期刊id
+ * @param name:pet_id type:int require:1 desc:分类id
+ *
+ */
+ public function addPropaEmailByTxt(){
+ $data = $this->request->post();
+// $data['journal_id'] = 1;
+// $data['fileDir'] = '20210915/9754ea4775f85a167140d0e33610b4e5.txt';
+
+ $txt = ROOT_PATH.'public'.DS.'txtfile'.DS.$data['fileDir'];
+ $handle = fopen($txt, "r");//读取二进制文件时,需要将第二个参数设置成'rb'
+ //通过filesize获得文件大小,将整个文件一下子读到一个字符串中
+ $contents = fread($handle, filesize ($txt));
+ fclose($handle);
+ $emails = $this->extract_emails_from($contents);
+ $count = $this->propa_email_obj->where('journal_id',$data['journal_id'])->where('pet_id',$data['pet_id'])->where('state',0)->count();
+ if(($count+count($emails))>=200){
+ return jsonError('超过最大上限数量,最大上限为200');
+ }
+ foreach ($emails as $v){
+ $cache_check = $this->propa_email_obj->where('email',$v)->where('pet_id',$data['pet_id'])->where('state',0)->find();
+ if($cache_check!=null){
+ continue;
+ }
+ $cache_insert['journal_id'] = $data['journal_id'];
+ $cache_insert['pet_id'] = $data['pet_id'];
+ $cache_insert['email'] = $v;
+ $this->propa_email_obj->insert($cache_insert);
+ }
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 删除推广邮箱
+ * @description 删除推广邮箱
+ * @author wangjinlei
+ * @url /master/Propa/delPropaEmail
+ * @method POST
+ *
+ * @param name:propa_email_id type:int require:1 desc:推广邮箱id
+ *
+ */
+ public function delPropaEmail(){
+ $data = $this->request->post();
+ $this->propa_email_obj->where('propa_email_id',$data['propa_email_id'])->update(['state'=>1]);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 获取推广邮箱列表(分页)
+ * @description 获取推广邮箱列表(分页)
+ * @author wangjinlei
+ * @url /master/Propa/getPropaEmails
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ * @param name:pet_id type:int require:1 desc:分类id
+ * @param name:pageIndex type:int require:1 desc:当前页码数
+ * @param name:pageSize type:int require:1 desc:单页数据条数
+ *
+ * @return emails:邮箱列表#
+ * @return count:总数
+ */
+ public function getPropaEmails(){
+ $data = $this->request->post();
+ $limit_start = ($data['pageIndex'] - 1) * $data['pageSize'];
+ $list = $this->propa_email_obj
+ ->where('journal_id',$data['journal_id'])
+ ->where('pet_id',$data['pet_id'])
+ ->where('state',0)
+ ->limit($limit_start,$data['pageSize'])
+ ->select();
+ $count = $this->propa_email_obj->where('journal_id',$data['journal_id'])->where('pet_id',$data['pet_id'])->where('state',0)->count();
+
+ $re['emails'] = $list;
+ $re['count'] = $count;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 获取推广邮箱当天已发送数量
+ * @description 获取推广邮箱当天已发送数量
+ * @author wangjinlei
+ * @url /master/Propa/getPropaEmailLog
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ *
+ * @return count:总数
+ */
+ public function getPropaEmailLog(){
+ $data = $this->request->post();
+ $log = $this->propa_email_log_obj->where('journal_id',$data['journal_id'])->where('date', date('Ymd'))->find();
+
+ $re['count'] = $log['num'];
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 获取推广邮箱分类
+ * @description 获取推广邮箱分类
+ * @author wangjinlei
+ * @url /master/Propa/getPropaType
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ *
+ * @return types:分类列表#
+ */
+ public function getPropaType(){
+ $data = $this->request->post();
+ $types = $this->propa_email_type_obj->where('journal_id',$data['journal_id'])->where('state',0)->select();
+ if($types==null){//当一个分类没有时新建一个默认分类
+ $insert['journal_id'] = $data['journal_id'];
+ $insert['title'] = 'default';
+ $this->propa_email_type_obj->insert($insert);
+ $types = $this->propa_email_type_obj->where('journal_id',$data['journal_id'])->where('state',0)->select();
+ }
+
+ $re['types'] = $types;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 添加邮件模板
+ * @description 添加邮件模板
+ * @author wangjinlei
+ * @url /master/Propa/addPropaEmailModel
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ * @param name:title type:string require:1 desc:标题
+ * @param name:content type:string require:1 desc:内容
+ */
+ public function addPropaEmailModel(){
+ $data = $this->request->post();
+ $insert['journal_id'] = $data['journal_id'];
+ $insert['title'] = trim($data['title']);
+ $insert['content'] = $data['content'];
+ $this->propa_email_model_obj->insert($insert);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 添加推广邮件类型
+ * @description 添加推广邮件类型
+ * @author wangjinlei
+ * @url /master/Propa/addPropaEmailType
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ * @param name:title_content type:string require:1 desc:分类名称
+ */
+ public function addPropaEmailType(){
+ $data = $this->request->post();
+ $insert['journal_id'] = $data['journal_id'];
+ $insert['title'] = trim($data['title_content']);
+ $this->propa_email_type_obj->insert($insert);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 删除邮件模板
+ * @description 删除邮件模板
+ * @author wangjinlei
+ * @url /master/Propa/delPropaEmailModel
+ * @method POST
+ *
+ * @param name:pem_id type:int require:1 desc:邮件模板id
+ */
+ public function delPropaEmailModel(){
+ $data = $this->request->post();
+ $this->propa_email_model_obj->where('pem_id',$data['pem_id'])->update(['state'=>1]);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 编辑邮件模板
+ * @description 编辑邮件模板
+ * @author wangjinlei
+ * @url /master/Propa/editPropaEmailModel
+ * @method POST
+ *
+ * @param name:pem_id type:int require:1 desc:邮件模板id
+ * @param name:title type:string require:1 desc:标题
+ * @param name:content type:string require:1 desc:内容
+ */
+ public function editPropaEmailModel(){
+ $data = $this->request->post();
+ $update['title'] = trim($data['title']);
+ $update['content'] = $data['content'];
+ $this->propa_email_model_obj->where('pem_id',$data['pem_id'])->update($update);
+ return jsonSuccess([]);
+ }
+
+ /**
+ * @title 获取邮件模板列表
+ * @description 获取邮件模板列表
+ * @author wangjinlei
+ * @url /master/Propa/getPropaEmailModel
+ * @method POST
+ *
+ * @param name:journal_id type:int require:1 desc:期刊id
+ *
+ * @return models:模板列表#
+ */
+ public function getPropaEmailModel(){
+ $data = $this->request->post();
+ $models = $this->propa_email_model_obj->where('journal_id',$data['journal_id'])->where('state',0)->select();
+ $re['models'] = $models;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 获取单个邮件模板
+ * @description 获取单个邮件模板
+ * @author wangjinlei
+ * @url /master/Propa/getOneEmailModel
+ * @method POST
+ *
+ * @param name:pem_id type:int require:1 desc:邮件模板id
+ *
+ * @return models:模板信息#
+ */
+ public function getOneEmailModel(){
+ $data = $this->request->post();
+ $model = $this->propa_email_model_obj->where('pem_id',$data['pem_id'])->find();
+ $re['model'] = $model;
+ return jsonSuccess($re);
+ }
+
+ /**
+ * @title 发送邮件
+ * @description 发送邮件
+ * @author wangjinlei
+ * @url /master/Propa/sendEmail
+ * @method POST
+ *
+ * @param name:content type:string require:1 desc:内容
+ * @param name:pet_id type:int require:1 desc:分类id
+ * @param name:journal_id type:int require:1 desc:期刊id
+ */
+ public function sendEmail(){
+ $data = $this->request->post();
+ $journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
+ $emails = $this->propa_email_obj->where('journal_id',$data['journal_id'])->where('pet_id',$data['pet_id'])->where('state',0)->select();
+ $time = date('Ymd');
+ $log = $this->propa_email_log_obj->where('journal_id',$data['journal_id'])->where('date',$time)->find();
+ $num = 0;
+ if($log==null){
+ $in['journal_id'] = $data['journal_id'];
+ $in['date'] = $time;
+ $this->propa_email_log_obj->insert($in);
+ }else{
+ $num = $log['num'];
+ }
+
+ foreach ($emails as $k => $v){
+ if($num>=200){
+ continue;
+ }
+ $maidata['email'] = $v['email'];
+ $maidata['title'] = $journal_info['title'];
+ $maidata['content'] = $data['content'];
+ Queue::push('app\api\job\mail@propa', $maidata, "mail");
+ $num++;
+ }
+ $this->propa_email_log_obj->where('journal_id',$data['journal_id'])->where('date',$time)->update(['num'=>$num]);
+ return jsonSuccess([]);
+ }
+
+ private function aliemail(){
+ vendor('aliemail.email');
+ $mailto='751475802@qq.com';
+ $mailsubject="测试邮件";
+ $mailbody='这里是邮件内容';
+ $smtpserver = "smtpdm-ap-southeast-1.aliyun.com";
+ $smtpserverport = 80;
+ $smtpusermail = "propa@hellotmr.top";
+ // 发件人的账号,填写控制台配置的发信地址,比如xxx@xxx.com
+ $smtpuser = "propa@hellotmr.top";
+ // 访问SMTP服务时需要提供的密码(在控制台选择发信地址进行设置)
+ $smtppass = "Wu751019Pnx";
+ $mailsubject = "=?UTF-8?B?" . base64_encode($mailsubject) . "?=";
+ $mailtype = "HTML";
+ //可选,设置回信地址
+ $smtpreplyto = "13662001490@126.com";
+ $smtp = new \smtp($smtpserver, $smtpserverport, true, $smtpuser, $smtppass);
+ $smtp->debug = false;
+ $cc ="";
+ $bcc = "";
+ $additional_headers = "";
+ //设置发件人名称,名称用户可以自定义填写。
+ $sender = "wangjinlei test";
+ $res = $smtp->sendmail($mailto,$smtpusermail, $mailsubject, $mailbody, $mailtype, $cc, $bcc, $additional_headers, $sender, $smtpreplyto);
+
+ echo '
';
+ var_dump($res);
+ echo '
';
+ die;
+ }
+
+
+ /**
+ * @title txt文件上传
+ * @description txt文件上传
+ * @author wangjinlei
+ * @url /master/Propa/up_file
+ * @method POST
+ *
+ * @param name:name type:string require:1 default:txtfile desc:文件域名称
+ *
+ * @return upurl:图片地址
+ */
+ public function up_file(){
+ $file = request()->file('txtfile');
+ if ($file) {
+ $info = $file->move(ROOT_PATH . 'public' . DS . 'txtfile');
+ if ($info) {
+ return json(['code' => 0, 'msg' => 'success', 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
+ } else {
+ return json(['code' => 1, 'msg' => $file->getError()]);
+ }
+ }
+ }
+
+ /**
+ * @title 获取txt文件包含邮箱地址
+ * @description 获取txt文件包含邮箱地址
+ * @author wangjinlei
+ * @url /master/Propa/readTxt
+ * @method POST
+ *
+ * @param name:txtdir type:string require:1 desc:txt文件上传后返回地址
+ *
+ * @return emails:邮箱列表#
+ */
+ public function readTxt(){
+ $data = $this->request->post();
+ $txt = ROOT_PATH.'public'.DS.'txtfile'.DS.$data['txtdir'];
+ $handle = fopen($txt, "r");//读取二进制文件时,需要将第二个参数设置成'rb'
+ //通过filesize获得文件大小,将整个文件一下子读到一个字符串中
+ $contents = fread($handle, filesize ($txt));
+ fclose($handle);
+ $emails = $this->extract_emails_from($contents);
+ $re['emails'] = $emails;
+ return jsonSuccess($re);
+ }
+
+ private function extract_emails_from($string) {
+ preg_match_all("/[\._a-zA-Z0-9-]+(@|#)[\._a-zA-Z0-9-]+/i", $string, $matches);
+ $emails = $matches[0];
+ //去掉邮件最后的.
+ foreach ($emails as $k => $email){
+ if(substr($email,strlen($email)-1,1)=='.'){
+ $emails[$k] = substr($email,0, strlen($email)-1);
+ }
+ }
+ return $emails;
+ }
+
+
+}
\ No newline at end of file
diff --git a/application/super/controller/Publish.php b/application/super/controller/Publish.php
index 93ba798..20e5bc8 100644
--- a/application/super/controller/Publish.php
+++ b/application/super/controller/Publish.php
@@ -1,4 +1,5 @@
visit_log_obj = Db::name('visit_log');
$this->article_cite_obj = Db::name('article_cite');
}
-
+
/**
* @title 获取期刊列表(出刊时间)
* @description 获取期刊列表(出刊时间)
@@ -75,49 +76,130 @@ class Publish extends Controller{
*
* @return journals:期刊信息array#
*/
- public function getMain(){
- $journals = $this->journal_obj->where('journal_id','<>',17)->where('state',0)->select();
- foreach ($journals as $k => $v){
+ public function getMain() {
+ $journals = $this->journal_obj->where('journal_id', '<>', 17)->where('state', 0)->select();
+ foreach ($journals as $k => $v) {
$journals[$k]['mark'] = $this->calMark($v['journal_id']);
$last_stage = $this->journal_stage_obj
- ->where('journal_id',$v['journal_id'])
- ->where('is_publish',1)
- ->where('state',0)
- ->order('journal_stage_id desc')
- ->limit(1)
- ->select();
- $stage_now = $last_stage?$last_stage[0]:['issue_date'=>'2020-05-15'];
+ ->where('journal_id', $v['journal_id'])
+ ->where('is_publish', 1)
+ ->where('state', 0)
+ ->order('journal_stage_id desc')
+ ->limit(1)
+ ->select();
+ $stage_now = $last_stage ? $last_stage[0] : ['issue_date' => '2020-05-15'];
$ctime = strtotime($stage_now['issue_date']);
$cs = [];
$cs['issn'] = $v['issn'];
$cs['ctime'] = $ctime;
$journals[$k]['last_time'] = $ctime;
- $cache_arts = $this->object_to_array(json_decode(myPost(self::JURL,$cs)));
- $count = is_array($cache_arts['data']['articles'])?count($cache_arts['data']['articles']):0;
+ $cache_arts = $this->object_to_array(json_decode(myPost(self::JURL, $cs)));
+ $count = is_array($cache_arts['data']['articles']) ? count($cache_arts['data']['articles']) : 0;
$journals[$k]['artCount'] = $count;
}
-
+
//按照危险值排序
- for($i=0;$i
request->post();
+
+// $data['issn'] = '2703-4631';
+// $data['start'] = '2021-01-01';
+// $data['end'] = '2021-09-08';
+
+ $info = $this->journal_obj->where('issn', $data['issn'])->find();
+
+ //出刊时间
+ $info['CK'] = [];
+ $info['CK']['mark'] = $this->calMark($info['journal_id']);
+ $last_stage = $this->journal_stage_obj
+ ->where('journal_id', $info['journal_id'])
+ ->where('is_publish', 1)
+ ->where('state', 0)
+ ->order('journal_stage_id desc')
+ ->limit(1)
+ ->select();
+ $stage_now = $last_stage ? $last_stage[0] : ['issue_date' => '2020-05-15'];
+ $ctime = strtotime($stage_now['issue_date']);
+ $cs = [];
+ $cs['issn'] = $data['issn'];
+ $cs['ctime'] = $ctime;
+ $info['CK']['last_time'] = $ctime;
+ $cache_arts = $this->object_to_array(json_decode(myPost(self::JURL, $cs)));
+ $count = is_array($cache_arts['data']['articles']) ? count($cache_arts['data']['articles']) : 0;
+ $info['CK']['artCount'] = $count;
+
+ //合规检测
+ $pa['start'] = $data['start'];
+ $pa['end'] = $data['end'];
+ $res = $this->object_to_array(json_decode(myPost(self::TJ_URL, $pa)));
+ foreach ($res as $k => $v) {
+ if($v['issn'] == $data['issn']){
+ $info['HG'] = $v;
+ $info['HG']['SUBJOURNAL'] = $this->subscribe_journal_obj->where('journal_id', $info['journal_id'])->where('state', 0)->count();
+ $topics = $this->journal_topic_obj->where('journal_id', $info['journal_id'])->where('state', 0)->column('journal_topic_id');
+ $info['HG']['SUBTOPIC'] = $this->subscribe_topic_obj->where('topic_id', 'in', $topics)->where('state', 0)->count();
+ }
+ }
+
+ //质量评估
+ $start = strtotime($data['start']);
+ $end = strtotime($data['end'] . ' 23:59:59');
+ $pag['start'] = $start;
+ $pag['end'] = $end;
+ $result = $this->object_to_array(json_decode(myPost(self::AL_URL, $pag)));
+ $r = $result['data'];
+ $tg = '';
+ foreach ($r as $val) {
+ if($val['issn']==$data['issn']){
+ $tg = $val['SJ'];
+ }
+ }
+ $info['ZL']['YY'] = $this->article_obj->where('journal_id', $info['journal_id'])->where('ctime', '>', $start)->where('ctime', '<=', $end)->where('state', 0)->sum('cited');
+ $info['ZL']['TGL'] = $tg;
+ $info['ZL']['FWL'] = $this->getFWL($info['journal_id'], $start, $end);
+ $info['ZL']['LX'] = $this->getLX($info['journal_id'], $start, $end);
+ $info['ZL']['GJH'] = $this->getGJH($info['journal_id'], $start, $end);
+ $info['ZL']['GNW'] = $this->getGNW($info['journal_id'], $start, $end);
+ $info['ZL']['CK'] = $this->getCK($info['journal_id']);
+ $info['ZL']['BW'] = $this->getBW($info['journal_id']);
+ $info['ZL']['DY'] = $this->subscribe_journal_obj->where('journal_id', $info['journal_id'])->where('state', 0)->count();
+
+ return jsonSuccess($info);
+
+ }
+
/**
* 自动任务存储危险值
*/
- public function autoDanger(){
- $journals = $this->journal_obj->where('state',0)->select();
- foreach ($journals as $k => $v){
+ public function autoDanger() {
+ $journals = $this->journal_obj->where('state', 0)->select();
+ foreach ($journals as $k => $v) {
$cah_res = $this->calMark($v['journal_id']);
$insert['journal_id'] = $v['journal_id'];
$insert['date'] = date('Ymd');
@@ -125,7 +207,7 @@ class Publish extends Controller{
$this->super_danger_obj->insert($insert);
}
}
-
+
/**
* @title 验证登录
* @description 验证登录
@@ -137,15 +219,15 @@ class Publish extends Controller{
* @param name:password type:string require:1 desc:密码
*
*/
- public function check_login(){
+ public function check_login() {
$data = $this->request->post();
- if($data['account'] == 'supervise'&&$data['password']=='wu751019'){
+ if ($data['account'] == 'supervise' && $data['password'] == 'wu751019') {
return jsonSuccess([]);
} else {
- return jsonError('check error!');
+ return jsonError('check error!');
}
}
-
+
/**
* @title 获取合规检测
* @description 获取合规检测
@@ -165,20 +247,20 @@ class Publish extends Controller{
* @dates WS:外审
* @dates SJ:时间
*/
- public function getTjJournal(){
+ public function getTjJournal() {
$data = $this->request->post();
$pa['start'] = $data['start'];
$pa['end'] = $data['end'];
- $res = $this->object_to_array(json_decode(myPost(self::TJ_URL,$pa)));
- foreach ($res as $k =>$v){
- $cache_info = $this->journal_obj->where('issn',$v['issn'])->find();
- $res[$k]['SUBJOURNAL'] = $this->subscribe_journal_obj->where('journal_id',$cache_info['journal_id'])->where('state',0)->count();
- $topics = $this->journal_topic_obj->where('journal_id',$cache_info['journal_id'])->where('state',0)->column('journal_topic_id');
- $res[$k]['SUBTOPIC'] = $this->subscribe_topic_obj->where('topic_id','in',$topics)->where('state',0)->count();
+ $res = $this->object_to_array(json_decode(myPost(self::TJ_URL, $pa)));
+ foreach ($res as $k => $v) {
+ $cache_info = $this->journal_obj->where('issn', $v['issn'])->find();
+ $res[$k]['SUBJOURNAL'] = $this->subscribe_journal_obj->where('journal_id', $cache_info['journal_id'])->where('state', 0)->count();
+ $topics = $this->journal_topic_obj->where('journal_id', $cache_info['journal_id'])->where('state', 0)->column('journal_topic_id');
+ $res[$k]['SUBTOPIC'] = $this->subscribe_topic_obj->where('topic_id', 'in', $topics)->where('state', 0)->count();
}
- return jsonSuccess($res) ;
+ return jsonSuccess($res);
}
-
+
/**
* @title 获取查重文章
* @description 获取查重文章
@@ -192,16 +274,16 @@ class Publish extends Controller{
* @param name:end type:string require:1 desc:结束时间
*
*/
- public function getCCArticle(){
+ public function getCCArticle() {
$data = $this->request->post();
$pa['issn'] = $data['issn'];
$pa['type'] = $data['type'];
$pa['start'] = $data['start'];
$pa['end'] = $data['end'];
- $res = myPost(self::CCA_URL,$pa);
+ $res = myPost(self::CCA_URL, $pa);
return $res;
}
-
+
/**
* @title 获取质量评估
* @description 获取质量评估
@@ -221,33 +303,33 @@ class Publish extends Controller{
* @return BW:编委
* @return DY:订阅
*/
- public function getQuality(){
+ public function getQuality() {
$data = $this->request->post();
- $journals = $this->journal_obj->where('state',0)->select();
+ $journals = $this->journal_obj->where('state', 0)->select();
$start = strtotime($data['start']);
- $end = strtotime($data['end'].' 23:59:59');
+ $end = strtotime($data['end'] . ' 23:59:59');
$pag['start'] = $start;
$pag['end'] = $end;
- $res = $this->object_to_array(json_decode(myPost(self::AL_URL,$pag)));
+ $res = $this->object_to_array(json_decode(myPost(self::AL_URL, $pag)));
$r = $res['data'];
$tg = [];
- foreach ($r as $val){
+ foreach ($r as $val) {
$tg[$val['issn']] = $val['SJ'];
}
- foreach ($journals as $k => $v){
- $journals[$k]['YY'] = $this->article_obj->where('journal_id',$v['journal_id'])->where('ctime','>',$start)->where('ctime','<=',$end)->where('state',0)->sum('cited');
- $journals[$k]['TGL'] = isset($tg[$v['issn']])?$tg[$v['issn']]:[];
- $journals[$k]['FWL'] = $this->getFWL($v['journal_id'],$start,$end);
- $journals[$k]['LX'] = $this->getLX($v['journal_id'],$start,$end);
- $journals[$k]['GJH'] = $this->getGJH($v['journal_id'],$start,$end);
- $journals[$k]['GNW'] = $this->getGNW($v['journal_id'],$start,$end);
+ foreach ($journals as $k => $v) {
+ $journals[$k]['YY'] = $this->article_obj->where('journal_id', $v['journal_id'])->where('ctime', '>', $start)->where('ctime', '<=', $end)->where('state', 0)->sum('cited');
+ $journals[$k]['TGL'] = isset($tg[$v['issn']]) ? $tg[$v['issn']] : [];
+ $journals[$k]['FWL'] = $this->getFWL($v['journal_id'], $start, $end);
+ $journals[$k]['LX'] = $this->getLX($v['journal_id'], $start, $end);
+ $journals[$k]['GJH'] = $this->getGJH($v['journal_id'], $start, $end);
+ $journals[$k]['GNW'] = $this->getGNW($v['journal_id'], $start, $end);
$journals[$k]['CK'] = $this->getCK($v['journal_id']);
$journals[$k]['BW'] = $this->getBW($v['journal_id']);
- $journals[$k]['DY'] = $this->subscribe_journal_obj->where('journal_id',$v['journal_id'])->where('state',0)->count();
+ $journals[$k]['DY'] = $this->subscribe_journal_obj->where('journal_id', $v['journal_id'])->where('state', 0)->count();
}
return jsonSuccess($journals);
}
-
+
/**
* @title 增加访问次数
* @description 增加访问次数
@@ -258,45 +340,44 @@ class Publish extends Controller{
* @param name:type type:string require:1 desc:类型(1.de2.journal_id)
* @param name:is_detail type:int require:0 desc:是否是详情(0否1是)
*/
- public function addVisitNum(){
+ public function addVisitNum() {
$data = $this->request->post();
// $data['type'] = 1;
- $data['is_detail'] = isset($data['is_detail'])?$data['is_detail']:0;
+ $data['is_detail'] = isset($data['is_detail']) ? $data['is_detail'] : 0;
$up_id = 0;
- if($data['type']=='de'){//数据库访问
- $res = $this->visit_log_obj->where('type','de')->where('stime',date('Ym'))->find();
- if($res==null){
+ if ($data['type'] == 'de') {//数据库访问
+ $res = $this->visit_log_obj->where('type', 'de')->where('stime', date('Ym'))->find();
+ if ($res == null) {
$insert['type'] = 'de';
$insert['stime'] = date('Ym');
$up_id = $this->visit_log_obj->insertGetId($insert);
- }else{
+ } else {
$up_id = $res['vlid'];
}
- }else if(is_numeric($data['type']) && $data['is_detail']==1){
- $res = $this->visit_log_obj->where('type',$data['type'])->where('is_detail',1)->where('stime',date('Ym'))->find();
- if($res==null){
- $insert['type']= $data['type'];
+ } else if (is_numeric($data['type']) && $data['is_detail'] == 1) {
+ $res = $this->visit_log_obj->where('type', $data['type'])->where('is_detail', 1)->where('stime', date('Ym'))->find();
+ if ($res == null) {
+ $insert['type'] = $data['type'];
$insert['is_detail'] = 1;
$insert['stime'] = date('Ym');
$up_id = $this->visit_log_obj->insertGetId($insert);
- }else{
+ } else {
$up_id = $res['vlid'];
}
- }
- else{//期刊访问
- $res = $this->visit_log_obj->where('type',$data['type'])->where('is_detail',0)->where('stime',date('Ym'))->find();
- if($res==null){
- $insert['type']= $data['type'];
+ } else {//期刊访问
+ $res = $this->visit_log_obj->where('type', $data['type'])->where('is_detail', 0)->where('stime', date('Ym'))->find();
+ if ($res == null) {
+ $insert['type'] = $data['type'];
$insert['stime'] = date('Ym');
$up_id = $this->visit_log_obj->insertGetId($insert);
- }else{
+ } else {
$up_id = $res['vlid'];
}
}
- $this->visit_log_obj->where('vlid',$up_id)->setInc('num');
+ $this->visit_log_obj->where('vlid', $up_id)->setInc('num');
return jsonSuccess([]);
}
-
+
/**
* @title 获取访问次数
* @description 获取访问次数
@@ -304,164 +385,210 @@ class Publish extends Controller{
* @url /super/Publish/getVisit
* @method POST
*/
- public function getVisit(){
+ public function getVisit() {
$t = strtotime("-4 month");
- $stime = date('Ym',$t);
- $visits = $this->visit_log_obj->where('stime','>=',$stime)->where('state',0)->select();
+ $stime = date('Ym', $t);
+ $visits = $this->visit_log_obj->where('stime', '>=', $stime)->where('state', 0)->select();
$frag = [];
- for($i=4;$i>=0;$i--){
+ for ($i = 0; $i <= 4; $i++) {
$ntime = date('Ym', strtotime("-$i month"));
$frag[$ntime] = [];
- foreach ($visits as $v){
- if($v['stime']==$ntime){
- if($v['is_detail']==0){
- $frag[$ntime][$v['type']]=$v['num'];
- }else{
- $frag[$ntime][$v['type'].'_detail'] = $v['num'];
+ foreach ($visits as $v) {
+ if ($v['stime'] == $ntime) {
+ if ($v['is_detail'] == 0) {
+ $frag[$ntime][$v['type']] = $v['num'];
+ } else {
+ $frag[$ntime][$v['type'] . '_detail'] = $v['num'];
}
}
}
}
- $journals = $this->journal_obj->where('state',0)->select();
- $frag1 = [];
- foreach ($frag as $k => $v){
- $frag1['de'][$k] = isset($frag[$k]['de'])?$frag[$k]['de']:0;
- foreach ($journals as $val){
- $ca_tou = isset($frag[$k][$val['journal_id']])?$frag[$k][$val['journal_id']]:0;
- $ca_wei = isset($frag[$k][$val['journal_id'].'_detail'])?$frag[$k][$val['journal_id'].'_detail']:0;
- $frag1[$val['title']][$k] = $ca_tou.'/'.$ca_wei;
+
+ $pjarr = [];
+ //算最近三个月平均值
+ for($i=2;$i>=0;$i--){
+ $ntime = date('Ym', strtotime("-$i month"));
+ foreach ($visits as $v){
+ if($v['stime']==$ntime){
+ if($v['is_detail']==0){
+ if(isset($pjarr[$v['type']]['tou'])){
+ $pjarr[$v['type']]['tou'] += $v['num'];
+ }else{
+ $pjarr[$v['type']]['tou'] = $v['num'];
+ }
+ }else{
+ if(isset($pjarr[$v['type']]['wei'])){
+ $pjarr[$v['type']]['wei'] += $v['num'];
+ }else{
+ $pjarr[$v['type']]['wei'] = $v['num'];
+ }
+ }
+ }
}
}
+
+ $journals = $this->journal_obj->where('state', 0)->select();
+ $frag1 = [];
+ foreach ($frag as $k => $v) {
+ $frag1['de'][$k] = isset($frag[$k]['de']) ? $frag[$k]['de'] : 0;
+ foreach ($journals as $val) {
+ $ca_tou = isset($frag[$k][$val['journal_id']]) ? $frag[$k][$val['journal_id']] : 0;
+ $ca_wei = isset($frag[$k][$val['journal_id'] . '_detail']) ? $frag[$k][$val['journal_id'] . '_detail'] : 0;
+ $frag1[$val['title']][$k] = $ca_tou . '/' . $ca_wei;
+ }
+ }
+ foreach ($journals as $k => $v){
+ $pjarr[$v['title']] = $pjarr[$v['journal_id']];
+ }
foreach ($frag1 as $k => $v){
- if($k=='de'){
- $num = 0;
- foreach ($v as $vv){
- $num += $vv;
- }
- $frag1[$k]['all'] = $num;
- }else{
- $tou_num = 0;
- $wei_num = 0;
- foreach ($v as $vv){
- $ca_n = explode('/', $vv);
- $tou_num += $ca_n[0];
- $wei_num += $ca_n[1];
- }
- $frag1[$k]['all'] = $tou_num.'/'.$wei_num;
+ $frag1[$k]['pj_tou'] = intval($pjarr[$k]['tou']/3);
+ if($k!='de'){
+ $frag1[$k]['pj_wei'] = intval($pjarr[$k]['wei']/3);
}
- $frag1[$k]['title'] = $k;
}
- return jsonSuccess(array_values($frag1));
+
+ foreach ($frag1 as $k => $v) {
+// if ($k == 'de') {
+// $num = 0;
+// foreach ($v as $vv) {
+// $num += $vv;
+// }
+// $frag1[$k]['all'] = $num;
+// } else {
+// $tou_num = 0;
+// $wei_num = 0;
+// foreach ($v as $vv) {
+// $ca_n = explode('/', $vv);
+// $tou_num += $ca_n[0];
+// $wei_num += $ca_n[1];
+// }
+// $frag1[$k]['all'] = $tou_num . '/' . $wei_num;
+// }
+ if($k!='de'&&$k!='经典中医研究'){
+ $frag1[$k]['title'] = $k;
+ }else{
+ unset($frag1[$k]);
+ }
+ }
+ $f = array_values($frag1);
+ for ($i=0;$ijournal_stage_obj->where('journal_id',$journal_id)->where('state',0)->order('journal_stage_id')->limit(1)->select();
- return $stage?$stage[0]['issue_date']:'';
+ private function getCK($journal_id) {
+ $stage = $this->journal_stage_obj->where('journal_id', $journal_id)->where('state', 0)->order('journal_stage_id')->limit(1)->select();
+ return $stage ? $stage[0]['issue_date'] : '';
}
-
+
/**
* 获取期刊的发文量
*/
- private function getFWL($journal_id){
+ private function getFWL($journal_id) {
$frag = [];
$frag['all'] = 0;
- for($i=2016;$i<= intval(date('Y'));$i++){
+ for ($i = 2016; $i <= intval(date('Y')); $i++) {
$cstages = $this->journal_stage_obj
- ->where('journal_id',$journal_id)
- ->where('stage_year',$i)
- ->where('is_publish',1)
- ->where('state',0)
+ ->where('journal_id', $journal_id)
+ ->where('stage_year', $i)
+ ->where('is_publish', 1)
+ ->where('state', 0)
->column('journal_stage_id');
- $frag[$i] = $this->article_obj->where('journal_stage_id','in',$cstages)->where('state',0)->count();
+ $frag[$i] = $this->article_obj->where('journal_stage_id', 'in', $cstages)->where('state', 0)->count();
$frag['all'] += $frag[$i];
}
return $frag;
}
-
-
- private function getLX($journal_id,$start,$end){
+
+ private function getLX($journal_id, $start, $end) {
$stages = $this->journal_stage_obj
- ->where('journal_id',$journal_id)
- ->where('is_publish',1)
- ->where('state',0)
+ ->where('journal_id', $journal_id)
+ ->where('is_publish', 1)
+ ->where('state', 0)
->column('journal_stage_id');
- $arts = $this->article_obj->where('journal_id',$journal_id)->where('ctime','>',$start)->where('ctime','<=',$end)->where('journal_stage_id','in',$stages)->where('state',0)->select();
+ $arts = $this->article_obj->where('journal_id', $journal_id)->where('ctime', '>', $start)->where('ctime', '<=', $end)->where('journal_stage_id', 'in', $stages)->where('state', 0)->select();
$frag = [];
- foreach ($arts as $v){
- if(isset($frag[$v['type']])){
- $kk = $v['type']==''?'Other':$v['type'];
+ foreach ($arts as $v) {
+ if (isset($frag[$v['type']])) {
+ $kk = $v['type'] == '' ? 'Other' : $v['type'];
$frag[$kk]++;
- }else{
- $kk = $v['type']==''?'Other':$v['type'];
- $frag[$kk]=1;
+ } else {
+ $kk = $v['type'] == '' ? 'Other' : $v['type'];
+ $frag[$kk] = 1;
}
}
return $frag;
}
-
- private function getGNW($journal_id,$start,$end){
+
+ private function getGNW($journal_id, $start, $end) {
$stages = $this->journal_stage_obj
- ->where('journal_id',$journal_id)
- ->where('is_publish',1)
- ->where('state',0)
+ ->where('journal_id', $journal_id)
+ ->where('is_publish', 1)
+ ->where('state', 0)
->column('journal_stage_id');
- $arts = $this->article_obj->where('journal_id',$journal_id)->where('journal_stage_id','in',$stages)->where('ctime','>',$start)->where('ctime','<=',$end)->where('state',0)->select();
+ $arts = $this->article_obj->where('journal_id', $journal_id)->where('journal_stage_id', 'in', $stages)->where('ctime', '>', $start)->where('ctime', '<=', $end)->where('state', 0)->select();
$frag = [];
- foreach ($arts as $k => $v){
- $ca_aus = $this->article_author_obj->where('article_id',$v['article_id'])->where('state',0)->where('author_country','<>','China')->find();
- if($ca_aus==null){
- if(isset($frag['n'])){
+ foreach ($arts as $k => $v) {
+ $ca_aus = $this->article_author_obj->where('article_id', $v['article_id'])->where('state', 0)->where('author_country', '<>', 'China')->find();
+ if ($ca_aus == null) {
+ if (isset($frag['n'])) {
$frag['n'] += 1;
- }else{
+ } else {
$frag['n'] = 1;
}
- } else{
- if(isset($frag['w'])){
+ } else {
+ if (isset($frag['w'])) {
$frag['w'] += 1;
- }else{
+ } else {
$frag['w'] = 1;
}
}
}
return $frag;
-
}
- private function getGJH($journal_id,$start,$end){
+ private function getGJH($journal_id, $start, $end) {
$stages = $this->journal_stage_obj
- ->where('journal_id',$journal_id)
- ->where('is_publish',1)
- ->where('state',0)
+ ->where('journal_id', $journal_id)
+ ->where('is_publish', 1)
+ ->where('state', 0)
->column('journal_stage_id');
- $arts = $this->article_obj->where('journal_id',$journal_id)->where('journal_stage_id','in',$stages)->where('ctime','>',$start)->where('ctime','<=',$end)->where('state',0)->column('article_id');
- $auts = $this->article_author_obj->where('article_id','in',$arts)->where('state',0)->select();
+ $arts = $this->article_obj->where('journal_id', $journal_id)->where('journal_stage_id', 'in', $stages)->where('ctime', '>', $start)->where('ctime', '<=', $end)->where('state', 0)->column('article_id');
+ $auts = $this->article_author_obj->where('article_id', 'in', $arts)->where('state', 0)->select();
$frag = [];
$frag['list'] = [];
$frag['countrys'] = 0;
- foreach($auts as $v){
- if(isset($frag['list'][$v['author_country']])){
+ foreach ($auts as $v) {
+ if (isset($frag['list'][$v['author_country']])) {
$frag['list'][$v['author_country']]++;
- }else{
+ } else {
$frag['list'][$v['author_country']] = 1;
$frag['countrys']++;
}
}
return $frag;
}
-
+
/**
* 获取编委信息
*/
- private function getBW($journal_id){
- $list = $this->board_obj->where('journal_id',$journal_id)->where('state',0)->select();
+ private function getBW($journal_id) {
+ $list = $this->board_obj->where('journal_id', $journal_id)->where('state', 0)->select();
$frag = [];
- foreach ($list as $v){
- if(isset($frag[$v['country']])){
+ foreach ($list as $v) {
+ if (isset($frag[$v['country']])) {
$frag[$v['country']]++;
- }else{
+ } else {
$frag[$v['country']] = 1;
}
}
@@ -469,7 +596,7 @@ class Publish extends Controller{
$re['country'] = $frag;
return $re;
}
-
+
/**
* @title 获取历史危险值
* @description 获取历史危险值
@@ -480,25 +607,25 @@ class Publish extends Controller{
* @return dates:日期数组#
* @return journals:期刊信息array#
*/
- public function getDangerHistory(){
+ public function getDangerHistory() {
$dates = [];
for ($index = 8; $index > 0; $index--) {
- $dates[] = date("Ymd",strtotime("-$index week Sunday"));
+ $dates[] = date("Ymd", strtotime("-$index week Sunday"));
}
$re['dates'] = $dates;
- $journals = $this->journal_obj->where('state',0)->select();
- foreach ($journals as $k => $v){
+ $journals = $this->journal_obj->where('state', 0)->select();
+ foreach ($journals as $k => $v) {
$fr = [];
$cache = $this->super_danger_obj
- ->where('journal_id',$v['journal_id'])
- ->where('state',0)
+ ->where('journal_id', $v['journal_id'])
+ ->where('state', 0)
->order('super_danger_id desc')
->limit(8)
->column('danger');
- for($in=0;$in<8-count($cache);$in++){
+ for ($in = 0; $in < 8 - count($cache); $in++) {
$fr[] = 0;
}
- foreach ($cache as $val){
+ foreach ($cache as $val) {
$fr[] = $val;
}
$journals[$k]['ma'] = $fr;
@@ -506,57 +633,74 @@ class Publish extends Controller{
$re['journals'] = $journals;
return jsonSuccess($re);
}
-
+
/**
* 计算危险指数
*/
- private function calMark($journal_id){
- $journal_info = $this->journal_obj->where('journal_id',$journal_id)->find();
- $stages = $this->journal_stage_obj->where('journal_id',$journal_id)->where('is_publish',0)->where('state',0)->column('journal_stage_id');
- $count = $this->article_obj->where('journal_stage_id','in',$stages)
- ->where('state',0)
+ private function calMark($journal_id) {
+ $journal_info = $this->journal_obj->where('journal_id', $journal_id)->find();
+ $stages = $this->journal_stage_obj->where('journal_id', $journal_id)->where('is_publish', 0)->where('state', 0)->column('journal_stage_id');
+ $count = $this->article_obj->where('journal_stage_id', 'in', $stages)
+ ->where('state', 0)
->count();
$last_stage = $this->journal_stage_obj
- ->where('journal_id',$journal_id)
- ->where('is_publish',1)
- ->where('state',0)
+ ->where('journal_id', $journal_id)
+ ->where('is_publish', 1)
+ ->where('state', 0)
->order('journal_stage_id desc')
->limit(1)
->select();
- $stage_now = $last_stage?$last_stage[0]:['issue_date'=>'2020-05-15'];
- $cday = intval((time()-strtotime($stage_now['issue_date']))/(3600*24));//过去了多少天
- $cycle = $journal_info['cycle']==0?2:$journal_info['cycle'];//出刊期限
- $art_num = $journal_info['art_num']==0?5:$journal_info['art_num'];//期刊文章数量
- $next_time = strtotime("+$cycle month",strtotime($stage_now['issue_date']));//下次出刊时间
- $all_days = intval(($next_time-strtotime($stage_now['issue_date']))/(3600*24));//这两次出刊时间差,天数
+ $stage_now = $last_stage ? $last_stage[0] : ['issue_date' => '2020-05-15'];
+ $cday = intval((time() - strtotime($stage_now['issue_date'])) / (3600 * 24)); //过去了多少天
+ $cycle = $journal_info['cycle'] == 0 ? 2 : $journal_info['cycle']; //出刊期限
+ $art_num = $journal_info['art_num'] == 0 ? 5 : $journal_info['art_num']; //期刊文章数量
+ $next_time = strtotime("+$cycle month", strtotime($stage_now['issue_date'])); //下次出刊时间
+ $all_days = intval(($next_time - strtotime($stage_now['issue_date'])) / (3600 * 24)); //这两次出刊时间差,天数
$frag = [];
$frag['count'] = $count;
- $frag['sy'] = intval(($next_time- time())/(3600*24));//$cycle*30 - $cday;
- $frag['ntime'] = $next_time;//strtotime($stage_now['issue_date'])+($cycle*30*3600*24);
- if(time()>$next_time){
+ $frag['sy'] = intval(($next_time - time()) / (3600 * 24)); //$cycle*30 - $cday;
+ $frag['ntime'] = $next_time; //strtotime($stage_now['issue_date'])+($cycle*30*3600*24);
+ if (time() > $next_time) {
$frag['mk'] = 100;
return $frag;
}
- $lart = intval($cday*$art_num/$all_days);
- if($count>=$lart){
+ $lart = intval($cday * $art_num / $all_days);
+ if ($count >= $lart) {
$frag['mk'] = 0;
- }else{
- $frag['mk'] = intval(($lart - $count)*100/$art_num);
+ } else {
+ $frag['mk'] = intval(($lart - $count) * 100 / $art_num);
}
return $frag;
}
-
-
- public function object_to_array($obj){
- $_arr=is_object($obj)?get_object_vars($obj):$obj;
+
+ public function object_to_array($obj) {
+ $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
$arr = null;
- foreach($_arr as $key=>$val){
- $val=(is_array($val))||is_object($val)?$this->object_to_array($val):$val;
- $arr[$key]=$val;
+ foreach ($_arr as $key => $val) {
+ $val = (is_array($val)) || is_object($val) ? $this->object_to_array($val) : $val;
+ $arr[$key] = $val;
}
return $arr;
}
+ /**
+ * @title 获取全部期刊
+ * @description 获取全部期刊
+ * @author wangjinlei
+ * @url /super/Publish/bossLogin
+ * @method POST
+ *
+ * @param name:code type:int require:1 desc:链接特殊码
+ */
+ public function bossLogin(){
+ $data = $this->request->post();
+ if($data['code']=='eff9be46e027e2094baf29a9c1195129'){
+ return jsonSuccess([]);
+ }else{
+ return jsonError([]);
+ }
+ }
+
/**
* @title 获取全部期刊
* @description 获取全部期刊
@@ -566,13 +710,13 @@ class Publish extends Controller{
*
* @return journals:期刊列表#
*/
- public function getAllJournals(){
- $list = $this->journal_obj->where('state',0)->select();
-
+ public function getAllJournals() {
+ $list = $this->journal_obj->where('state', 0)->select();
+
$re['journals'] = $list;
return jsonSuccess($re);
}
-
+
/**
* @title 获取引用数据统计
* @description 获取引用数据统计
@@ -583,184 +727,183 @@ class Publish extends Controller{
* @param name:journal_id type:int require:1 desc:期刊id
*
*/
- public function getCiteDate(){
+ public function getCiteDate() {
$data = $this->request->post();
// $data['journal_id'] = 1;
- $list = $this->article_cite_obj->where('journal_id',$data['journal_id'])->select();
+ $list = $this->article_cite_obj->where('journal_id', $data['journal_id'])->select();
$frag = [];
$frag['country'] = [];
$frag['topic'] = [];
$frag['time'] = [];
$frag['type'] = [];
$frag['articles'] = [];
- foreach ($list as $v){
- $cache_article = $this->article_obj->where('article_id',$v['article_id'])->find();
+ foreach ($list as $v) {
+ $cache_article = $this->article_obj->where('article_id', $v['article_id'])->find();
//判断国家
$cou_res = $this->checkCountry($cache_article);
- if($cou_res=='n'){
- isset($frag['country']['n'])?$frag['country']['n']++:$frag['country']['n']=1;
- }else{
- isset($frag['country']['w'])?$frag['country']['w']++:$frag['country']['w']=1;
+ if ($cou_res == 'n') {
+ isset($frag['country']['n']) ? $frag['country']['n']++ : $frag['country']['n'] = 1;
+ } else {
+ isset($frag['country']['w']) ? $frag['country']['w']++ : $frag['country']['w'] = 1;
}
//判断领域
$topic_res = $this->checkTopic($cache_article);
- foreach ($topic_res as $key=>$val){
- if(isset($frag['topic'][$val['title']])){
+ foreach ($topic_res as $key => $val) {
+ if (isset($frag['topic'][$val['title']])) {
$frag['topic'][$val['title']] += 1;
- }else{
+ } else {
$frag['topic'][$val['title']] = 1;
}
}
-
+
//关键词
$gjz = explode(',', $cache_article['keywords']);
- foreach ($gjz as $key => $val){
- if(isset($frag['gjz'][$val])){
- $frag['gjz'][$val] +=1;
- }else{
+ foreach ($gjz as $key => $val) {
+ if (isset($frag['gjz'][$val])) {
+ $frag['gjz'][$val] += 1;
+ } else {
$frag['gjz'][$val] = 1;
}
}
-
-
-
-
+
+
+
+
//时间
- $ca_time = $this->journal_stage_obj->where('journal_stage_id',$cache_article['journal_stage_id'])->find();
- if(isset($frag['time'][$ca_time['stage_year']])){
+ $ca_time = $this->journal_stage_obj->where('journal_stage_id', $cache_article['journal_stage_id'])->find();
+ if (isset($frag['time'][$ca_time['stage_year']])) {
$frag['time'][$ca_time['stage_year']] += 1;
- }else{
+ } else {
$frag['time'][$ca_time['stage_year']] = 1;
}
//文章类型
- if(isset($frag['type'][$cache_article['type']])){
+ if (isset($frag['type'][$cache_article['type']])) {
$frag['type'][$cache_article['type']] += 1;
- }else{
+ } else {
$frag['type'][$cache_article['type']] = 1;
}
//组成文章数组构建
- if(isset($frag['articles'][$cache_article['article_id']])){
+ if (isset($frag['articles'][$cache_article['article_id']])) {
$frag['articles'][$cache_article['article_id']] += 1;
- }else{
- $frag['articles'][$cache_article['article_id']] =1;
+ } else {
+ $frag['articles'][$cache_article['article_id']] = 1;
}
}
//阅读和下载量
$articles = $this->article_obj->field('j_article.*,(abs_num+pdf_num+html_num) num')
- ->where('journal_id',$data['journal_id'])
- ->where('state',0)
- ->order('num desc')->select();
-
- foreach ($frag['articles'] as $k => $v){
- $art = $this->article_obj->where('article_id',$k)->find();
+ ->where('journal_id', $data['journal_id'])
+ ->where('state', 0)
+ ->order('num desc')->select();
+
+ foreach ($frag['articles'] as $k => $v) {
+ $art = $this->article_obj->where('article_id', $k)->find();
$cnum = $v;
$frag['articles'][$k] = $art;
$frag['articles'][$k]['cite_num'] = $cnum;
//阅读和下载数
- foreach ($articles as $key => $val){
- if($val['article_id']==$k){
- $frag['articles'][$k]['read_pm'] = $key+1;//阅读量排名
- $frag['articles'][$k]['read_num'] = $val["num"];//阅读数
+ foreach ($articles as $key => $val) {
+ if ($val['article_id'] == $k) {
+ $frag['articles'][$k]['read_pm'] = $key + 1; //阅读量排名
+ $frag['articles'][$k]['read_num'] = $val["num"]; //阅读数
}
}
}
$frag['read'] = $this->sort_art($frag['articles']);
//标题吸引力
- $bty_articles = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',0)->orderRaw('LENGTH(title) desc')->limit(10)->select();
-
-
- foreach ($bty_articles as $k => $v){
- foreach ($frag['articles'] as $key => $val){
- if($v['article_id'] == $val['article_id']){
+ $bty_articles = $this->article_obj->where('journal_id', $data['journal_id'])->where('state', 0)->orderRaw('LENGTH(title) desc')->limit(10)->select();
+
+
+ foreach ($bty_articles as $k => $v) {
+ foreach ($frag['articles'] as $key => $val) {
+ if ($v['article_id'] == $val['article_id']) {
$bty_articles[$k]['cite_num'] = $val['cite_num'];
break;
- }else{
+ } else {
$bty_articles[$k]['cite_num'] = 0;
}
}
}
- $frag['zs_title'] = $bty_articles;//标题字数
+ $frag['zs_title'] = $bty_articles; //标题字数
$btzf_articles = $this->article_obj
- ->where('journal_id',$data['journal_id'])
- ->where('state',0)
- ->where('title',['like','%?%'],['like','%!%'],'or')
+ ->where('journal_id', $data['journal_id'])
+ ->where('state', 0)
+ ->where('title', ['like', '%?%'], ['like', '%!%'], 'or')
->select();
- foreach ($btzf_articles as $k => $v){
- foreach ($frag['articles'] as $key => $val){
- if($v['article_id'] == $val['article_id']){
+ foreach ($btzf_articles as $k => $v) {
+ foreach ($frag['articles'] as $key => $val) {
+ if ($v['article_id'] == $val['article_id']) {
$btzf_articles[$k]['cite_num'] = $val['cite_num'];
break;
- }else{
+ } else {
$btzf_articles[$k]['cite_num'] = 0;
}
}
}
$frag['zf_title'] = $btzf_articles;
//摘要吸引力
- $ab_articles = $this->article_obj->where('journal_id',$data['journal_id'])->where('state',0)->orderRaw('LENGTH(abstract) desc')->limit(10)->select();
- foreach ($ab_articles as $k => $v){
- foreach ($frag['articles'] as $key => $val){
- if($v['article_id'] == $key){
+ $ab_articles = $this->article_obj->where('journal_id', $data['journal_id'])->where('state', 0)->orderRaw('LENGTH(abstract) desc')->limit(10)->select();
+ foreach ($ab_articles as $k => $v) {
+ foreach ($frag['articles'] as $key => $val) {
+ if ($v['article_id'] == $key) {
$ab_articles[$k]['cite_num'] = $val['cite_num'];
break;
- }else{
+ } else {
$ab_articles[$k]['cite_num'] = 0;
}
}
}
- $frag['zs_abstract'] = $ab_articles;//摘要字数
+ $frag['zs_abstract'] = $ab_articles; //摘要字数
$abzf_articles = $this->article_obj
- ->where('journal_id',$data['journal_id'])
- ->where('state',0)
- ->where('abstract',['like','%?%'],['like','%!%'],'or')
+ ->where('journal_id', $data['journal_id'])
+ ->where('state', 0)
+ ->where('abstract', ['like', '%?%'], ['like', '%!%'], 'or')
->select();
- foreach ($abzf_articles as $k => $v){
- foreach ($frag['articles'] as $key => $val){
- if($v['article_id'] == $key){
+ foreach ($abzf_articles as $k => $v) {
+ foreach ($frag['articles'] as $key => $val) {
+ if ($v['article_id'] == $key) {
$abzf_articles[$k]['cite_num'] = $val['cite_num'];
break;
- }else{
+ } else {
$abzf_articles[$k]['cite_num'] = 0;
}
}
}
$frag['zf_abstract'] = $abzf_articles;
-
+
return jsonSuccess($frag);
}
-
- private function sort_art($articles){
+
+ private function sort_art($articles) {
$arr = array_values($articles);
- for($i = 0;$iarticle_to_topic_obj->where('article_id',$article['article_id'])->where('state',0)->select();
+ private function checkTopic($article) {
+ $tops = $this->article_to_topic_obj->where('article_id', $article['article_id'])->where('state', 0)->select();
$frag = [];
- foreach ($tops as $v){
- $ca = $this->journal_topic_obj->where('journal_topic_id',$v['topic_id'])->find();
- if($ca['level']==3){
- $cac = $this->journal_topic_obj->where('journal_topic_id',$ca['parent_id'])->find();
- if(isset($frag[$cac['journal_topic_id']])){
+ foreach ($tops as $v) {
+ $ca = $this->journal_topic_obj->where('journal_topic_id', $v['topic_id'])->find();
+ if ($ca['level'] == 3) {
+ $cac = $this->journal_topic_obj->where('journal_topic_id', $ca['parent_id'])->find();
+ if (isset($frag[$cac['journal_topic_id']])) {
$frag[$cac['journal_topic_id']]['num'] += 1;
- }else{
+ } else {
$frag[$cac['journal_topic_id']] = $cac;
$frag[$cac['journal_topic_id']]['num'] = 1;
}
- }else{
- if(isset($frag[$ca['journal_topic_id']])){
+ } else {
+ if (isset($frag[$ca['journal_topic_id']])) {
$frag[$ca['journal_topic_id']]['num'] += 1;
- }else{
+ } else {
$frag[$ca['journal_topic_id']] = $ca;
$frag[$ca['journal_topic_id']]['num'] = 1;
}
@@ -768,10 +911,10 @@ class Publish extends Controller{
}
return $frag;
}
-
- private function checkCountry($article){
- $res = $this->article_author_obj->where('article_id',$article['article_id'])->where('state',0)->where('author_country','<>','China')->find();
- return $res==null?'n':'w';
+
+ private function checkCountry($article) {
+ $res = $this->article_author_obj->where('article_id', $article['article_id'])->where('state', 0)->where('author_country', '<>', 'China')->find();
+ return $res == null ? 'n' : 'w';
}
-
+
}