Prechádzať zdrojové kódy

1. 调整联系人自定义字段定时任务
2. 增加联系人自定义字段分析接口

boweniac 1 deň pred
rodič
commit
d051f63c06

+ 2 - 2
crontask/contact_form.go

@@ -23,6 +23,6 @@ type FormData struct {
 	FieldProps FieldProps `json:"fieldProps"`
 }
 
-func (l *CronTask) analyze() {
-	wechat.NewAnalyzeContactField(l.ctx, l.svcCtx).Analyze(nil, nil)
+func (l *CronTask) analyze(bot_wxid *string) {
+	wechat.NewAnalyzeContactField(l.ctx, l.svcCtx).Analyze(bot_wxid, nil)
 }

+ 7 - 1
crontask/init.go

@@ -46,7 +46,13 @@ func ScheduleRun(c *cron.Cron, serverCtx *svc.ServiceContext) {
 
 	contactForm := NewCronTask(context.Background(), serverCtx)
 	c.AddFunc("10 0 * * *", func() {
-		contactForm.analyze()
+		contactForm.analyze(nil)
+	})
+
+	contactForm2 := NewCronTask(context.Background(), serverCtx)
+	c.AddFunc("0 12 * * *", func() {
+		bot_wxid := "wxid_ifzo7uu0cl3b22"
+		contactForm2.analyze(&bot_wxid)
 	})
 
 	l = NewCronTask(context.Background(), serverCtx)

+ 15 - 5
internal/service/wechat/analyze_contact_field.go

@@ -15,6 +15,7 @@ import (
 	"wechat-api/ent/custom_types"
 	"wechat-api/ent/predicate"
 	"wechat-api/ent/usagedetail"
+	"wechat-api/ent/wx"
 	"wechat-api/internal/svc"
 	"wechat-api/internal/types"
 	"wechat-api/internal/utils/compapi"
@@ -147,10 +148,13 @@ func (l *AnalyzeContactField) Analyze(bot_wxid *string, contact_wxid *string) {
 	//yesterdayEnd := yesterdayStart.Add(24 * time.Hour)
 	loc, _ := time.LoadLocation("Asia/Shanghai")
 	now := time.Now().In(loc)
-	yesterdayEnd := now.Truncate(24 * time.Hour)
-	yesterdayStart := yesterdayEnd.AddDate(0, 0, -2)
+	yesterdayEnd := now.Truncate(24 * time.Hour).Add(-16 * time.Hour)
+	yesterdayStart := yesterdayEnd.AddDate(0, 0, -1)
 	predicates = append(predicates, usagedetail.CreatedAtGTE(yesterdayStart))
 	predicates = append(predicates, usagedetail.CreatedAtLT(yesterdayEnd))
+	if bot_wxid != nil && *bot_wxid != "" {
+		predicates = append(predicates, usagedetail.BotIDEQ(*bot_wxid))
+	}
 	if bot_wxid != nil && *bot_wxid != "" && contact_wxid != nil && *contact_wxid != "" {
 		predicates = append(predicates, usagedetail.BotIDEQ(*bot_wxid))
 		predicates = append(predicates, usagedetail.ReceiverIDEQ(*contact_wxid))
@@ -162,16 +166,20 @@ func (l *AnalyzeContactField) Analyze(bot_wxid *string, contact_wxid *string) {
 	//predicates = append(predicates, usagedetail.CreatedAtLT(todayEnd))
 
 	data, err := l.svcCtx.DB.UsageDetail.Query().Where(predicates...).All(l.ctx)
-	logx.Info("usageDetails: ", data)
 	if err != nil {
 		return
 	}
 
-	wxs, err := l.svcCtx.DB.Wx.Query().All(l.ctx)
+	var wxPredicates []predicate.Wx
+	if bot_wxid != nil && *bot_wxid != "" {
+		wxPredicates = append(wxPredicates, wx.WxidEQ(*bot_wxid))
+	}
+	wxs, err := l.svcCtx.DB.Wx.Query().Where(wxPredicates...).All(l.ctx)
 	if err != nil {
 		return
 	}
-
+	logx.Info("data: ", data)
+	logx.Info("wxs: ", wxs)
 	for _, wx := range wxs {
 		c, _ := l.svcCtx.DB.ContactFieldTemplate.Query().Where(contactfieldtemplate.OrganizationID(wx.OrganizationID)).First(l.ctx)
 		if c != nil {
@@ -198,6 +206,8 @@ func (l *AnalyzeContactField) Analyze(bot_wxid *string, contact_wxid *string) {
 			template = append(template, contactBasicFieldTemplates...)
 		}
 		for receiverID, messages := range usageDetails[botID] {
+			logx.Info("messages: ", messages)
+			logx.Info("template: ", template)
 			result, _ := l.openaiRequest(messages, template)
 			logx.Info("result: ", result)
 			if result == nil {