众创项目首页推荐需求
需求:首页众创项目的推荐八个案例规则改变(之前需求是默认每类项目推荐两个,现在需求为四类项目推荐个数随意、总数为八个);
思路:
1、查看原有推荐如何完成
2、自己建立推荐规则——建立一个单独的表设置项目和推荐的关系(项目di和推荐时间)
3、修改每一类项目推荐的代码
4、测出新规则是否可行
第一步 查看原有页面
inc_project_wea.html——注解@CmsProjectNew——core-context-directive.xml——ProjectNewDirective.java
第二步:建立自己的规则
建立一个表——字段(id, 项目类型, 项目id, 更新时间)
第三步 修改每一类项目推荐的代码
推荐的时候,把该项目加入推荐表中并生成最新时间
取消推荐的时候,从推荐表中删除该项目
先看第一类项目的推荐
先找第一类项目推荐的页面 core/project/project_list_new
推荐controller层函数 @RequestMapping( "/projectUpdateType.do" )
项目推荐字段 visiblesort
1 修改该方法 该方法源代码 2 @RequiresPermissions( "core:project:updatetype" ) 3 @RequestMapping( "/projectUpdateType.do" ) 4 public String projectUpdateType( int projectId, int type, HttpServletRequest request, org.springframework.ui.Model modelMap ) { 5 CmsProjectNew project = cmsProjectNewService.findOne( projectId ); 6 if( project.getVisiblesort() == 0 ) { 7 project.setVisiblesort(3); 8 } 9 else { 10 project.setVisiblesort(0); 11 } 12 cmsProjectNewService.save( project); 13 return "redirect:projectNewList.do?search_EQ_type="+type; 14 } 15 16 修改之后,该方法代码 17 @RequiresPermissions( "core:project:updatetype" ) 18 @RequestMapping( "/projectUpdateType.do" ) 19 public String projectUpdateType( int projectId, int type, HttpServletRequest request, org.springframework.ui.Model modelMap ) { 20 CmsProjectNew project = cmsProjectNewService.findOne( projectId ); 21 if( project.getVisiblesort() == 0 ) { 22 project.setVisiblesort(3); 23 spsService.save(new ScProjectShow(1,projectId,new Date())); 24 } 25 else { 26 project.setVisiblesort(0); 27 List<ScProjectShow> scProjectShow = spsService.findOne(projectId, 1); 28 for(ScProjectShow sc:scProjectShow){ 29 spsService.delete(sc.getId()); 30 } 31 } 32 cmsProjectNewService.save( project); 33 return "redirect:projectNewList.do?search_EQ_type="+type; 34 } 35 36 其中dao中有个一个关键方法:利用jpa的注解方法特性 37 @Query("from ScProjectShow bean where bean.projectid=?1 and bean.type=?2") 38 public List<ScProjectShow> findOne(Integer projectid,Integer type);
剩余三类项目类似 比较省略