This commit is contained in:
Administrator
2022-01-19 17:51:39 +08:00
parent a786f6f8e5
commit 30457f9d79
3 changed files with 352 additions and 125 deletions

View File

@@ -459,8 +459,8 @@ class Article extends Controller {
$tt .= 'Dear '.($user_rev_info==null||$user_rev_info['technical']=="Others"||$user_rev_info['technical']==""?"Dr.":$user_rev_info['technical']).($user_info['realname']==''?$user_info['account']:$user_info['realname']).',<br>';
$tt .= 'Thank you for submitting your paper to '.$journal_info['title'].'. Your manuscript has undergone review.<br>';
$tt .= 'Unfortunately the editors feel that '.$journal_info['title'].' is not the appropriate venue for your manuscript. You munuscript will transfer to journal - '.$tran_journal['title'].' as you co-submitting chose order.If you have questions about the Co-submission process, please contact publisher@tmrjournals.com within 48 hours.<br><br>Yours sincerely,<br><br>';
$tt .= 'Sincerely,<br>Editorial Office<br>';
$tt .= 'Unfortunately the editors feel that '.$journal_info['title'].' is not the appropriate venue for your manuscript. You munuscript will transfer to journal - '.$tran_journal['title'].' as you co-submitting chose order.If you have questions about the Co-submission process, please contact publisher@tmrjournals.com within 48 hours.<br><br>Yours sincerely,<br>';
$tt .= 'Editorial Office<br>';
$tt .= $journal_info['title'].'<br>';
$tt .= '<a href="https://www.tmrjournals.com/draw_up.html?issn='.$journal_info['issn'].'">Subscribe to this journal</a><br>';
$tt .= 'Email: '.$journal_info['email'].'<br>';
@@ -1118,6 +1118,12 @@ class Article extends Controller {
return jsonSuccess($re);
}
public function getMajors(){
}
/**
* 存储article文件历史信息
*/

View File

@@ -17,7 +17,6 @@ class Auto extends Controller {
protected $article_obj = '';
protected $article_reviewer_obj = '';
protected $user_obj = '';
protected $rev_to_jour_obj = '';
protected $reviewer_obj = '';
protected $journal_obj = '';
@@ -25,7 +24,6 @@ class Auto extends Controller {
protected $user_log_obj = '';
protected $reviewer_info_obj = '';
public function __construct(\think\Request $request = null) {
parent::__construct($request);
$this->article_obj = Db::name('article');
@@ -44,35 +42,35 @@ class Auto extends Controller {
/**
* 推送邮件给审稿人提醒审稿人
*/
public function pushEmailForReviewer(){
public function pushEmailForReviewer() {
//筛选数据
$list = $this->article_reviewer_obj->where("state","in",[0,5])->select();
foreach ($list as $v){
$cache_article = $this->article_obj->where("article_id",$v['article_id'])->find();
if($cache_article["state"]!=2){
$list = $this->article_reviewer_obj->where("state", "in", [0, 5])->select();
foreach ($list as $v) {
$cache_article = $this->article_obj->where("article_id", $v['article_id'])->find();
if ($cache_article["state"] != 2) {
continue;
}
$cache_t = intval((time()-$v["ctime"])/86400);
if($cache_t==14||$cache_t==21||$cache_t==28){
$cache_journal = $this->journal_obj->where("journal_id",$cache_article['journal_id'])->find();
$cache_t = intval((time() - $v["ctime"]) / 86400);
if ($cache_t == 14 || $cache_t == 21 || $cache_t == 28) {
$cache_journal = $this->journal_obj->where("journal_id", $cache_article['journal_id'])->find();
//查找审稿人信息
$cache_reviewer = $this->user_obj
->join("t_user_reviewer_info","t_user_reviewer_info.reviewer_id = t_user.user_id","left")
->where("t_user.user_id",$v['reviewer_id'])->find();
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_user.user_id", "left")
->where("t_user.user_id", $v['reviewer_id'])->find();
$tt = "Manuscript ID: ".$cache_article['accept_sn']."<br>";
$tt .= "Title:".$cache_article['title']."<br>";
$tt .= "Dear ".($cache_reviewer['technical']==""||$cache_reviewer['technical']=="Others"?"Dr.":$cache_reviewer['technical'])." ".($cache_reviewer["realname"]==""?$cache_reviewer["account"]:$cache_reviewer["realname"])."<br><br>";
$tt .= "On ".date("d D Y",$v["ctime"])." we sent you a request to review a paper title ".$cache_article['title'].".<br><br>";
$tt = "Manuscript ID: " . $cache_article['accept_sn'] . "<br>";
$tt .= "Title:" . $cache_article['title'] . "<br>";
$tt .= "Dear " . ($cache_reviewer['technical'] == "" || $cache_reviewer['technical'] == "Others" ? "Dr." : $cache_reviewer['technical']) . " " . ($cache_reviewer["realname"] == "" ? $cache_reviewer["account"] : $cache_reviewer["realname"]) . "<br><br>";
$tt .= "On " . date("d D Y", $v["ctime"]) . " we sent you a request to review a paper title " . $cache_article['title'] . ".<br><br>";
$tt .= "We have not yet received a response from you, possibly because the original invitation went astray. We would be grateful if you could let us know if you can carry out this review.<br><br>";
$tt .= "If you would like to review this paper, please click <a href='https://submission.tmrjournals.com/'>this link</a>.<br><br>";
$tt .= "If you do not wish to review this paper, please click <a href='http://api.tmrjournals.com/public/index.php/api/Reviewer/refusereview/aid/".$v['art_rev_id']."'>this link</a>.<br><br>";
$tt .= 'Sincerely,<br>Editorial Office<br>'.$cache_journal['title'].'<br>';
$tt .= 'Email: '.$cache_journal['email'].'<br>';
$tt .= 'Website:<a href="'.$cache_journal['website'].'">'.$cache_journal['website'].'</a>';
$tt .= "If you do not wish to review this paper, please click <a href='http://api.tmrjournals.com/public/index.php/api/Reviewer/refusereview/aid/" . $v['art_rev_id'] . "'>this link</a>.<br><br>";
$tt .= 'Sincerely,<br>Editorial Office<br>' . $cache_journal['title'] . '<br>';
$tt .= 'Email: ' . $cache_journal['email'] . '<br>';
$tt .= 'Website:<a href="' . $cache_journal['website'] . '">' . $cache_journal['website'] . '</a>';
$maidata['email'] = $cache_reviewer['email'];
$maidata['title'] = "Invitation to review manuscript for ".$cache_journal['title']." - Reminder";
$maidata['title'] = "Invitation to review manuscript for " . $cache_journal['title'] . " - Reminder";
$maidata['content'] = $tt;
$maidata['tmail'] = $cache_journal['email'];
$maidata['tpassword'] = $cache_journal['epassword'];
@@ -84,34 +82,57 @@ class Auto extends Controller {
/**
* 推送邮件提醒作者修回稿件
*/
public function pushEmailForAuthor(){
public function pushEmailForAuthor() {
//筛选数据
$list = $this->article_obj->where("state",4)->select();
foreach ($list as $v){
$cache_t = intval((time()-$v["ttime"])/86400);
if($cache_t==14||$cache_t==21||$cache_t==28){
//查找文章内容
$cache_journal = $this->journal_obj->where("journal_id",$v['journal_id'])->find();
//查找作者信息
$cache_author = $this->user_obj->where("user_id",$v['user_id'])->find();
$list = $this->article_obj->where("state", 4)->select();
foreach ($list as $v) {
$cache_t = intval((time() - $v["ttime"]) / 86400);
if ($v['type'] == 'A') {
if ($cache_t == 28 || $cache_t == 42 || $cache_t == 56) {
//查找文章内容
$cache_journal = $this->journal_obj->where("journal_id", $v['journal_id'])->find();
//查找作者信息
$cache_author = $this->user_obj->where("user_id", $v['user_id'])->find();
$tt = "Dear Author,<br>";
$tt .= "We have send you the email about revision of your manuscript. According to our records you are almost reaching the deadline now. We look forward to receiving your revised article.<br><br>";
$tt .= "When preparing your revised manuscript, you are asked to carefully consider the reviewers' comments which are attached, and submit a revised versionand a list of responses to the comments before deadline. The revised parts in the manuscript should be highlighted with blue color.<br><br>";
$tt .= "If you feel that you will require more time to complete your revision, please let me know and I will update our records accordingly. If I can provide any further advice or assistance, please do not hesitate to contact me.<br><br><br>";
$tt .= 'Sincerely,<br>Editorial Office<br>'.$cache_journal['title'].'<br>';
$tt .= 'Email: '.$cache_journal['email'].'<br>';
$tt .= 'Website:<a href="'.$cache_journal['website'].'">'.$cache_journal['website'].'</a>';
$tt = "Dear Author,<br>";
$tt .= "We have send you the email about revision of your manuscript. According to our records you are almost reaching the deadline now. We look forward to receiving your revised article.<br><br>";
$tt .= "When preparing your revised manuscript, you are asked to carefully consider the reviewers' comments which are attached, and submit a revised versionand a list of responses to the comments before deadline. The revised parts in the manuscript should be highlighted with blue color.<br><br>";
$tt .= "If you feel that you will require more time to complete your revision, please let me know and I will update our records accordingly. If I can provide any further advice or assistance, please do not hesitate to contact me.<br><br><br>";
$tt .= 'Sincerely,<br>Editorial Office<br>' . $cache_journal['title'] . '<br>';
$tt .= 'Email: ' . $cache_journal['email'] . '<br>';
$tt .= 'Website:<a href="' . $cache_journal['website'] . '">' . $cache_journal['website'] . '</a>';
$maidata['email'] = $cache_author['email'];
$maidata['title'] = "Deadline for your revision of ".$cache_journal['title']." -Reminder";
$maidata['content'] = $tt;
$maidata['tmail'] = $cache_journal['email'];
$maidata['tpassword'] = $cache_journal['epassword'];
Queue::push('app\api\job\mail@fire', $maidata, "tmail");
$maidata['email'] = $cache_author['email'];
$maidata['title'] = "Deadline for your revision of " . $cache_journal['title'] . " -Reminder";
$maidata['content'] = $tt;
$maidata['tmail'] = $cache_journal['email'];
$maidata['tpassword'] = $cache_journal['epassword'];
Queue::push('app\api\job\mail@fire', $maidata, "tmail");
}
} else {
if ($cache_t == 14 || $cache_t == 21 || $cache_t == 28) {
//查找文章内容
$cache_journal = $this->journal_obj->where("journal_id", $v['journal_id'])->find();
//查找作者信息
$cache_author = $this->user_obj->where("user_id", $v['user_id'])->find();
$tt = "Dear Author,<br>";
$tt .= "We have send you the email about revision of your manuscript. According to our records you are almost reaching the deadline now. We look forward to receiving your revised article.<br><br>";
$tt .= "When preparing your revised manuscript, you are asked to carefully consider the reviewers' comments which are attached, and submit a revised versionand a list of responses to the comments before deadline. The revised parts in the manuscript should be highlighted with blue color.<br><br>";
$tt .= "If you feel that you will require more time to complete your revision, please let me know and I will update our records accordingly. If I can provide any further advice or assistance, please do not hesitate to contact me.<br><br><br>";
$tt .= 'Sincerely,<br>Editorial Office<br>' . $cache_journal['title'] . '<br>';
$tt .= 'Email: ' . $cache_journal['email'] . '<br>';
$tt .= 'Website:<a href="' . $cache_journal['website'] . '">' . $cache_journal['website'] . '</a>';
$maidata['email'] = $cache_author['email'];
$maidata['title'] = "Deadline for your revision of " . $cache_journal['title'] . " -Reminder";
$maidata['content'] = $tt;
$maidata['tmail'] = $cache_journal['email'];
$maidata['tpassword'] = $cache_journal['epassword'];
Queue::push('app\api\job\mail@fire', $maidata, "tmail");
}
}
}
}
/**
@@ -125,8 +146,8 @@ class Auto extends Controller {
}
}
public function testrev(){
$a = $this->article_obj->where('article_id',261)->find();
public function testrev() {
$a = $this->article_obj->where('article_id', 261)->find();
// $this->checkrev($a);
}
@@ -148,29 +169,27 @@ class Auto extends Controller {
public function testmail() {
$maidata['email'] = '751475802@qq.com';
$maidata['title'] = 'testdsdsasaddsasdaadsasd'.date('Ymd His', time());
$maidata['title'] = 'testdsdsasaddsasdaadsasd' . date('Ymd His', time());
$maidata['content'] = 'dsadsaas';
$maidata['tmail'] = 'tmrcancer@tmrjournals.com';
$maidata['tpassword'] = 'Wu999999tmrcance';
Queue::push('app\api\job\mail@fire', $maidata, "tmail");
}
public function mytest(){
public function mytest() {
echo 'okokokook!!!!';
}
/**
* 审查文章审稿人状态,返回结果
*/
public function checkrev($data) {
die;
//查找审稿案例状态
$rev_list = $this->reviewer_obj->where('article_id', $data['article_id'])->where('state','<>',4)->select();
$journal_info = $this->journal_obj->where('journal_id',$data['journal_id'])->find();
$user_info = $this->user_obj->where('user_id',$data['user_id'])->find();
$editor_info = $this->user_obj->where('user_id',$data['editor_id'])->find();
$rev_list = $this->reviewer_obj->where('article_id', $data['article_id'])->where('state', '<>', 4)->select();
$journal_info = $this->journal_obj->where('journal_id', $data['journal_id'])->find();
$user_info = $this->user_obj->where('user_id', $data['user_id'])->find();
$editor_info = $this->user_obj->where('user_id', $data['editor_id'])->find();
//分析审稿人状况
$all = count($rev_list);
$s_num = 0; //初始数量
@@ -201,7 +220,7 @@ class Auto extends Controller {
}
if ($p_num == 2) {//通过
//更新文章状态
$this->article_obj->where('article_id', $data['article_id'])->update(['state'=>4,'editor_act'=>1]);
$this->article_obj->where('article_id', $data['article_id'])->update(['state' => 4, 'editor_act' => 1]);
//添加文章msg信息
$insert_data['article_id'] = $data['article_id'];
$insert_data['content'] = 'Review completed';
@@ -212,24 +231,24 @@ class Auto extends Controller {
//添加通知信息
add_usermsg($data['user_id'], 'Your manuscript has new process', '/articleDetail?id=' . $data['article_id']);
//发送邮件通知编辑
$tt = $data['accept_sn'].'<br>';
$tt .= 'Dear '.($user_info['realname']==''?'Authors':$user_info['realname']).',<br>';
$tt .= 'Thank you for submitting the manuscript to '.$journal_info['title'].'. <br>';
$tt .= 'Please find the new comments in the "<a href="http://submission.tmrjournals.com/submission?journal='.$journal_info['alias'].'">AuthorCenter</a>", Please submit your revised manuscript within two weeks.<br><br>';
$tt = $data['accept_sn'] . '<br>';
$tt .= 'Dear ' . ($user_info['realname'] == '' ? 'Authors' : $user_info['realname']) . ',<br>';
$tt .= 'Thank you for submitting the manuscript to ' . $journal_info['title'] . '. <br>';
$tt .= 'Please find the new comments in the "<a href="http://submission.tmrjournals.com/submission?journal=' . $journal_info['alias'] . '">AuthorCenter</a>", Please submit your revised manuscript within two weeks.<br><br>';
$tt .= 'If you need more time to revise, you can send E-mial to tell us.<br>';
$tt .= 'Sincerely,<br>Editorial Office<br>';
$tt .= $journal_info['title'].'<br>';
$tt .= '<a href="https://www.tmrjournals.com/draw_up.html?issn='.$journal_info['issn'].'">Subscribe to this journal</a><br>';
$tt .= 'Email: '.$journal_info['email'].'<br>';
$tt .= 'Website: '.$journal_info['website'];
$tt .= $journal_info['title'] . '<br>';
$tt .= '<a href="https://www.tmrjournals.com/draw_up.html?issn=' . $journal_info['issn'] . '">Subscribe to this journal</a><br>';
$tt .= 'Email: ' . $journal_info['email'] . '<br>';
$tt .= 'Website: ' . $journal_info['website'];
sendEmail($user_info['email'], $journal_info['title'], $journal_info['title'], $tt, $journal_info['email'], $journal_info['epassword']);
} elseif ($np_num == 2) {//不通过
//发送邮件通知编辑
$tt = 'Reviewers final opinions on the manuscript ID'.$data['accept_sn'].' are rejection. Please login and deal with the next step of this manuscript manually.';
$tt = 'Reviewers final opinions on the manuscript ID' . $data['accept_sn'] . ' are rejection. Please login and deal with the next step of this manuscript manually.';
sendEmail($editor_info['email'], $journal_info['title'], $journal_info['title'], $tt, $journal_info['email'], $journal_info['epassword']);
} else {//一样一个增加一个审稿案例
$this->add_reviewer($data);
return true;
return true;
}
} elseif ($all == 3) {
if ($s_num > 0) {//不做任何处理
@@ -237,7 +256,7 @@ class Auto extends Controller {
}
if ($p_num == 2) {//通过
//更新文章状态
$this->article_obj->where('article_id', $data['article_id'])->update(['state'=>4,'editor_act'=>1]);
$this->article_obj->where('article_id', $data['article_id'])->update(['state' => 4, 'editor_act' => 1]);
//添加文章msg信息
$insert_data['article_id'] = $data['article_id'];
$insert_data['content'] = 'Review completed';
@@ -248,22 +267,21 @@ class Auto extends Controller {
//添加通知信息
add_usermsg($data['user_id'], 'Your manuscript has new process', '/articleDetail?id=' . $data['article_id']);
//发送邮件通知编辑
$tt = $data['accept_sn'].'<br>';
$tt .= 'Dear '.($user_info['realname']==''?'Authors':$user_info['realname']).',<br>';
$tt .= 'Thank you for submitting the manuscript to '.$journal_info['title'].'. <br>';
$tt .= 'Please find the new comments in the "<a href="http://submission.tmrjournals.com/submission?journal='.$journal_info['alias'].'">AuthorCenter</a>", Please submit your revised manuscript within two weeks.<br><br>';
$tt = $data['accept_sn'] . '<br>';
$tt .= 'Dear ' . ($user_info['realname'] == '' ? 'Authors' : $user_info['realname']) . ',<br>';
$tt .= 'Thank you for submitting the manuscript to ' . $journal_info['title'] . '. <br>';
$tt .= 'Please find the new comments in the "<a href="http://submission.tmrjournals.com/submission?journal=' . $journal_info['alias'] . '">AuthorCenter</a>", Please submit your revised manuscript within two weeks.<br><br>';
$tt .= 'If you need more time to revise, you can send E-mial to tell us.<br>';
$tt .= 'Sincerely,<br>Editorial Office<br>';
$tt .= $journal_info['title'].'<br>';
$tt .= '<a href="https://www.tmrjournals.com/draw_up.html?issn='.$journal_info['issn'].'">Subscribe to this journal</a><br>';
$tt .= 'Email: '.$journal_info['email'].'<br>';
$tt .= 'Website: '.$journal_info['website'];
$tt .= $journal_info['title'] . '<br>';
$tt .= '<a href="https://www.tmrjournals.com/draw_up.html?issn=' . $journal_info['issn'] . '">Subscribe to this journal</a><br>';
$tt .= 'Email: ' . $journal_info['email'] . '<br>';
$tt .= 'Website: ' . $journal_info['website'];
sendEmail($user_info['email'], $journal_info['title'], $journal_info['title'], $tt, $journal_info['email'], $journal_info['epassword']);
} else {//不通过
//发送邮件通知编辑
$tt = 'Reviewers final opinions on the manuscript ID'.$data['accept_sn'].' are rejection. Please login and deal with the next step of this manuscript manually.';
$tt = 'Reviewers final opinions on the manuscript ID' . $data['accept_sn'] . ' are rejection. Please login and deal with the next step of this manuscript manually.';
sendEmail($editor_info['email'], $journal_info['title'], $journal_info['title'], $tt, $journal_info['email'], $journal_info['epassword']);
}
}
}
@@ -342,11 +360,11 @@ class Auto extends Controller {
public function chose_reviewer($article) {
//筛选符合期刊
$rev_list = $this->rev_to_jour_obj->where('journal_id', $article['journal_id'])->column('reviewer_id');
$fie_list = $this->reviewer_info_obj->where('major',$article['major_id'])->column('reviewer_id');
$fie_list = $this->reviewer_info_obj->where('major', $article['major_id'])->column('reviewer_id');
$u_list = $this->user_obj
->where('user_id',['in',$rev_list],['in',$fie_list])//审核人属于某期刊,并且属于某个领域
->where('rtime','<',time() - 3600 * 24 * 15)//审核人间隔时间
->order('rs_num desc')->select();
->where('user_id', ['in', $rev_list], ['in', $fie_list])//审核人属于某期刊,并且属于某个领域
->where('rtime', '<', time() - 3600 * 24 * 15)//审核人间隔时间
->order('rs_num desc')->select();
if ($u_list) {
return $u_list[0];
} else {
@@ -354,5 +372,4 @@ class Auto extends Controller {
}
}
}

View File

@@ -16,7 +16,8 @@ use think\Queue;
* @title 领域接口
* @description 领域接口
*/
class Major extends Controller{
class Major extends Controller {
protected $article_obj = '';
protected $user_obj = '';
protected $user_act_obj = '';
@@ -34,7 +35,8 @@ class Major extends Controller{
protected $chief_to_journal_obj = '';
protected $login_auto_obj = '';
protected $major_obj = "";
protected $major_to_journal_obj = '';
protected $sync_obj = '';
public function __construct(\think\Request $request = null) {
parent::__construct($request);
@@ -55,6 +57,8 @@ class Major extends Controller{
$this->chief_to_journal_obj = Db::name('chief_to_journal');
$this->login_auto_obj = Db::name('login_auto');
$this->major_obj = Db::name("major");
$this->major_to_journal_obj = Db::name('major_to_journal');
$this->sync_obj = Db::name("sync");
}
/**
@@ -70,21 +74,21 @@ class Major extends Controller{
* @param name:pid type:int require:1 desc:父级id(0代表顶级)
*
*/
public function addMajor(){
public function addMajor() {
$data = $this->request->post();
$insert['major_title'] = trim($data['major_title']);
$insert['pid'] = $data['pid'];
if(isset($data['nickname'])){
if (isset($data['nickname'])) {
$insert['nickname'] = trim($data['nickname']);
}
if(isset($data['major_sort'])){
if (isset($data['major_sort'])) {
$insert['major_sort'] = $data['major_sort'];
}
if($data['pid']==0){
if ($data['pid'] == 0) {
$insert['major_level'] = 1;
}else{
$p_major = $this->major_obj->where('major_id',$data['pid'])->find();
$insert['major_level'] = $p_major['major_level']+1;
} else {
$p_major = $this->major_obj->where('major_id', $data['pid'])->find();
$insert['major_level'] = $p_major['major_level'] + 1;
}
$insert['major_ctime'] = time();
$this->major_obj->insert($insert);
@@ -104,16 +108,42 @@ class Major extends Controller{
* @param name:major_sort type:int require:0 desc:权重
*
*/
public function editMajor(){
public function editMajor() {
$data = $this->request->post();
$update['major_title'] = trim($data['major_title']);
if(isset($data['nickname'])){
if (isset($data['nickname'])) {
$update['nickname'] = trim($data['nickname']);
}
if(isset($data['major_sort'])){
if (isset($data['major_sort'])) {
$update['major_sort'] = $data['major_sort'];
}
$this->major_obj->where("major_id",$data['major_id'])->update($update);
$this->major_obj->where("major_id", $data['major_id'])->update($update);
return jsonSuccess([]);
}
/**
* @title 删除大池子领域
* @description 删除大池子领域
* @author wangjinlei
* @url /api/Major/delMajor
* @method POST
*
* @param name:major_id type:int require:1 desc:领域id
*
*/
public function delMajor() {
$data = $this->request->post();
//判断是否有子集
$check_child = $this->major_obj->where('pid', $data['major_id'])->where('major_state', 0)->select();
if ($check_child) {
return jsonError("存在子集不能删除");
}
//判断是否存在引用
$check_journal = $this->major_to_journal_obj->where('major_id', $data['major_id'])->where("mtj_state", 0)->select();
if ($check_journal) {
return jsonError("期刊存在引用,不能删除");
}
$this->major_obj->where("major_id", $data['major_id'])->update(['major_state' => 1]);
return jsonSuccess([]);
}
@@ -126,12 +156,12 @@ class Major extends Controller{
*
* @return majors:领域树
*/
public function getMajorList(){
public function getMajorList() {
//查询顶级
$list = $this->major_obj->where('pid',0)->where('major_state',0)->order('major_sort desc')->select();
foreach ($list as $k => $v){
$list = $this->major_obj->where('pid', 0)->where('major_state', 0)->order('major_sort desc')->select();
foreach ($list as $k => $v) {
$cache_child = $this->getMajorChild($v);
if($cache_child!=null){
if ($cache_child != null) {
$list[$k]['children'] = $cache_child;
}
}
@@ -148,26 +178,200 @@ class Major extends Controller{
* @method POST
*
* @param name:major_id type:int require:1 desc:领域id
* @param name:jou $name Description
* @param name:journal_issn type:string require:1 desc:期刊issn
*
* @return majors:领域树
*/
public function addJournalMajor(){
public function addJournalMajor() {
$data = $this->request->post();
//判断major父级是否存在
$major_info = $this->major_obj->where('major_id', $data['major_id'])->where("major_state", 0)->find();
$check_major = $this->major_to_journal_obj->where('major_id', $major_info['pid'])->where('journal_issn',trim($data['journal_issn']))->where('mtj_state', 0)->find();
if ($major_info['pid'] != 0 && $check_major == null) {
return jsonError("父级必须存在");
}
//判断是否重复添加
$check = $this->major_to_journal_obj->where('major_id', $data['major_id'])->where('journal_issn', trim($data['journal_issn']))->where('mtj_state', 0)->find();
if ($check) {
return jsonError("重复添加");
}
$has = $this->major_to_journal_obj->where('major_id', $data['major_id'])->where('journal_issn', trim($data['journal_issn']))->where('mtj_state', 1)->find();
if ($has) {
$this->major_to_journal_obj->where('major_id', $data['major_id'])->where('journal_issn', trim($data['journal_issn']))->where('mtj_state', 1)->update(['mtj_state' => 0]);
} else {
$insert['major_id'] = $data['major_id'];
$insert['journal_issn'] = trim($data['journal_issn']);
$insert['mtj_ctime'] = time();
$this->major_to_journal_obj->insert($insert);
}
return jsonSuccess([]);
}
/**
* @title 删除期刊领域
* @description 删除期刊领域
* @author wangjinlei
* @url /api/Major/delJournalMajor
* @method POST
*
* @param name:major_id type:int require:1 desc:领域id
* @param name:journal_issn type:string require:1 desc:期刊issn
*
*/
public function delJournalMajor() {
$data = $this->request->post();
//判断是否有子集
$check = $this->major_to_journal_obj
->join("t_major","t_major.major_id = t_major_to_journal.major_id","left")
->where("t_major_to_journal.journal_issn", trim($data['journal_issn']))
->where("t_major_to_journal.mtj_state",0)
->where("t_major.pid",$data['major_id'])
->select();
if($check){
return jsonError("存在子集不能删除");
}
$this->major_to_journal_obj->where('major_id', $data['major_id'])->where('journal_issn', $data['journal_issn'])->update(['mtj_state'=> 1]);
return jsonSuccess([]);
}
/**
* @title 获取期刊领域树
* @description 获取期刊领域树
* @author wangjinlei
* @url /api/Major/getJournalMajorList
* @method POST
*
* @param name:journal_issn type:string require:1 desc:期刊issn号
*
* @return majors:领域信息#
*/
public function getJournalMajorList() {
$data = $this->request->post();
if (!isset($data['journal_issn'])) {
return jsonError("参数异常");
}
// $data['journal_issn'] = '2815-7125';
//获取主节点
$list = $this->major_to_journal_obj
->field('t_major.*')
->join("t_major", 't_major.major_id = t_major_to_journal.major_id', 'left')
->where("t_major_to_journal.journal_issn", trim($data['journal_issn']))
->where("t_major.pid", 0)
->where("t_major_to_journal.mtj_state", 0)
->select();
foreach ($list as $k => $v) {
$cache_child = $this->getJournalMajorChild($v, trim($data['journal_issn']));
if ($cache_child != null) {
$list[$k]['children'] = $cache_child;
}
}
$re['majors'] = $list;
return jsonSuccess($re);
}
/**
* @title 获取全部期刊
* @description 获取全部期刊
* @author wangjinlei
* @url /api/Major/getAllJournals
* @method POST
*
* @return journals:期刊信息#
*/
public function getAllJournals() {
$list = $this->journal_obj->where('state', 0)->select();
$re['journals'] = $list;
return jsonSuccess($re);
}
/**
* @title 同步大池子数据
* @description 同步大池子数据
* @author wangjinlei
* @url /api/Major/synchronization
* @method POST
*
*/
public function synchronization(){
$url = "http://journalapi.tmrjournals.com/public/index.php/master/Major/sync_all";
$url1 = "http://api.tmrjournals.cn/public/index.php/master/Major/sync_all";
$list = $this->major_obj->select();
myPost($url, ['majors'=> json_encode($list)]);
myPost($url1, ['majors'=> json_encode($list)]);
$this->sync_obj->where('akey',1)->update(['all_major'=> time()]);
return jsonSuccess([]);
}
/**
* @title 同步小池子数据
* @description 同步小池子数据
* @author wangjinlei
* @url /api/Major/synchronizationJournal
* @method POST
*
*/
public function synchronizationJournal(){
$url = "http://journalapi.tmrjournals.com/public/index.php/master/Major/sync_journal";
$url1 = "http://api.tmrjournals.cn/public/index.php/master/Major/sync_journal";
$list = $this->major_to_journal_obj->select();
myPost($url, ['majors'=> json_encode($list)]);
myPost($url1, ['majors'=> json_encode($list)]);
$this->sync_obj->where('akey',1)->update(['journal_major'=> time()]);
return jsonSuccess([]);
}
/**
* @title 获取大池子最后同步时间
* @description 获取大池子最后同步时间
* @author wangjinlei
* @url /api/Major/getLastSyncTime
* @method POST
*
* @return sync:同步时间记录#
*/
public function getLastSyncTime(){
$d = $this->sync_obj->where('akey',1)->find();
$re['sync'] = $d;
return jsonSuccess($re);
}
/**
* 获取领域子树
*/
private function getMajorChild($major){
$list = $this->major_obj->where('pid',$major['major_id'])->where('major_state',0)->order("major_sort desc")->select();
if($list == null){
private function getMajorChild($major) {
$list = $this->major_obj->where('pid', $major['major_id'])->where('major_state', 0)->order("major_sort desc")->select();
if ($list == null) {
return null;
}
foreach ($list as $k => $v){
foreach ($list as $k => $v) {
$cache_child = $this->getMajorChild($v);
if($cache_child!=null){
if ($cache_child != null) {
$list[$k]['children'] = $cache_child;
}
}
return $list;
}
/**
* 获取期刊领域树子集
* @param type $major
* @param type $issn
*/
private function getJournalMajorChild($major, $issn) {
$list = $this->major_to_journal_obj
->field("t_major.*")
->join("t_major", "t_major_to_journal.major_id=t_major.major_id", 'left')
->where("pid", $major['major_id'])
->where("t_major_to_journal.journal_issn", $issn)
->where("t_major_to_journal.mtj_state", 0)
->select();
foreach ($list as $k => $v) {
$cache_child = $this->getJournalMajorChild($v, $issn);
if ($cache_child != null) {
$list[$k]['children'] = $cache_child;
}
}