search_task.go 2.6 KB
package command

import (
	"fmt"

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

type SearchTaskCommand struct {
	// 公司ID
	CompanyId int64 `json:"companyId" valid:"Required"`
	// 任务发起者UID
	Sponsor int64 `json:"sponsor,omitempty"`
	// 任务内容匹配
	TaskContentMatch string `json:"taskContentMatch,omitempty"`
	// 任务名称匹配
	TaskNameMatch string `json:"taskNameMatch,omitempty"`
	// 任务类型
	TaskType int `json:"taskType,omitempty"`
	// 任务类型ID列表
	TaskTypes []int `json:"taskTypes,omitempty"`
	// 任务状态
	TaskStatus int `json:"taskStatus,omitempty"`
	// 任务状态ID列表
	TaskStates []int `json:"taskStates,omitempty"`
	// 任务状态ID列表
	TaskStatuss []int `json:"taskStatuss,omitempty"`
	// 项目归属
	ProjectBelongs []int `json:"projectBelongs,omitempty"`
	// 客户价值
	CustomerValues []int `json:"customerValues,omitempty"`
	// 任务性质
	TaskNatures []int `json:"taskNatures,omitempty"`
	// 是否悬赏任务
	IsRewardTake bool `json:"isRewardTake,omitempty"`
	// 竞标参与者UID
	Bidder int64 `json:"bidder,omitempty"`
	// 竞标时间(1全部,2已截止,3未截止)
	BidTimeMatch int `json:"bidTimeMatch,omitempty"`
	// 任务领取人UID
	Receiver int64 `json:"receiver,omitempty"`
	// 任务参与者UID
	Participator int64 `json:"participator,omitempty"`
	// 指派人员UID
	AssignedPerson int64 `json:"assignedPerson,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"`
	// 查询偏离量
	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
}