search_task.go 2.2 KB
package command

import (
	"fmt"

	"github.com/astaxie/beego/validation"
)

type SearchTaskCommand struct {
	// 公司ID
	CompanyId int64 `json:"companyId" valid:"Required"`
	// 任务发起者
	Sponsor int64 `json:"sponsor,omitempty"`
	// 任务内容匹配
	TaskContentMatch string `json:"taskContentMatch,omitempty"`
	// 任务类型
	TaskType int `json:"taskType,omitempty"`
	// 任务状态
	TaskStatus int `json:"taskStatus,omitempty"`
	// 客户价值
	CustomerValue []string `json:"customerValue,omitempty"`
	// 任务性质
	TaskNature string `json:"taskNature,omitempty"`
	// 是否悬赏任务
	IsRewardTake bool `json:"isRewardTake,omitempty"`
	// 竞标参与者UID
	Bidder int64 `json:"bidder,omitempty"`
	// 竞标时间(1全部,2已截止,3未截止)
	BidTimeMatch int `json:"bidTimeMatch,omitempty"`
	// 任务领取人
	Receiver int64 `json:"receiver,omitempty"`
	// 任务参与者
	Participator int64 `json:"participator,omitempty"`
	//是否过滤关闭状态任务
	IsFilterCloseStatus bool `json:"isFilterCloseStatus,omitempty"`
	//是否过滤待发布状态任务
	IsFilterUnReleasedStatus bool `json:"isFilterUnReleasedStatus,omitempty"`
	//按创建任务时间排序(ASC,DESC)
	SortByCreateTime string `json:"sortByCreateTime,omitempty"`
	//按发布任务时间排序(ASC,DESC)
	SortByReleaseTime string `json:"sortByReleaseTime,omitempty"`
	//按领取任务时间排序(ASC,DESC)
	SortByReceiveTime string `json:"sortByReceiveTime,omitempty"`
	//按完成任务操作时间排序(ASC,DESC)
	SortByCompleteTime string `json:"sortByCompleteTime,omitempty"`
	//按验收方验收时间排序(ASC,DESC)
	SortByAcceptanceTime string `json:"sortByAcceptanceTime,omitempty"`
	//按参与竞标时间排序(ASC,DESC)
	SortByBidTime string `json:"sortByBidTime,omitempty"`
	// 查询偏离量
	Offset int `json:"offset,omitempty"`
	// 查询限制
	Limit int `json:"limit,omitempty"`
}

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