66 lines
1.8 KiB
Go
66 lines
1.8 KiB
Go
package handlers
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"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{}
|
|
|
|
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: 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.BizId)
|
|
if err = (task.Service{}).Create(job, taskId, detailUrl); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
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
|
|
}
|