feat: wecom message init

This commit is contained in:
zzw
2026-09-17 10:18:43 +08:00
parent 5a56eb2fe4
commit dd460f6be2
46 changed files with 2735 additions and 109 deletions
@@ -0,0 +1,55 @@
package utils
import (
"base-service/app/dao"
"base-service/pkg/wecom/message"
"base-service/utils"
"fmt"
)
func GetMapString(data map[string]interface{}, key string) string {
val, ok := data[key]
if !ok || val == nil {
return dao.StringEmpty
}
return fmt.Sprintf("%v", val)
}
func GetExtString(ext map[string]any, key string) string {
v, ok := ext[key].(string)
if !ok || v == "" {
return "无"
}
return v
}
func BuildContent(kvPairs ...struct{ Key, Value string }) []message.HorizontalContent {
const maxTotal = 6
const fixedItems = 1
maxInput := maxTotal - fixedItems
inputCount := len(kvPairs)
if inputCount > maxInput {
inputCount = maxInput
}
content := make([]message.HorizontalContent, 0, inputCount+fixedItems)
for i := 0; i < inputCount; i++ {
content = append(content, message.HorizontalContent{
KeyName: kvPairs[i].Key,
Value: kvPairs[i].Value,
})
}
content = append(content, message.HorizontalContent{
KeyName: "审核时间",
Value: utils.Now().Format(),
})
return content
}
@@ -0,0 +1,149 @@
package utils
import (
"base-service/app/dao"
"base-service/app/models"
"strconv"
"strings"
)
func GetApplicantUser(objId int, objType uint8, career uint8) (*dao.WecomUser, error) {
w := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(objId),
"obj_type": strconv.Itoa(int(objType)),
},
Order: "id desc",
}
editLog := dao.EditLogInfo{}
err := models.EditLogModel{}.Init().GetOne(w, &editLog)
if err != nil {
return nil, err
}
uw := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(editLog.AdminId),
"obj_type": strconv.Itoa(int(career)),
"status": strconv.Itoa(int(dao.StatusOk)),
},
}
user := dao.WecomUser{}
err = models.WecomUserModel{}.Init().GetOne(uw, &user)
if err != nil {
return nil, err
}
return &user, nil
}
func GetAdminUser(objId int, objType uint8) (*dao.Admin, error) {
w := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(objId),
"obj_type": strconv.Itoa(int(objType)),
},
Order: "id desc",
}
editLog := dao.EditLogInfo{}
err := models.EditLogModel{}.Init().GetOne(w, &editLog)
if err != nil {
return nil, err
}
user := dao.Admin{}
err = models.AdminUserModel{}.Init().GetOne(models.Params{
Eq: map[string]string{
"id": strconv.Itoa(editLog.AdminId),
},
}, &user)
return &user, nil
}
func GetActionUser(objId int, objType uint8) (*dao.Admin, error) {
w := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(objId),
"type": strconv.Itoa(int(objType)),
},
Order: "id desc",
}
apply := dao.ActionApplyLogInfo{}
err := models.ActionApplyLogModel{}.Init().GetOne(w, &apply)
if err != nil {
return nil, err
}
user := dao.Admin{}
err = models.AdminUserModel{}.Init().GetOne(models.Params{
Eq: map[string]string{
"id": strconv.Itoa(apply.AdminId),
},
}, &user)
return &user, nil
}
func GetActionWecomUser(objId int, objType uint8) (*dao.WecomUser, error) {
w := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(objId),
"type": strconv.Itoa(int(objType)),
},
Order: "id desc",
}
apply := dao.ActionApplyLogInfo{}
err := models.ActionApplyLogModel{}.Init().GetOne(w, &apply)
if err != nil {
return nil, err
}
user := dao.Admin{}
err = models.AdminUserModel{}.Init().GetOne(models.Params{
Eq: map[string]string{
"id": strconv.Itoa(apply.AdminId),
},
}, &user)
uw := models.Params{
Eq: map[string]string{
"obj_id": strconv.Itoa(user.Id),
"obj_type": strconv.Itoa(dao.NumberTwo),
"status": strconv.Itoa(int(dao.StatusOk)),
},
}
wecom := dao.WecomUser{}
err = models.WecomUserModel{}.Init().GetOne(uw, &wecom)
if err != nil {
return nil, err
}
return &wecom, nil
}
func JoinWecomUsers(users ...string) string {
result := make([]string, 0)
for _, user := range users {
if user == "" {
continue
}
result = append(result, user)
}
return strings.Join(result, "|")
}