feat: completed development wecom message

This commit is contained in:
zzw
2026-09-18 17:39:48 +08:00
parent dd460f6be2
commit 1ca44d25df
57 changed files with 1754 additions and 1412 deletions
@@ -1,91 +1,65 @@
package handlers
package handlers
import (
"base-service/app/dao"
"base-service/app/models"
"base-service/app/services/wecom/message/builder"
"base-service/app/services/wecom/message/task"
util "base-service/app/services/wecom/message/utils"
"base-service/pkg/wecom/message"
"base-service/utils"
"context"
"fmt"
"strconv"
"lone-services/pkg/utils"
"lone-services/pkg/wecom/message"
"lone-services/services/wecom/internal/dao"
"lone-services/services/wecom/internal/logic/message/builder"
"lone-services/services/wecom/internal/logic/message/task"
msgutil "lone-services/services/wecom/internal/logic/message/utils"
"github.com/google/uuid"
)
type StoreReviewHandler struct {
}
type StoreReviewHandler struct{}
func (h StoreReviewHandler) Build(job dao.WeComJob) ([]*message.SendRequest, error) {
store := dao.StoreInfo{}
models.StoreModel{}.Init().GetOne(models.Params{
Eq: map[string]string{
"id": strconv.Itoa(job.ObjId),
},
}, &store)
user, err := util.GetActionUser(job.ObjId, job.ObjType)
func (h StoreReviewHandler) 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
}
user, err := msgutil.GetActionUser(job.BizId, job.BizType)
if err != nil {
return nil, err
}
content := []message.HorizontalContent{
{
KeyName: "门店名称",
Value: store.Name,
},
{
KeyName: "申请原因",
Value: util.GetExtString(job.Ext, "reason"),
},
{
KeyName: "申请人",
Value: user.Name,
},
{
KeyName: "申请时间",
Value: utils.Now().Format(),
},
{KeyName: "门店名称", Value: msgutil.BizFieldFromChange(change, "name")},
{KeyName: "申请原因", Value: msgutil.GetExtString(job.Ext, "reason")},
{KeyName: "申请人", Value: user.Name},
{KeyName: "申请时间", Value: utils.Now().Format()},
}
taskId := uuid.NewString()
detailUrl := fmt.Sprintf("https://baidu.com/xxx/review?id=%d", job.ObjId)
err = task.Service{}.Create(job, taskId, detailUrl)
toUser := utils.GetConfigString("wecom.store_reviewer_ids")
req, err := builder.ButtonCard(
builder.ButtonCardParams{
ToUser: toUser,
TaskId: taskId,
Desc: "门店审核",
Title: "门店信息变更审核",
Content: content,
Buttons: []message.Button{
{
Text: "拒绝",
Style: dao.NumberTwo,
Key: fmt.Sprintf("%s:reject:%s", util.GetExtString(job.Ext, "key"), taskId),
},
{
Text: "通过",
Style: dao.NumberOne,
Key: fmt.Sprintf("%s:agree:%s", util.GetExtString(job.Ext, "key"), taskId),
},
},
},
)
if err != nil {
detailUrl := fmt.Sprintf("https://baidu.com/xxx/review?id=%d", job.BizId)
if err = (task.Service{}).Create(job, taskId, detailUrl); err != nil {
return nil, err
}
return []*message.SendRequest{
req,
}, nil
req, err := builder.ButtonCard(builder.ButtonCardParams{
ToUser: utils.GetConfigString("wecom.store_reviewer_ids"),
TaskId: taskId,
Desc: "门店审核",
Title: "门店信息变更审核",
Content: content,
Buttons: []message.Button{
{
Text: "拒绝",
Style: utils.NumberTwo,
Key: fmt.Sprintf("%s:reject:%s", msgutil.GetExtString(job.Ext, "key"), taskId),
},
{
Text: "通过",
Style: utils.NumberOne,
Key: fmt.Sprintf("%s:agree:%s", msgutil.GetExtString(job.Ext, "key"), taskId),
},
},
})
if err != nil {
return nil, err
}
return []*message.SendRequest{req}, nil
}