发表于: 2017-08-18 23:20:27

2 905


今天完成的事情:

1.调了后台的接口,并测试

2.修改了一下前台的职位搜索的接口,将之前的返回参数类型修改了一下

// 最终返回的职位、公司、标签对象集合
List<Map<String, Object>> positionDataList = new ArrayList<>();

//查询返回职位列表
List<Position> positionList = positionService.getObjectsByIds(ids);
log.info("------------>positionlist="+positionList);

//通过职位列表获取公司ID列表,并去重
Set<Long> cIds = new HashSet<Long>();

for (Position positions : positionList) {
cIds.add(positions.getCid());
}
log.info("==========>cIds="+cIds);
//获取公司列表只能通过List,不能通过set
List<Long> cIdList = new ArrayList<Long>();
for (Long c_id : cIds) {
cIdList.add(c_id);
}
log.info("======>cIdList="+cIdList);
List<Company> companyList = companyService.getObjectsByIds(cIdList);
log.info("============>companyList="+companyList);
Map idCompanyMap = MyListUtil.convert2ListMap(Company.class.getDeclaredField("id"), companyList);

//通过公司id获取公司的标签list
List<Label> labelList = labelService.getObjectsByIds(cIdList);
Map companyLabelMap = MyListUtil.convert2ListMap(Label.class.getDeclaredField("cId"), labelList);


Map<Long, String> cidlabel = new HashMap<>();
for (Label label : labelList) {
Long labelCid = label.getCid();
String labels = label.getLabel();
cidlabel.put(labelCid,labels);
}

List<String> labellist = null;
for (Position position : positionList) {
Map<String,Object> positionDataMap = new HashMap<>();
//获取公司id
  Long positionCid = position.getCid();
positionDataMap.put("positionId",position.getId());
positionDataMap.put("positionCid",position.getCid());
positionDataMap.put("positionName",position.getName());
positionDataMap.put("positionExperience",position.getExperience());
positionDataMap.put("positionEducation",position.getEducation());
positionDataMap.put("positionPublish",position.getPublishAt());
positionDataMap.put("positionSalary",position.getSalary());

ArrayList<Company> companies = (ArrayList<Company>) idCompanyMap.get(positionCid);
Company company = companies.get(0);
positionDataMap.put("cId", position.getCid());
positionDataMap.put("companyCity", company.getCity());
positionDataMap.put("companyName", company.getName());
positionDataMap.put("companyLogo", company.getLogo());
positionDataMap.put("companyProvince", company.getProvinces());
positionDataMap.put("companyCounty", company.getCounty());
positionDataMap.put("companyIndustry", company.getIndustry());


List<Label> labels = (List<Label>) companyLabelMap.get(positionCid);
labellist = new ArrayList<>();
if (null != labels && labels.size() > 0) {
for (Label label : labels) {

Long lid = label.getId();
String labelName = cidlabel.get(lid);
labellist.add(labelName);

}
}

positionDataMap.put("companyTags", labellist);
positionDataList.add(positionDataMap);

}

差不多将,公司列表,职位列表,还偶遇一个公司标签的二维数组放到一个list中,对象中都由companyid来约束。


明天计划的事情:

测完接口,改完接口文档。


遇到的问题:

上面的代码中还有一点问题。还需要测试修改


总结:

之前都是为了面试刷题目,现在又开始写起了接口来了。真的是。。。。好怀恋。。








返回列表 返回列表
评论

    分享到