Files

97 lines
2.3 KiB
Go

package utils
import (
"fmt"
"strconv"
"strings"
"lone-services/pkg/modelbase"
"lone-services/pkg/utils"
"lone-services/services/wecom/internal/dao"
"lone-services/services/wecom/internal/model"
)
// ActionUser 审核相关操作人(姓名来自变更快照)
type ActionUser struct {
Id int64
Name string
}
func GetApplicantUser(objId int, objType uint8, career uint8) (*dao.WecomUser, error) {
change, err := GetLatestReviewChange(objType, int64(objId))
if err != nil {
return nil, err
}
user := dao.WecomUser{}
err = model.UserModel{}.Init().GetOne(modelbase.Params{
Eq: map[string]string{
"user_id": strconv.FormatInt(change.AdminId, 10),
"type": strconv.FormatUint(uint64(career), 10),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, &user)
if err != nil {
return nil, err
}
return &user, nil
}
func GetActionUser(objId int, objType uint8) (*ActionUser, error) {
change, err := GetLatestReviewChange(objType, int64(objId))
if err != nil {
return nil, err
}
return &ActionUser{
Id: change.AdminId,
Name: change.AdminName,
}, nil
}
func GetActionWecomUser(objId int, objType uint8) (*dao.WecomUser, error) {
change, err := GetLatestReviewChange(objType, int64(objId))
if err != nil {
return nil, err
}
user := dao.WecomUser{}
err = model.UserModel{}.Init().GetOne(modelbase.Params{
Eq: map[string]string{
"user_id": strconv.FormatInt(change.AdminId, 10),
"type": strconv.Itoa(int(dao.UserTypeAdmin)),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, &user)
if err != nil {
return nil, err
}
if user.Id < 1 {
// 再试销售类型
err = model.UserModel{}.Init().GetOne(modelbase.Params{
Eq: map[string]string{
"user_id": strconv.FormatInt(change.AdminId, 10),
"type": strconv.Itoa(int(dao.UserTypeSale)),
"status": strconv.Itoa(int(dao.StatusEnabled)),
},
}, &user)
if err != nil {
return nil, err
}
}
if user.Id < 1 {
return nil, fmt.Errorf("wecom user not found for admin_id=%d", change.AdminId)
}
return &user, nil
}
func JoinWecomUsers(users ...string) string {
result := make([]string, 0, len(users))
for _, user := range users {
if user == utils.StringEmpty {
continue
}
result = append(result, user)
}
return strings.Join(result, "|")
}