PageRenderTime 51ms CodeModel.GetById 31ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/src/com/f2c/api/FriendAPI.java

https://gitlab.com/BGCX067/f2c-svn-to-git
Java | 148 lines | 111 code | 10 blank | 27 comment | 20 complexity | 8932993dbf7ff1b7ce6bafa84333f6ec MD5 | raw file
  1. package com.f2c.api;
  2. import java.util.List;
  3. import java.util.Map;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import javax.servlet.http.HttpSession;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.slf4j.Logger;
  9. import org.slf4j.LoggerFactory;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import com.alibaba.fastjson.JSON;
  14. import com.f2c.entity.Friend;
  15. import com.f2c.entity.User;
  16. import com.f2c.service.FriendService;
  17. import com.f2c.service.UserService;
  18. import com.f2c.utils.OpenPlatform;
  19. import com.f2c.utils.ResultsUtil;
  20. /**
  21. *
  22. * 好友相关JSON接口
  23. * @author lihuan
  24. *
  25. */
  26. @Controller
  27. @RequestMapping("/f")
  28. public class FriendAPI extends BaseAPI {
  29. private static final long serialVersionUID = 1L;
  30. private static Logger logger = LoggerFactory.getLogger(UserService.class);
  31. @Autowired
  32. private FriendService friendService;
  33. /**
  34. * 添加好友
  35. * 测试地址:http://localhost:8080/f2c/f/add.json?mobile=13810554162&nickname=Li Huan
  36. * @param request
  37. * @param response
  38. * @return
  39. */
  40. @RequestMapping(value = "/add")
  41. public Map<String, Object> add(HttpServletRequest request, HttpServletResponse response){
  42. HttpSession session = request.getSession();
  43. User user = (User) session.getAttribute("loginUser");
  44. String mobile = request.getParameter("mobile");
  45. String nickname = request.getParameter("nickname");
  46. if (user == null) {
  47. return createResults(ResultsUtil.USER_LOGIN_FAILURE);
  48. }
  49. if (StringUtils.isEmpty(mobile)) {
  50. return createResults(ResultsUtil.PARAMETER_MOBILE_REQUIRE);
  51. }
  52. if (StringUtils.isEmpty(nickname)) {
  53. return createResults(ResultsUtil.PARAMETER_NICKNAME_REQUIRE);
  54. }
  55. logger.debug("添加联系人, user:[{}], mobile:[{}], nickname:[{}]", new Object[]{JSON.toJSONString(user), mobile, nickname});
  56. List<Friend> friendList = friendService.getFriendByMobile(user.getId(), mobile);
  57. if (friendList != null && friendList.size() > 0) {
  58. return createResults(ResultsUtil.FRIEND_ALREAY_EXISTS, friendList.get(0));
  59. }
  60. try {
  61. Friend friend = friendService.add(user, mobile, nickname);
  62. OpenPlatform.invite(Integer.valueOf(user.getMobileUID()), mobile);
  63. return createResults(ResultsUtil.SUCCESS, friend);
  64. } catch (RuntimeException e) {
  65. logger.error("添加联系人失败", e);
  66. return createResults(ResultsUtil.DATABASE_ERROR, e.getMessage());
  67. }
  68. }
  69. /**
  70. * 删除好友
  71. * 测试地址:http://localhost:8080/f2c/f/delete.json?f_id=3b78cb03-e022-4c7f-8105-042e1dfd1d0c
  72. * @param request
  73. * @param response
  74. * @return
  75. */
  76. @RequestMapping(value = "/delete")
  77. public Map<String, Object> delete(HttpServletRequest request, HttpServletResponse response){
  78. HttpSession session = request.getSession();
  79. User user = (User) session.getAttribute("loginUser");
  80. String fId = request.getParameter("f_id");
  81. if (user == null) {
  82. return createResults(ResultsUtil.USER_LOGIN_FAILURE);
  83. }
  84. if (StringUtils.isEmpty(fId)) {
  85. return createResults(ResultsUtil.PARAMETER_FRIENDID_REQUIRE);
  86. }
  87. logger.debug("删除联系人, user:[{}], friendUID:[{}]", new Object[]{JSON.toJSONString(user), fId});
  88. try {
  89. boolean success = friendService.deleteByID(fId);
  90. if (success) {
  91. return createResults(ResultsUtil.SUCCESS, fId);
  92. } else {
  93. return createResults(ResultsUtil.FAILED);
  94. }
  95. } catch (RuntimeException e) {
  96. logger.error("删除联系人失败", e);
  97. return createResults(ResultsUtil.DATABASE_ERROR, e.getMessage());
  98. }
  99. }
  100. /**
  101. * 修改好友信息
  102. * 测试地址:http://localhost:8080/f2c/f/update.json?f_id=xxxxxxxxxx&f_name=xxxxxxxxxxxxx
  103. * @param request
  104. * @param response
  105. * @return
  106. */
  107. @RequestMapping(value = "/update")
  108. public Map<String, Object> update(HttpServletRequest request, HttpServletResponse response){
  109. HttpSession session = request.getSession();
  110. User user = (User) session.getAttribute("loginUser");
  111. String fId = request.getParameter("f_id");
  112. String fName = request.getParameter("f_name");
  113. if (user == null) {
  114. return createResults(ResultsUtil.USER_LOGIN_FAILURE);
  115. }
  116. if (StringUtils.isEmpty(fId)) {
  117. return createResults(ResultsUtil.PARAMETER_FRIENDID_REQUIRE);
  118. }
  119. try {
  120. Friend friend = this.friendService.getFriendByID(fId);
  121. logger.debug("修改联系人信息, user:[{}], friend:[{}]", new Object[]{JSON.toJSONString(user), JSON.toJSONString(friend)});
  122. if (friend != null) {
  123. friend.setNickname(fName);
  124. boolean success = this.friendService.update(friend);
  125. if (success) {
  126. return createResults(ResultsUtil.SUCCESS, friend);
  127. } else {
  128. return createResults(ResultsUtil.FAILED);
  129. }
  130. } else {
  131. return createResults(ResultsUtil.FAILED);
  132. }
  133. } catch (RuntimeException e) {
  134. logger.error("修改联系人失败", e);
  135. return createResults(ResultsUtil.DATABASE_ERROR, e.getMessage());
  136. }
  137. }
  138. }