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 }