Files
tougao/application/api/controller/Preaccept.php
2025-11-13 13:15:42 +08:00

1596 lines
59 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace app\api\controller;
use think\Db;
use think\Env;
use think\Queue;
use think\Validate;
class Preaccept extends Base
{
public function __construct(\think\Request $request = null)
{
parent::__construct($request);
}
/**获取文章参考文献列表
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getArticleReferences()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$production_info = $this->production_article_obj->where('article_id', $data['article_id'])->find();
if ($production_info == null) {
return jsonError("Object is null");
}
$dois = $this->production_article_refer_obj->where("p_article_id", $production_info['p_article_id'])->where("refer_doi","<>","")->where("state",0)->group("refer_doi")->having("count(*)>1")->column("refer_doi");
$list = $this->production_article_refer_obj->where("p_article_id", $production_info['p_article_id'])->where('state', 0)->order("index")->select();
foreach ($list as $k => $v){
if(in_array($v['refer_doi'],$dois)){
$list[$k]['is_repeat'] = 1;
}else{
$list[$k]['is_repeat'] = 0;
}
}
$re["refers"] = $list;
return jsonSuccess($re);
}
/**清空引用文献
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function discardRefers()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$production_info = $this->production_article_obj->where('article_id', $data['article_id'])->find();
$this->production_article_refer_obj->where('p_article_id', $production_info['p_article_id'])->update(['state' => 1]);
return jsonSuccess([]);
}
/**清空引用文献byp_article_id
* @return void
*/
public function discardRefersByParticleid(){
$data = $this->request->post();
$rule = new Validate([
"p_article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->production_article_refer_obj->where('p_article_id',$data['p_article_id'])->update(["state"=>1]);
return jsonSuccess([]);
}
/**添加refer
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function addRefer()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require",
"pre_p_refer_id" => "require",
"refer_type"=>"require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('article_id', $data['article_id'])->where('state', 0)->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['ctime'] = time();
$insert['is_change'] = 1;
$insert['refer_type'] = $data['refer_type'];
if($data['refer_type']=="journal"){
$insert['refer_doi'] = isset($data['doi'])?$data['doi']:'';
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = $data['dateno'];
$insert['doilink'] = $data['doilink'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}elseif($data['refer_type']=="book"){
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['dateno'] = $data['dateno'];
$insert['isbn'] = $data['isbn'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}else{
$insert['cs'] = 0;
$insert['refer_frag'] = trim($data['content']);
}
$adId= $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
// $adId = $this->production_article_refer_obj->insertGetId($insert);
// my_doiToFrag2($this->production_article_refer_obj->where('p_refer_id', $adId)->find());
// //判断是否合法
// $check = $this->production_article_refer_obj->where('p_refer_id', $adId)->find();
// if ($check['author']) {//合法
// $this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
// return jsonSuccess([]);
// } else {//非法
// $this->production_article_refer_obj->where('p_refer_id', $adId)->update(['state' => 1]);
// return jsonError("Doi error");
// }
}
public function addReferByParticleid(){
$data = $this->request->post();
$rule = new Validate([
"p_article_id" => "require",
"pre_p_refer_id" => "require",
"refer_type"=>"require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('p_article_id', $data['p_article_id'])->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['ctime'] = time();
$insert['is_change'] = 1;
$insert['refer_type'] = $data['refer_type'];
if($data['refer_type']=="journal"){
$insert['refer_doi'] = isset($data['doi'])?$data['doi']:'';
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = $data['dateno'];
$insert['doilink'] = $data['doilink'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}elseif($data['refer_type']=="book"){
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['dateno'] = $data['dateno'];
$insert['isbn'] = $data['isbn'];
$insert['cs'] = 1;
$insert['is_ja'] = 1;
}else{
$insert['cs'] = 0;
$insert['refer_frag'] = trim($data['content']);
}
$adId= $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
}
/**非doi形式添加refer节点
* @return void
*/
public function addReferNotdoi()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require",
"pre_p_refer_id" => "require",
"author" => "require",
"title" => "require",
"joura" => "require",
"dateno" => "require",
"doilink" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$p_info = $this->production_article_obj->where('article_id', $data['article_id'])->where('state', 0)->find();
$pre_refer = $this->production_article_refer_obj->where('p_refer_id', $data['pre_p_refer_id'])->find();
$insert['p_article_id'] = $p_info['p_article_id'];
$insert['index'] = $pre_refer['index'] + 1;
$insert['author'] = trim($data['author']);
$insert['title'] = trim($data['title']);
$insert['joura'] = trim($data['joura']);
$insert['dateno'] = trim($data['dateno']);
$insert['doilink'] = trim($data['doilink']);
$insert['refer_doi'] = trim($data['doilink']);
$insert['is_web'] = 1;
$insert['cs'] = 1;
$adId = $this->production_article_refer_obj->insertGetId($insert);
$this->production_article_refer_obj->where('p_article_id', $p_info['p_article_id'])->where("p_refer_id", "<>", $adId)->where("index", ">", $pre_refer['index'])->where('state', 0)->setInc('index');
return jsonSuccess([]);
}
public function editReferNotdoi()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require",
"author" => "require",
"title" => "require",
"joura" => "require",
"dateno" => "require",
"doilink" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$update['author'] = trim($data['author']);
$update['title'] = trim($data['title']);
$update['joura'] = trim($data['joura']);
$update['dateno'] = trim($data['dateno']);
$update['doilink'] = trim($data['doilink']);
$update['refer_doi'] = trim($data['doilink']);
$this->production_article_refer_obj->where('p_refer_id', $data['p_refer_id'])->update($update);
return jsonSuccess([]);
}
// public function aaa(){
// $list = $this->production_article_refer_obj->where('p_article_id',423)->where('state',0)->where('index',">",0)->setInc('index');
// dump($list);
// }
/**删除refer
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function delRefer()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$this->delOneRefer($data['p_refer_id']);
return jsonSuccess([]);
}
public function delRefers(){
$data = $this->request->post();
$rule = new Validate([
"ids" => "require|array"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
foreach ($data['ids'] as $v){
$this->delOneRefer($v);
}
return jsonSuccess([]);
}
public function positioningImage(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require",
"ami_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$ami_info = $this->article_main_image_obj->where("ami_id",$data['ami_id'])->find();
$check = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("ami_id",$data['ami_id'])->whereIn("state",[0,2])->find();
if($check){
return jsonError("Repeat operation");
}
$sort_check = $this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where("sort",$am_info['sort']+1)->find();
if($sort_check){
$this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where("sort",">",$am_info['sort'])->inc("sort",1)->update();
}
$insert['article_id'] = $am_info['article_id'];
$insert['type'] = 1;
$insert['content'] = "<img src='https://submission.tmrjournals.com/public/articleImage/".$ami_info['url']."' imageId='".$ami_info['ami_id']."'/>";
$insert['ami_id'] = $data['ami_id'];
$insert['sort'] = $am_info['sort']+1;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
return jsonSuccess([]);
}
public function removeImage(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
if($am_info['type']!=1){
return jsonError("error");
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
public function removeTable(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
if($am_info['type']!=2){
return jsonError("error");
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
public function positioningTable(){
$data = $this->request->post();
$rule = new Validate([
"am_id" => "require",
"amt_id" => "require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$amt_info = $this->article_main_table_obj->where("amt_id",$data['amt_id'])->find();
$check = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("amt_id",$data['amt_id'])->whereIn('state',[0,2])->find();
if($check){
return jsonError("Repeat operation");
}
$sort_check = $this->article_main_obj->where("article_id",$amt_info['article_id'])->whereIn("state",[0,2])->where("sort",$am_info['sort']+1)->find();
if ($sort_check){
$this->article_main_obj->where("article_id",$am_info['article_id'])->whereIn("state",[0,2])->where('sort',">",$am_info['sort'])->inc("sort",1)->update();
}
$insert['article_id'] = $am_info['article_id'];
$insert['type'] = 2;
$insert['amt_id'] = $data['amt_id'];
$insert["content"] = "<table tableId='".$amt_info['amt_id']."' />";
$insert['sort'] = $am_info['sort']+1;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
return jsonSuccess([]);
}
/**编辑refer
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function editRefer()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require",
"refer_type" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$old_refer_info = $this->production_article_refer_obj->where('p_refer_id',$data['p_refer_id'])->find();
$updata['refer_type'] = $data['refer_type'];
$updata['is_change'] = 1;
if($data['refer_type']=="journal"){
$updata['refer_doi'] = isset($data['doi'])?$data['doi']:'';
$updata['author'] = trim($data['author']);
$updata['title'] = trim($data['title']);
$updata['joura'] = trim($data['joura']);
$updata['dateno'] = $data['dateno'];
$updata['doilink'] = $data['doilink'];
$updata['cs'] = 1;
$updata['is_ja'] = 1;
}elseif($data['refer_type']=="book"){
$updata['author'] = trim($data['author']);
$updata['title'] = trim($data['title']);
$updata['dateno'] = $data['dateno'];
$updata['isbn'] = $data['isbn'];
$updata['cs'] = 1;
$updata['is_ja'] = 1;
}else{
$updata['cs'] = 0;
$updata['refer_frag'] = trim($data['content']);
}
$this->production_article_refer_obj->where('p_refer_id',$data['p_refer_id'])->update($updata);
// $doi = trim($data['doi']);
// $url = "https://citation.crosscite.org/format?doi=$doi&style=cancer-translational-medicine&lang=en-US";
// $res = myGet($url);
// $frag = trim(substr($res, strpos($res, '.') + 1));
// if ($frag == "") {
// return jsonError("doi error");
// }
// $this->production_article_refer_obj->where('p_refer_id', $data['p_refer_id'])->update(['refer_doi' => $data['doi']]);
// my_doiToFrag2($this->production_article_refer_obj->where('p_refer_id', $data['p_refer_id'])->find());
return jsonSuccess([]);
}
/**添加文章主体内容的备注(马上废弃)
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function addMainsRemark(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require",
"remark"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$update['remark'] = trim($data['remark']);
$update['state'] = 2;
$this->article_main_obj->where("am_id",$data['am_id'])->update($update);
return jsonSuccess([]);
}
/**编辑发布文章正文更改意见
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function createArticleMainCheckForEditor(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require",
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
if(!$am_info){
return jsonError("am state error");
}
$insert['article_id'] = $data['article_id'];
$insert['am_id'] = $data['am_id'];
if(isset($data['remark'])&&$data['remark']!=""){
$insert["remark"] = $data['remark'];
}
if(isset($data['content'])&&$data['content']!=""){
$insert["content"] = $data['content'];
}
$insert['ctime'] = time();
$this->article_main_check_obj->insert($insert);
return jsonSuccess([]);
}
/**编辑整改信息备注
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function editArticleMainCheck(){
$data = $this->request->post();
$rule = new Validate([
"amc_id"=>"require",
"remark"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$amc_info = $this->article_main_check_obj->where("amc_id",$data['amc_id'])->find();
if($amc_info['estate']==1){
return jsonError("The author has completed");
}
$this->article_main_check_obj->where("amc_id",$data['amc_id'])->update(['remark'=>$data['remark']]);
return jsonSuccess([]);
}
/**作者标记完成整改条目
* @return void
*/
public function completeArticleMainCheckForAuthor(){
$data = $this->request->post();
$rule = new Validate([
"amc_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_check_obj->where("amc_id",$data['amc_id'])->update(['estate'=>1]);
return jsonSuccess([]);
}
/**作者驳回整改条目
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function rejectArticleMainCheckForAuthor(){
$data = $this->request->post();
$rule = new Validate([
"amc_id"=>"require",
"author_remark"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_check_obj->where("amc_id",$data['amc_id'])->update(['author_remark'=>$data['author_remark']]);
return jsonSuccess([]);
}
/**编辑驳回作者的修复
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\exception\PDOException
*/
public function rejectArticleMainCheckForEditor(){
$data = $this->request->post();
$rule = new Validate([
"amc_id"=>"require",
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_check_obj->where("amc_id",$data['amc_id'])->update(["estate"=>0]);
return jsonSuccess([]);
}
/**上调文章main位置
* @return \think\response\Json|void
*/
public function upArticleMain(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$main_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$list = $this->article_main_obj->where("article_id",$main_info['article_id'])->where("sort","<",$main_info['sort'])->order("sort desc")->limit(1)->select();
if(!$list){
return jsonError("error");
}
$main1 = $list[0];
$cache_sort = $main1['sort'];
$this->article_main_obj->where("am_id",$main1['am_id'])->update(['sort'=>$main_info['sort']]);
$this->article_main_obj->where("am_id",$main_info['am_id'])->update(['sort'=>$cache_sort]);
return jsonSuccess([]);
}
/**下调文章main位置
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function downArticleMain(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$main_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$list = $this->article_main_obj->where("article_id",$main_info['article_id'])->where("sort",">",$main_info['sort'])->order("sort asc")->limit(1)->select();
if(!$list){
return jsonError("error");
}
$main1 = $list[0];
$cache_sort = $main1['sort'];
$this->article_main_obj->where("am_id",$main1['am_id'])->update(['sort'=>$main_info['sort']]);
$this->article_main_obj->where("am_id",$main_info['am_id'])->update(['sort'=>$cache_sort]);
return jsonSuccess([]);
}
/**删除文章全文校对
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function delArticleMainCheckForEditor(){
$data = $this->request->post();
$rule = new Validate([
"amc_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$amc_info = $this->article_main_check_obj->where("amc_id",$data['amc_id'])->find();
if($amc_info['estate']==1){
return jsonError("status is complete");
}
$this->article_main_check_obj->where("amc_id",$data['amc_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
/**获取文章正文内容修改建议列表
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getArticleMainCheckList(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->article_main_check_obj->where("article_id",$data['article_id'])->where("state",0)->order("am_id")->select();
$frag = [];
foreach ($list as $k => $v){
$frag[$v['am_id']][] = $v;
}
$re['list'] = $frag;
return jsonSuccess($re);
}
public function clearMainsRemark(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['remark'=>"","state"=>0]);
return jsonSuccess([]);
}
public function searchDoi()
{
$data = $this->request->post();
$rule = new Validate([
"doi" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$doi = str_replace('/', '%2F', $data['doi']);
// $url = "https://citation.crosscite.org/format?doi=$doi&style=cancer-translational-medicine&lang=en-US";
$url = "https://citation.doi.org/format?doi=$doi&style=cancer-translational-medicine&lang=en-US";
$res = myGet($url);
$frag = trim(substr($res, strpos($res, '.') + 1));
if ($frag == "") {
return jsonError("not find");
}
if (mb_substr_count($frag, '.') != 3) {
return jsonError("formate fail");
}
$res = explode('.', $frag);
$f['author'] = prgeAuthor($res[0]);
$f['title'] = trim($res[1]);
$bj = bekjournal($res[2]);
$joura = formateJournal(trim($bj[0]));
$f['joura'] = $joura;
$f['dateno'] = str_replace(' ', '', str_replace('-', '', trim($bj[1])));
$f['doilink'] = strpos($data['doi'], "http") === false ? "http://doi.org/" . $data['doi'] : $data['doi'];
$re['formate'] = $f;
return jsonSuccess($re);
}
public function mytt(){
$ss[] = "this id test <b>this id <sub>3</sub>test <sup>55</sup>this <i>id test</i></b> this id test this id test this id test";
$ss[] = "this id test <b>this id <sub>3</sub>test <sup>55</sup>this <i>id test</i></b> this id test this id test this id test";
$ss[] = "<img src='https://submission.tmrjournals.com/public/articleImage/4477/image-44089.tif'/>";
$ss[] = "this id test <b>this id <sub>3</sub>test <sup>55</sup>this <i>id test</i></b> this id <blue>test this</blue> id test this id test";
$ss[] = "this id test <b>this id <sub>3</sub>test <sup>55</sup>this <i>id test</i></b> this id test this id test this id test";
$re['detail'] = json_encode($ss);
return jsonSuccess($re);
}
/**预接收前对文章的支付信息,审核以及相关操作
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function getPreacceptPayment(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$article_info = $this->article_obj->where("article_id",$data['article_id'])->find();
$journal_info = $this->journal_obj->where("journal_id",$article_info['journal_id'])->find();
if(intval($journal_info['fee'])==0||$article_info['ctime']<1735660800){//非收费期刊的文章直接返回
$re['state'] = 1;
$re['order'] = null;
$re["fee"] = 0;
return jsonSuccess($re);
}
$order_info = $this->order_obj->where("article_id",$article_info['article_id'])->find();
if($order_info==null){
$re['state'] = 0;
$re['order'] = null;
$re["fee"] = 0;
return jsonSuccess($re);
}
// if($order_info['pay_type']==2){
$paystation = $this->paystation_obj->where("ps_id",$order_info['ps_id'])->find();
$order_info['paystation'] = $paystation;
if($order_info['state']==0){
$res = object_to_array(json_decode(paystationLookup($paystation['transaction_id'])));
if(isset($res['result']['success'])&&$res['result']['success']){
$this->article_obj->where("article_id",$order_info['article_id'])->update(['is_buy'=>1]);
$this->order_obj->where("order_id",$order_info['order_id'])->update(['state'=>1]);
$re['state'] = 1;
$re['fee'] = $journal_info['fee'];
$re['order'] = $order_info;
return jsonSuccess($re);
}else{
$re['state'] = 0;
$re['fee'] = $journal_info['fee'];
$re['order'] = $order_info;
return jsonSuccess($re);
}
}else{
$re['state'] = 1;
$re['fee'] = $journal_info['fee'];
$re['order'] = $order_info;
return jsonSuccess($re);
}
// }
}
public function myCreatMains(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$mains = $this->article_main_obj->where("article_id",$data['article_id'])->whereIn("state",[0,2])->order("sort asc")->select();
if(!$mains) {
$this->addArticleMainEx($data["article_id"]);
}
return jsonSuccess([]);
}
public function getArticleMains(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$mains = $this->article_main_obj->where("article_id",$data['article_id'])->whereIn("state",[0,2])->order("sort asc")->select();
if(!$mains){
$this->addArticleMainEx($data['article_id']);
}
$mains = getArticleMains($data['article_id']);
$re['list'] = $mains;
return jsonSuccess($re);
}
public function changeH1(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
//上一行,空行
$p_list = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("sort","<",$am_info['sort'])->whereIn("state",[0,2])->order("sort desc")->limit(1)->select();
if($p_list&&($p_list[0]['type']>0||$p_list[0]['content']!="")){
$this->addBRow($am_info['article_id'],$p_list[0]['am_id']);
}
$n_list = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("sort",">",$am_info['sort'])->whereIn("state",[0,2])->order("sort asc")->limit(1)->select();
if($n_list[0]['type']>0||$n_list[0]['content']!=""){
$this->addBRow($am_info['article_id'],$data['am_id']);
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(["is_h1"=>1,"is_h2"=>0,"is_h3"=>0]);
return jsonSuccess([]);
}
public function changeH2(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
//上一行,空行
$p_list = $this->article_main_obj->where("article_id",$am_info['article_id'])->where("sort","<",$am_info['sort'])->whereIn("state",[0,2])->order("sort desc")->limit(1)->select();
if($p_list&&($p_list[0]['type']>0||$p_list[0]['content']!="")){
$this->addBRow($am_info['article_id'],$p_list[0]['am_id']);
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(["is_h1"=>0,"is_h2"=>1,"is_h3"=>0]);
return jsonSuccess([]);
}
public function changeH3(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$this->article_main_obj->where("am_id",$data['am_id'])->update(["is_h1"=>0,"is_h2"=>0,"is_h3"=>1]);
return jsonSuccess([]);
}
public function changeNormal(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(["is_h1"=>0,"is_h2"=>0,"is_h3"=>0]);
return jsonSuccess([]);
}
public function addBlankRow(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require",
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
if(isset($data['row'])){
$row = (int)$data['row'];
}else{
$row = 1;
}
while ($row>0){
$this->addBRow($data['article_id'],$data['am_id']);
$row--;
}
return jsonSuccess([]);
}
/**添加批量主体内容
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function addMoreRow(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require",
"am_id" => "require",
"rows"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
if($data['am_id']==0){//顶级
$this->article_main_obj->where("article_id",$data['article_id'])->inc("sort",count($data['rows']))->update();
$sort = 1;
}else{
$r = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$this->article_main_obj->where("article_id",$data['article_id'])->where("sort",">",$r['sort'])->inc("sort",count($data['rows']))->update();
$sort = $r['sort']+1;
}
foreach ($data['rows'] as $v){
$insert['article_id'] = $data['article_id'];
$insert['content'] = $v;
$insert['sort'] = $sort;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
$sort++;
}
return jsonSuccess([]);
}
private function addBRow($article_id,$am_id){
if($am_id==0){//顶行
$this->article_main_obj->where("article_id",$article_id)->inc("sort",1)->update();
$insert['article_id'] = $article_id;
$insert['content'] = "";
$insert['sort'] = 1;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
}else{
$am_info = $this->article_main_obj->where("am_id",$am_id)->find();
$this->article_main_obj->where("article_id",$article_id)->where("sort",">",$am_info['sort'])->inc("sort",1)->update();
$insert['article_id'] = $article_id;
$insert['content'] = "";
$insert['sort'] = $am_info['sort']+1;
$insert['ctime'] = time();
$this->article_main_obj->insert($insert);
}
}
public function getMainImages(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->article_main_image_obj
->field("*,if((select am_id from t_article_main where ami_id = t_article_main_image.ami_id and state <>1)>0 ,1,0) as has_selected")
->where("t_article_main_image.article_id",$data['article_id'])
->where("t_article_main_image.state",0)
->select();
$re['list'] = $list;
return jsonSuccess($re);
}
public function getNotes(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->article_main_obj->where("article_id",$data['article_id'])->where("state",2)->select();
$re['list'] = $list;
return jsonSuccess($re);
}
public function getMainTables(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->article_main_table_obj
->field("*,if((select am_id from t_article_main where amt_id = t_article_main_table.amt_id and state <>1)>0 ,1,0) as has_selected")
->where("t_article_main_table.article_id",$data['article_id'])
->where("t_article_main_table.state",0)
->select();
$re['list'] = $list;
return jsonSuccess($re);
}
public function delArticleMains(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>1]);
return jsonSuccess([]);
}
/**批量删除正文的行
* @return void
*/
public function delMoreArticleMains(){
$data = $this->request->post();
$rule = new Validate([
"ids"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$idList = explode(",",$data['ids']);
$this->article_main_obj->whereIn("am_id",$idList)->update(['state'=>1]);
return jsonSuccess([]);
}
public function editArticleMainsForAuthor(){
$data = $this->request->post();
$rule = new Validate([
"am_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$am_info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$insert['article_id'] = $am_info['article_id'];
$insert['am_id'] = $data['am_id'];
$insert['type'] = 0;
$insert['act_type'] = 0;
$insert['p_content'] = $am_info['content'];
$insert['n_content'] = $data['content'];
$insert['ctime'] = time();
$this->article_main_log_obj->insert($insert);
$update['content'] = $this->formatMain($data['content']);
$update['state'] = 0;
$this->article_main_obj->where("am_id",$data['am_id'])->update($update);
return jsonSuccess([]);
}
public function getArticleMainsRecycle(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$list = $this->article_main_obj->where("article_id",$data['article_id'])->where("type",0)->where("state",1)->select();
$re['list'] = $list;
return jsonSuccess($re);
}
public function addMainImage(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require",
"url"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$insert['article_id'] = $data['article_id'];
$insert['url'] = $data['url'];
if(isset($data['note'])){
$insert['note'] = $data['note'];
}
if(isset($data['title'])){
$insert['title'] = $data['title'];
}
$insert['ctime'] = time();
$this->article_main_image_obj->insert($insert);
$re['url'] = $data['url'];
return jsonSuccess($re);
}
public function editMainImage(){
$data = $this->request->post();
$rule = new Validate([
"ami_id"=>"require",
"url"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$update['url'] = $data['url'];
$update['note'] = isset($data['note'])?$data['note']:"";
$update['title'] = isset($data['title'])?$data['title']:"";
$this->article_main_image_obj->where("ami_id",$data['ami_id'])->update($update);
return jsonSuccess([]);
}
public function addMainTable(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require",
"table_data"=>"require",
"title"=>"require",
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$insert['article_id'] = $data['article_id'];
$insert['type'] = 0;
$insert['table_data'] = $data['table_data'];
if(isset($data['html_data'])){
$insert['html_data'] = $data['html_data'];
}
$insert['title']=$data['title'];
if(isset($data['note'])){
$insert['note'] = $data['note'];
}
$insert['ctime'] = time();
$this->article_main_table_obj->insert($insert);
return jsonSuccess([]);
}
public function editMainTable(){
$data = $this->request->post();
$rule = new Validate([
"amt_id"=>"require",
"table_data"=>"require",
"html_data"=>"require",
"title"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$update['table_data'] = $data['table_data'];
$update['html_data'] = $data['html_data'];
$update['title'] = $data['title'];
if (isset($data['note'])){
$update['note'] = $data['note'];
}
$this->article_main_table_obj->where("amt_id",$data['amt_id'])->update($update);
return jsonSuccess([]);
}
public function up_img_mainImage(){
$article_id = input('post.article_id');
$file = request()->file('mainImage');
// 检查文件是否有效
if (!$file) {
return jsonError("error");
}
// 定义上传目录
$uploadDir = ROOT_PATH . 'public' . DS . "articleImage".DS.$article_id;
$extension = pathinfo($file->getInfo("name"),PATHINFO_EXTENSION);
// 生成自定义文件名,使用 uniqid 生成唯一的文件名
$fileName = uniqid('file_') . '.' .$extension;
// 移动文件到指定目录,并重命名
$info = $file->move($uploadDir, $fileName);
// 检查文件是否上传成功
if ($info) {
$ff = '';
if($extension=="tif"||$extension=="tiff"){
$ff = $this->crossTifToPng($article_id."/".$fileName);
}else{
$ff = $article_id."/".$fileName;
}
$re['upurl'] = $ff;
return jsonSuccess($re);
} else {
return jsonError("error");
}
}
public function replyArticleRecycle(){
$data = $this->request->post();
$rule = new Validate([
'am_id'=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
$info = $this->article_main_obj->where("am_id",$data['am_id'])->find();
$check = $this->article_main_obj->where("article_id",$info['article_id'])->where("sort",$info['sort'])->whereIn("state",[0,2])->find();
if($check){
$this->article_main_obj->where("article_id",$info['article_id'])->where("sort",">=",$info['sort'])->inc('sort',1)->update();
}
$this->article_main_obj->where("am_id",$data['am_id'])->update(['state'=>0]);
return jsonSuccess([]);
}
/**调整refer排序
* @return \think\response\Json
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function sortRefer()
{
$data = $this->request->post();
$rule = new Validate([
"p_refer_id" => "require",
"act" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$refer_info = $this->production_article_refer_obj->where('p_refer_id', $data['p_refer_id'])->find();
if ($data['act'] == "up") {
$up_info = $this->production_article_refer_obj->where('p_article_id', $refer_info['p_article_id'])->where('index', $refer_info['index'] - 1)->where('state', 0)->find();
if (!$up_info) {
return jsonError("system error");
}
$this->production_article_refer_obj->where('p_refer_id', $up_info['p_refer_id'])->setInc("index");
$this->production_article_refer_obj->where('p_refer_id', $refer_info['p_refer_id'])->setDec("index");
} else {
$down_info = $this->production_article_refer_obj->where('p_article_id', $refer_info['p_article_id'])->where('index', $refer_info['index'] + 1)->where('state', 0)->find();
if (!$down_info) {
return jsonError("system error");
}
$this->production_article_refer_obj->where('p_refer_id', $refer_info['p_refer_id'])->setInc("index");
$this->production_article_refer_obj->where('p_refer_id', $down_info['p_refer_id'])->setDec("index");
}
return jsonSuccess([]);
}
public function payStationTest(){
$accessToken = $this->payStationAccessToken();
$data_array = [
'paystation_id' => Env::get("paystation.client_id"),
'gateway_id' => "PAYSTATION",//GATEWAY_ID,
'merchant_session' => "myTestSN001",
// 'merchant_reference' => 'testReference',
'amount' => 2000, //$20 in cents value
"test_mode"=>true
];
// OPTIONAL, ideally should be set on your Paystation account
$data_array += [
'return_url' => "http://192.168.110.110/tougao/public/index.php/api/Preaccept/patStationReturn",//'http://localhost:8002/3party/return.php',
// Webhook receipt page. This should be publicly accessible (see example post-response.php)
'response_url' => "https://www.tmrjournals.com"//'https://webhook.site/sample-code-webhook'
];
$data = json_encode($data_array);
// Purchase initiate request
$purchase = $this->postRequest('v1/hosted/purchases', $accessToken, $data);
return jsonSuccess($purchase);
if ($purchase) {
$result = json_decode($purchase);
if ($result && isset($result->payment_url)) {
header("Location: {$result->payment_url}");
} else {
//@todo: Replace with your own error handling
print_r($result);
return null;
}
}
}
public function payStationTest1(){
$accessToken = $this->payStationAccessToken();
$data_array = [
'paystation_id' => Env::get("paystation.client_id"),
'gateway_id' => "PAYSTATION",//GATEWAY_ID,
"order_name" => "mytestOrderSn11",
"amount" =>100,
"test_mode"=>true
];
$data = json_encode($data_array);
$purchase = $this->postRequest('v1/payme/purchases', $accessToken, $data);
$r= object_to_array(json_decode($purchase));
return jsonSuccess($r);
}
private function payStationAccessToken(){
$bodyParams = [
'client_id' => Env::get("paystation.client_id"),
'client_secret' => Env::get("paystation.client_secret"),
'grant_type' => 'client_credentials',
'scope' => "read write"
];
$accessTokenUrl = Env::get("paystation.api_url") . '/oauth/token';
$curlHandle = curl_init($accessTokenUrl);
$options = [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_HTTPHEADER => [
"cache-control: no-cache",
"content-type: application/x-www-form-urlencoded",
"accept: *",
"accept-encoding: gzip, deflate",
],
CURLOPT_POSTFIELDS => http_build_query($bodyParams)
];
curl_setopt_array($curlHandle, $options);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
$curlResponse = curl_exec($curlHandle);
$error = curl_error($curlHandle);
curl_close($curlHandle);
if ($error) {
echo "cURL error: " . $error;
} else {
$response = json_decode($curlResponse);
if (array_key_exists('access_token', $response)) {
return $response->access_token;
}
if (array_key_exists('error', $response)) {
echo $response->error_description;
}
}
}
public function postRequest($endpoint, $token, $body)
{
$curlHandle = curl_init(Env::get("paystation.api_url") . '/' . $endpoint);
$options = [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_HTTPHEADER => [
"cache-control: no-cache",
"content-type: application/json",
"accept: *",
"accept-encoding: gzip, deflate",
"Authorization: Bearer " . $token
],
CURLOPT_POSTFIELDS => $body
];
curl_setopt_array($curlHandle, $options);
$response = curl_exec($curlHandle);
$error = curl_error($curlHandle);
curl_close($curlHandle);
if ($error) {
echo "cURL error: " . $error;
} else {
return $response ?: null;
}
return null;
}
// public function getArticleMains(){
// $data = $this->request->post();
// $rule = new Validate([
// "article_id"=>"require"
// ]);
// if(!$rule->check($data)){
// return jsonError($rule->getError());
// }
// $article_info = $this->article_obj->where("article_id",$data['article_id'])->find();
// $product_info = $this->production_article_obj->where("article_id".$data['article_id'])->find();
//
//
//
// }
public function addRefersByExcel()
{
$data = $this->request->post();
$rule = new Validate([
"article_id" => "require",
"referFile" => "require"
]);
if (!$rule->check($data)) {
return jsonError($rule->getError());
}
$production_info = $this->production_article_obj->where('article_id', $data['article_id'])->where("state", 0)->find();
if (!$production_info) {
return jsonError("Object is null");
}
$file = ROOT_PATH . 'public' . DS . "referFile" . DS . $data['referFile'];
$list = $this->readRefersExcel($file);
foreach ($list as $k => $v) {
$ca['p_article_id'] = $production_info['p_article_id'];
$ca['refer_content'] = $v['content'];
$ca['refer_doi'] = $v['doi'];
$ca['index'] = $k;
$ca['ctime'] = time();
$adId = $this->production_article_refer_obj->insertGetId($ca);
my_doiToFrag2($this->production_article_refer_obj->where('p_refer_id', $adId)->find());
}
return jsonSuccess([]);
}
/**读取excel文件获取refer列表
* @param $afile
* @return array
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Reader_Exception
*/
public function readRefersExcel($afile)
{
$extension = substr($afile, strrpos($afile, '.') + 1);
vendor("PHPExcel.PHPExcel");
if ($extension == 'xlsx') {
$objReader = new \PHPExcel_Reader_Excel2007();
$objPHPExcel = $objReader->load($afile);
} else if ($extension == 'xls') {
$objReader = new \PHPExcel_Reader_Excel5();
$objPHPExcel = $objReader->load($afile);
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$frag = [];
for ($i = 2; $i <= $highestRow; $i++) {
if ($objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue() == '') {
continue;
}
$aa['content'] = $objPHPExcel->getActiveSheet()->getCell("A" . $i)->getValue();
$aa['doi'] = $objPHPExcel->getActiveSheet()->getCell("B" . $i)->getValue();
$frag[] = $aa;
}
return $frag;
}
/**上传引用文献文件,并返回读取到的内容
* @return \think\response\Json|void
*/
public function up_refer_file()
{
$file = request()->file("referFile");
if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . "referFile");
if ($info) {
$file = ROOT_PATH . 'public' . DS . "referFile" . DS . str_replace("\\", "/", $info->getSaveName());
$re["refers"] = $this->readRefersExcel($file);
$re["upurl"] = str_replace("\\", "/", $info->getSaveName());
$re['code'] = 0;
return json($re);
} else {
return json(['code' => 1, 'msg' => $file->getError()]);
}
}
}
public function getArticleMainsNew(){
$data = $this->request->post();
$rule = new Validate([
"article_id"=>"require"
]);
if(!$rule->check($data)){
return jsonError($rule->getError());
}
//定义空数组
$re = ['list' => []];
//获取数量
$aWhere = ['article_id' => $data['article_id'],'state' => ['in',[0,2]]];
$iCount = $this->article_main_obj->where($aWhere)->count();
if(empty($iCount)){
$this->addArticleMainEx($data['article_id']);
}
//获取数据
$aArticleMain = Db::name("article_main")->where($aWhere)->order("sort asc")->select();
if(empty($aArticleMain)){
return null;
}
//处理数据
$iSize = 300;
$aChunk = array_chunk($aArticleMain, $iSize);
$mains = [];
foreach ($aChunk as $item) {
$aMId = array_column($item, 'am_id');
//查询article_main_check
$aWhere = ['am_id' => ['in',$aMId],'state' => 0];
$aMainCheck = Db::name("article_main_check")->where($aWhere)->select();
$aMainCheckData = [];
if(!empty($aMainCheck)){
foreach ($aMainCheck as $value) {
if(empty($value['am_id'])){
continue;
}
$aMainCheckData[$value['am_id']][] = $value;
}
}
//获取图片信息
$aMiId = array_unique(array_column($item, 'ami_id'));
$aWhere = ['ami_id' => ['in',$aMiId],'state' => 0];
$aArticleMainImage = Db::name("article_main_image")->where($aWhere)->select();
$aArticleMainImage = empty($aArticleMainImage) ? [] : array_column($aArticleMainImage, null,'ami_id');
//获取表格信息
$aMiId = array_unique(array_column($item, 'amt_id'));
$aWhere = ['amt_id' => ['in',$aMiId],'state' => 0];
$aArticleMainTable = Db::name("article_main_table")->where($aWhere)->select();
$aArticleMainTable = empty($aArticleMainTable) ? [] : array_column($aArticleMainTable, null,'amt_id');
//查询校对数量 t_article_proofread
$aWhere = ['am_id' => ['in',$aMId],'state' => ['between',[1,2]],'is_delete' => 2];
$aArticleProofread = Db::name("article_proofread")->field('am_id,count(id) as num,state')->where($aWhere)->group('am_id,state')->select();
$aArticleProofreadData = [];
if(!empty($aArticleProofread)){
foreach ($aArticleProofread as $key => $value) {
$aArticleProofreadData[$value['am_id']][$value['state']] = $value['num'];
}
}
foreach ($item as $k => $main) {
if($main['is_h1']==1){
$main['content'] = "<b><i>".$main['content']."</i></b>";
}
if($main['is_h2']==1||$main['is_h3']==1){
$main['content'] = "<b>".$main['content']."</b>";
}
$main['checks'] = empty($aMainCheckData[$main['am_id']]) ? [] : $aMainCheckData[$main['am_id']];
if($main['type'] == 1){
$main['image'] = empty($aArticleMainImage[$main['ami_id']]) ? [] : $aArticleMainImage[$main['ami_id']];
}
if($main['type'] == 2){
$main['table'] = empty($aArticleMainTable[$main['amt_id']]) ? [] : $aArticleMainTable[$main['amt_id']];
}
if($main['type'] == 0){
$aDataInfo = empty($aArticleProofreadData[$main['am_id']]) ? [] : $aArticleProofreadData[$main['am_id']];
$main['proof_read_num'] = -1;
if(!empty($aDataInfo)){
$main['proof_read_num'] = empty($aDataInfo[2]) ? 0 : $aDataInfo[2];
}
}
$mains[] = $main;
}
}
$re['list'] = $mains;
return jsonSuccess($re);
}
}