Compare commits

...

35 Commits

Author SHA1 Message Date
4826af4ca4 Merge branch 'dev' of http://gitea.tools.fontree.cn:3000/fiee/fonchain-fiee into dev 2026-02-11 16:11:44 +08:00
97d05aad91 限制黄反长度 2026-02-11 16:11:43 +08:00
0adc00c5ef 限制黄反字符串长度 2026-02-11 16:08:24 +08:00
jiaji.H
9d93484788 Updata:解决冲突 2026-02-10 15:37:23 +08:00
cjy
90a39f4d60 fix:让上传脚本逻辑保持一致 2026-02-10 14:36:23 +08:00
f42eb3ba47 Merge branch 'fearture-newScript-daiyb' 2026-02-10 14:12:02 +08:00
jiaji.H
f930a1487e Merge branch 'main' of http://gitea.tools.fontree.cn:3000/fiee/fonchain-fiee 2026-02-10 13:14:27 +08:00
jiaji.H
e102a92992 Merge branch 'feat-hjj-filebrowser#Saas3' 2026-02-10 13:14:21 +08:00
cf966b182f 黄反 2026-02-10 13:14:11 +08:00
jiaji.H
9195a56892 Merge branch 'feat-hjj-BundleOrderInvoice#A225' 2026-02-10 09:46:06 +08:00
0159046283 修改种子 2026-02-10 08:55:56 +08:00
cjy
f26897c2f4 fix:修改种子 2026-02-09 17:42:10 +08:00
b089aca290 打印容器时间 2026-02-09 16:27:03 +08:00
c692e034a6 Merge branch 'feature-special-daiyb' 2026-02-09 15:38:43 +08:00
jiaji.H
17b2b2681b Merge branch 'main' of http://gitea.tools.fontree.cn:3000/fiee/fonchain-fiee 2026-02-09 15:10:19 +08:00
jiaji.H
754dd62984 Updata:增加log 2026-02-09 15:10:13 +08:00
e90a167f9a Merge branch 'feature-scriptApproval-daiyb' 2026-02-09 14:59:51 +08:00
74c66abad7 修改审批 2026-02-09 14:53:50 +08:00
jiaji.H
295796ae1a Merge branch 'feat-hjj-BundleOrderInvoice#A225' 2026-02-09 13:30:54 +08:00
cjy
05774fcb3b fix:修改时间戳格式化 2026-02-09 12:50:13 +08:00
cjy
7ee7bd7370 update:pb文件 2026-02-09 12:47:15 +08:00
cjy
c399689be0 fix: 避免空指针 2026-02-09 12:37:44 +08:00
cjy
cea0b741f8 fix:修改判断查询失败的逻辑 2026-02-09 12:37:26 +08:00
cjy
c941a46cee fix:续费的话,查询续费开始到现在套餐的时间所有数据
# Conflicts:
#	api/bundle/bundle.pb.go
#	api/cast/cast.pb.go
#	pkg/service/cast/analysis.go
#	pkg/service/cast/report.go
2026-02-09 12:36:51 +08:00
cjy
31a08879b6 fix:如果套餐为续费套餐直接失败
# Conflicts:
#	api/cast/cast.pb.go
2026-02-09 11:58:14 +08:00
cjy
8ec97fdcff fix:创建竞品报告时,传入订单uuid 2026-02-09 11:55:17 +08:00
cjy
063a7991ba Merge branch 'fix-cjy-baseOnjng'
# Conflicts:
#	api/cast/cast.pb.go
#	api/cast/cast.pb.validate.go
2026-02-09 11:53:30 +08:00
cjy
59ece0cb7f Merge branch 'feat-cjy-changeOperator'
# Conflicts:
#	api/cast/cast.pb.go
#	api/cast/cast.pb.validate.go
#	pkg/cron/task.go
2026-02-09 11:52:07 +08:00
jiaji.H
4530e68c11 Updata:解决冲突 2026-02-09 11:46:18 +08:00
jiaji.H
f751d84943 Updata:解决冲突 2026-02-09 11:33:38 +08:00
JNG
0a1678da58 11 2026-02-09 11:33:14 +08:00
JNG
e1a75ee420 解决冲突 2026-02-09 11:31:22 +08:00
195ac2a769 fiee5️⃣期需求
账号过期解绑
2026-02-09 11:30:22 +08:00
cjy
4c4d139b05 fix:更新也增加订单uuid 2026-02-05 19:32:00 +08:00
cjy
d27b85a155 feat:存入订单uuid 2026-02-05 17:52:24 +08:00
5 changed files with 36 additions and 127 deletions

View File

@ -28,17 +28,16 @@ import (
// InitTasks 初始化定时任务
func InitTasks() error {
cm := GetCronManager()
err := cm.AddTask("refreshWorkApprovalStatus", "0 */1 * * * *", RefreshApprovalStatusTask)
err := cm.AddTask("refreshWorkApprovalStatus", "0 */5 * * * *", RefreshApprovalStatusTask)
err = cm.AddTask("artistAutoConfirm", "0 */1 * * * *", ArtistAutoConfirmTask)
err = cm.AddTask("refreshPublishStatus", "0 */5 * * * *", PublishTask)
err = cm.AddTask("scheduledPublish", "0 */1 * * * *", ScheduledPublishTask) //FIXME正式30分钟一次
err = cm.AddTask("scheduledPublish", "0 */30 * * * *", ScheduledPublishTask)
err = cm.AddTask("artistAutoConfirmAnalysis", "0 */1 * * * *", ArtistAutoConfirmAnalysisTask)
err = cm.AddTask("refreshWorkAnalysisApprovalStatus", "0 */5 * * * *", RefreshWorkAnalysisApprovalStatusTask)
err = cm.AddTask("artistAutoConfirmReport", "0 */1 * * * *", ArtistAutoConfirmReportTask)
err = cm.AddTask("refreshCompetitiveReportApprovalStatus", "0 */5 * * * *", RefreshCompetitiveReportApprovalStatusTask)
err = cm.AddTask("refreshArtistOrder", "0 */5 * * * *", RefreshArtistOrderTask)
//余量表每月1号更新定时任务
err = cm.AddTask("updateBundleBalance", "0 0 0 1 * *", UpdateBundleBalance)

View File

@ -17,7 +17,7 @@ func AIChat(ctx *gin.Context) {
service.Error(ctx, errors.New("参数错误 "))
return
}
req.Seed = time.Now().UnixNano()
req.Seed = time.Now().Unix()
resp, err := qwen.Chat(req)
if err != nil {
service.Error(ctx, err)

View File

@ -1236,7 +1236,8 @@ func CreatInvoice(c *gin.Context) {
fmt.Println("发票时间数据获取完成")
err = createInvoice(orderRecord.UserId, orderRecord.UserNum, orderRecord.UserName, orderRecord.Address, orderRecord.Phone, orderRecord.BundleName, orderRecord.OrderNo, "1", amountType, orderRecord.TotalAmount, payTimeString, payTimeString, applyTime)
if err != nil {
service.Error(c, errors.New("生成发票失败"))
fmt.Println("生成发票失败:", err)
service.Error(c, errors.New("生成发票失败:"+err.Error()))
return
}
service.Success(c, "生成发票成功")

View File

@ -7,138 +7,19 @@ import (
"fonchain-fiee/api/aryshare"
"fonchain-fiee/api/cast"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/common/qwen"
modelQwen "fonchain-fiee/pkg/model/qwen"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/check"
"fonchain-fiee/pkg/utils"
"github.com/gin-gonic/gin"
"github.com/xuri/excelize/v2"
"time"
"github.com/gin-gonic/gin"
)
func Test(ctx *gin.Context) {
action := ctx.PostForm("action")
if action == "" {
// 打开Excel文件
excelPath := "./data/脚本.xlsx"
f, err := excelize.OpenFile(excelPath)
if err != nil {
service.Error(ctx, fmt.Errorf("打开Excel文件失败: %v", err))
return
}
defer f.Close()
// 获取第一个工作表名称
sheets := f.GetSheetList()
if len(sheets) == 0 {
service.Error(ctx, errors.New("Excel文件中没有工作表"))
return
}
sheetName := sheets[0]
// 读取所有行
rows, err := f.GetRows(sheetName)
if err != nil {
service.Error(ctx, fmt.Errorf("读取工作表失败: %v", err))
return
}
if len(rows) < 2 {
service.Error(ctx, errors.New("Excel文件中没有数据行"))
return
}
// 找到"标题"和"脚本内容"列的索引
header := rows[0]
titleColIndex := -1
scriptColIndex := -1
for i, cell := range header {
if cell == "标题" {
titleColIndex = i
}
if cell == "脚本内容" {
scriptColIndex = i
}
}
if titleColIndex == -1 || scriptColIndex == -1 {
service.Error(ctx, errors.New("未找到'标题'或'脚本'列"))
return
}
// 统计处理信息
processedCount := 0
errorCount := 0
// 遍历数据行从第2行开始跳过表头
for i := 1; i < len(rows); i++ {
row := rows[i]
// 确保行至少有标题列
if len(row) <= titleColIndex {
continue
}
title := row[titleColIndex]
script := ""
if len(row) > scriptColIndex {
script = row[scriptColIndex]
}
// 如果脚本列为空且标题不为空则请求千问API
if script == "" && title != "" {
// 调用千问API生成脚本
resp, err := qwen.Chat(modelQwen.ChatRequest{
Model: "qwen3-max",
Messages: []modelQwen.Message{
{
Role: "user",
Content: []modelQwen.Content{
{
Type: "text",
Text: fmt.Sprintf("请为以下标题生成一个视频脚本:\n%s字数50-100模板是这样的山水清音心旷神怡。远山如黛近水含烟。笔墨间山水清音尽显自然之美。", title),
},
},
},
},
Seed: time.Now().UnixNano(),
EnableSearch: false,
})
if err != nil {
// 记录错误但继续处理下一行
errorCount++
continue
}
// 获取生成的脚本内容
generatedScript := ""
if len(resp.Choices) > 0 {
generatedScript = resp.Choices[0].Message.Content
}
// 将生成的脚本写入Excel
cellName, _ := excelize.CoordinatesToCellName(scriptColIndex+1, i+1)
if err := f.SetCellValue(sheetName, cellName, generatedScript); err != nil {
errorCount++
continue
}
processedCount++
}
}
// 保存Excel文件
if err := f.Save(); err != nil {
service.Error(ctx, fmt.Errorf("保存Excel文件失败: %v", err))
return
}
service.Success(ctx, map[string]interface{}{
"message": "处理完成",
"processed": processedCount,
"errors": errorCount,
"now": time.Now().Unix(),
})
return
}

View File

@ -64,6 +64,15 @@ func UpdateWorkImageCore(ctx *gin.Context, req *cast.UpdateWorkImageReq) (*cast.
cache.RedisClient.Del(lockKey)
}()
fmt.Println(ok)
// 检查并截取 title 和 content 长度(支持中文)
titleRunes := []rune(req.Title)
if len(titleRunes) > 600 {
req.Title = string(titleRunes[:600])
}
contentRunes := []rune(req.Content)
if len(contentRunes) > 600 {
req.Content = string(contentRunes[:600])
}
if err = SecurityText(req.Title); err != nil {
return nil, errors.New(fmt.Sprintf("标题未通过黄反,原因:%s", err.Error()))
}
@ -298,6 +307,15 @@ func UpdateWorkVideoCore(ctx *gin.Context, req *cast.UpdateWorkVideoReq) (*cast.
defer func() {
cache.RedisClient.Del(lockKey)
}()
// 检查并截取 title 和 content 长度(支持中文)
titleRunes := []rune(req.Title)
if len(titleRunes) > 600 {
req.Title = string(titleRunes[:600])
}
contentRunes := []rune(req.Content)
if len(contentRunes) > 600 {
req.Content = string(contentRunes[:600])
}
if err = SecurityText(req.Title); err != nil {
return nil, errors.New(fmt.Sprintf("标题未通过黄反,原因:%s", err.Error()))
}
@ -1600,6 +1618,11 @@ func ImportWorkBatch(ctx *gin.Context) {
if len(row) > 7 {
temp.Title = utils.CleanString(row[7])
// 检查并截取 title 长度(支持中文)
titleRunes := []rune(temp.Title)
if len(titleRunes) > 600 {
temp.Title = string(titleRunes[:600])
}
ok, _err := check.SecurityText(temp.Title)
if _err != nil {
temp.Remark = _err.Error()
@ -1615,6 +1638,11 @@ func ImportWorkBatch(ctx *gin.Context) {
if len(row) > 8 {
temp.Content = utils.CleanString(row[8])
if temp.Content != "" {
// 检查并截取 content 长度(支持中文)
contentRunes := []rune(temp.Content)
if len(contentRunes) > 600 {
temp.Content = string(contentRunes[:600])
}
ok, _err := check.SecurityText(temp.Content)
if _err != nil {
temp.Remark = _err.Error()