众创项目首页推荐需求

需求:首页众创项目的推荐八个案例规则改变(之前需求是默认每类项目推荐两个,现在需求为四类项目推荐个数随意、总数为八个);

思路:
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);

剩余三类项目类似 比较省略

 

posted @ 2016-10-24 17:49  涤新云  阅读(202)  评论(0编辑  收藏  举报