发表于: 2018-10-13 23:36:36

1 477


一、今天完成的事情:

1、集合基础学习

1)把数组转换成集合的好处有哪些?

a、把数组变成集合的好处是直接可以使用contains比较集合里是否包含某一元素,而不需要将数组全部遍历出来比较。例如;

List<String> list = Arrays.asList(arry);

System.out.println("Contains:"+list.contains("java001"));


b、集合直接可以将数据打印出来,可以使用集合的思想和方法操作数组中的元素,数组属于一个对象。


c、注意:将数组转换成集合后,不可以使用集合的增删方法,因为数组的长度是固定的,转换成集合后,可以使用list集合的以下方法,contains()、get()、indexOf()、subList()。


d、如果数组中的元素都是对象的话,那么转换成集合的时候,数组中的元素就直接成集合中的元素。

如果数组中的元素都是对象,那么将数组作为集合的元素存在。


2)讲集合转换成数组输出。

语法:new一个集合:ArrayList<String> al=new ArrayList<String>();

新增数据:

al.add("abc");

al.add("bcd");

al.add("cdf");


转换String[] arr = a1.toArray(new String[0]);


输出数组:System.out.println(Array.toString(arr));


转换可以修改成:String[] arr = al.roString(new String[al.size()]);

这样可以有效地避免由于取不到数据造成异常。


讲集合变成数组的好处:是为了限定对元素的操作,不能对数据进行增删,只能查询。


3)List集合

ArrayList集合中的常用语法:

retainAll();取交集

al.retainAll(al2);//取al和al2的交集,并删除al中al2中还没有的数据,al只剩下两个集合共同的数据。

al。removeAll(al2);取两个集合中的并集,并删除al中与al2中重复的数据。


迭代:

Arraylist a1=new Arrylist();

Iterator it=al.iterator();

while(it.hasNext()){

System.out.println(it,next());

}


迭代器Iterator是List集合特有的,ListIterator是Iterator的子接口。

在迭代的过程当中,不可以通过集合对象的方法操作集合的元素,因为会发生并发异常。

所以在迭代的过程当中,只能用迭代的方法操作元素,可是Iterator方法只能对元素进行判断、取出、删除的操作,如果需要对数据进行新增、修改操作的话,就需要用到Iterator的子接口,ListIterator。

具体操作方法如下:

ListIterator li=al.listerator();

while(li.hasNext()){

Object obj=li.next();

if(obj.equals("javaEE"))

li.add("小计大当家");

}



2、修改了相关表字段,在初稿中,有些表字段设计的不是很好,后续需要不断地对比原型图、需求再进一步进行确认,确保这些字段的命名符合规范、长度是否满足需求、表结构是否预留多的字段以便后续的继续拓展。

use  more_pineapple;
create table company_info(company_id bigint auto_increment primary key not null  COMMENT '公司ID',
                         company_name varchar(200) not null  COMMENT '公司名称',
   company_slogan varchar(300) not null  COMMENT '公司Slogan',
   number_of_companies bigint not null  COMMENT '公司人数',
   financing_scale int not null  COMMENT '融资规模:见约定',
   city varchar(200) not null  COMMENT '城市',
   area varchar(200) not null  COMMENT '区县',
   company_industry int not null  COMMENT '公司行业:见约定',
   company_logo varchar(200) not null  COMMENT '公司logo',
   company_profile varchar(1000) not null  COMMENT '公司简介',
   company_tag varchar(100) not null  COMMENT '公司标签',
   Is_approve int not null  COMMENT '认证状态:0:未认证 1:已认证  ',
   Is_frozen int not null  COMMENT '公司冻结状态:0:未冻结 1:已冻结',
   gmt_create long not null  COMMENT '注册时间',
   gmt_update long not null  COMMENT '更新时间',
   create_by varchar(100) not null  COMMENT '创建人',
   update_by varchar(100) not null  COMMENT '更新人')
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='公司信息表';


   use more_pineapple;
   create table company_produce(
id bigint auto_increment primary key COMMENT '产品ID',
   company_id bigint not null  COMMENT '公司id',
   produce_name varchar(100) not null  COMMENT '产品名称',
   produce_slogan varchar(100) not null  COMMENT '产品slogan',
   produce_logo varchar(100) not null  COMMENT '产品logo',
   produce_introduction varchar(100) not null  COMMENT '产品介绍',
   gmt_create long not null  COMMENT '注册时间',
   gmt_update long not null  COMMENT '更新时间',
   create_by varchar(100) not null  COMMENT '创建人',
   update_by varchar(100) not null  COMMENT '更新人 ')
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='公司产品表';

   use more_pineapple;
   create table recruiting_company_information(
id bigint auto_increment primary key not null  COMMENT '相关信息id',
   company_id bigint not null  COMMENT '公司id',
   phone varchar(100) not null  COMMENT '招聘电话',
   email varchar(100) not null  COMMENT '招聘邮件',
   adress varchar(200) not null  COMMENT '公司详细地址',
   map varchar(100) not null  COMMENT '公司地图',
   gmt_create long not null  COMMENT '注册时间',
   gmt_update long not null  COMMENT '更新时间',
   create_by varchar(100) not null  COMMENT '创建人',
   update_by varchar(100) not null  COMMENT '更新人')
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='公司招聘信息表';       



3、修改了接口文档。

3.2 找职位

3.2.1 找职位

模块名称:找职位

需求描述:
1)作为一名用户,我想通过不同标签,查看有哪些公司在招聘这些职位。
2)作为一名用户,我想通过公司搜索查询相对应的公司信息了解。
3) 作为一名用户,我想查看一下最近的推荐职位或者最新发布的8条职位信息。
4) 作为一名用户,我想看一下有哪些已经认证的公司和与其相关联的在招职位。

相关方案:

<1> 通过界面上勾选的标签,将跳转到职位搜索页,筛选的标签,同一个标签是可以多选的,也可以不选。将值封装到对象当中,传到后台,这些请求的参数都是非必填项,如果没有被勾选到的标签,默认是传null,如果全部标签都是null的话,默认返回以发布时间倒序排列的集合,每页显示10条,如果没有查找到相对应的职位,界面上返回的"暂时没有符合该搜索条件的职位",并显示4个推荐职位。这里处理前端返回的标签集合是放到in里面查询。

<2> 在公司搜索页面中,输入框中限制38个字段搜索,或者是点击相对应的标签进行结果的筛选,公司搜索标签只有所在地区、所属行业和融资规模。实现方法如职位搜索。如果没有查找到相对应的职位,界面上返回的"暂时没有符合该搜索条件的公司",并显示4个公司。这里处理前端返回的标签集合是放到in里面查询。

<3> 在推荐职位/最新职位页面,直接调用3.2.2 的接口进行结果的返回,这里需要前端将需要返回的总数据数设置为8,将查询到的相关职位以最新发布的时间的倒序进行排列,取出前面8个数据,封装好,返回给前端。

<4> 在推荐职位栏,返回一个最新认证公司,认证公司需要返回公司图片、公司id、公司名称、公司地址、公司行业类型、公司融资类型和8个未认证公司的图片,公司id,这里写一个固定的接口,直接将这个9个对象查询出来,然后封装到一个对象中返回。

<5> 在返回最新发布职位的4个认证公司的接口中,由于跟<4>小点的返回参数不一样,所以这里也是单独写一个接口连表查询,难点在于将该公司正在招聘的职位跟公司信息一起封装返回。这里需要对最新发布职位进行筛选,选出最近发布职位4家认证公司。条件为:是认证公司、最新发布职位的4家公司、并将该公司在招聘的职位封装成对象一起返回。

3.2.2 搜索公司

模块名称:搜索公司

需求描述:
1)作为一名用户,我想通过公司搜索查询相对应的公司信息了解。

相关方案:
<1> 公司搜索页面中,输入框中限制38个字段搜索,进行条件的模糊查询或者是点击相对应的标签进行结果的筛选,公司搜索标签只有所在地区、所属行业和融资规模。实现方法:将标签内所选的参数进行封装,然后将参数传到后台,放到相对应的条件中进行筛选,标签内的参数可以是多选的,除了发布时间是单选。这里是使用in函数进行查询,如果返回的参数是null的话,那就默认不对该条件进行筛选,这个使用动态数据库实现。如果没有查找到相对应的公司,界面上返回的"暂时没有符合该搜索条件的公司",并显示4个公司。这里处理前端返回的标签集合是放到in里面查询。

3.2.3 公司详情

模块名称:公司详情

需求描述:
1)作为一名用户,我想通过对公司进行更加详细的了解

相关方案:
<1>这个提供一个接口,主要是根据前端传过来公司id进行查询,返回参数有:公司id、公司名称、是否认证公司、公司slogan、公司logo、公司所在地区、公司行业、公司人数、公司标签、公司简介和公司产品,公司产品是需要单独关联公司id进行查询出来,然后封装到一个对象里面,再和公司详细信息一个封装到data对象中返回。



二、明天计划的事情:

学习hasMap和写假数据。


三、遇到的问题:

表有些字段一开始考虑得不够周全,导致后面需要一改再改


四、收获

如上


进度:任务十

任务开始时间:2018.09.19

预计demo时间:2018.11.01

禅道地址:http://task.ptteng.com/zentao/project-task-731-unclosed.html



返回列表 返回列表
评论

    分享到