每日运势小程序
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using DouyinApi.Controllers;
|
||||
using DouyinApi.IServices;
|
||||
using DouyinApi.Model.DailyFortune;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace DouyinApi.Api.Controllers.MiniProgram;
|
||||
|
||||
[Produces("application/json")]
|
||||
[Route("api/daily-fortune")]
|
||||
[AllowAnonymous]
|
||||
public class DailyFortuneController : BaseApiController
|
||||
{
|
||||
private readonly IDailyFortuneService _dailyFortuneService;
|
||||
private readonly IContentSecurityService _contentSecurityService;
|
||||
private readonly ILogger<DailyFortuneController> _logger;
|
||||
|
||||
public DailyFortuneController(
|
||||
IDailyFortuneService dailyFortuneService,
|
||||
IContentSecurityService contentSecurityService,
|
||||
ILogger<DailyFortuneController> logger)
|
||||
{
|
||||
_dailyFortuneService = dailyFortuneService;
|
||||
_contentSecurityService = contentSecurityService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
[HttpPost("analyze")]
|
||||
public async Task<IActionResult> Analyze([FromBody] DailyFortuneRequest request)
|
||||
{
|
||||
if (!ModelState.IsValid)
|
||||
{
|
||||
return BadRequest(new { message = "invalid_request" });
|
||||
}
|
||||
|
||||
var normalizedCity = request.BirthCity?.Trim() ?? string.Empty;
|
||||
if (string.IsNullOrWhiteSpace(normalizedCity))
|
||||
{
|
||||
return BadRequest(new { message = "invalid_birth_city" });
|
||||
}
|
||||
|
||||
var securityText = string.Join(" ", new[]
|
||||
{
|
||||
normalizedCity,
|
||||
request.BirthProvince ?? string.Empty,
|
||||
request.BirthDate ?? string.Empty,
|
||||
request.BirthTime ?? string.Empty
|
||||
}).Trim();
|
||||
|
||||
var security = await _contentSecurityService.CheckTextAsync(securityText);
|
||||
if (!security.IsSafe)
|
||||
{
|
||||
return BadRequest(new { message = "CONTENT_RISK" });
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var response = await _dailyFortuneService.AnalyzeAsync(request);
|
||||
return Ok(response);
|
||||
}
|
||||
catch (ArgumentException ex) when (ex.Message == "invalid_birthdate")
|
||||
{
|
||||
return BadRequest(new { message = "BIRTHDATE_INVALID" });
|
||||
}
|
||||
catch (ArgumentException ex) when (ex.Message == "invalid_birth_city")
|
||||
{
|
||||
return BadRequest(new { message = "invalid_birth_city" });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Daily fortune analyze failed");
|
||||
return StatusCode(500, new { message = "GENERATION_FAILED" });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,6 +34,31 @@
|
||||
所有
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:DouyinApi.Model.DailyFortune.DailyFortuneRequest.BirthDate">
|
||||
<summary>
|
||||
出生日期,格式 yyyy-MM-dd。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:DouyinApi.Model.DailyFortune.DailyFortuneRequest.BirthTime">
|
||||
<summary>
|
||||
出生时间,格式 HH:mm,可为空。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:DouyinApi.Model.DailyFortune.DailyFortuneRequest.BirthCity">
|
||||
<summary>
|
||||
出生城市(精确到市)。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:DouyinApi.Model.DailyFortune.DailyFortuneRequest.BirthProvince">
|
||||
<summary>
|
||||
出生省份/州信息,选填,用于提示词增强。
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:DouyinApi.Model.DailyFortune.FortuneDimension.Trend">
|
||||
<summary>
|
||||
up / down / steady
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:DouyinApi.Model.IDS4DbModels.ApplicationRole">
|
||||
<summary>
|
||||
以下model 来自ids4项目,多库模式,为了调取ids4数据
|
||||
|
||||
@@ -152,7 +152,8 @@
|
||||
"ConnId": "WMBLOG_MYSQL",
|
||||
"DBType": 0,
|
||||
"Enabled": true,
|
||||
"Connection": "Server=zhongjy001.synology.me;Port=3315;Database=douyinminiprogram;User=root;Password=123456asdfg;"
|
||||
//"Connection": "Server=127.0.0.1;Port=3306;Database=douyinminiprogram;User=root;Password=e6b4274e7731b9de;"
|
||||
"Connection": "Server=zhongjy001.synology.me;Port=3315;Database=fatemaster;User=root;Password=123456asdfg;"
|
||||
}
|
||||
//{
|
||||
// "ConnId": "WMBLOG_MYSQL_2",
|
||||
|
||||
Reference in New Issue
Block a user