|
|
package command
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
"time"
|
|
|
|
|
|
"github.com/beego/beego/v2/core/validation"
|
|
|
)
|
|
|
|
|
|
type UpdateCooperationContractCommand struct {
|
|
|
CooperationContract struct {
|
|
|
CooperationContractId int `json:"cooperationContractId,string"`
|
|
|
// 共创合约描述
|
|
|
Description string `json:"Description"`
|
|
|
// 共创合约编号
|
|
|
CooperationContractNumber string `json:"cooperationContractNumber"`
|
|
|
// 共创项目编号,
|
|
|
CooperationProjectNumber string `json:"cooperationProjectNumber"`
|
|
|
// 共创合约发起部门编码
|
|
|
DepartmentId string `json:"departmentId"`
|
|
|
// 共创合约承接对象,1员工,2共创用户,3公开
|
|
|
CooperationContractUndertakerType []int `json:"cooperationContractUndertakerType"`
|
|
|
// 共创合约名称
|
|
|
CooperationContractName string `json:"cooperationContractName"`
|
|
|
// 共创模式编码,手动输入,唯一确定
|
|
|
CooperationModeNumber string `json:"cooperationModeNumber"`
|
|
|
// 共创合约发起人uid
|
|
|
SponsorUserId string `json:"sponsorUserId"`
|
|
|
} `json:"cooperationContract"`
|
|
|
|
|
|
// 业绩分红激励规则列表
|
|
|
DividendsIncentivesRules []struct {
|
|
|
// 关联的项目合约编号
|
|
|
CooperationContractNumber string `json:"cooperationContractNumber"`
|
|
|
// 推荐人抽成比例
|
|
|
ReferrerPercentage float64 `json:"referrerPercentage"`
|
|
|
// 业务员抽成比例
|
|
|
SalesmanPercentage float64 `json:"salesmanPercentage"`
|
|
|
// 分红规则激励百分点
|
|
|
DividendsIncentivesPercentage float64 `json:"dividendsIncentivesPercentage"`
|
|
|
// 分红规则激励阶段,
|
|
|
DividendsIncentivesStage int64 `json:"dividendsIncentivesStage,string,"`
|
|
|
// 分红规则激励阶段结束
|
|
|
DividendsIncentivesStageEnd time.Time `json:"dividendsIncentivesStageEnd"`
|
|
|
// 分红规则激励阶段开始
|
|
|
DividendsIncentivesStageStart time.Time `json:"dividendsIncentivesStageStart"`
|
|
|
} `json:"dividendsIncentivesRules"`
|
|
|
// 金额激励规则列表
|
|
|
MoneyIncentivesRules []struct {
|
|
|
// 金额激励规则ID
|
|
|
MoneyIncentivesRuleId int64 `json:"moneyIncentivesRuleId,string,"`
|
|
|
// 关联的共创合约编号
|
|
|
CooperationContractNumber string `json:"cooperationContractNumber"`
|
|
|
// 激励金额
|
|
|
MoneyIncentivesAmount float64 `json:"moneyIncentivesAmount"`
|
|
|
// 金额激励阶段,
|
|
|
MoneyIncentivesStage int64 `json:"moneyIncentivesStage,string,"`
|
|
|
// 金额激励规则时间
|
|
|
MoneyIncentivesTime time.Time `json:"moneyIncentivesTime"`
|
|
|
// 推荐人抽成比例
|
|
|
ReferrerPercentage float64 `json:"referrerPercentage"`
|
|
|
// 业务员抽成比例
|
|
|
SalesmanPercentage float64 `json:"salesmanPercentage"`
|
|
|
} `json:"moneyIncentivesRules"`
|
|
|
|
|
|
// 关联用户id
|
|
|
RelationUser []int `json:"relationUser"`
|
|
|
//承接人列表
|
|
|
ContractUndertaker []struct {
|
|
|
HasReferrer bool `json:"hasReferrer"`
|
|
|
HasSalesman bool `json:"hasSalesman"`
|
|
|
UsersId int `json:"usersId,string,"`
|
|
|
ReferrerUser struct {
|
|
|
UserId int `json:"userId,string,"`
|
|
|
} `json:"referrerUser"`
|
|
|
SalesmanUser struct {
|
|
|
UserId int `json:"userId"`
|
|
|
} `json:"salesmanUser"`
|
|
|
Attachment []struct {
|
|
|
Name string `json:"name"`
|
|
|
Type string `json:"type"`
|
|
|
Url string `json:"url"`
|
|
|
FileSize int `json:"fileSize"`
|
|
|
} `json:"attachment"`
|
|
|
} `json:"contractUndertaker"`
|
|
|
}
|
|
|
|
|
|
func (updateCooperationContractCommand *UpdateCooperationContractCommand) Valid(validation *validation.Validation) {
|
|
|
validation.SetError("CustomValid", "未实现的自定义认证")
|
|
|
}
|
|
|
|
|
|
func (updateCooperationContractCommand *UpdateCooperationContractCommand) ValidateCommand() error {
|
|
|
valid := validation.Validation{}
|
|
|
b, err := valid.Valid(updateCooperationContractCommand)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
if !b {
|
|
|
for _, validErr := range valid.Errors {
|
|
|
return fmt.Errorf("%s %s", validErr.Key, validErr.Message)
|
|
|
}
|
|
|
}
|
|
|
return nil
|
|
|
} |
...
|
...
|
|