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, "|") }