发表于: 2016-07-10 00:03:51
5 2450
最近4天没有写日报,补充一下:
最近几天完成的事情:
1.了解一个项目的从客户需求到发布线上的一个完整的流程,个人理解流程如下:
客户跟产品经理提出项目需求:
1) 产品经理根据与客户需求分析拆解,画出原型图。
2) 后端程序员与产品沟通根据产品的原型图,设计表,并完成项目代码。
3) 后端程序员将初步调试完成的代码,并写好接口文档,将接口提供给前端。
B) 产品经理根据客户要求与喜好将设计风格还有原型图等提供给UI设计师。
A) 产品经理根据客户要求将项目测试要求以及原型图提供给测试程序员。
4) UI设计师对项目中的图形界面进行设计,并提供给前端。
5) 前端根据UI提供的图片进行切图,并根据后端提供的接口实现页面跟数据的呈现,并提交测试程序员测试。
6) 测试程序员将bug以及页面呈现反馈给前端程序员。
7) 前端将接口以及测试反馈的问题调整调校接口,或者代码,这里可能要重复3,5,6,7步。
8) 后端将项目提交,环境从开发环境到测试环境最后到线上环境。
9) 产品经理将完成的项目提交客户,客户满意项目完成,客户不满意增加需求或者更改设计风格,重复上述过程,直到交付客户。
2.知道了公司项目在本地运行为什么要配置本地Host,我的本地host的配置如下:
1) 红框部分127.0.0.1是属于A类IP地址127保留作为本地软件环回测试本主机的进程之间的通信只用,就像项目配置tomcat或者jetty的时候localhost跟0.0.0.0(意思是本网络)还有127.0.0.1是一样的。
2) 第二行中是scallop的资源中心的配置,这个资源中心配置在IP为115.29.203.53的服务器上,需要在本地host配置一下,项目中的配置如下,在项目中只有资源中心的+端口号,项目在本地跑的话没有该资源中心需要到配置该资源的服务器去找,所以需要这样配置。其实还有一个方法,就是在http后面将scallop.resource.center配置成对应的IP地址就可以了,请教师姐加上自己整理后的原因如下:
1.1 提高代码的可读性,别人看你代码的时候知道你这个是配置的什么东西。
2.2 当该资源中心迁移的时候,在host中重新配置就可以了,不需要跑到项目中去修改代码,程序员比较忌讳修改代码......
3) common.aiyanwo.service启动是在本地启动的,所以配置在本地,因为这个项目涉及到Task8中的web端跟Service端的分离,也就是说将service端可以配置到其他的服务器上,在另外一台服务器上启动service服务,然后在本地启动web服务,这样也涉及上scallop的配置一样,service迁移的时候重新配置host就可以了。
4) 修改host文件直接改不能保存,有两种方式进行修改:
一种是将host文件复制到桌面,用记事本打开修改后保存,复制替换掉原有的host文件就可以了,host文件的地址如下:C:\Windows\System32\drivers\etc。
另一种是设置记事本为管理员权限,然后直接修改,方法参考网址:http://jingyan.baidu.com/article/0320e2c1c261011b87507b8c.html
3.根据老大的要求,将接口根据账户管理中的role_id查询账户中的id,并熟悉整个项目框架,手动书写货品管理中的获取跟更新接口,并测试成功。
1) 因为公司的代码生成只能完成简单的查询,比如根据id查询账户信息,所以完成老大的要求需要手动配置,顺序如下:
1.1 在service中新增方法:
public List<Long> getManagerIdByRoleId(Long roleId)throws ServiceException,ServiceDaoException;
1.2在client中新增方法:
@Override
public List<Long> getManagerIdByRoleId(Long roleId)throws ServiceException, ServiceDaoException{
return managerService.getManagerIdByRoleId(roleId);
1.3 在manager中的dao层新增sql语句:
<list name="getManagerIdByRoleId" sqlitem="select id from manager where role_id = ?"
keyProperty="roleId" valueProperty="id" keyColumn="roleId"/>
1.4 在controller中写代码:
/**
* 根据RID查询账户信息
* @param request
* @param response
* @param model
* @param rid
* @param page
* @param size
* @return
* @throws Exception
*/
@RequestMapping(value = "/a/u/role/{roleId}/manager",method = RequestMethod.GET)
public String getManagerIdByRoleIDJson(HttpServletRequest request,HttpServletResponse response,
ModelMap model,@PathVariable Long roleId,Integer page,Integer size) throws Exception{
log.info("get data role id="+roleId);
try{
if(page == null){
page = 1;
}
if(size == null){
size = 10;
}
int start = (page - 1)*size;
if(start<0){
start = 0;
}
List<Long> id = managerService.getManagerIdByRoleId(roleId);
model.addAttribute("code",0);
model.addAttribute("page",page);
model.addAttribute("size",size);
model.addAttribute("total",id.size());
model.addAttribute("id",id);
} catch (Throwable t){
t.printStackTrace();
log.error(t.getMessage());
log.error("get manager error,role id is "+roleId);
model.addAttribute("code",-100000);
}
return "/common-aiyanwo-service/manager/json/managerDetailJson";
}
4) 测试成功。
5) 并写好货品中的根据id查询获取货品信息,还有根据Id修改货品名称的接口,测试跑同样成功。
4.学习关联表sql语句查询。
两张表的结构如下:
role表
manager表
这两张表通过role.id关联起来了,假如我想通过manager的id等于role.id中role中name叫管理员的权限,该怎么写sql语句呢?
执行如下,manage中的id=1中对应的role_id有三个1跟他对应,所以输出了三个,这两种sql语句都可以执行,这样对数据库的兴趣更加感兴趣了。
明天计划的事情:
大师兄叫我们去唱歌,周日要浪!
遇到的问题:
1.将service层中的server.composite中的注册的rmi端口号修改为10051服务启动不起来,不知道为什么。
2.scallop是什么?有什么作用。
收获:
收获很多,实际做项目将很多知识点连接起来了,目前最大的收货是写代码,写接口,多学习列表集合等java基础语法。
评论