TravelCommentsController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.travel.controller;
  2. import com.travel.model.Travel;
  3. import com.travel.model.TravelComments;
  4. import com.travel.service.TravelCommentsService;
  5. import com.travel.util.BeanMap;
  6. import com.travel.util.ParsingToken;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.web.bind.annotation.*;
  9. import javax.servlet.http.HttpServletRequest;
  10. import java.util.*;
  11. /**
  12. * 游记评论
  13. */
  14. @RestController
  15. @RequestMapping("comments")
  16. public class TravelCommentsController {
  17. @Autowired
  18. private TravelCommentsService travelCommentsService;
  19. /**
  20. * 新增游记评论
  21. * @param comments 参数
  22. * @param request token
  23. * @return 返回结果
  24. */
  25. @PostMapping("addComments")
  26. public Map<String, Object> addComments(@RequestBody TravelComments comments, HttpServletRequest request){
  27. Map<String, Object> map = new HashMap<>();
  28. try{
  29. //获取token
  30. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  31. comments.setCode((String) userMap.get("code"));
  32. //生成uuid
  33. String id = UUID.randomUUID().toString().replace("-", "");
  34. comments.setUuid(id);
  35. travelCommentsService.addComments(comments);
  36. map.put("msg", "200");
  37. }catch (Exception e){
  38. e.printStackTrace();
  39. map.put("msg", "500");
  40. map.put("errMsg", "服务器请求异常,请稍后再试");
  41. }
  42. return map;
  43. }
  44. /**
  45. * 删除评论
  46. * @param comments 参数
  47. * @param request token
  48. * @return 返回结果
  49. */
  50. @DeleteMapping("delComments")
  51. public Map<String, Object> delComments(TravelComments comments, HttpServletRequest request){
  52. Map<String, Object> map = new HashMap<>();
  53. try {
  54. //获取token
  55. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  56. comments.setCode((String) userMap.get("code"));
  57. //查询要删除的评论下的所有评论 并删除
  58. comments.setParentUuid(comments.getUuid());
  59. Map<String, Object> dataMap = getComments(comments, request);
  60. delCommentData((List<Map<String, Object>>) dataMap.get("data"));//删除所有子集
  61. travelCommentsService.delComments(comments);
  62. map.put("msg", "200");
  63. }catch (Exception e){
  64. e.printStackTrace();
  65. map.put("msg", "500");
  66. map.put("errMsg", "服务器请求异常,请稍后再试");
  67. }
  68. return map;
  69. }
  70. /**
  71. * 查询指定游记的所有评论
  72. * @param comments 参数
  73. * @param request token
  74. * @return 返回结果
  75. */
  76. @GetMapping("getComments")
  77. public Map<String, Object> getComments(TravelComments comments, HttpServletRequest request){
  78. Map<String, Object> map = new HashMap<>();
  79. try {
  80. //获取token
  81. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  82. comments.setCode((String) userMap.get("code"));
  83. map.put("data", recursiveComments(comments));
  84. map.put("msg", "200");
  85. }catch (Exception e){
  86. e.printStackTrace();
  87. map.put("msg", "500");
  88. map.put("errMsg", "服务器请求异常,请稍后再试");
  89. }
  90. return map;
  91. }
  92. /**
  93. * 递归查询评论
  94. * @param comments 参数
  95. * @return 返回结果
  96. */
  97. public List recursiveComments(TravelComments comments){
  98. List<TravelComments> listData = travelCommentsService.getComments(comments);
  99. // List<List<TravelComments>> list = new ArrayList<>();
  100. // for(TravelComments comments1 : listData){
  101. // List<TravelComments> list1 = new ArrayList<>();
  102. // list1.add(comments1);
  103. // List<TravelComments> listData1 = travelCommentsService.getComments(comments1);
  104. // for(TravelComments comments2 : listData1){
  105. // list1.add(comments2);
  106. // }
  107. // list.add(list1);
  108. // }
  109. return listData;
  110. }
  111. /**
  112. * 递归删除所有制定父级下的所有子集
  113. * @param list 参数
  114. */
  115. public void delCommentData(List<Map<String, Object>> list){
  116. try {
  117. for(int i = 0; i < list.size(); i++){
  118. TravelComments comments = new TravelComments().setCode((String) list.get(i).get("code")).setUuid((String) list.get(i).get("uuid")).setTravelUuid((String) list.get(i).get("travelUuid"));
  119. List<Map<String, Object>> listChildren = (List<Map<String, Object>>) list.get(i).get("children");
  120. if(listChildren.size() != 0){
  121. delCommentData(listChildren);
  122. }
  123. travelCommentsService.delComments(comments);
  124. }
  125. }catch (Exception e){
  126. e.printStackTrace();
  127. }
  128. }
  129. /**
  130. * 查询用户评论
  131. * @param request 参数
  132. * @param travelComments 参数
  133. * @return 返回结果
  134. */
  135. @GetMapping("getCommentsUser")
  136. public Map<String, Object> getCommentsUser(TravelComments travelComments, HttpServletRequest request){
  137. Map<String, Object> map = new HashMap<>();
  138. try{
  139. if(travelComments.getCode() == null){
  140. //获取token
  141. Map<String, Object> userMap = ParsingToken.tokenParsing(request);
  142. travelComments.setCode((String) userMap.get("code"));
  143. }
  144. List<Map<String, Object>> list = travelCommentsService.getCommentsUser(travelComments);
  145. Map<String, Object> mapVal = new HashMap<>();
  146. mapVal.put("list", list);
  147. mapVal.put("count", travelCommentsService.getCommentsUserCount(travelComments));
  148. mapVal.put("page", travelComments.getPage());
  149. map.put("data", mapVal);
  150. map.put("msg", "200");
  151. }catch (Exception e){
  152. e.printStackTrace();
  153. map.put("msg", "500");
  154. map.put("errMsg", "服务器请求异常,请稍后再试");
  155. }
  156. return map;
  157. }
  158. /**
  159. * 查询指定用户的互动消息
  160. * @param request token 参数
  161. * @return 返回结果
  162. */
  163. @GetMapping("getInteractiveMessage")
  164. public Map<String, Object> getInteractiveMessage(HttpServletRequest request){
  165. String code = (String)ParsingToken.tokenParsing(request).get("code");
  166. return travelCommentsService.getInteractiveMessage(code);
  167. }
  168. }