admin_obj = Db::name('admin');
$this->journal_obj = Db::name('journal');
$this->article_obj = Db::name('article');
$this->journal_topic_obj = Db::name('journal_topic');
$this->journal_stage_obj = Db::name('journal_stage');
$this->journal_line_obj = Db::name('journal_line');
$this->journal_notices_obj = Db::name('journal_notices');
$this->journal_abs_obj = Db::name('journal_abstracting');
$this->article_author_obj = Db::name('article_author');
$this->article_to_topic_obj = Db::name('article_to_topic');
$this->article_to_line_obj = Db::name('article_to_line');
$this->journal_cfp_obj = Db::name('journal_cfp');
$this->journal_paper_obj = Db::name('journal_paper');
$this->journal_paper_art_obj = Db::name('journal_paper_art');
$this->subscribe_journal_obj = Db::name('subscribe_journal');
$this->subscribe_topic_obj = Db::name('subscribe_topic');
$this->board_obj = Db::name('board');
$this->board_group_obj = Db::name('board_group');
$this->base_topic_obj = Db::name('base_topic');
$this->subscribe_base_topic_obj = Db::name('subscribe_base_topic');
$this->journal_for_author = Db::name('journal_for_author');
$this->article_cite_obj = Db::name("article_cite");
}
/**
* @title 获取期刊列表
* @description 获取期刊列表
* @author wangjinlei
* @url /master/Journal/getJournalList
* @method POST
*
* @param name:editor_id type:int require:1 desc:编辑id
*
* @return journalList:期刊列表@
* @journalList title:标题 issn:issn editorinchief:editorinchief acceptance:acceptance finaldecision:finaldecision apc:apc
*/
public function getJournalList()
{
$data = $this->request->post();
$where['j_journal.state'] = 0;
if ($data['editor_id'] != 1) {
$where['j_journal.editor_id'] = $data['editor_id'];
}
$res = $this->journal_obj
->field('j_journal.*,j_admin.realname realname')
->join('j_admin', 'j_admin.admin_id = j_journal.editor_id', 'LEFT')
->where($where)
->order('j_journal.sort desc')
->select();
return json(['code' => 0, 'msg' => 'success', 'data' => ['journalList' => $res]]);
}
/**
* 获取全部期刊
*/
public function getJournals()
{
$jouranls = $this->journal_obj->where('state', 0)->select();
$re['journals'] = $jouranls;
return jsonSuccess($re);
}
/**
* 获取分期通过期刊
*/
public function getStagesByJournal()
{
$data = $this->request->post();
$rule = new Validate([
'journal_id' => 'require|number'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$list = $this->journal_stage_obj->where('journal_id', $data['journal_id'])->where('state', 0)->select();
foreach ($list as $k => $vv) {
$list[$k]['title'] = $vv['stage_year'] . ' Vol.' . $vv['stage_vol'] . ' issue.' . $vv['stage_no'] . $vv['stage_pagename'] . $vv['stage_page'];
}
$re['stages'] = $list;
return jsonSuccess($re);
}
/**
* 获取期刊和分期信息
*/
public function getJournalsAndStage()
{
$data = $this->request->post();
$journal_list = $this->journal_obj->where('state', 0)->select();
$frag = [];
foreach ($journal_list as $v) {
// $v['journal_stage_id'] = $v['journal_id'];
$cache_list = $this->journal_stage_obj->where('journal_id', $v['journal_id'])->where('state', 0)->select();
foreach ($cache_list as $k => $vv) {
$cache_list[$k]['title'] = $vv['stage_year'] . ' Vol.' . $vv['stage_vol'] . ' issue.' . $vv['stage_no'] . $vv['stage_pagename'] . $vv['stage_page'];
}
if (count($cache_list) > 0) {
$v['children'] = $cache_list;
} else {
$v['children'] = [];
}
$frag[] = $v;
}
return json(['code' => 0, 'msg' => 'success', 'data' => ['joutaglist' => $frag]]);
}
/**
* @title 获取所有期刊
* @description 获取所有期刊
* @author wangjinlei
* @url /master/Journal/getJournalAll
* @method POST
*
* @param name:journal_id type:int require:1 desc:当前期刊id
*
* @return journalList:期刊列表#
*/
public function getJournalAll()
{
$data = $this->request->post();
$res = $this->journal_obj->where('journal_id', '<>', $data['journal_id'])->where('state', 0)->select();
$re['journalList'] = $res;
return jsonSuccess($re);
}
public function getCiteDataForSubmission(){
$data = $this->request->post();
$rule = new Validate([
"journals"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$journals = object_to_array(json_decode($data['journals']));
// $journals = object_to_array(json_decode('[{"issn":"2413-3973","abbr":"TMR","title":"Traditional Medicine Research","editor_id":19,"realname":"\u5218\u5a1c"},{"issn":"2703-173X","abbr":"GHR","title":"Gastroenterology & Hepatology Research","editor_id":19,"realname":"\u5218\u5a1c"},{"issn":"2815-9063","abbr":"BMEC","title":"Biomedical Engineering Communications","editor_id":19,"realname":"\u5218\u5a1c"}]'));
foreach ($journals as $k=>$v){
$journal = $this->journal_obj->where("issn",$v['issn'])->find();
$list = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->select();
$wos_num = 0;
foreach ($list as $val){
if($val['is_wos']==1){
$wos_num ++;
}
}
$flag = [];
$flag["num"] = $wos_num."/".count($list);
//本月的引用数
$s_time = strtotime(date("Y-m")."-1");
$list1 = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->where("ctime",">",$s_time)->select();
$month_num = 0;
foreach ($list1 as $item) {
if($item['is_wos']==1){
$month_num++;
}
}
$flag['month_num'] = $month_num."/".count($list1);
//今年引用
// $y_time = strtotime(date("Y")."-1-1");
// $list3 = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->where("ctime",">",$y_time)->select();
$y_time = date("Y");
//获取前两年的分期信息
$y_time_stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->whereIn("stage_year",[$y_time-1,$y_time-2])->column("journal_stage_id");
$list3 = $this->article_cite_obj
->field("j_article_cite.*")
->join("j_article","j_article.article_id = j_article_cite.article_id","left")
->whereIn("j_article.journal_stage_id",$y_time_stages)
->where("j_article_cite.journal_id",$journal['journal_id'])
->where("j_article_cite.state",1)
->whereLike("j_article_cite.vol","%".$y_time."%")
->select();
$year_num = 0;
foreach ($list3 as $item){
if($item['is_wos']==1){
$year_num++;
}
}
$flag['year_num'] = $year_num."/".count($list3);
//今年发文总量
$stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->where("stage_year",date("Y"))->column("journal_stage_id");
$year_article_list = $this->article_obj->whereIn("journal_stage_id",$stages)->select();
$year_article_list_num = 0;
foreach ($year_article_list as $item){
if($item['type']=="Article"||$item['type']=="Review"||$item['type']=="Mini Review"||$item['type']=="Letter"){
$year_article_list_num++;
}
}
$flag['year_aritlce_num'] = $year_article_list_num."/".count($year_article_list);
//去年引用
// $y_s_time = strtotime((date("Y")-1)."-1-1");
// $y_e_time = strtotime((date("Y")-1)."-12-31");
// $list2 = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->where("ctime",'>',$y_s_time)->where("ctime","<",$y_e_time)->select();
$pre_y_time = date("Y")-1;
$pre_y_time_stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->whereIn("stage_year",[$pre_y_time-1,$pre_y_time-2])->column("journal_stage_id");
$list2 = $this->article_cite_obj
->field("j_article_cite.*")
->join("j_article","j_article.article_id = j_article_cite.article_id","left")
->whereIn("j_article.journal_stage_id",$pre_y_time_stages)
->where("j_article_cite.journal_id",$journal['journal_id'])
->where("j_article_cite.state",1)
->whereLike("j_article_cite.vol","%".$pre_y_time."%")
->select();
// $list2 = $this->article_cite_obj->where("journal_id",$journal['journal_id'])->where("state",1)->whereLike("vol","%".$y_time."%")->select();
$pre_year_num = 0;
foreach ($list2 as $item){
if($item['is_wos']==1){
$pre_year_num++;
}
}
$flag['pre_year_num'] = $pre_year_num."/".count($list2);
//去年发文数
$pre_stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->where("stage_year",date("Y")-1)->column("journal_stage_id");
$pre_year_article_list = $this->article_obj->whereIn("journal_stage_id",$pre_stages)->select();
$pre_year_article_list_num = 0;
foreach ($pre_year_article_list as $item){
if($item['type']=="Article"||$item['type']=="Review"||$item['type']=="Mini Review"||$item['type']=="Letter"){
$pre_year_article_list_num++;
}
}
$flag["pre_year_article_num"] = $pre_year_article_list_num."/".count($pre_year_article_list);
//预测影响因子
$yz_year = [date("Y")-1,date("Y")-2];
$stages = $this->journal_stage_obj->where("journal_id",$journal['journal_id'])->whereIn("stage_year",$yz_year)->column("journal_stage_id");
$yz_year_list = $this->article_obj->whereIn("journal_stage_id",$stages)->where("type = 'Article' or type = 'Review' or type = 'Mini Review'")->where("state",0)->select();
$yz_year_list_all = $this->article_obj->whereIn("journal_stage_id",$stages)->where("state",0)->select();
$article_ids = [];
foreach ($yz_year_list_all as $v){
$article_ids[] = $v['article_id'];
}
$cite_yz_count = $this->article_cite_obj->whereIn("article_id",$article_ids)->whereLike('vol',"%".date("Y")."%")->where("is_wos",1)->where("state",1)->count();
$flag['yc_article_num'] = count($yz_year_list);
$flag['yc_cite_num'] = $cite_yz_count;
$flag['yc_if'] = count($yz_year_list)==0?0:($cite_yz_count*12.5)/(count($yz_year_list)*date("m"));
$journals[$k]['cite'] = $flag;
}
return jsonSuccess($journals);
}
/**
* @title 添加期刊
* @description 添加期刊
* @author wangjinlei
* @url /master/Journal/addJournal
* @method POST
*
* @param name:title type:string require:1 desc:标题
* @param name:issn type:string require:1
* @param name:editorinchief type:string require:1
* @param name:acceptance type:string require:1 desc:受理度
* @param name:finaldecision type:string require:1 desc:最终受理
* @param name:sort type:int require:1 detault:0 desc:权重值
* @param name:abstract type:string require:1 desc:简介
* @param name:sx type:string require:1 desc:缩写(demo:tmr)
* @param name:jabbr type:int require:0 desc:期刊简称
* @param name:apc type:string require:1
* @param name:art_num type:int require:1 desc:单刊文章数量
* @param name:cycle type:int require:1 desc:1月刊2双月刊3季刊6半年刊
* @param name:icon type:string require:1
* @param name:licon type:string require:1 desc:简易缩略图
* @param name:editor_id type:int require:1 desc:编辑id
* @param name:system_color type:string require:1
* @param name:submission_url type:string require:1
* @param name:board_url type:string require:1 desc:编委会地址
* @param name:topic_show_type type:int require:1 desc:0无图片1有图片
*/
public function addJournal()
{
$data = $this->request->post();
$insert_data['title'] = $data['title'];
$insert_data['issn'] = $data['issn'];
$insert_data['editorinchief'] = $data['editorinchief'];
$insert_data['acceptance'] = $data['acceptance'];
$insert_data['finaldecision'] = $data['finaldecision'];
$insert_data['sort'] = $data['sort'];
$insert_data['abstract'] = $data['abstract'];
$insert_data['sx'] = $data['sx'];
$insert_data['jabbr'] = $data['jabbr'];
$insert_data['apc'] = $data['apc'];
$insert_data['art_num'] = $data['art_num'];
$insert_data['cycle'] = $data['cycle'];
$insert_data['icon'] = $data['icon'];
$insert_data['licon'] = $data['licon'];
$insert_data['editor_id'] = $data['editor_id'];
$insert_data['system_color'] = $data['system_color'];
$insert_data['submission_url'] = $data['submission_url'];
$insert_data['board_url'] = $data['board_url'];
$insert_data['topic_show_type'] = $data['topic_show_type'];
$res = $this->journal_obj->insert($insert_data);
if ($res) {
return json(['code' => 0, 'msg' => 'success']);
} else {
return json(['code' => 1, 'msg' => 'system error']);
}
}
/**
* @title 删除期刊
* @description 删除期刊
* @author wangjinlei
* @url /master/Journal/delJournal
* @method POST
*
* @param name:journal_id require:1 desc:主键
*/
public function delJournal()
{
$data = $this->request->post();
$res = $this->journal_obj->where('journal_id', $data['journal_id'])->update(['state' => 1]);
if ($res) {
return json(['code' => 0, 'msg' => 'success']);
} else {
return json(['code' => 1, 'msg' => 'system error']);
}
}
/**
* @title 修改期刊详情
* @description 修改期刊详情
* @author wangjinlei
* @url /master/Journal/editJournalDetail
* @method POST
*
* @param name:journal_id require:1 desc:主键
* @param name:title type:string require:1 desc:标题
* @param name:issn type:string require:1
* @param name:editorinchief type:string require:1
* @param name:acceptance type:string require:1 desc:受理度
* @param name:finaldecision type:string require:1 desc:最终受理
* @param name:art_num type:int require:1 desc:单刊文章数量
* @param name:cycle type:int require:1 desc:1月刊2双月刊3季刊6半年刊
* @param name:sort type:int require:1 detault:0 desc:权重值
* @param name:abstract type:string require:1 desc:简介
* @param name:sx type:string require:1 desc:缩写(demo:tmr)
* @param name:jabbr type:string require:0 desc:期刊简称
* @param name:apc type:string require:1
* @param name:publish_stage_id type:int require:1 desc:推广分期id
* @param name:icon type:string require:1
* @param name:licon type:string require:1 desc:简易缩略图
* @param name:editor_id type:int require:1 desc:编辑id
* @param name:system_color type:string require:1
* @param name:submission_url type:string require:1
* @param name:board_url type:string require:1 desc:编委会地址
* @param name:topic_show_type type:int require:1 desc:0无图片1有图片
*/
public function editJournalDetail()
{
$data = $this->request->post();
$insert_data['title'] = $data['title'];
$insert_data['issn'] = $data['issn'];
$insert_data['editorinchief'] = $data['editorinchief'];
$insert_data['acceptance'] = $data['acceptance'];
$insert_data['finaldecision'] = $data['finaldecision'];
$insert_data['art_num'] = $data['art_num'];
$insert_data['cycle'] = $data['cycle'];
$insert_data['sort'] = $data['sort'];
$insert_data['abstract'] = $data['abstract'];
$insert_data['sx'] = $data['sx'];
$insert_data['jabbr'] = $data['jabbr'];
$insert_data['publish_stage_id'] = $data['publish_stage_id'];
$insert_data['apc'] = $data['apc'];
$insert_data['icon'] = $data['icon'];
$insert_data['licon'] = $data['licon'];
$insert_data['editor_id'] = $data['editor_id'];
$insert_data['system_color'] = $data['system_color'];
$insert_data['submission_url'] = $data['submission_url'];
$insert_data['board_url'] = $data['board_url'];
$insert_data['topic_show_type'] = $data['topic_show_type'];
$res = $this->journal_obj->where('journal_id', $data['journal_id'])->update($insert_data);
// if($res){
return json(['code' => 0, 'msg' => 'success']);
// }else{
// return json(['code'=>1,'msg'=>'Please confirm you have changed the journal information.']);
// }
}
/**
* @title 获取编辑列表
* @description 获取编辑列表
* @author wangjinlei
* @url /master/Journal/getEditorList
* @method POST
*
* @return editorList:编辑列表@
* @editorList account:账号 realname:真实姓名 role:角色代号(0admin1editor)
*/
public function getEditorList()
{
$editor_list = $this->admin_obj->where('role', 1)->select();
return json(['code' => 0, 'msg' => 'success', 'data' => ['editorList' => $editor_list]]);
}
/**
* @title 图片上传
* @description 图片上传
* @author wangjinlei
* @url /master/Journal/up_file
* @method POST
*
* @param name:name type:string require:1 default:journalicon desc:文件域名称
*
* @return upurl:图片地址
*/
public function up_file()
{
$file = request()->file('journalicon');
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'journalicon');
if ($info) {
return json(['code' => 0, 'msg' => 'success', 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
} else {
return json(['code' => 1, 'msg' => $file->getError()]);
}
}
}
/**
* @title 获取编委列表
* @description 获取编委列表
* @author wangjinlei
* @url /master/Journal/getBoardList
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*
* @return boards:编委列表array#
* @return journal:期刊信息#
*/
public function getBoardList()
{
$data = $this->request->post();
$journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find();
$list = $this->board_obj
->field('j_board.*,j_board_group.group_name')
->join('j_board_group', 'j_board.board_group_id = j_board_group.board_group_id', 'LEFT')
->where('j_board.journal_id', $data['journal_id'])
->where('j_board.state', 0)
->order('j_board.type')
->select();
$re['boards'] = $list;
$re['journal'] = $journal_info;
return jsonSuccess($re);
}
/**
* @title 获取编委成员分类列表
* @description 获取编委成员分类列表
* @author wangjinlei
* @url /master/Journal/getBoardGroups
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*
* @return groups:编委分类列表array#
*/
public function getBoardGroups()
{
$data = $this->request->post();
$list = $this->board_group_obj->where('journal_id', $data['journal_id'])->where('state', 0)->select();
$re['groups'] = $list;
return jsonSuccess($re);
}
/**
* @title 添加编委成员分组
* @description 添加编委成员分组
* @author wangjinlei
* @url /master/Journal/addBoardGroup
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:group_name type:string require:1 desc:分组名字
*/
public function addBoardGroup()
{
$data = $this->request->post();
$insert['journal_id'] = $data['journal_id'];
$insert['group_name'] = $data['group_name'];
$this->board_group_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 删除编委成员分组
* @description 删除编委成员分组
* @author wangjinlei
* @url /master/Journal/delBoardGroup
* @method POST
*
* @param name:board_group_id type:int require:1 desc:编委分组id
*/
public function delBoardGroup()
{
$data = $this->request->post();
$this->board_group_obj->where('board_group_id', $data['board_group_id'])->update(['state' => 1]);
return jsonSuccess([]);
}
/**
* @title 编辑编委成员分组信息
* @description 编辑编委成员分组信息
* @author wangjinlei
* @url /master/Journal/editBoardGroup
* @method POST
*
* @param name:board_group_id type:int require:1 desc:编委分组id
* @param name:group_name type:string require:1 desc:分组名字
*/
public function editBoardGroup()
{
$data = $this->request->post();
$this->board_group_obj->where('board_group_id', $data['board_group_id'])->update(['group_name' => $data['group_name']]);
return jsonSuccess([]);
}
/**
* @title 添加编委
* @description 添加编委
* @author wangjinlei
* @url /master/Journal/addBoard
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:type type:int require:1 desc:编委类型0主编1副主编2编委成员
* @param name:name type:string require:1 desc:编委姓名
* @param name:website type:string require:1 desc:个人主页地址
* @param name:dr type:string require:1 desc:学位
* @param name:title type:string require:1 desc:职称
* @param name:field type:string require:1 desc:领域描述
* @param name:board_icon type:string require:1 desc:编委头像地址
* @param name:address type:string require:1 desc:单位
* @param name:country type:string require:1 desc:国家
* @param name:board_group_id type:int require:1 desc:编委分组id
*/
public function addBoard()
{
$data = $this->request->post();
$insert['journal_id'] = $data['journal_id'];
$insert['type'] = $data['type'];
$insert['name'] = trim($data['name']);
$insert['website'] = trim($data['website']);
$insert['dr'] = $data['dr'];
$insert['field'] = trim($data['field']);
$insert['title'] = $data['title'];
$insert['address'] = trim($data['address']);
$insert['country'] = trim($data['country']);
$insert['board_icon'] = trim($data['board_icon']);
$insert['board_group_id'] = $data['board_group_id'];
$this->board_obj->insert($insert);
return jsonSuccess([]);
}
/**
* @title 删除编委
* @description 删除编委
* @author wangjinlei
* @url /master/Journal/delBoard
* @method POST
*
* @param name:board_id type:int require:1 desc:编委id
*/
public function delBoard()
{
$data = $this->request->post();
$this->board_obj->where('board_id', $data['board_id'])->update(['state' => 1]);
return jsonSuccess([]);
}
/**
* @title 编辑编委信息
* @description 编辑编委信息
* @author wangjinlei
* @url /master/Journal/editBoard
* @method POST
*
* @param name:board_id type:int require:1 desc:编委id
* @param name:type type:int require:1 desc:编委类型0主编1副主编2编委成员
* @param name:name type:string require:1 desc:编委姓名
* @param name:website type:string require:1 desc:个人主页地址
* @param name:dr type:string require:1 desc:学位
* @param name:title type:string require:1 desc:职称
* @param name:field type:string require:1 desc:领域描述
* @param name:address type:string require:1 desc:单位
* @param name:board_icon type:string require:1 desc:编委头像
* @param name:country type:string require:1 desc:国家
* @param name:board_group_id type:int require:1 desc:编委分组id
*/
public function editBoard()
{
$data = $this->request->post();
$insert['type'] = $data['type'];
$insert['name'] = trim($data['name']);
$insert['website'] = trim($data['website']);
$insert['dr'] = $data['dr'];
$insert['title'] = trim($data['title']);
$insert['field'] = trim($data['field']);
$insert['address'] = trim($data['address']);
$insert['board_icon'] = trim($data['board_icon']);
$insert['country'] = $data['country'];
$insert['board_group_id'] = $data['board_group_id'];
$this->board_obj->where('board_id', $data['board_id'])->update($insert);
return jsonSuccess([]);
}
/**
* @title 增加话题
* @description 增加话题
* @author wangjinlei
* @url /master/Journal/addTopic
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
* @param name:parent_id type:int require:1 default:0 desc:父id
* @param name:title type:string require:1 desc:标题
* @param name:icon type:string require:1 desc:缩略图
* @param name:intro type:string require:1 desc:介绍
* @param name:come type:string require:1 desc:图片证书
* @param name:position type:string require:1 desc:摆放位置
* @param name:is_final type:int require:1 desc:是否终结点(0no1yes)
* @param name:sort type:int require:1 default:0 desc:权重
*/
public function addTopic()
{
$data = $this->request->post();
$level = 0;
if ($data['parent_id'] == 0) {
$level = 1;
} else {
$parent_info = $this->journal_topic_obj->where('journal_topic_id', $data['parent_id'])->find();
$level = intval($parent_info['level']) + 1;
}
$insert['journal_id'] = $data['journal_id'];
$insert['parent_id'] = $data['parent_id'];
$insert['title'] = $data['title'];
$insert['icon'] = $data['icon'];
$insert['intro'] = $data['intro'];
$insert['come'] = isset($data['come']) ? $data['come'] : '';
if ($data['parent_id'] == 0) {
$insert['position'] = $data['position'];
}
$insert['is_final'] = $data['is_final'];
$insert['sort'] = $data['sort'];
$insert['level'] = $level;
$res = $this->journal_topic_obj->insert($insert);
if ($res) {
return json(['code' => 0, 'msg' => 'success']);
} else {
return json(['code' => 1, 'msg' => 'system error']);
}
}
/**
* @title 更改话题信息
* @description 更改话题信息
* @author wangjinlei
* @url /master/Journal/editTopic
* @method POST
*
* @param name:journal_topic_id type:int require:1 desc:主键
* @param name:title type:string require:1 desc:标题
* @param name:icon type:string require:1 desc:缩略图
* @param name:intro type:string require:1 desc:介绍
* @param name:come type:string require:1 desc:图片证书
* @param name:position type:string require:1 desc:摆放位置
* @param name:is_final type:int require:1 desc:是否终结点(0no1yes)
* @param name:sort type:int require:1 default:0 desc:权重
*/
public function editTopic()
{
$data = $this->request->post();
$update['journal_topic_id'] = $data['journal_topic_id'];
$update['title'] = $data['title'];
$update['icon'] = $data['icon'];
$update['intro'] = $data['intro'];
$update['come'] = $data['come'];
$update['position'] = isset($data['position']) ? $data['position'] : '';
$update['is_final'] = $data['is_final'];
$update['sort'] = $data['sort'];
$res = $this->journal_topic_obj->update($update);
return json(['code' => 0, 'msg' => 'success']);
}
/**
* @title 删除话题
* @description 删除话题
* @author wangjinlei
* @url /master/Journal/delTopic
* @method POST
*
* @param name:journal_topic_id type:int require:1 desc:主键
*/
public function delTopic()
{
$data = $this->request->post();
//排除有子节点的项
$rep = $this->journal_topic_obj->where('parent_id', $data['journal_topic_id'])->where('state', 0)->find();
if ($rep) {
return json(['code' => 1, 'msg' => '删除的话题不能有子节点!']);
}
$res = $this->journal_topic_obj->where('journal_topic_id', $data['journal_topic_id'])->update(['state' => 1]);
//删除此话题下的话题文章对应关系
$this->article_to_topic_obj->where('topic_id', $data['journal_topic_id'])->update(['state' => 1]);
if ($res) {
return json(['code' => 0, 'msg' => 'success']);
} else {
return json(['code' => 1, 'msg' => 'system error']);
}
}
/**
* @title 获取话题父级列表
* @description 获取话题父级列表
* @author wangjinlei
* @url /master/Journal/getParent
* @method POST
*
* @param name:journal_id type:int require:1 desc:
*
* @return parentList:array#
*/
public function getParent()
{
$data = $this->request->post();
// $data['journal_id'] = 9;
$res = $this->journal_topic_obj
->where('journal_id', $data['journal_id'])
->where('state', 0)
->where('is_final', 0)
->order('sort desc')
->select();
//处理数组
$frag = [];
foreach ($res as $v) {
if ($v['parent_id'] == 0) {
$frag[] = $v;
}
}
$ff = [];
foreach ($frag as $kk => $vv) {
$ff[] = $this->getpChieldarr($vv, $res);
// $frag[$kk] = $this->getChieldarr($vv,$res);
}
$fff = [];
foreach ($ff as $vvv) {
foreach ($vvv as $vvvv) {
$fff[] = $vvvv;
}
}
return json(['code' => 0, 'msg' => 'success', 'data' => ['parentList' => $fff]]);
}
private function getpChieldarr($vv, $res)
{
if ($vv['is_final'] == 1) {
return $vv;
}
$frag = [];
$frag[] = $vv;
foreach ($res as $v) {
if ($v['parent_id'] == $vv['journal_topic_id']) {
$frag[] = $this->getChieldarr($v, $res);
}
}
return $frag;
}
/**
* @title 获取话题列表
* @description 获取话题列表
* @author wangjinlei
* @url /master/Journal/getTopicList
* @method POST
*
* @param name:journal_id type:int require:1 desc:期刊id
*
* @return journal:array#
* @return topicList:话题数组@
* @topicList array:数据
*/
public function getTopicList()
{
$data = $this->request->post();
$res = $this->journal_topic_obj
->where('journal_id', $data['journal_id'])
->where('state', 0)
->select();
$journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find();
//处理数组
$frag = [];
foreach ($res as $v) {
if ($v['parent_id'] == 0) {
$frag[] = $v;
}
}
foreach ($frag as $kk => $vv) {
$frag[$kk] = $this->getChieldarr($vv, $res);
}
return json(['code' => 0, 'msg' => 'success', 'data' => ['journal' => $journal_info, 'topicList' => $frag]]);
}
private function getChieldarr($vv, $res)
{
if ($vv['is_final'] == 1) {
return $vv;
}
foreach ($res as $v) {
if ($v['parent_id'] == $vv['journal_topic_id']) {
$vv['children'][] = $this->getChieldarr($v, $res);
}
}
return $vv;
}
/**
* @title 添加话题的文章
* @description 添加话题的文章
* @author wangjinlei
* @url /master/Journal/addTopicArticle
* @method POST
*
* @param name:article_id type:int require:1 desc:文章id
* @param name:topic_id type:int require:1 desc:话题id
*/
public function addTopicArticle()
{
$data = $this->request->post();
$insert['article_id'] = $data['article_id'];
$insert['topic_id'] = $data['topic_id'];
$res = $this->article_to_topic_obj->insert($insert);
$this->msg_subscript_topic($data['topic_id'], $data['article_id']);
$this->msg_subscribe_base_topic($data['topic_id'], $data['article_id']);
if ($res) {
return json(['code' => 0, 'msg' => 'success']);
} else {
return json(['code' => 1, 'msg' => 'system error']);
}
}
/**
* 推送邮件给编委
*/
private function pushEmailToBoardByJournal()
{
$data = $this->request->post();
$rule = new Validate([
'journal_id' => 'require'
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find();
$boards = $this->board_obj->where('journal_id', $data['journal_id'])->where('type', 2)->where('state', 0)->select();
$tt = "Life Research journal is currently applying for Web of Science Core Collection (SCI), and we have received modification comments from Web of Science Editorial Team. Life Research is expected to be indexed in SCI in two years.
";
$tt .= "According to the opinions, the editorial board of Life Research journal needs to be reorganized. Please send the URL of your latest publication record (ORCID or ResearchGate) to this email address (liferes@tmrjournals.com). We will choose new editorial board members based on the latest publication record. If you cannot respond within two weeks, you will be temporarily removed from the editorial board list until you send us the publication record.
";
$tt .= "Thank you very much for your support.
";
$tt .= "Life Research Editorial Team";
// $name = 'haoRan Zhang';
// // $maidata['email'] = 'liferes@tmrjournals.com';
// $maidata['email'] = '751475802@qq.com';
// $maidata['title'] = 'Please send the URL of your latest publication record (Life Research)';
// $maidata['content'] = "Dear ".$name.",
".$tt;
// // $maidata['tmail'] = $journal_info['email'];
// // $maidata['tpassword'] = $journal_info['epassword'];
// $maidata['tmail'] = 'liferes@tmrjournals.com';
// $maidata['tpassword'] = 'Wu999999lifere';
// Queue::push('app\api\job\mail@fire', $maidata, "mail");
// $r = sendEmail($maidata['email'],$maidata['title'],$maidata['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword']);
foreach ($boards as $v) {
if ($v['email'] == '') {
continue;
}
$maidata['email'] = $v['email'];
$maidata['title'] = 'Please send the URL of your latest publication record (Life Research)';
$maidata['content'] = "Dear " . $v['name'] . ",
" . $tt;
$maidata['tmail'] = $journal_info['email'];
$maidata['tpassword'] = $journal_info['epassword'];
Queue::push('app\api\job\mail@fire', $maidata, "mail");
// Queue::push('app\api\job\mail@propa', $maidata, "mail");
}
return jsonSuccess([]);
}
/**
* 发送推广邮件到订阅者
*/
public function pushEmailToDY()
{
$frag = $this->subscribe_journal_obj->where('journal_id', 1)->where('state', 0)->limit(0, 1000)->select();
$articles = $this->article_obj
->field('j_article.*,j_journal_stage.stage_year,j_journal_stage.stage_vol,j_journal_stage.stage_no')
->join('j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'left')
->where('j_article.journal_id', 1)
->where('j_article.journal_stage_id', '<', 375)
->limit(20)
->order('pdf_num desc')->select();
$tt = 'Greetings!
';
$tt .= 'Thank you for your attention to TMR Publishing Group and your active participation.
';
$tt .= "According to Clarivate's latest policy (https://clarivate.com/news/clarivate-announces-changes-to-the-2023-journal-citation-reports/), Traditional Medicine Research (ISSN 2413-3973) will get the first Impact Factor in 2023. You are welcome to pay attention to the journal and submit manuscripts.
";
$tt .= "Attached are some popular papers published in Traditional Medicine Research.
";
$tt .= "You are always welcome to read and share the articles and encourage you to submit your manuscripts to us through the following channels: www.tmrjournals.com/tmr
";
foreach ($articles as $v) {
$tt .= "" . $v['title'] . "
";
$tt .= "Traditional Medicine Research. " . $v['stage_year'] . " " . $v['stage_vol'] . "(" . $v['stage_no'] . ")
";
$tt .= "Download pdf
";
}
$frag1 = [];
$frag1[] = [
'subscribe_journal_id' => 7,
'email' => '751475802@qq.com'
];
$frag1[] = [
'subscribe_journal_id' => 7,
'email' => 'tmr@tmrjournals.com'
];
foreach ($frag as $v) {
$cache_tt = $tt . 'Unsubscribe';
$maidata['email'] = $v['email'];
$maidata['title'] = "Traditional Medicine Research will get the first Impact Factor (WOS) in 2023";
$maidata['content'] = $cache_tt;
// $maidata['tmail'] = 'publicrelations@tmrjournals.com';
// $maidata['tpassword'] = 'pRWU999999';
// $maidata['tmail'] = 'ghr@tmrjournals.com';
// $maidata['tpassword'] = 'Gh999666';
// echo aliemail($maidata['email'], $maidata['title'], $maidata['content']);
Queue::push('app\api\job\mail@propa', $maidata, "mail");
// sendEmail($maidata['email'],$maidata['title'],$maidata['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword']);
}
return jsonSuccess([]);
}
public function pushEmailToUser1(){
// die('stop');
$data = $this->request->post();
$rule = new Validate([
'num'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$url = "http://api.tmrjournals.com/public/index.php/api/user/getUserForJournal";
$pag = [];
$pag['num'] = $data['num'];
$res = object_to_array(json_decode(myPost($url, $pag)));
$tt = 'Greetings!
Thank you for your attention to TMR Publishing Group and your active participation.
';
$tt .= "According to Clarivate's latest policy (https://clarivate.com/news/clarivate-announces-changes-to-the-2023-journal-citation-reports/), Traditional Medicine Research (ISSN 2413-3973) will get the first Impact Factor in 2023. You are welcome to pay attention to the journal and submit manuscripts. You are always welcome to read and share the articles and encourage you to submit your manuscripts to us through the following channels: www.tmrjournals.com/tmr
";
$articles = $this->article_obj
->field('j_article.*,j_journal_stage.stage_year,j_journal_stage.stage_vol,j_journal_stage.stage_no')
->join('j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'left')
->where('j_journal_stage.stage_year', '>=', '2021')
->where('j_article.journal_id', 1)
->where('j_article.state', 0)
->orderRaw("(j_article.abs_num+j_article.pdf_num) desc")
->limit(10)
->select();
foreach ($articles as $v) {
$tt .= "" . $v['title'] . "
";
$tt .= "Traditional Medicine Research. " . $v['stage_year'] . " " . $v['stage_vol'] . "(" . $v['stage_no'] . ")
";
$tt .= "Download pdf
";
}
foreach($res['data']['list'] as $v){
$maidata['email'] = $v['email'];
$maidata['title'] = "TOP10 popular papers|Traditional Medicine Research (2021-2022)";
$maidata['content'] = $tt;
Queue::push('app\api\job\mail@propa', $maidata, "mail");
}
return jsonSuccess([]);
}
public function pushEmailToExten(){
$data = $this->request->post();
$rule = new Validate([
'num'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$url = "http://api.tmrjournals.com/public/index.php/api/Auto/getUserqqqq";
$pag = [];
$pag['num'] = $data['num'];
$res = object_to_array(json_decode(myPost($url, $pag)));
// $tt = "
";
$ll = ['751475802@qq.com','849192806@qq.com'];
foreach($res['data']['list'] as $v){
// foreach($ll as $v){
$img = '';
if($v['country']=='China'){
$img = "27bbc43fce9be5a73719994532f4094.png";
}else{
$img = "8e01a16577638c35ec6c1848b209e12.png";
}
$tt = "
";
$maidata['email'] = $v['email'];
// $maidata['email'] = $v;
$maidata['title'] = "Call for papers | Traditional Medicine Research";
$maidata['content'] = $tt;
Queue::push('app\api\job\mail@propa', $maidata, "mail");
}
return jsonSuccess($res);
}
public function pushEmailToUser(){
$data = $this->request->post();
$rule = new Validate([
'num'=>'require'
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$url = "http://api.tmrjournals.com/public/index.php/api/user/getUserForJournal";
$pag = [];
$pag['num'] = $data['num'];
$res = object_to_array(json_decode(myPost($url, $pag)));
$tt = 'Dear Colleague,
I am writing to let you know about some of the most popular papers published in our journal. These papers have been widely read and cited by researchers in the field, and we believe they offer valuable insights and contributions to the academic community.
';
$articles = $this->article_obj
->field('j_article.*,j_journal_stage.stage_year,j_journal_stage.stage_vol,j_journal_stage.stage_no')
->join('j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'left')
->where('j_journal_stage.stage_year', '>=', '2021')
->where('j_article.journal_id', 1)
->where('j_article.state', 0)
->orderRaw("(j_article.abs_num+j_article.pdf_num) desc")
->limit(10)
->select();
foreach ($articles as $v) {
$tt .= "" . $v['title'] . "
";
$tt .= "Traditional Medicine Research. " . $v['stage_year'] . " " . $v['stage_vol'] . "(" . $v['stage_no'] . ")
";
$tt .= "Download pdf
";
}
$tt .= "If you are interested in reading these papers, you can access them through our website: https://www.tmrjournals.com/tmr. We encourage you to share them with your colleagues and students, and we welcome any feedback or comments you may have.
";
$tt .= "Thank you for your interest in our journal.
";
$tt .= "Best regards,
Editor-in-Chief: Xiong-Zhi Wu
Traditional Medicine Research
";
// $maidata['email'] = '849192806@qq.com';
// $maidata['title'] = "New findings and insights from Traditional Medicine Research";
// $maidata['content'] = $tt;
// Queue::push('app\api\job\mail@propa', $maidata, "mail");
foreach($res['data']['list'] as $v){
$maidata['email'] = $v['email'];
$maidata['title'] = "New findings and insights from Traditional Medicine Research";
$maidata['content'] = $tt;
Queue::push('app\api\job\mail@propa', $maidata, "mail");
}
return jsonSuccess([]);
}
/**
* 发送邮件至审稿人
*/
public function pushEmailToReviewer()
{
// $data = $this->request->post();
// $topic_tem = Db::name('topic_tem');
// $tems = $topic_tem->where('topic_id', $data['topic'])->where('state', 0)->select();
// $frag = [];
// foreach ($tems as $k => $v) {
$url = "http://api.tmrjournals.com/public/index.php/api/Reviewer/getReviewerOnChina";
// $pag = [];
// $pag['topic'] = $v['p_title'];
$cache_res = object_to_array(json_decode(myPost($url)));
$frag = $cache_res['data']['emails'];
// if ($cache_res['code'] == 0) {
// $emails = $cache_res['data']['reviewers'];
// foreach ($emails as $val) {
// $frag[] = $val;
// }
// }
// }
// $article_ids = $this->article_to_topic_obj->where('topic_id', $data['topic'])->where('state', 0)->column('article_id');
// $articles = $this->article_obj
// ->field('j_article.*,j_journal_stage.stage_year,j_journal_stage.stage_vol,j_journal_stage.stage_no')
// ->join('j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'left')
// ->where('j_journal_stage.stage_year', '>=', '2020')
// ->where('j_article.article_id', 'in', $article_ids)
// ->where('j_article.journal_id', 1)
// ->where('j_article.state', 0)
// ->select();
$tt = '尊敬的审稿人们,
祝大家新年快乐!我谨代表TMR出版集团向每一位审稿人致以最诚挚的祝福。
在过去的一年里,您们的辛勤工作为我们的出版事业做出了巨大贡献。您们的专业知识和批判性思考帮助我们提高了出版物的质量,并使我们能够为读者提供最好的内容。
特别要感谢您对中国科研的贡献,您的审核和审查使得我们能够发表高质量的研究论文,推动了世界科学发展。
我们非常感谢您们对我们工作的支持和信任。我们期待着与您们继续合作,共同推动出版事业的发展。
祝您们新年快乐,身体健康,工作顺利!
吴雄志
wxz@tmrjournals.com
致敬, TMR出版集团首席执行官
Dear Reviewers,
Wishing you all a very happy Chinese New Year! On behalf of TMR Publishing Group, I extend my warmest greetings to each and every one of you.
In the past year, your hard work has made a tremendous contribution to our publishing endeavors. Your expertise and critical thinking have helped us to improve the quality of our publications and provide our readers with the best content.
Special thanks for your contributions to Chinese research, your review and editing have enabled us to publish high-quality research papers, making important contributions to the scientific community worldwide.
We are deeply grateful for your support and trust in our work. We look forward to continuing to work with you and driving the advancement of publishing together.
Wishing you all a happy Chinese New Year, good health and success in your work!
Xiong-Zhi Wu
wxz@tmrjournals.com
Sincerely, CEO of TMR Publishing Group';
// foreach ($articles as $v) {
// $tt .= "" . $v['title'] . "
";
// $tt .= "Traditional Medicine Research. " . $v['stage_year'] . " " . $v['stage_vol'] . "(" . $v['stage_no'] . ")
";
// $tt .= "Download pdf
";
// }
$frag1 = [];
$frag1[] = [
'user_id' => 54,
'email' => '751475802@qq.com'
];
$frag1[] = [
'user_id' => 28,
'email' => 'tmr@tmrjournals.com'
];
foreach ($frag as $v) {
// $cache_tt = $tt . 'Unsubscribe';
$maidata['email'] = $v['email'];
$maidata['title'] = "TMR出版集团祝您新春快乐";
$maidata['content'] = $tt;
// $maidata['tmail'] = 'publicrelations@tmrjournals.com';
// $maidata['tpassword'] = 'pRWU999999';
// $maidata['tmail'] = 'ghr@tmrjournals.com';
// $maidata['tpassword'] = 'Gh999666';
// echo aliemail($maidata['email'], $maidata['title'], $maidata['content']);
Queue::push('app\api\job\mail@propa', $maidata, "mail");
// sendEmail($maidata['email'],$maidata['title'],$maidata['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword']);
}
return jsonSuccess(['num' => count($frag)]);
}
// public function toReviewerEmail()//$email, $topic_id)
// {
// $data = $this->request->post();
// $article_ids = $this->article_to_topic_obj->where('topic_id', $data['topic_id'])->where('state', 0)->column('article_id');
// $articles = $this->article_obj
// ->field('j_article.*,j_journal_stage.stage_year,j_journal_stage.stage_vol,j_journal_stage.stage_no')
// ->join('j_journal_stage', 'j_journal_stage.journal_stage_id = j_article.journal_stage_id', 'left')
// ->where('j_journal_stage.stage_year', '>=', '2020')
// ->where('j_article.article_id', 'in', $article_ids)
// ->where('j_article.journal_id',1)
// ->where('j_article.state', 0)
// ->select();
// $tt = 'Greetings!
';
// $tt .= 'Thank you for your contribution to TMR Publishing Group and your active participation in the peer review process.
';
// $tt .= "According to Clarivate's latest policy (https://clarivate.com/news/clarivate-announces-changes-to-the-2023-journal-citation-reports/), Traditional Medicine Research (ISSN 2413-3973) will get the first Impact Factor in 2023. You are welcome to pay attention to the journal and submit manuscripts.Attached are some papers published in Traditional Medicine Research, which are related to your research field. You are always welcome to read and to share the articles and encourage you to submit your manuscripts to us through the following channels: www.tmrjournals.com/tmr
";
// foreach($articles as $v){
// $tt .= "".$v['title']."
";
// $tt .= "Traditional Medicine Research. ".$v['stage_year']." ".$v['stage_vol']."(".$v['stage_no'].")
";
// $tt .= "Download pdf
";
// }
// $maidata['email'] = $data['email'];
// $maidata['title'] = "Traditional Medicine Research will get the first Impact Factor (WOS) in 2023";
// $maidata['content'] = $tt;
// $maidata['tmail'] = 'publicrelations@tmrjournals.com';
// $maidata['tpassword'] = 'pRWU999999';
// echo sendEmail($maidata['email'],$maidata['title'],$maidata['title'],$maidata['content'],$maidata['tmail'],$maidata['tpassword']);
// // Queue::push('app\api\job\mail@fire', $maidata, "mail");
// }
public function mmm()
{
$this->msg_subscribe_base_topic(14, 5);
}
private function msg_subscribe_base_topic($topic_id, $article_id)
{
$article_info = $this->article_obj->where('article_id', $article_id)->find();
$topic_info = $this->journal_topic_obj->where('journal_topic_id', $topic_id)->find();
$base_topic_info = $this->base_topic_obj->where('title', $topic_info['title'])->find();
$journal_info = $this->journal_obj->where('journal_id', $article_info['journal_id'])->find();
if ($base_topic_info == null) {
return;
}
$list = $this->subscribe_base_topic_obj->where('base_topic_id', $base_topic_info['base_topic_id'])->where('state', 0)->select();
$title = 'These new articles included in TMRDE database are available online.';
$tt = 'Dear Researcher,
';
$tt .= 'It is our great honor to present you the articles included in TMRDE.The following new articles have just been included.
';
$tt .= '' . $article_info['title'] . '
';
foreach ($list as $v) {
$tt1 = '';
$tt1 .= $tt;
$tt1 .= 'Unsubscribe
';
$tt1 .= 'Email:' . $journal_info['email'] . '
';
$tt1 .= 'Website:' . $journal_info['website'] . '
';
$tt1 .= 'TMR Publishing Group Ltd.
';
$tt1 .= '11 Cockle Bay Rd, Cockle Bay, Auckland, New Zealand
';
$tt1 .= 'Tel: +64 02108293806.';
$maidata['email'] = $v['email'];
$maidata['title'] = $title;
$maidata['content'] = $tt1;
$maidata['tmail'] = 'publicrelations@tmrjournals.com';
$maidata['tpassword'] = 'pRWU999999';
Queue::push('app\api\job\mail@fire', $maidata, "mail");
}
}
private function msg_subscript_topic($topic_id, $article_id)
{
$article_info = $this->article_obj->where('article_id', $article_id)->find();
$stage_info = $this->journal_stage_obj->where('journal_stage_id', $article_info['journal_stage_id'])->find();
$topic_info = $this->journal_topic_obj->where('journal_topic_id', $topic_id)->find();
$journal_info = $this->journal_obj->where('journal_id', $article_info['journal_id'])->find();
$list = [];
if ($topic_info['level'] == 2) {
$list = $this->subscribe_topic_obj->where('topic_id', $topic_id)->where('state', 0)->select();
} else {
$list = $this->subscribe_topic_obj->where('topic_id', $topic_info['parent_id'])->where('state', 0)->select();
}
// $list = $this->subscribe_topic_obj->where('topic_id',$topic_info['parent_id'])->where('state',0)->select();
//组成文章信息
$tt1 = '