feat: wecom message init
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
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"
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
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)
|
||||
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(),
|
||||
},
|
||||
}
|
||||
|
||||
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 {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return []*message.SendRequest{
|
||||
req,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user