|
|
@@ -2939,6 +2939,57 @@ Inner Join Sys_Department as d With(Nolock) On u.DepId=d.Id Where m.Id={0} ", _m
|
|
|
}));
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 商邀资料AI 设置复选框单条选中
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
|
|
|
+ public async Task<IActionResult> InvitationAISetChecked([FromBody] InvitationAISetCheckedDto dto)
|
|
|
+ {
|
|
|
+ // 采用统一拦截或更简洁的验证
|
|
|
+ if (dto.Id < 1 || dto.CurrUserId < 1 || string.IsNullOrEmpty(dto.Guid))
|
|
|
+ return Ok(JsonView(false, "请求参数不完整"));
|
|
|
+
|
|
|
+ // 只查询必要的列
|
|
|
+ var invAiInfo = await _sqlSugar.Queryable<Res_InvitationAI>()
|
|
|
+ .FirstAsync(x => x.IsDel == 0 && x.Id == dto.Id);
|
|
|
+
|
|
|
+ if (invAiInfo?.AiCrawledDetails == null || !invAiInfo.AiCrawledDetails.Any())
|
|
|
+ return Ok(JsonView(false, "邀请信息集合不存在或已损坏"));
|
|
|
+
|
|
|
+ // 使用 Linq 快速定位目标项
|
|
|
+ var targetItem = invAiInfo.AiCrawledDetails.FirstOrDefault(x => x.Guid == dto.Guid);
|
|
|
+ if (targetItem == null)
|
|
|
+ return Ok(JsonView(false, "未找到对应的邀请信息"));
|
|
|
+
|
|
|
+ // 获取操作人姓名
|
|
|
+ string operatorName = await _sqlSugar.Queryable<Sys_Users>()
|
|
|
+ .Where(x => x.Id == dto.CurrUserId)
|
|
|
+ .Select(x => x.CnName)
|
|
|
+ .FirstAsync() ?? "-";
|
|
|
+
|
|
|
+ // 更新目标属性
|
|
|
+ targetItem.IsChecked = dto.IsChecked;
|
|
|
+ targetItem.OperatedAt = DateTime.Now;
|
|
|
+ targetItem.Operator = operatorName;
|
|
|
+
|
|
|
+ // 排序处理(如果业务要求每次操作都要置顶,则保留)
|
|
|
+ invAiInfo.AiCrawledDetails = invAiInfo.AiCrawledDetails
|
|
|
+ .OrderByDescending(x => x.OperatedAt)
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ // 执行局部更新:仅更新 AiCrawledDetails 字段,减少 IO
|
|
|
+ bool isSuccess = await _sqlSugar.Updateable(invAiInfo)
|
|
|
+ .UpdateColumns(x => x.AiCrawledDetails)
|
|
|
+ .ExecuteCommandHasChangeAsync();
|
|
|
+
|
|
|
+ return Ok(isSuccess
|
|
|
+ ? JsonView(true, "设置成功")
|
|
|
+ : JsonView(false, "设置失败,数据未变更"));
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 商邀资料AI 保存
|
|
|
/// </summary>
|