Merge remote-tracking branch 'origin/master'

This commit is contained in:
wangjinlei
2025-05-16 15:34:17 +08:00
3 changed files with 1466 additions and 234 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -617,10 +617,29 @@ class Base extends Controller
}
// public function blueIntegerChange($string){
// return preg_replace_callback('/\[(\d+)\]/', function($matches) {
// var_dump($matches);
// return '<blue>[' . $matches[1] . ']</blue>';
// }, $string);
// }
public function blueIntegerChange($string){
return preg_replace_callback('/\[(\d+)\]/', function($matches) {
return '<blue>[' . $matches[1] . ']</blue>';
}, $string);
$pattern = '/\[(\d+)-(\d+)\]/';
$replacement = '[\1\2]'; // 使用反向引用 \1 和 \2 来保持数字不变,只替换中间的短横线
$result = preg_replace($pattern, $replacement, $string);
$result = preg_replace_callback('/<blue>\[-?\d+(?:,|,\s*\d+)?(?:|\s*\s*\d+)?\]<\/blue>/', function($matches) {
// if(!empty($matches[1])){
// return '['.$matches[1].']';
// }
return strip_tags($matches[0]);
}, $result);
$pattern = '/\[-?\d+(?:,|,\s*\d+)?(?:|\s*\s*\d+)?\]/';
$replacement = '<blue>$0</blue>';
$result = preg_replace($pattern, $replacement, $result);
return $result;
}
public function getBoardsForJournal($journal_id, $aar = false)

View File

@@ -13,6 +13,8 @@ use app\api\controller\User as usercontroller;
class Journal extends Base {
protected $sJournalUrl = 'http://journalapi.tmrjournals.com/public/index.php/';//'http://zmzm.journal.dev.com/';
public function __construct(\think\Request $request = null) {
parent::__construct($request);
}
@@ -65,6 +67,11 @@ class Journal extends Base {
public function getAllJournal(){
$list = $this->journal_obj->where('state',0)->select();
//接口请求获取journal_topic 和 abstract_chinese chengxiaoling 20250514 start
if(!empty($list)){
$list = $this->_getJournalForApi($list);
}
//接口请求获取journal_topic 和 abstract_chinese chengxiaoling 20250514 end
$re['journals'] = $list;
return jsonSuccess($re);
}
@@ -197,11 +204,17 @@ class Journal extends Base {
{
$user_id = $this->request->post('user_id');
$list = $this->journal_obj->where('editor_id',$user_id)->where("state",0)->select();
//接口请求获取journal_topic 和 abstract_chinese chengxiaoling 20250514 start
if(!empty($list)){
$list = $this->_getJournalForApi($list);
}
//接口请求获取journal_topic 和 abstract_chinese chengxiaoling 20250514 end
$re['journals'] = $list;
return jsonSuccess($re);
}
/**
* 获取可申请审稿人的期刊
*/
@@ -257,13 +270,35 @@ class Journal extends Base {
$update['epassword'] = $data['epassword'];
$update['kfen'] = $data['kfen'];
//新增字段期刊涵盖主题多个逗号分隔 chengxiaoling 20250507 start
//新增字段期刊涵盖主题多个逗号分隔\中文简介\发布作者\编辑二维码 chengxiaoling 20250507 start
if(isset($data['journal_topic'])){
if(is_array($data['journal_topic'])){
$update['journal_topic'] = implode(',', $data['journal_topic']);
}else{
$update['journal_topic'] = $data['journal_topic'];
}
$aJournalUpdate['journal_topic'] = $update['journal_topic'];
}
if(isset($data['abstract_chinese'])){
$update['abstract_chinese'] = $data['abstract_chinese'];
$aJournalUpdate['abstract_chinese'] = $update['abstract_chinese'];
}
if(isset($data['publish_author'])){
$update['publish_author'] = $data['publish_author'];
$aJournalUpdate['publish_author'] = $update['publish_author'];
}
if(isset($data['editor_qrcode'])){
$update['editor_qrcode'] = $data['editor_qrcode'];
$aJournalUpdate['editor_qrcode'] = $update['editor_qrcode'];
}
if(!empty($aJournalUpdate)){
$aJournalUpdate['issn'] = $journal_info['issn'];
$sUrl = $this->sJournalUrl."wechat/Article/updateJournal";
$program['issn'] = $journal_info['issn'];
$res = object_to_array(json_decode(myPost($sUrl,$aJournalUpdate)));
var_dump($res);exit;
}
//新增字段期刊涵盖主题多个逗号分隔 chengxiaoling 20250507 end
if(isset($data['fee'])&&$data['fee']!=0){
@@ -311,4 +346,45 @@ class Journal extends Base {
}
/**
* 接口请求获取Journal数据库里的期刊话题及中文简介
*/
private function _getJournalForApi($list = []){
if(empty($list)){
return [];
}
$aIssn = array_column($list, 'issn');
$sUrl = $this->sJournalUrl."master/Journal/getJournals";
$aParam['issn'] = $aIssn;
$aResult = object_to_array(json_decode(myPost1($sUrl,$aParam)));
$aData = empty($aResult['data']) ? [] : $aResult['data'];
$aJournal = empty($aData['journals']) ? [] : array_column($aData['journals'],null,'issn');
foreach ($list as $key => $value) {
$aJournalInfo = empty($aJournal[$value['issn']]) ? [] : $aJournal[$value['issn']];
$list[$key]['journal_topic'] = empty($aJournalInfo['journal_topic']) ? '' : $aJournalInfo['journal_topic'];
$list[$key]['abstract_chinese'] = empty($aJournalInfo['abstract_chinese']) ? '' : $aJournalInfo['abstract_chinese'];
$list[$key]['publish_author'] = empty($aJournalInfo['publish_author']) ? '' : $aJournalInfo['publish_author'];
$list[$key]['editor_qrcode'] = empty($aJournalInfo['editor_qrcode']) ? '' : $aJournalInfo['editor_qrcode'];
}
return $list;
}
/**
* 上传期刊编辑的二维码
*/
public function uploadEditorQrcode()
{
$file = request()->file('qrcode_url');
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'journaleditorqrcode');
if ($info) {
return json(['code' => 0, 'upurl' => str_replace("\\", "/", $info->getSaveName())]);
} else {
return json(['code' => 1, 'msg' => $file->getError()]);
}
}
}
}