97 lines
2.3 KiB
Go
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, "|")
|
|
}
|