|
@@ -16,7 +16,9 @@ import org.springframework.web.servlet.ModelAndView;
|
|
|
import org.springframework.web.servlet.view.json.MappingJacksonJsonView;
|
|
|
|
|
|
import cn.efunbox.model.Film;
|
|
|
-import cn.efunbox.service.IFilmService;;
|
|
|
+import cn.efunbox.model.Recommend;
|
|
|
+import cn.efunbox.service.IFilmService;
|
|
|
+import cn.efunbox.service.IRecommendService;
|
|
|
|
|
|
@SuppressWarnings("deprecation")
|
|
|
@Controller
|
|
@@ -27,6 +29,8 @@ public class FilmController {
|
|
|
private HttpServletRequest request;
|
|
|
|
|
|
private IFilmService filmService;
|
|
|
+ @Autowired
|
|
|
+ private IRecommendService recmdService;
|
|
|
|
|
|
public IFilmService getFilmService() {
|
|
|
return filmService;
|
|
@@ -108,9 +112,45 @@ public class FilmController {
|
|
|
|
|
|
int ret = filmService.insert(film);
|
|
|
|
|
|
+ for(int age=0;age<20;age++){
|
|
|
+ int score = initScore(film, age);
|
|
|
+ Recommend recmd = new Recommend();
|
|
|
+ recmd.setAge(age);
|
|
|
+ recmd.setCreated(curTime);
|
|
|
+ recmd.setFilm_code(film_code);
|
|
|
+ recmd.setScore(score);
|
|
|
+ recmd.setSex(1);
|
|
|
+ recmd.setType(Integer.valueOf(type));
|
|
|
+ recmdService.insert(recmd);
|
|
|
+
|
|
|
+ recmd.setSex(2);
|
|
|
+ recmdService.insert(recmd);
|
|
|
+ }
|
|
|
+
|
|
|
map.put("code", 200);
|
|
|
map.put("rows", ret);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ private int initScore(Film film, int age){
|
|
|
+ int curTime = (int)(System.currentTimeMillis()/1000);
|
|
|
+ int score = 0;
|
|
|
+ score += film.getMark_type()==1?5:0; //最多5分
|
|
|
+ score += film.getFilm_type()==1?5:0; //5
|
|
|
+ score += film.getIs_vip()==1?5:0; //5
|
|
|
+ score += 3 * Math.ceil(Float.valueOf(film.getFilm_grade()));//15
|
|
|
+ score += 2 * Math.ceil(Float.valueOf(film.getFilm_star())); //10
|
|
|
+ int ageDis = age - film.getAge_group();
|
|
|
+ if(ageDis==0)
|
|
|
+ ageDis = 1;
|
|
|
+ score += Math.ceil(30/ageDis); //30
|
|
|
+ score += Math.max(0, 15-2*Math.max(0, (curTime-film.getPublish_date())/(3600*24*365)));//15
|
|
|
+ score += Math.max(0, 15-2*Math.max(0, (curTime-film.getOnline_date())/(3600*24*365)));//15
|
|
|
+ if(score<0)
|
|
|
+ score = 0;
|
|
|
+ else if(score>100)
|
|
|
+ score = 100;
|
|
|
+
|
|
|
+ return score;
|
|
|
+ }
|
|
|
}
|