Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -85,10 +85,8 @@ class Aiarticle extends Base
|
||||
}
|
||||
|
||||
//查询AI内容是否生成
|
||||
$aAiArticle = json_decode($this->getAiArticle(['article_id' => $iArticleId]),true);
|
||||
$aAiArticleContent = empty($aAiArticle['data']) ? [] : $aAiArticle['data'];
|
||||
$aAiArticle = empty($aAiArticleContent['ai_article']) ? [] : $aAiArticleContent['ai_article'];
|
||||
|
||||
$aWhere = ['is_delete' => 2,'article_id' => $iArticleId];
|
||||
$aAiArticle = Db::name('ai_article')->where($aWhere)->find();
|
||||
$iId = empty($aAiArticle['ai_article_id']) ? 0 : $aAiArticle['ai_article_id'];
|
||||
if(empty($aAiArticle)){
|
||||
//插入t_ai_article数据
|
||||
@@ -100,6 +98,7 @@ class Aiarticle extends Base
|
||||
}
|
||||
$aAiArticle = array_merge(['ai_article_id' => $iId,'article_id' => $iArticleId,'is_generate' => 2],$aInsert);
|
||||
}
|
||||
|
||||
//判断是否生成
|
||||
if(!empty($aAiArticle['is_generate']) && $aAiArticle['is_generate'] == 1){
|
||||
return json_encode(['status' => 5,'msg' => 'The data has been generated, please proceed with the next steps']);
|
||||
|
||||
@@ -2005,6 +2005,21 @@ class Article extends Base
|
||||
return jsonError("The article can only be added in state with editor at least");
|
||||
}
|
||||
|
||||
//获取审稿人最后一次邀请时间 chengxiaoling 20250724 start
|
||||
$iUserId = empty($data['uid']) ? 0 : $data['uid'];
|
||||
if(empty($iUserId)){
|
||||
return jsonError("Please select the reviewers to invite!");
|
||||
}
|
||||
//判断距离上次邀请审稿是否超过10天
|
||||
$aWhere = ['reviewer_id' => $iUserId];
|
||||
$iTeenDaysLater = strtotime('-10 days');// 计算10天之前的时间戳
|
||||
$aUserInfo = Db::name('user_reviewer_info')->field('last_invite_time')->where($aWhere)->where('t_user_reviewer_info.last_invite_time', '<', $iTeenDaysLater)
|
||||
->whereOr('t_user_reviewer_info.last_invite_time', '=', 0)->find();
|
||||
if(empty($aUserInfo)){
|
||||
return jsonError("The time since the last invitation for review by the reviewer has not exceeded 10 days!");
|
||||
}
|
||||
//获取审稿人最后一次邀请时间 chengxiaoling 20250724 end
|
||||
|
||||
//增加信息到文章审稿表
|
||||
$insert_data['reviewer_id'] = $data['uid'];
|
||||
$insert_data['article_id'] = $data['articleId'];
|
||||
@@ -2013,6 +2028,14 @@ class Article extends Base
|
||||
$insert_data['state'] = 5;
|
||||
$res = $this->article_reviewer_obj->insertGetId($insert_data);
|
||||
|
||||
//更新审稿人最后一次审稿时间 chengxiaoling 20250724 start
|
||||
if(!empty($res) && !empty($insert_data['reviewer_id'])){
|
||||
$aUpdate = ['last_invite_time'=>time()];
|
||||
$aWhere = ['reviewer_id' => $iUserId];
|
||||
$updateResult = Db::name('user_reviewer_info')->where($aWhere)->limit(1)->update($aUpdate);
|
||||
}
|
||||
//更新审稿人最后一次审稿时间 chengxiaoling 20250724 end
|
||||
|
||||
//修改文章状态->审稿中
|
||||
$this->article_obj->where('article_id', $data['articleId'])->update(['state' => 2]);
|
||||
|
||||
@@ -3063,7 +3086,7 @@ class Article extends Base
|
||||
'journal' => 'require',
|
||||
'title' => 'require',
|
||||
'type' => 'require',
|
||||
'major' => 'require',
|
||||
// 'major' => 'require',
|
||||
'abstrart' => 'require'
|
||||
]);
|
||||
if (!$rule->check($data)) {
|
||||
@@ -3114,6 +3137,12 @@ class Article extends Base
|
||||
|
||||
$inset_data['ctime'] = time();
|
||||
$inset_data['state'] = -1;
|
||||
|
||||
//新增字段是否使用AI及使用说明 chengxiaoling 20250725 start
|
||||
$inset_data['is_use_ai'] = empty($data['is_use_ai']) ? 2 : $data['is_use_ai']; //是否使用AI1是2否
|
||||
$inset_data['use_ai_explain'] = isset($data['use_ai_explain']) ? $data['use_ai_explain'] : '';
|
||||
//新增字段是否使用AI及使用说明 chengxiaoling 20250725 end
|
||||
|
||||
$article_id = $this->article_obj->insertGetId($inset_data);
|
||||
|
||||
} else {
|
||||
@@ -3141,9 +3170,20 @@ class Article extends Base
|
||||
$up["approval"] = 0;
|
||||
$up['approval_content'] = isset($data["approval_content"]) ? $data["approval_content"] : '';//trim($data['approval_content']);
|
||||
}
|
||||
|
||||
//新增字段是否使用AI及使用说明 chengxiaoling 20250725 start
|
||||
$up['is_use_ai'] = empty($data['is_use_ai']) ? 2 : $data['is_use_ai']; //是否使用AI1是2否
|
||||
$up['use_ai_explain'] = isset($data['use_ai_explain']) ? $data['use_ai_explain'] : '';//使用AI说明
|
||||
//新增字段是否使用AI及使用说明 chengxiaoling 20250725 end
|
||||
|
||||
$this->article_obj->where('article_id', $article_id)->update($up);
|
||||
}
|
||||
changeArticleMajor($article_id, $data['major']);
|
||||
//注释文章筛选领域添加修改为AI推荐领域,在第四步可以查看修改 chengxiaoling 20250722
|
||||
// changeArticleMajor($article_id,$data['major']);
|
||||
if(!empty($article_id)){//AI推荐领域队列执行
|
||||
$sQueueId = \think\Queue::push('app\api\job\RecommendArticleField@fire',['article_id' => $article_id], 'RecommendArticleField');
|
||||
}
|
||||
//注释文章筛选领域添加修改为AI推荐领域,在第四步可以查看修改 chengxiaoling 20250722
|
||||
|
||||
return jsonSuccess(['article_id' => $article_id]);
|
||||
}
|
||||
@@ -3451,6 +3491,15 @@ class Article extends Base
|
||||
}
|
||||
$this->article_obj->where('article_id', $data['article_id'])->update($update_l);
|
||||
$this->ai_scor($data['article_id']);
|
||||
|
||||
//判断是否有文章领域 进行更新操作 chengxiaoling 20250722 start
|
||||
$sMajorData = empty($data['article_field']) ? '' : $data['article_field'];//文章领域
|
||||
$iArticleId = empty($data['article_id']) ? 0 : $data['article_id'];//文章ID
|
||||
if(!empty($sMajorData) && !empty($iArticleId)){
|
||||
$this->updateArticleField(['article_id' => $iArticleId,'article_field' => $sMajorData]);
|
||||
}
|
||||
//判断是否有文章领域 进行更新操作 chengxiaoling 20250722 end
|
||||
|
||||
return json(['code' => 0]);
|
||||
}
|
||||
|
||||
@@ -4617,7 +4666,7 @@ class Article extends Base
|
||||
public function getArticleField($aParam = [])
|
||||
{
|
||||
|
||||
$aParam = empty($aParam) ? $this->request->post() : $this->request->post();
|
||||
$aParam = empty($aParam) ? $this->request->post() : $aParam;
|
||||
|
||||
if (empty($aParam['article_id'])) {
|
||||
return json_encode(['status' => 2, 'msg' => 'Please select a Article']);
|
||||
@@ -4646,7 +4695,7 @@ class Article extends Base
|
||||
public function updateArticleField($aParam = [])
|
||||
{
|
||||
|
||||
$aParam = empty($aParam) ? $this->request->post() : $this->request->post();
|
||||
$aParam = empty($aParam) ? $this->request->post() : $aParam;
|
||||
$iArticleId = empty($aParam['article_id']) ? 0 : $aParam['article_id'];
|
||||
if (empty($iArticleId)) {
|
||||
return json_encode(['status' => 2, 'msg' => 'Please select a article']);
|
||||
|
||||
@@ -33,7 +33,7 @@ class Queueinfo extends Base
|
||||
$redis->select($config['select']);
|
||||
|
||||
// 获取不同队列类型的任务数
|
||||
$aQueue = empty($aParam['queue_name']) ? ['ArticleAiCreateContent','RecommendReviewer','RelatedArticle','ReviewerScore','RevisionReviewer','SendRelatedArticleEmail','SendReviewEmail','WechatDraft','WechatDraftPublish','WechatMaterial','WechatQueryStatus'] : [$aParam['queue_name']];
|
||||
$aQueue = empty($aParam['queue_name']) ? ['ArticleAiCreateContent','RecommendReviewer','RelatedArticle','ReviewerScore','RevisionReviewer','SendRelatedArticleEmail','SendReviewEmail','WechatDraft','WechatDraftPublish','WechatMaterial','WechatQueryStatus','createFieldForQueue','RecommendArticleField'] : [$aParam['queue_name']];
|
||||
foreach ($aQueue as $key => $value) {
|
||||
$types[$value] = [
|
||||
'pending' => 'queues:'.$value,
|
||||
@@ -53,7 +53,8 @@ class Queueinfo extends Base
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 关闭 Redis 连接(关键步骤)
|
||||
$redis->close();
|
||||
echo '<pre>';var_dump($counts);
|
||||
}
|
||||
public function removeKey() {
|
||||
@@ -99,7 +100,8 @@ echo '<pre>';var_dump($counts);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 关闭 Redis 连接(关键步骤)
|
||||
$redis->close();
|
||||
echo '<pre>';var_dump($counts);
|
||||
}
|
||||
// Redis值删除
|
||||
@@ -142,7 +144,8 @@ echo '<pre>';var_dump($counts);
|
||||
}
|
||||
|
||||
echo '<pre>';var_dump($sQueueInfo,$sKey,$iNum);exit;
|
||||
|
||||
// 关闭 Redis 连接(关键步骤)
|
||||
$redis->close();
|
||||
}
|
||||
|
||||
|
||||
@@ -171,36 +174,56 @@ echo '<pre>';var_dump($sQueueInfo,$sKey,$iNum);exit;
|
||||
|
||||
$sKey = $redis->get($aParam['key_name']);
|
||||
var_dump($sKey);
|
||||
// 关闭 Redis 连接(关键步骤)
|
||||
$redis->close();
|
||||
}
|
||||
|
||||
public function removeKey1(){
|
||||
|
||||
// 获取请求参数
|
||||
$aParam = $this->request->post();
|
||||
if(empty($aParam['key_name'])){
|
||||
if (empty($aParam['key_name'])) {
|
||||
exit('非法操作');
|
||||
}
|
||||
|
||||
// 获取队列配置(Redis 配置)
|
||||
$config = \think\Config::get('queue');
|
||||
|
||||
// 队列名称默认值处理
|
||||
$sQueueName = empty($aParam['queue_name']) ? 'ArticleAiCreateContent' : $aParam['queue_name'];
|
||||
|
||||
// 初始化 Redis 连接
|
||||
$redis = new \Redis();
|
||||
// 连接 Redis 服务器
|
||||
$redis->connect($config['host'], $config['port']);
|
||||
|
||||
|
||||
// 若有密码则认证
|
||||
if (!empty($config['password'])) {
|
||||
$redis->auth($config['password']);
|
||||
}
|
||||
|
||||
|
||||
// 选择数据库(默认 0)
|
||||
$redis->select($config['select']);
|
||||
|
||||
$sKey = $redis->hGetAll($aParam['key_name']);
|
||||
// 操作示例:获取哈希表数据
|
||||
echo '我是HgetAll';
|
||||
$sKey = $redis->hGetAll($aParam['key_name']);
|
||||
var_dump($sKey);
|
||||
|
||||
// 删除哈希表
|
||||
$result = $redis->del($aParam['key_name']);
|
||||
var_dump($result);
|
||||
|
||||
// 尝试获取字符串类型的键(验证是否删除)
|
||||
echo '我是get';
|
||||
$sKey = $redis->get($aParam['key_name']);
|
||||
var_dump($sKey);
|
||||
|
||||
// 再次删除(确保删除)
|
||||
$result = $redis->del($aParam['key_name']);
|
||||
var_dump($result);
|
||||
|
||||
// 关闭 Redis 连接(关键步骤)
|
||||
$redis->close();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2182,11 +2182,19 @@ class Reviewer extends Base
|
||||
if (isset($data['major_id'])&&$data['major_id']!=0){
|
||||
$where['t_user_reviewer_info.major'] = ['in',$this->majorids($data['major_id'])];
|
||||
}
|
||||
|
||||
// 计算10天之后的时间戳(10天 = 10 * 24 * 60 * 60秒)
|
||||
$iTeenDaysLater = strtotime('-10 days');
|
||||
|
||||
//获取邀请时间超过10天的 chengxiaoling 20250728 start
|
||||
//获取总条数
|
||||
$count = $this->reviewer_to_journal_obj
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->where($where)
|
||||
->where($where)->where(function($query) use ($iTeenDaysLater) {
|
||||
$query->where('t_user_reviewer_info.last_invite_time', '<', $iTeenDaysLater)
|
||||
->whereOr('t_user_reviewer_info.last_invite_time', '=', 0);
|
||||
})
|
||||
->count();
|
||||
if(empty($count)){
|
||||
return jsonSuccess(['reviewers' => [],'count' => 0]);
|
||||
@@ -2197,10 +2205,14 @@ class Reviewer extends Base
|
||||
->join("t_user", "t_user.user_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->join("t_user_reviewer_info", "t_user_reviewer_info.reviewer_id = t_reviewer_to_journal.reviewer_id", "left")
|
||||
->field('t_user.account,t_user.email,t_user.realname,t_user_reviewer_info.company,t_user_reviewer_info.field,t_user.user_id,t_user.rs_num')
|
||||
->where($where)
|
||||
->where($where)->where(function($query) use ($iTeenDaysLater) {
|
||||
$query->where('t_user_reviewer_info.last_invite_time', '<', $iTeenDaysLater)
|
||||
->whereOr('t_user_reviewer_info.last_invite_time', '=', 0);
|
||||
})
|
||||
->order('t_user.rs_num desc')
|
||||
->limit($limit_start, $data['pageSize'])
|
||||
->select();
|
||||
//获取邀请时间超过10天的 chengxiaoling 20250728 end
|
||||
if(!empty($list)){
|
||||
$aUserId = array_column($list, 'user_id');
|
||||
$aWhere = ['state' => 0,'reviewer_id' => ['in',$aUserId]];
|
||||
|
||||
Reference in New Issue
Block a user