Explorar o código

标签逻辑入库

lichangdong hai 1 semana
pai
achega
d8b90f8d40

+ 1 - 6
ent/migrate/schema.go

@@ -579,14 +579,9 @@ var (
 		PrimaryKey: []*schema.Column{LabelLogColumns[0]},
 		Indexes: []*schema.Index{
 			{
-				Name:    "labellog_label_id",
-				Unique:  false,
-				Columns: []*schema.Column{LabelLogColumns[4]},
-			},
-			{
 				Name:    "idx_org_label",
 				Unique:  true,
-				Columns: []*schema.Column{LabelLogColumns[4], LabelLogColumns[6]},
+				Columns: []*schema.Column{LabelLogColumns[4], LabelLogColumns[5], LabelLogColumns[6]},
 			},
 		},
 	}

+ 1 - 2
ent/schema/label_log.go

@@ -30,8 +30,7 @@ func (LabelLog) Mixin() []ent.Mixin {
 
 func (LabelLog) Indexes() []ent.Index {
 	return []ent.Index{
-		index.Fields("label_id"),
-		index.Fields("label_id", "organization_id").Unique().StorageKey("idx_org_label"),
+		index.Fields("label_id", "wx_id", "organization_id").Unique().StorageKey("idx_org_label"),
 	}
 }
 

+ 0 - 1
internal/logic/message_records/get_message_records_list_logic.go

@@ -52,7 +52,6 @@ func (l *GetMessageRecordsListLogic) GetMessageRecordsList(req *types.MessageRec
 		predicates = append(predicates, messagerecords.StatusNEQ(0))
 	}
 	data, err := l.svcCtx.DB.MessageRecords.Query().Where(predicates...).Page(l.ctx, req.Page, req.PageSize)
-
 	if err != nil {
 		return nil, dberrorhandler.DefaultEntError(l.Logger, err, req)
 	}

+ 2 - 2
internal/service/MessageHandlers/contact_Label_info_notice.go

@@ -125,7 +125,7 @@ func (f *ContactLabelInfoNotice) Handle(ctx context.Context, msg *wechat_ws.MsgJ
 	// 批量插入 LabelLog
 	if len(bulkLabelLogs) > 0 {
 		err := svcCtx.DB.LabelLog.CreateBulk(bulkLabelLogs...).
-			OnConflict(sql.ConflictColumns("label_id", "organization_id")).
+			OnConflict(sql.ConflictColumns(labellog.FieldLabelID, labellog.FieldWxID, labellog.FieldOrganizationID)).
 			DoNothing().
 			Exec(ctx)
 		if err != nil {
@@ -136,7 +136,7 @@ func (f *ContactLabelInfoNotice) Handle(ctx context.Context, msg *wechat_ws.MsgJ
 	// 批量插入 Label
 	if len(bulkLabels) > 0 {
 		err := svcCtx.DB.Label.CreateBulk(bulkLabels...).
-			OnConflict(sql.ConflictColumns("name", "organization_id")).
+			OnConflict(sql.ConflictColumns(label.FieldName, label.FieldOrganizationID)).
 			DoNothing().
 			Exec(ctx)
 		if err != nil {

+ 5 - 4
internal/service/MessageHandlers/friend_push_notice.go

@@ -89,7 +89,7 @@ func NewFriendPushNoticeTypeHandler(svcCtx *svc.ServiceContext) *FriendPushNotic
 func (f *FriendPushNoticeTypeHandler) Handle(ctx context.Context, msg *wechat_ws.MsgJsonObject, svcCtx *svc.ServiceContext) error {
 	message := workphone.FriendPushNoticeMessage{}
 	err := json.Unmarshal([]byte(msg.Message), &message)
-	//logx.Infof("msg.Message 的内容是:%s", msg.Message)
+	logx.Infof("msg.Message 的内容是:%s", msg.Message)
 	if err != nil {
 		logx.Errorf("Unmarshal.fail")
 		return err
@@ -98,8 +98,7 @@ func (f *FriendPushNoticeTypeHandler) Handle(ctx context.Context, msg *wechat_ws
 	wxInfo, err := svcCtx.DB.Wx.Query().
 		Where(
 			wx.WxidEQ(message.WeChatId), // Additional filter by organizationId
-		).
-		Only(ctx)
+		).Only(ctx)
 	if err != nil {
 		return err
 	}
@@ -145,10 +144,11 @@ func (f *FriendPushNoticeTypeHandler) Handle(ctx context.Context, msg *wechat_ws
 
 		LabelLogs, err := svcCtx.DB.LabelLog.Query().
 			Where(labellog.LabelIDIn(ids...)).
+			Where(labellog.WxID(message.WeChatId)).
 			All(ctx)
 
 		if err != nil || len(LabelLogs) == 0 {
-			logx.Error("labelLog.Query.fail: 跳过", wxInfo.OrganizationID)
+			logx.Error("labelLog.Query.fail: 跳过 || 或者查询失败", wxInfo.OrganizationID)
 			continue
 		}
 
@@ -157,6 +157,7 @@ func (f *FriendPushNoticeTypeHandler) Handle(ctx context.Context, msg *wechat_ws
 		for _, remoteLabel := range LabelLogs {
 			labelInfo, err := svcCtx.DB.Label.Query().Where(
 				label.NameEQ(remoteLabel.LabelName),
+				//label.StatusEQ(remoteLabel.LabelName),
 				label.OrganizationID(currentOrgID),
 			).Only(ctx)
 			if err != nil || ent.IsNotFound(err) {