feat: completed development wecom message
This commit is contained in:
@@ -1,49 +1,61 @@
|
||||
package handlers
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"base-service/app/dao"
|
||||
"base-service/app/models"
|
||||
"base-service/app/services/wecom/message/builder"
|
||||
util "base-service/app/services/wecom/message/utils"
|
||||
"base-service/pkg/wecom/message"
|
||||
"base-service/utils"
|
||||
"strconv"
|
||||
"context"
|
||||
|
||||
"lone-services/pkg/utils"
|
||||
"lone-services/pkg/wecom/message"
|
||||
"lone-services/services/wecom/internal/dao"
|
||||
"lone-services/services/wecom/internal/logic/message/builder"
|
||||
msgutil "lone-services/services/wecom/internal/logic/message/utils"
|
||||
|
||||
jsoniter "github.com/json-iterator/go"
|
||||
)
|
||||
|
||||
type AddressNotifyFirstHandler struct {
|
||||
}
|
||||
type AddressNotifyFirstHandler struct{}
|
||||
|
||||
func (h AddressNotifyFirstHandler) Build(job dao.WeComJob) ([]*message.SendRequest, error) {
|
||||
func (h AddressNotifyFirstHandler) Build(ctx context.Context, job dao.WeComJob) ([]*message.SendRequest, error) {
|
||||
change, err := msgutil.GetLatestReviewChange(job.BizType, int64(job.BizId))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
logInfo := dao.EditLogInfo{}
|
||||
|
||||
models.EditLogModel{}.Init().GetOne(models.Params{
|
||||
Eq: map[string]string{
|
||||
"obj_id": strconv.Itoa(job.ObjId),
|
||||
"obj_type": strconv.Itoa(int(job.ObjType)),
|
||||
},
|
||||
Order: "id desc",
|
||||
}, &logInfo)
|
||||
|
||||
content := util.BuildContent(
|
||||
struct{ Key, Value string }{"门店名称", getTypeNameFromContent(logInfo.Content)},
|
||||
content := msgutil.BuildContent(
|
||||
struct{ Key, Value string }{"门店名称", getTypeNameFromContent(msgutil.DiffContent(change))},
|
||||
struct{ Key, Value string }{"提醒消息", "您有一个地址需要审核"},
|
||||
)
|
||||
|
||||
crad := builder.TextCardParams{
|
||||
card := builder.TextCardParams{
|
||||
ToUser: utils.GetConfigString("wecom.address_notify_second_ids"),
|
||||
Desc: "地址通知",
|
||||
Title: "地址审核通知",
|
||||
Content: content,
|
||||
}
|
||||
|
||||
req, err := builder.TextCard(crad)
|
||||
|
||||
req, err := builder.TextCard(card)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return []*message.SendRequest{
|
||||
req,
|
||||
}, nil
|
||||
return []*message.SendRequest{req}, nil
|
||||
}
|
||||
|
||||
func getTypeNameFromContent(content string) string {
|
||||
if content == utils.StringEmpty {
|
||||
return utils.StringEmpty
|
||||
}
|
||||
|
||||
var data struct {
|
||||
Old map[string]any `json:"old"`
|
||||
New map[string]any `json:"new"`
|
||||
}
|
||||
if err := jsoniter.Unmarshal([]byte(content), &data); err != nil {
|
||||
return utils.StringEmpty
|
||||
}
|
||||
if v, ok := data.New["type_name"].(string); ok && v != utils.StringEmpty {
|
||||
return v
|
||||
}
|
||||
if v, ok := data.Old["type_name"].(string); ok && v != utils.StringEmpty {
|
||||
return v
|
||||
}
|
||||
return utils.StringEmpty
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user