create_partner_info.go 1.9 KB
package command

import (
	"time"

	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
	"gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
)

type CreatePartnerInfoCommand struct {
	// 合伙人姓名
	PartnerName string `json:"partnerName,omitempty"`
	// 登录账号
	Account string `json:"account,omitempty"`
	// 登录密码
	Password string `json:"password,omitempty"`
	// 状态(1:启用或者0:禁用)
	Status int `json:"status"`
	// 合伙类别 (1.研发合伙人 2.业务合伙人  3.事业)
	PartnerCategory int `json:"partnerCategory,omitempty"`
	//合作时间
	CooperateTime time.Time `json:"cooperateTime"`
	// 区域
	RegionInfo *domain.RegionInfo `json:"regionInfo"`
	//关联业务员
	Salesman []domain.Salesman `json:"salesman,omitempty"`
}

func (command CreatePartnerInfoCommand) ValidateCommand() error {
	if !(command.Status == domain.PARTNER_STATUS_NO || command.Status == domain.PARTNER_STATUS_YES) {
		return lib.ThrowError(lib.ARG_ERROR, "合伙人状态错误")
	}
	if !(command.PartnerCategory == domain.PARTNER_CATEGORY_1 ||
		command.PartnerCategory == domain.PARTNER_CATEGORY_2 ||
		command.PartnerCategory == domain.PARTNER_CATEGORY_3) {
		return lib.ThrowError(lib.ARG_ERROR, "合伙类别错误")
	}
	if len(command.PartnerName) == 0 {
		return lib.ThrowError(lib.ARG_ERROR, "合伙人名称必填")
	}
	if len(command.Account) == 0 {
		return lib.ThrowError(lib.ARG_ERROR, "合伙人账号必填")
	}
	if command.RegionInfo == nil {
		return lib.ThrowError(lib.ARG_ERROR, "区域必填")
	}
	if len(command.Salesman) == 0 {
		return lib.ThrowError(lib.ARG_ERROR, "关联业务员必填")
	}
	for i := range command.Salesman {
		if len(command.Salesman[i].Name) == 0 {
			return lib.ThrowError(lib.ARG_ERROR, "关联业务员名称必填")
		}
		if len(command.Salesman[i].Telephone) == 0 {
			return lib.ThrowError(lib.ARG_ERROR, "关联业务员电话必填")
		}
	}
	return nil
}