partner_info.go 1.6 KB
package domain

import "time"

type PartnerInfoRepository interface {
	Save(dm *PartnerInfo) (*PartnerInfo, error)
	Remove(dm *PartnerInfo) (*PartnerInfo, error)
	FindOne(queryOptions map[string]interface{}) (*PartnerInfo, error)
	Find(queryOptions map[string]interface{}) (int64, []*PartnerInfo, error)
}

type PartnerInfo struct {
	// 合伙人ID
	Id int64 `json:"id"`
	// 合伙人姓名
	PartnerName string `json:"partnerName"`
	// 登录账号
	Account string `json:"account"`
	// 登录密码
	Password string `json:"password"`
	// 状态(1:启用或者0:禁用)
	Status int `json:"status"`
	// 合伙类别 (1.研发合伙人 2.业务合伙人  3.事业)
	PartnerCategory int `json:"partnerCategory"`

	//创建时间
	CreateAt time.Time `json:"createAt"`
	//更新时间
	UpdateAt time.Time `json:"updateAt"`

	//关联业务员
	Salesman []*Salesman `json:"salesman"`
}

func (m *PartnerInfo) Identify() interface{} {
	if m.Id == 0 {
		return nil
	}
	return m.Id
}

func (m *PartnerInfo) Update(data map[string]interface{}) error {
	if partnerName, ok := data["partnerName"]; ok && partnerName != "" {
		m.PartnerName = partnerName.(string)
	}
	if account, ok := data["account"]; ok && account != "" {
		m.Account = account.(string)
	}
	if password, ok := data["account"]; ok && password != "" {
		m.Password = password.(string)
	}
	if status, ok := data["status"]; ok && status != 0 {
		m.Status = status.(int)
	}
	if partnerCategory, ok := data["partnerCategory"]; ok && partnerCategory != 0 {
		m.PartnerCategory = partnerCategory.(int)
	}
	if salesman, ok := data["salesman"]; ok {
		m.Salesman = salesman.([]*Salesman)
	}
	m.UpdateAt = time.Now()
	return nil
}