33import com .github .pagehelper .PageInfo ;
44import com .lzq .api .dto .AccountResult ;
55import com .lzq .api .dto .ExampleAccount ;
6+ import com .lzq .api .pojo .Account ;
7+ import com .lzq .api .pojo .Example ;
68import com .lzq .api .service .AccountResultService ;
79import com .lzq .api .service .ExampleAccountService ;
10+ import com .lzq .api .service .ExampleService ;
811import com .lzq .web .utils .JWTUtils ;
912import com .lzq .web .utils .ResultMapUtils ;
1013import io .swagger .annotations .Api ;
1518import org .springframework .data .redis .core .RedisTemplate ;
1619import org .springframework .web .bind .annotation .GetMapping ;
1720import org .springframework .web .bind .annotation .RequestMapping ;
21+ import org .springframework .web .bind .annotation .RequestParam ;
1822import org .springframework .web .bind .annotation .RestController ;
1923
2024import javax .servlet .http .HttpServletRequest ;
2832 */
2933@ Slf4j
3034@ RestController
31- @ RequestMapping ("/search " )
35+ @ RequestMapping ("/query " )
3236@ Api (value = "搜索接口" , description = "搜索接口" )
33- public class SearchController {
37+ public class QueryController {
3438
3539 @ Reference
3640 private AccountResultService accountResultService ;
3741
3842 @ Reference
3943 private ExampleAccountService exampleAccountService ;
4044
45+ @ Reference
46+ private ExampleService exampleService ;
47+
4148 @ Autowired
4249 private RedisTemplate redisTemplate ;
4350
44-
4551 /**
4652 * 根据用户名查询用户信息
4753 *
@@ -55,7 +61,6 @@ public Map<String, Object> queryByUsername(String username) {
5561 return ResultMapUtils .ResultMap (true , 0 , result );
5662 }
5763
58-
5964 /**
6065 * 获取关注列表
6166 *
@@ -65,7 +70,7 @@ public Map<String, Object> queryByUsername(String username) {
6570 */
6671 @ GetMapping ("/getFollow" )
6772 @ ApiOperation ("获取关注列表" )
68- public Map <String , Object > getFollowList (HttpServletRequest request , AccountResult result , Integer currentPage ) {
73+ public Map <String , Object > getFollowList (HttpServletRequest request , AccountResult result , @ RequestParam ( defaultValue = "1" ) Integer currentPage ) {
6974 String username = null ;
7075 PageInfo <AccountResult > list = null ;
7176 //判断用户是否登录
@@ -117,7 +122,7 @@ public Map<String, Object> getFollowList(HttpServletRequest request, AccountResu
117122 */
118123 @ GetMapping ("/getFan" )
119124 @ ApiOperation ("获取粉丝列表" )
120- public Map <String , Object > getFanList (HttpServletRequest request , AccountResult result , Integer currentPage ) {
125+ public Map <String , Object > getFanList (HttpServletRequest request , AccountResult result , @ RequestParam ( defaultValue = "1" ) Integer currentPage ) {
121126 String username = null ;
122127 PageInfo <AccountResult > list = null ;
123128 //判断用户是否登录
@@ -165,7 +170,6 @@ public Map<String, Object> getFanList(HttpServletRequest request, AccountResult
165170 return ResultMapUtils .ResultMap (true , 0 , list );
166171 }
167172
168-
169173 /**
170174 * 根据实例名查询实例
171175 *
@@ -176,7 +180,7 @@ public Map<String, Object> getFanList(HttpServletRequest request, AccountResult
176180 */
177181 @ GetMapping ("/queryByExampleName" )
178182 @ ApiOperation ("根据实例名查询实例" )
179- public Map <String , Object > queryByExampleName (HttpServletRequest request , String exampleName , Integer currentPage ) {
183+ public Map <String , Object > queryByExampleName (HttpServletRequest request , String exampleName , @ RequestParam ( defaultValue = "1" ) Integer currentPage ) {
180184 String username = null ;
181185 if (request .getHeader ("token" ) != null ) {
182186 //获取token中的用户名
@@ -188,8 +192,10 @@ public Map<String, Object> queryByExampleName(HttpServletRequest request, String
188192 List <ExampleAccount > list = pageInfo .getList ();
189193 //当用户不登陆时不需要进行任何操作查询数据直接返回
190194 if (username != null ) {
195+ //获取redis缓存中所关注的用户名列表
191196 List <String > followlist = redisTemplate .opsForList ().range (username , 0 , -1 );
192- List <String > favoriteslist = redisTemplate .opsForList ().range (username + "fav" , 0 , -1 );
197+ //获取redis缓存中所喜欢的实例id列表
198+ List <Integer > favoriteslist = redisTemplate .opsForList ().range (username + "fav" , 0 , -1 );
193199 //遍历修改数组
194200 for (ExampleAccount exampleAccount : list ) {
195201 //当该用户被当前用户关注时设置为true,否则为false
@@ -208,4 +214,37 @@ public Map<String, Object> queryByExampleName(HttpServletRequest request, String
208214 return ResultMapUtils .ResultMap (true , 0 , pageInfo );
209215 }
210216
217+ /**
218+ * 根据用户名查询全部实例
219+ *
220+ * @return
221+ */
222+ @ GetMapping ("/getExample" )
223+ @ ApiOperation ("查询个人全部实例" )
224+ public Map <String , Object > getExample (HttpServletRequest request , Account account , @ RequestParam (defaultValue = "1" ) Integer currentPage ) {
225+ String username = null ;
226+ PageInfo <Example > list ;
227+ if (request .getHeader ("token" ) != null ) {
228+ //获取token中的用户名
229+ username = JWTUtils .verify (request .getHeader ("token" ))
230+ .getClaim ("username" ).toString ();
231+ }
232+ //用户名相同则查询自己的实例,不同则查询他人的公开实例
233+ if (username .equals (account .getUsername ())) {
234+ list = exampleService .queryByAccount (account .getUsername (),currentPage );
235+ } else {
236+ //获取redis缓存中所喜欢的实例id列表
237+ List <Integer > favoriteslist = redisTemplate .opsForList ().range (username + "fav" , 0 , -1 );
238+ list = exampleService .queryByPublic (account .getUsername (),currentPage );
239+ //获取实例集合
240+ List <Example > exampleList = list .getList ();
241+ for (Example example : exampleList ) {
242+ if (favoriteslist .contains (example .getExampleId ())){
243+ example .setMyFavorites (true );
244+ }
245+ }
246+ }
247+ return ResultMapUtils .ResultMap (true , 0 , list );
248+ }
249+
211250}
0 commit comments