syntax = "proto3";

package bxcore;
option go_package = "./bxcore";

message SearchReq {
  string appId = 1;//剑鱼默认10000
  string  userId = 2;//用户id
  string  phone = 3;//手机号
  string  newUserId = 4;//base_user_id 新用户id
  int64  entId = 5;//企业id 没有企业 企业id=0
  int64  entUserId = 6;//企业用户id  当前企业下的员工id 没有企业默认0
  int64  pageNum = 7;//当前页码
  int64  pageSize = 8;//每页数量
  string  province = 9;//省份
  string  city = 10;//城市
  string  subtype = 11;//信息类型-二级
  string  topType = 12;//信息类型-一级分类
  string  publishTime = 13;//发布时间
  string selectType = 14;//搜索范围：标题；正文等
  string  price = 15;//价格
  string industry = 16;//行业
  string buyerClass = 17;//采购单位类型
  string buyerTel = 18;//采购单位联系方式
  string winnerTel = 19;//中标单位联系方式
  string fileExists = 20;//是否有附件
  int64 searchGroup = 21;//搜索分组：默认0：全部；1：招标采购公告；2：超前项目
  int64 searchMode = 22;//搜索模式：0：精准搜索；1：模糊搜索
  int64 wordsMode = 23;//搜索关键词模式；默认0：包含所有，1：包含任意
  string keyWords = 24;//关键词：多个空格隔开（主）
  string additionalWords = 25;//关键词：附加关键词（副：五组，每组最多15个字符）
  string exclusionWords = 26;//关键词：排除词（副：五组，每组最多15个字符）
  string  userType = 27;//用户状态 fType：免费用户；pType：付费用户；vType：超级订阅用户；mType：大会员用户；eType：商机管理用户
  string  platform = 28;//请求平台
  bool  isPay = 29;//是否是付费用户
  string interceptKeyWords = 30;//关键词截取后的关键词；
  string interceptOtherWords = 31;//关键词截取后 后面三个字
  string bidField = 32;//领域化标识
  string accountId = 33; //账户id
  string positionType = 34; //职位类型 0个人 1企业
  string positionId = 35;  //职位id
  string mgoUserId = 36;  //原userId
  string limitFlag = 37; //未登录用户生成一个随机id
  bool isNew = 38;//未登录用户首次请求
}

message SearchResp {
  int64 err_code = 1;
  string err_msg = 2;
  SearchData data = 3;
}
message SearchData {
  int64 count = 1;//返回数据量
  string keyWords = 2;//关键词
  int64  isLimit = 3;//全文检索限制//限制正文、附件查询 //return 1 正常 //return -1 抱歉！由于系统繁忙暂时无法进行搜索，请1分钟后再试！ //return -2 抱歉！由于系统繁忙暂时无法进行搜索，请稍后再试！
  repeated string historyKeys = 4;//历史搜索关键词
  repeated SearchList list = 5;//搜索列表
  int64 total = 6;//查询总结果数量
  string remark = 7;//备注
  int64 interceptLimit = 8;//关键词截取长度
  string interceptOtherWords = 9;//关键词截取剩余关键词
  string interceptKeyWords = 10;//关键词截取后的关键词
}

message  SearchList {
  string id = 1;//信息id
  string area = 2;//地区
  string areaUrl = 3;//地区标签地址
  string buyerClass = 4;//采购单位类型
  string city = 5;//城市
  string detail = 6;//正文搜索内容
  string industry = 7;//行业标签
  string industryUrl = 8;//行业标签地址
  int64  publishTime = 9;//发布时间
  bool   fileExists = 10;//是否有附件
  string subtype = 11;//信息类型
  string subtypeUrl = 12;//信息类型标签地址
  string title = 13;//标题
  bool   isCollected = 14;//信息是否被收藏
  string projectName = 15;//项目名称
  string projectCode = 16;//项目代码
  int64  budget = 17;//预算
  int64  bidAmount = 18;//中标金额
  string buyer = 19;//采购单位
  string buyerTel = 20;//采购单位联系电话
  string buyerPerson = 21;//采购单位联系人
  string agency = 22;//代理机构
  string agencyPerson = 23;//代理机构联系人
  string agencyTel = 24;//代理机构联系电话
  repeated WinnerInfo winnerInfo = 25;//中标企业信息
  int64 bidOpenTime = 26;//开标时间
  int64 signEndTime = 27;//报名截止时间
  int64 bidEndTime = 28;//投标截止时间
  string site = 29;//网站名称
  string spiderCode = 30;//网站代码
  PInfo  projectInfo = 31;//拟建项目信息
  string winner = 32;//中标企业
}
//
message WinnerInfo{
  string winner = 1;
  string winnerTel = 2;
  string winnerPerson = 3;
  string winnerId = 4;
}
//
message PInfo {
  string approveCode = 1;//项目代码
  string approveContent = 2;//项目内容
  string approveDept = 3;//审批部门
  string approveStatus = 4 ;//审批状态
  string approveTime = 5;//审批时间
  string projectType = 6;//审批类型
  string approveNumber = 7;//
}
//
message SearchLimitReq {
  string appid = 1;
  int64  timeOut = 2;
  int64  count = 3;
  int64  flag = 4;
  int64  percentage = 5;
  string userId = 6;
  string searchType = 7;
}
//
message SearchLimitResp {
  int64 err_code = 1;
  string err_msg = 2;
  string data = 3;
}
// 列表数据参标信息请求参数
message ParticipateShowReq{
  string ids = 1; // 标讯id  逗号分割
  int64  entId = 2;//企业id
  int64  entUserId = 3;// 企业下用户id
  int64  positionId = 4; // 职位id
  int64  positionType = 5;// 职位类型 0个人 1企业
  string mgoUserId = 6;  //原userId
  string appId = 7;//剑鱼默认10000
  string userId = 8;//用户id
  int64 newUserId = 9;//base_user_id 新用户id
  int64 accountId = 10; //账户id
  int64 entAccountId = 11;//企业账户id
  string phone = 12 ;// 手机号
}

// 列表数据参标信息返回值
message ShowInfo{
  string id = 1;// 标讯id
  int64 value = 2; // 按钮显示值：0-参标   1- 已参标
}
message ParticipateShowRes{
  int64 err_code = 1;
  string err_msg = 2;
  repeated ShowInfo data = 3;
}
// 详情页参标信息请求参数
message ParticipateInfoReq{
  string sid = 1; // 标讯id
  int64  entId = 2;//企业id
  int64  entUserId = 3;// 企业下用户id
  int64  positionId = 4;// 职位id
  int64  positionType = 5;// 职位类型 0个人 1企业
  string mgoUserId = 6;  //原userId
  string appId = 7;//剑鱼默认10000
  string userId = 8;//用户id
  int64 newUserId = 9;//base_user_id 新用户id
  int64 accountId = 10; //账户id
  int64 entAccountId = 11;//企业账户id
  string phone = 12 ;// 手机号

}
// 详情页参标信息返回值
message ParticipateDetailInfo{
  bool showParticipate = 1;// 是否显示参标按钮  true-显示  false-不显示
  bool showStopParticipate = 2;//
  bool showTransfer = 3;// 转给同事按钮是否展示：true-展示 false-不展示
  string userName = 4;//参标人姓名 逗号分割
  string projectId = 5;// 项目id
  int64 bidEndTime = 6 ;// 投标截止时间
  int64 currentTime = 7 ;// 服务器当前时间
  bool  showUpdate = 8;// 当前用户能否更新  true 显示更新模块

}
message ParticipateInfoRes{
  int64 err_code = 1;
  string err_msg = 2;
  ParticipateDetailInfo data = 3;
}
// 投标状态更新请求参数
message UpdateBidStatusReq{
  int64  bidType = 1; // 投标类型 1-直接投标 2-渠道投标
  repeated string bidStage = 2;// 投标项目阶段 ["未报名","已报名"...]
  int64 isWin = 3;// 是否中标 0-未选择 1-是 2-否
  string channelName = 4; // 渠道名称
  string channelPerson = 5; // 联系人
  string channelPhone = 6; //联系电话
  string winner = 7;// 中标单位
  string sid = 8;// 标讯id
  int64  entId = 9;//企业id
  int64  entUserId = 10;// 企业下用户id
  int64  positionId = 11; // 职位id
  int64  positionType = 12;// 职位类型 0个人 1企业
  string mgoUserId = 13;  //原userId
  string appId = 14;//剑鱼默认10000
  string  userId = 15;//用户id
  int64  newUserId = 16;//base_user_id 新用户id
  int64 accountId = 17; //账户id
  int64 entAccountId = 18;//企业账户id
  string phone = 19 ;// 手机号

}
// 投标状态更新返回值
message UpdateBidStatusRes{
  int64 err_code = 1;
  string err_msg = 2;
  bool data = 3;
}

// 获取投标状态信息
message ParticipateContentReq{
  string sid = 1; // 标讯id
  int64  entId = 2; //企业id
  int64  entUserId = 3; // 企业下用户id
  int64  positionId = 4; // 职位id
  int64  positionType = 5;// 职位类型 0个人 1企业
  string mgoUserId = 6;  //原userId
  string appId = 7;//剑鱼默认10000
  string  userId = 8;//用户id
  int64  newUserId = 9;//base_user_id 新用户id
  int64 accountId = 10; //账户id
  int64 entAccountId = 11;//企业账户id
  string phone = 12 ;// 手机号

}

// 获取投标状态信息结果
message ParticipateContentData{
  int64  bidType = 1; // 投标类型 1-直接投标 2-渠道投标
  repeated string bidStage = 2;// 投标项目阶段 ["未报名","已报名"...]
  int64 isWin = 3;// 是否中标 0-未选择 1-是 2-否
  string channelName = 4; // 渠道名称
  string channelPerson = 5; // 联系人
  string channelPhone = 6; //联系电话
  string winner = 7;// 中标单位
}

message ParticipateContentRes{
  int64 err_code = 1;
  string err_msg = 2;
  ParticipateContentData data = 3;
}
// 参标操作记录请求参数
message ParticipateRecordsReq{
  int64  page = 1;// 页码
  int64  pageSize = 2;// 每页条数
  string sid = 3; // 标讯id
  int64  entId = 4; //企业id
  int64  entUserId = 5; // 企业下用户id
  int64  positionId = 6; // 职位id
  int64  positionType = 7;// 职位类型 0个人 1企业
  string mgoUserId = 8;  //原userId
  string appId = 9;//剑鱼默认10000
  string  userId = 10;//用户id
  int64  newUserId = 11;//base_user_id 新用户id
  int64  accountId = 12; //账户id
  int64 entAccountId = 13;//企业账户id
  string phone = 14 ;// 手机号

}
// 参标操作记录返回
message ParticipateRecords{
  string recordsData = 1; // 操作记录
  string updateDate = 2;  // 更新时间
  string updatePerson = 3; // 更新人
  int64  recordType = 4;  // 操作记录类型 默认0：参标、划转、取消参标；1：投标状态更新存储
}
message ParticipateRecordsData {
  repeated ParticipateRecords list = 1; // 操作记录
  int64 total = 2 ;
}
message ParticipateRecordsRes{
  int64 err_code = 1;
  string err_msg = 2;
  ParticipateRecordsData data = 3;
}
// 当前部门/企业下参标人员信息
message ParticipatePersonsReq{
  int64  entId = 1; //企业id
  int64  entUserId = 2; // 企业下用户id
  int64  positionId = 3; // 职位id
  int64  positionType = 4;// 职位类型 0个人 1企业
  string mgoUserId = 5;  //原userId
  string appId = 6;//剑鱼默认10000
  string  userId = 7;//用户id
  int64  newUserId = 8;//base_user_id 新用户id
  int64 accountId = 9; //账户id
  string projectId = 10; //项目id  移动端需要
  int64 entAccountId = 11;//企业账户id
  string phone = 12 ;// 手机号

}

message ParticipatePerson{
  string id = 1;
  string name = 2;//项目名称
  int64  pid = 3;//父级id
  int64  power = 4;//是否有权限
  string phone = 5;//手机号
  string role = 6;//角色
  int64  isPart = 7;//当前项目是否参标
  repeated ParticipatePerson users = 8;//人员
}

message ParticipatePersonsRes{
  int64 err_code = 1;
  string err_msg = 2;
  repeated ParticipatePerson data = 3;
}
//
message ParticipateSetUpInfoReq{
  int64  entId = 1; //企业id
  int64  entUserId = 2; // 企业下用户id
  int64  positionId = 3; // 职位id
  int64  positionType = 4;// 职位类型 0个人 1企业
  string mgoUserId = 5;  //原userId
  string appId = 6;//剑鱼默认10000
  string  userId = 7;//用户id
  int64  newUserId = 8;//base_user_id 新用户id
  int64 accountId = 9; //账户id
  string  setAction = 10;//请求动作：U：更新，默认空
  string  isAllow = 11;//是否允许多人参标
  repeated BidTypeReq bidType = 12;
  repeated RemindRuleReq remindRule = 13;
  string  necessaryField = 14;//必填字段
  int64 entAccountId = 15;//企业账户id
  string phone = 16 ;// 手机号

}

message  BidTypeReq{
  string name = 1;//直接投标；渠道投标
  repeated string content = 2;//投标项目阶段内容
}
//消息提醒设置：
message  RemindRuleReq{
  string bidState = 1; //投标规则类型；0：直接投标；1：渠道投标；
  int64 remainder = 2;//距离投标截止日期需要多久开始提醒 单位h
  string node = 3;//那个节点进行消息提醒；和投标项目阶段绑定
}
//设置信息内容
message ParticipateSetUpInfo{
  int64  isAllow = 1;//是否允许多人参标  默认0 开启是1
  repeated BidTypeReq bidType = 2;
  repeated RemindRuleReq remindRule = 3;
  string necessaryField = 4;//必填字段
  int64 isShow = 5;//是否有权限展示 默认是-1；企业管理员有权限展示：1
}
//设置信息范围内容
message ParticipateSetUpInfoRes{
  int64 err_code = 1;
  string err_msg = 2;
  ParticipateSetUpInfo data = 3;
}
//
message ParticipateActionReq{
  int64  entId = 1; //企业id
  int64  entUserId = 2; // 企业下用户id
  int64  positionId = 3; // 职位id
  int64  positionType = 4;// 职位类型 0个人 1企业
  string mgoUserId = 5;  //原userId
  string appId = 6;//剑鱼默认10000
  string  userId = 7;//用户id
  int64  newUserId = 8;//base_user_id 新用户id
  int64 accountId = 9; //账户id
  string  bidIds = 10;//招标信息id
  string  toEntUserId = 11;//划转对象的企业用户id
  bool isRetain = 12;//是否保留原跟踪人
  string actionType = 13;//in:参标；out:终止参标；transfer:划转
  string projectIds = 14;//项目ids 多个,号隔开
  int64 entAccountId = 15;//企业账户id
  string phone = 16 ;// 手机号

}
//
message ParticipateActionRes{
  int64 err_code = 1;
  string err_msg = 2;
  bool data = 3;
}
message ParticipateListReq{
  int64 entId = 1; //企业id
  int64 entUserId = 2; // 企业下用户id
  int64 positionId = 3; // 职位id
  int64 positionType = 4;// 职位类型 0个人 1企业
  string identity = 5;//我的：mine；企业：ent
  string area = 6; //省份
  string city = 7; //城市
  string bidTime = 8;//招标日期：开始时间-结束时间
  string bidEndTime = 9;//投标截止日期：格式同上
  string bidOpenTime = 10;//开标时间：格式同上
  int64 bidEndStatus = 11;//投标截止状态：1：未截止；2：已截止；3：终止参标
  int64 bidOpenStatus = 12;//开标状态：1：已开标；2：未开标
  string keywords = 13;//查询项目名称 关键词；多个空格隔开
  string entUserIds = 14;//企业参标人企业用户id集合，多个,号隔开
  int64 pageSize = 15;//每页数据量
  int64 pageNum = 16;//当前页码
  string mgoUserId = 17;  //原userId
  string appId = 18;//剑鱼默认10000
  string  userId = 19;//用户id
  int64  newUserId = 20;//base_user_id 新用户id
  int64 accountId = 21; //账户id
  int64 orderNum = 22;//排序：0:投标截止日期正序、1:开标时间正序、2:更新状态时间倒叙
  int64 entAccountId = 23;//企业账户id
  string phone = 24 ;// 手机号

}
//参标列表
message  ParticipateList{
  string id = 1;//项目id
  string projectName = 2;//项目名称
  string buyer = 3;//采购单位
  string budget = 4;//预算
  string participants = 5;//参标人 多个,号隔开
  int64 bidTime = 6;//招标日期
  int64 bidEndTime = 7;//投标截止日期
  int64 bidOpenTime = 8;//投标截止日期
  int64 updateStatusTime = 9;//更新状态时间
  string updateStatusCon = 10;//投标状态更新
  int64 state = 11;//当前项目 针对 当前企业是否是终止参标状态；默认0：正在参标；-1：终止参标
  bool beTransferred = 12;//当前项目是否能划转 默认false
}
message  ParticipateData{
  int64 nowTime = 1;//当前系统时间
  bool isAllow = 2;//是否允许多人参标
  int64 count = 3;
  repeated ParticipateList list = 4;
}
message ParticipateListRes{
  int64 err_code = 1;
  string err_msg = 2;
  ParticipateData data = 3;
}
message StatisticsListReq{
  int64  entId = 1; //企业id
  int64  entUserId = 2; // 企业下用户id
  int64  positionId = 3; // 职位id
  repeated string  entUserIdArr = 4; //人员选择
  int64  deptId = 5; //部门id
  int64 startTime = 6;
  int64 endTime = 7;
}
message PushStatisticsDataRes{
  int64 err_code = 1;
  string err_msg = 2;
  repeated PushStatisticsData data = 3;
}
message PushStatisticsData{
  string  personName = 1;
  string  departmentName = 2;
  int64   pushNumb = 3;//订阅数量
  int64   participateNumb = 4;//参标数量
  int64   bidNumb = 5;//投标数量
  int64   winNumb = 6;//中标数量
  int64   browseNumb = 7;//浏览数量
  string  entUserId=8;
}
message ProjectStatisticsDataRes{
  int64 err_code = 1;
  string err_msg = 2;
  repeated ProjectStatisticsData data = 3;
}
message ProjectStatisticsData{
  string  personName = 1;
  string  departmentName = 2;
  int64   bidNumb = 3; //投标数量
  int64   directBidNumb = 4; //直接投标数
  int64   channelBidNumb = 5; //渠道投标数
  int64   winNumb = 6; //中标数量
  int64   directWinNumb = 7; //直接中标数
  int64   channelWinNumb = 8; //渠道中标数
  int64   notBidNumber = 9; //未中标数量
  int64   endNumb = 10; //终止数量
  string  entUserId=11;
}
//
service BxCore {
  //标讯搜索结果列表数据
  rpc GetSearchList(SearchReq) returns(SearchResp);
  //标讯搜索限制内容
  rpc SearchLimit(SearchLimitReq) returns(SearchLimitResp);
  // 列表数据参标信息接口
  rpc ParticipateShow(ParticipateShowReq) returns(ParticipateShowRes);
  // 详情页参标信息接口
  rpc ParticipateInfo(ParticipateInfoReq) returns(ParticipateInfoRes);
  //  投标状态更新
  rpc UpdateBidStatus(UpdateBidStatusReq) returns(UpdateBidStatusRes);
  // 获取投标状态信息
  rpc ParticipateContent(ParticipateContentReq) returns(ParticipateContentRes);
  // 参标操作记录
  rpc ParticipateRecords(ParticipateRecordsReq) returns (ParticipateRecordsRes);
  // 当前部门/企业下参标人员信息
  rpc ParticipatePersons(ParticipatePersonsReq) returns (ParticipatePersonsRes);
  // 参标设置信息
  rpc ParticipateSetUpInfo(ParticipateSetUpInfoReq) returns (ParticipateSetUpInfoRes);
  // 项目参标 终止参标 划转等动作
  rpc ParticipateAction(ParticipateActionReq) returns (ParticipateActionRes);
  // 我的参标项目列表|企业参标项目列表
  rpc ParticipateList(ParticipateListReq) returns (ParticipateListRes);
  //推送参标统计
  rpc PushStatistics(StatisticsListReq) returns (PushStatisticsDataRes);
  //参标项目统计
  rpc ProjectStatistics(StatisticsListReq) returns (ProjectStatisticsDataRes);
}
