partner_info.go 1.8 KB
package domain

import "time"

// 状态(1:启用或者0:禁用)
const (
	PARTNER_STATUS_NO  int = 0
	PARTNER_STATUS_YES int = 1
)

// 合伙类别 (1.研发合伙人 2.业务合伙人  3.事业)
//合伙类别 (1.事业合伙人 2.业务合伙人  3.研发合伙人)
const (
	PARTNER_CATEGORY_1 int = 1
	PARTNER_CATEGORY_2 int = 2
	PARTNER_CATEGORY_3 int = 3
)

type PartnerInfo struct {
	Partner Partner `json:"partner"`
	// 合伙类别 (1.研发合伙人 2.业务合伙人  3.事业)
	PartnerCategory int `json:"partnerCategory"`
	// 登录密码
	Password string `json:"password"`
	// 状态(1:启用或者0:禁用)
	Status int `json:"status"`
	//创建时间
	CreateAt time.Time `json:"createAt"`
	//更新时间
	UpdateAt time.Time `json:"updateAt"`
	//合作时间
	CooperateTime time.Time `json:"cooperateTime"`
	//关联业务员//所属区域信息
	RegionInfo *RegionInfo `json:"regionInfo"`

	Salesman []Salesman `json:"salesman"`
}

//TODO
func (partner *PartnerInfo) Update(data map[string]interface{}) error {
	if v, ok := data["partnerName"]; ok {
		partner.Partner.PartnerName = v.(string)
	}
	if v, ok := data["account"]; ok {
		partner.Partner.Account = v.(string)
	}
	if v, ok := data["partnerCategory"]; ok {
		partner.PartnerCategory = v.(int)
	}
	return nil
}

type PartnerFindOneQuery struct {
	UserId       int64
	AccountEqual string
}

type PartnerFindQuery struct {
	Offset          int
	Limit           int
	PartnerCategory []int       //合伙人类型
	RegionInfo      *RegionInfo //区域
	PartnerName     string      //合伙人姓名
}

type PartnerInfoRepository interface {
	Save(dm *PartnerInfo) (*PartnerInfo, error)
	FindOne(queryOptions PartnerFindOneQuery) (*PartnerInfo, error)
	Find(queryOptions PartnerFindQuery) ([]PartnerInfo, error)
	CountAll(queryOptions PartnerFindQuery) (int, error)
}