create_dividends_order.go 2.1 KB
package command

import (
	"fmt"
	"strconv"

	"github.com/beego/beego/v2/core/validation"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"
)

type CreateDividendsOrderCommand struct {
	//操作人
	Operator domain.Operator `json:"-"`
	//客户名称
	CustomerName string `json:"customerName" valid:"Required"`
	//分红订单原单号
	DividendsOriginalOrderNum string `json:"dividendsOriginalOrderNum" valid:"Required"`
	//订单产生时间 时间戳 毫秒
	OrderTime int64 `json:"orderTime" valid:"Required"`
	//备注
	Remarks string `json:"remarks" valid:"Required"`
	//订单操作人uid
	OperatorUid string `json:"operatorUid"`
	//区域名称
	RegionName string `json:"regionName"`
	//订单产品列表
	OrderGoods []struct {
		CooperationContractNumber string  `json:"cooperationContractNumber"` //关联的共创合约编号
		DividendsOrderNumber      string  `json:"dividendsOrderNumber"`      //关联分红订单号
		OrderGoodAmount           float64 `json:"orderGoodAmount"`           //订单产品金额
		OrderGoodExpense          float64 `json:"orderGoodExpense"`          //订单产品费用
		OrderGoodName             string  `json:"orderGoodName"`             //订单产品名称
		OrderGoodPrice            float64 `json:"orderGoodPrice"`            //订单产品单价
		OrderGoodQuantity         int     `json:"orderGoodQuantity"`         //订单产品数量
	} `json:"orderGoods"`
}

func (createDividendsOrderCommand *CreateDividendsOrderCommand) Valid(validation *validation.Validation) {
	// 162 92522 89000
	orderTimeStr := strconv.Itoa(int(createDividendsOrderCommand.OrderTime))
	orderTimeStrRune := []rune(orderTimeStr)
	if len(orderTimeStrRune) != 13 {
		validation.AddError("订单产生时间", "格式错误")
	}
}

func (createDividendsOrderCommand *CreateDividendsOrderCommand) ValidateCommand() error {
	valid := validation.Validation{}
	b, err := valid.Valid(createDividendsOrderCommand)
	if err != nil {
		return err
	}
	if !b {
		for _, validErr := range valid.Errors {
			return fmt.Errorf("%s  %s", validErr.Key, validErr.Message)
		}
	}
	return nil
}