param_cooperation_project.go 12.4 KB
package allied_creation_cooperation

import (
	"time"

	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/util/jtime"
)

type ProjectAttachment struct {
	FileType string `json:"fileType"`
	Name     string `json:"name"`
	Url      string `json:"url"`
	FileSize int    `json:"fileSize"`
} //图片附件
type CooperationProject struct {
	Company struct {
		CompanyId   int    `json:"companyId,string,"`
		CompanyLogo string `json:"companyLogo"`
		CompanyName string `json:"companyName"`
	} `json:"company"` //项目归属企业
	Org struct {
		OrgId   int    `json:"orgId,string"`
		OrgName string `json:"orgName"`
	} `json:"org"` //项目创建时的组织
	CooperationMode struct {
		CooperationModeId     int    `json:"cooperationModeId,string"`
		CooperationModeName   string `json:"cooperationModeName"`
		CooperationModeNumber string `json:"cooperationModeNumber"`
	} `json:"cooperationMode"` //项目模式
	CooperationProjectDescription string              `json:"cooperationProjectDescription"`
	Attachment                    []domain.Attachment `json:"attachment"`
	CooperationProjectId          int                 `json:"cooperationProjectId,string,"`
	CooperationProjectName        string              `json:"cooperationProjectName"`
	CooperationProjectNumber      string              `json:"cooperationProjectNumber"`
	CooperationProjectPublishTime time.Time           `json:"cooperationProjectPublishTime"`
	CreatedAt                     time.Time           `json:"createdAt"`
	CooperationProjectPublisher   struct {
		UsersId  int `json:"userId,string"`
		UserInfo struct {
			UsersName   string `json:"userName"`
			UsersCode   string `json:"userCode"`
			UserPhone   string `json:"userPhone"`
			UserAccount string `json:"userAccount"`
		} `json:"userInfo"`
	} `json:"cooperationProjectPublisher"` //项目发布人,即操作人
	CooperationProjectSponsor struct {
		UsersId  int `json:"userId,string"`
		UserInfo struct {
			UsersName   string `json:"userName"`
			UsersCode   string `json:"userCode"`
			UserPhone   string `json:"userPhone"`
			UserAccount string `json:"userAccount"`
		} `json:"userInfo"`
	} `json:"cooperationProjectSponsor"` //项目发起人
	CooperationProjectUndertakerType []int `json:"cooperationProjectUndertakerTypes"` //共创合约承接对象,1员工,2共创用户,3公开
	Department                       struct {
		DepartmentNumber string `json:"departmentNumber"`
		DepartmentId     int    `json:"departmentId,string,"`
		DepartmentName   string `json:"departmentName"`
	} `json:"department"` //项目发起部门
	Status int `json:"status"` // 共创项目状态,1招标中,2结束
	// 可以去除勾选的共创项目承接对象列表
	UndertakerTypesUncheckedAvailable []int `json:"undertakerTypesUncheckedAvailable"`
	//	 承接人
	Applicants []struct {
		UserId     int64 `json:"userId,string"`
		UserBaseId int64 `json:"userBaseId,string"` // 用户基本id
		Org        struct {
			OrgId   int64  `json:"orgId,string"` // 组织机构ID
			OrgName string `json:"orgName"`      // 组织名称
		} `json:"org"` // 用户所属组织机构
		Department struct {
			DepartmentId     int64  `json:"departmentId,string"` // 部门ID,
			DepartmentName   string `json:"departmentName"`      // 部门名称
			DepartmentNumber string `json:"departmentNumber"`    // 部门编码
		} `json:"department"` // 用户所属的部门
		UserInfo struct {
			UserAvatar  string `json:"userAvatar"`  // 用户头像
			UserEmail   string `json:"userEmail"`   // 用户邮箱
			UserName    string `json:"userName"`    // 共创人员姓名
			UserPhone   string `json:"userPhone"`   // 用户手机号
			UserAccount string `json:"userAccount"` // 用户账号,
			UserCode    string `json:"userCode"`    //	用户编码
		} `json:"userInfo,omitempty"`
	} `json:"applicants"`
}

//创建共创项目
type (
	ReqCooperationProjectAdd struct {
		CooperationProjectDescription     string               `json:"cooperationProjectDescription"`
		CooperationProjectName            string               `json:"cooperationProjectName"`
		CooperationModeNumber             string               `json:"cooperationModeNumber"`
		PublisherUid                      int                  `json:"publisherUid,string"`
		SponsorUid                        int                  `json:"sponsorUid,string"`
		DepartmentId                      int                  `json:"departmentId"`
		CooperationProjectUndertakerTypes []int                `json:"cooperationProjectUndertakerTypes"`
		Attachment                        []*domain.Attachment `json:"attachment"`
	}

	DataCooperationProjectAdd struct {
		CooperationProject
	}
)

//返回共创项目列表
type (
	ReqCooperationProjectList struct {
	}

	DataCooperationProjectList struct {
	}
)

//返回共创项目详情
type (
	ReqCooperationProjectGet struct {
		CooperationProjectId     int
		CooperationProjectNumber string
		OrgId                    int
		CompanyId                int
	}

	DataCooperationProjectGet struct {
		CooperationProject
	}
)

//更新共创项目
type (
	ReqCooperationProjectUpdate struct {
		// 共创项目ID
		CooperationProjectId string `json:"cooperationProjectId" `
		// 共创项目名称
		CooperationProjectName string `json:"cooperationProjectName"`
		CooperationModeNumber  string `json:"cooperationModeNumber"`
		// 承接对象,1员工,2共创用户,3公开,可以多选
		CooperationProjectUndertakerTypes []int32 `json:"cooperationProjectUndertakerTypes"`
		// 共创项目发起人uid
		SponsorUid string `json:"sponsorUid"`
		// 共创项目发布人uid
		PublisherUid string `json:"publisherUid"`
		// 共创项目描述
		CooperationProjectDescription string              `json:"cooperationProjectDescription"`
		Attachment                    []domain.Attachment `json:"attachment"`
		DepartmentId                  int                 `json:"departmentId"`
	}

	DataCooperationProjectUpdate struct {
		CooperationProject
	}
)

//移除共创项目
type (
	ReqCooperationProjectRemove struct {
		CooperationProjectID int `json:"cooperationProjectId"`
	}

	DataCooperationProjectRemove struct {
	}
)

//发布共创项目
type (
	ReqCooperationProjectsRelease struct {
	}

	DataCooperationProjectsRelease struct {
	}
)

//查询共创项目
type (
	SearchCooperationProjectExtQuery struct {
		// 公司ID,通过集成REST上下文获取
		ExtCompanyId int64 `cname:"公司ID" json:"extCompanyId,omitempty"`
		// 组织机构ID
		ExtOrgId int64 `cname:"组织机构ID" json:"extOrgId,omitempty"`
		// 关联的组织机构ID列表
		ExtOrgIds []int64 `cname:"关联的组织机构ID列表" json:"extOrgIds,omitempty"`
		// 用户ID,通过集成REST上下文获取,可翻译成发起人、承接人、推荐人、业务员
		ExtUserId int64 `cname:"用户ID" json:"extUserId,omitempty"`
		// 用户基础数据id
		ExtUserBaseId int64 `cname:"用户基础数据ID" json:"extUserBaseId,omitempty"`
		// 共创项目承接对象,1员工,2共创用户,3公开,可多选
		ExtCooperationProjectUndertakerTypes []int32 `json:"extCooperationProjectUndertakerTypes"`
	}
	ReqCooperationProjectSearch struct {
		PageNumber int `json:"pageNumber"`
		PageSize   int `json:"pageSize"`
		//发起部门名称
		DepartmentName string `json:"departmentName"`
		//项目名称
		CooperationProjectName string `json:"cooperationProjectName"`
		// 共创项目状态,1招标中,2结束 0 全部
		Status int `json:"status"`
		// 关键字搜索
		Keyword string `cname:"关键字" json:"keyword"`
		// 组织机构ID
		OrgId                    int64   `cname:"组织机构ID" json:"orgId"`
		OrgIds                   []int64 `json:"orgIds"`
		CompanyId                int64   `json:"companyId"`
		CooperationProjectNumber string  `json:"cooperationProjectNumber"`
		//OffsetLimitFlag bool `json:"offsetLimitFlag"`
		// 用户基础数据id
		UserBaseId int64 `cname:"用户基础数据ID" json:"userBaseId"`
		// 共创项目承接对象,1员工,2共创用户,4公开,可以多选
		CooperationProjectUndertakerType int32 `json:"cooperationProjectUndertakerType"`
		// 额外的查询条件 0:不需要额外查询 1:额外查询
		SearchCooperationProjectExtQueriesFlag int `cname:"额外的查询条件标识" json:"searchCooperationProjectExtQueriesFlag"`
		// 额外的查询条件
		SearchCooperationProjectExtQueries []*SearchCooperationProjectExtQuery `cname:"额外的查询条件" json:"searchCooperationProjectExtQueries"`
		// 按共创项目状态排序
		SortByStatus int32 `cname:"按共创项目状态排序" json:"sortByStatus,omitempty"`
		// 是否跳过获取共创模式
		IsSkipFetchProjectModel bool `cname:"是否跳过获取共创模式" json:"isSkipFetchProjectModel,omitempty"`
	}
	DataCooperationProjectSearchItem struct {
		CooperationProjectID          string               `json:"cooperationProjectId"`
		CooperationProjectNumber      string               `json:"cooperationProjectNumber"`
		CooperationProjectDescription string               `json:"cooperationProjectDescription"`
		CooperationProjectName        string               `json:"cooperationProjectName"`
		CooperationProjectPublishTime jtime.TimeToUnixMsec `json:"cooperationProjectPublishTime"`
		CooperationProjectPublisher   struct {
			UserID     string      `json:"userId"`
			UserBaseID string      `json:"userBaseId"`
			Department interface{} `json:"department"`
			UserInfo   struct {
				UserAvatar  string `json:"userAvatar"`
				UserEmail   string `json:"userEmail"`
				UserName    string `json:"userName"`
				UserPhone   string `json:"userPhone"`
				UserAccount string `json:"userAccount"`
			} `json:"userInfo"`
		} `json:"cooperationProjectPublisher"`
		CooperationProjectSponsor struct {
			UserID     string      `json:"userId"`
			UserBaseID string      `json:"userBaseId"`
			Department interface{} `json:"department"`
			UserInfo   struct {
				UserAvatar  string `json:"userAvatar"`
				UserEmail   string `json:"userEmail"`
				UserName    string `json:"userName"`
				UserPhone   string `json:"userPhone"`
				UserAccount string `json:"userAccount"`
			} `json:"userInfo"`
		} `json:"cooperationProjectSponsor"`
		CooperationMode struct {
			CooperationModeId     int    `json:"cooperationModeId,string"`
			CooperationModeName   string `json:"cooperationModeName"`
			CooperationModeNumber string `json:"cooperationModeNumber"`
		} `json:"cooperationMode"` //项目模式
		Department struct {
			DepartmentID     string `json:"departmentId"`
			DepartmentName   string `json:"departmentName"`
			DepartmentNumber string `json:"departmentNumber"`
		} `json:"department"`
		CooperationProjectUndertakerTypes []int `json:"cooperationProjectUndertakerTypes"`
		CooperationProjectUndertakerType  []int `json:"cooperationProjectUndertakerType"`
		Org                               struct {
			OrgID   string `json:"orgId"`
			OrgName string `json:"orgName"`
		} `json:"org"`
		Attachment interface{} `json:"attachment"`
		Company    struct {
			CompanyID   string `json:"companyId"`
			CompanyLogo string `json:"companyLogo"`
			CompanyName string `json:"companyName"`
		} `json:"company"`
		Operator struct {
			UserID     string      `json:"userId"`
			UserBaseID string      `json:"userBaseId"`
			Department interface{} `json:"department"`
			UserInfo   struct {
				UserAvatar  string `json:"userAvatar"`
				UserEmail   string `json:"userEmail"`
				UserName    string `json:"userName"`
				UserPhone   string `json:"userPhone"`
				UserAccount string `json:"userAccount"`
			} `json:"userInfo"`
		} `json:"operator"`
		//OperateTime time.Time `json:"operateTime"`
		Status         int `json:"status"`
		ApplicantCount int `json:"applicantCount"` //	共创申请人计数
		//	合约计数
		ContractCount int32 `json:"contractCount"`
	}
	DataCooperationProjectSearch struct {
		List  []DataCooperationProjectSearchItem `json:"list"`
		Total int                                `json:"total"`
	}
)

//判断当前勾选的承接对象是否存在用户
type (
	ReqCooperationProjectsCheck struct {
		CooperationProjectId              int   `json:"cooperationProjectId"`
		CooperationProjectUndertakerTypes []int `json:"cooperationProjectUndertakerTypes"`
	}

	DataCooperationProjectsCheck struct {
	}
)

// 批量结束项目
type (
	ReqCooperationProjectBatchEnd struct {
		CooperationProjectIds []string `json:"cooperationProjectIds"`
	}

	DataCooperationProjectBatchEnd struct {
	}
)

// 结束项目
type (
	ReqCooperationProjectEnd struct {
		CooperationProjectId string `json:"cooperationProjectId"`
	}

	DataCooperationProjectEnd struct {
	}
)