1
+ package com .web .utreader ;
2
+
3
+ import java .io .IOException ;
4
+ import java .util .ArrayList ;
5
+ import java .util .Collections ;
6
+ import java .util .Comparator ;
7
+ import java .util .List ;
8
+ import java .util .logging .Logger ;
9
+
10
+ import javax .servlet .http .HttpServlet ;
11
+ import javax .servlet .http .HttpServletRequest ;
12
+ import javax .servlet .http .HttpServletResponse ;
13
+
14
+ import com .google .gson .Gson ;
15
+ import com .web .utreader .model .NewsDetails ;
16
+ import com .web .utreader .model .NewsSummary ;
17
+ import com .web .utreader .utility .CategoryInfo ;
18
+ import com .web .utreader .utility .OfyService ;
19
+ import com .web .utreader .utility .ParseUtil ;
20
+
21
+ public class GetNewsDetailsServlet extends HttpServlet {
22
+ public void doGet (HttpServletRequest req , HttpServletResponse resp )
23
+ throws IOException {
24
+ final Logger log = Logger .getLogger (GetNewsDetailsServlet .class .getName ());
25
+ int cid = Integer .parseInt (req .getParameter ("cid" ));
26
+ int sid = Integer .parseInt (req .getParameter ("sid" ));
27
+ List <CategoryInfo > infolist = OfyService .ofy ().load ().type (CategoryInfo .class ).list ();
28
+
29
+ if (infolist .isEmpty ()){
30
+ infolist .add (new CategoryInfo ((long ) 1 ));
31
+ }
32
+ if (infolist .get (0 ).getID (cid ) == 0 ){
33
+ ParseUtil .getNewsByCategory (cid ,infolist .get (0 ));
34
+ }
35
+
36
+ int endId = infolist .get (0 ).getID (cid ) - sid ;
37
+ String string = "currentIndx = " ;
38
+ for (int i = 0 ; i < infolist .get (0 ).currectIndex .length ; i ++) string +=("" +infolist .get (0 ).currectIndex [i ]+"," );
39
+ log .warning (string );
40
+ log .warning ("sid = " + sid + " endid = " + endId );
41
+
42
+
43
+ List <NewsDetails > list = OfyService .ofy ().load ().type (NewsDetails .class ).filter ("cid" , cid ).list ();
44
+ ArrayList <NewsDetails > newsDetailsList = new ArrayList <NewsDetails >();
45
+ // for (NewsDetails s:list){
46
+ //
47
+ // if (s.id < endId && s.id >= startId){
48
+ // newsDetailsList.add(s);
49
+ // if (newsDetailsList.size() == 6){
50
+ // break;
51
+ // }
52
+ // }
53
+ // }
54
+ for (NewsDetails s :list ){
55
+ if (s .id < sid || sid == 0 ){
56
+ newsDetailsList .add (s );
57
+ }
58
+ }
59
+ Collections .sort (newsDetailsList ,new Comparator <NewsDetails >(){
60
+ public int compare (NewsDetails a , NewsDetails b ){
61
+ if (a .id < b .id ){
62
+ return 1 ;
63
+ }else {
64
+ return -1 ;
65
+ }
66
+ }
67
+ });
68
+ ArrayList <NewsDetails > result = new ArrayList <NewsDetails >();
69
+ if (newsDetailsList .size () <= 6 ){
70
+ result = newsDetailsList ;
71
+ }else {
72
+ for (int i = 0 ; i < 6 ; i ++){
73
+ result .add (newsDetailsList .get (i ));
74
+ }
75
+ }
76
+ OfyService .ofy ().save ().entities (infolist ).now ();
77
+ Gson gson = new Gson ();
78
+ String json = gson .toJson (result );
79
+
80
+ resp .setContentType ("application/json" );
81
+ resp .getWriter ().print (json );
82
+
83
+ }
84
+
85
+ }
0 commit comments