4665660c92c581801c882a22183cd6805d65ef2a.svn-base 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. package com.iamberry.app.api.controller;
  2. import static com.iamberry.app.config.Response.SUCCESS;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.WebDataBinder;
  8. import org.springframework.web.bind.annotation.InitBinder;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import org.springframework.web.bind.annotation.RequestParam;
  12. import org.springframework.web.bind.annotation.ResponseBody;
  13. import org.springframework.web.servlet.ModelAndView;
  14. import com.iamberry.app.api.util.Jdpush;
  15. import com.iamberry.app.config.Response;
  16. import com.iamberry.app.core.dto.JpushMessageDTO;
  17. import com.iamberry.app.core.entity.Message;
  18. import com.iamberry.app.core.entity.User;
  19. import com.iamberry.app.core.serch.SerchParam;
  20. import com.iamberry.wechat.core.entity.PageBean;
  21. import com.iamberry.wechat.core.entity.banner.MessageDTO;
  22. /**
  23. * MessageController
  24. *
  25. * @author lc
  26. * @date 2016年9月13日17:50:59
  27. */
  28. @Controller
  29. @RequestMapping("/secure/message")
  30. public class MessageController extends BaseController {
  31. @InitBinder("message")
  32. public void initBinderMessage(WebDataBinder binder) {
  33. binder.setFieldDefaultPrefix("message.");
  34. }
  35. /**
  36. * 查询所有消息 并分页
  37. * 2016年9月14日09:40:10
  38. * @author lc
  39. * @param page 分页信息
  40. * @return
  41. */
  42. @RequestMapping("/list")
  43. public ModelAndView getMessageList(@RequestParam(value= "pageSize",defaultValue= "15" ,required=false) Integer pageSize,
  44. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
  45. SerchParam params,
  46. HttpServletRequest request) throws Exception {
  47. StringBuffer url = new StringBuffer("/secure/message/list?pageSize=" + pageSize);
  48. ModelAndView mv = new ModelAndView("message/messageList");
  49. //String goodName = request.getParameter("goodsInfoGoodname");
  50. PageBean page = new PageBean(); //分页信息
  51. page.setPageSize(pageSize);
  52. page.setPageNumber(pageNO);
  53. if (StringUtils.isNoneEmpty(params.getTitle())) {
  54. url.append("&title=" + params.getTitle());
  55. }
  56. if (StringUtils.isNoneEmpty(params.getBeginDate())) {
  57. url.append("&beginDate=" + params.getBeginDate());
  58. }
  59. if (StringUtils.isNoneEmpty(params.getEndDate())) {
  60. url.append("&endDate=" + params.getEndDate());
  61. }
  62. if (StringUtils.isNoneEmpty(params.getUsername())) {
  63. url.append("&username=" + params.getUsername());
  64. }
  65. System.out.println(url);
  66. page.setParams(params);
  67. List<Message> messages = messageService.selectMessageRecoreds(page);
  68. url.append("&pageNO=");
  69. int count = messageService.selectMessageCount(params);
  70. int pageCount = count % page.getPageSize() == 0? count/page.getPageSize():(count/page.getPageSize())+1;
  71. //分页用
  72. mv.addObject("list", messages);
  73. mv.addObject("pageNO", pageNO);
  74. mv.addObject("url", url);
  75. mv.addObject("params", params);
  76. mv.addObject("pageSize", pageCount);
  77. return mv;
  78. }
  79. /**
  80. * 查询所有用户信息 并分页
  81. * 2016年9月14日09:40:10
  82. * @author lc
  83. * @param page 分页信息
  84. * @return
  85. */
  86. @RequestMapping("/listuser")
  87. public ModelAndView getUserList(@RequestParam(value= "pageSize",defaultValue= "15" ,required=false) Integer pageSize,
  88. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO,
  89. SerchParam params,
  90. HttpServletRequest request) throws Exception {
  91. StringBuffer url = new StringBuffer("/secure/message/listuser?pageSize=" + pageSize);
  92. ModelAndView mv = new ModelAndView("message/userList");
  93. PageBean page = new PageBean(); //分页信息
  94. page.setPageSize(pageSize);
  95. page.setPageNumber(pageNO);
  96. if (StringUtils.isNoneEmpty(params.getUsername())) {
  97. url.append("&username=" + params.getUsername());
  98. }
  99. page.setParams(params);//设置查询条件
  100. List<User> users = messageService.selectUser(page);
  101. url.append("&pageNO=");
  102. int count = messageService.selectUserCount(params);
  103. int pageCount = count % page.getPageSize() == 0? count/page.getPageSize():(count/page.getPageSize())+1;
  104. //分页用
  105. mv.addObject("memberList", users);
  106. mv.addObject("pageNO", pageNO);
  107. mv.addObject("url", url);
  108. mv.addObject("username", params.getUsername());
  109. mv.addObject("pageSize", pageCount);
  110. return mv;
  111. }
  112. /**
  113. * 进入添加页面
  114. * 2016年4月21日
  115. * @author 穆再兴
  116. * @return
  117. */
  118. @RequestMapping(value ="/insert", method = RequestMethod.GET)
  119. public ModelAndView toinsertMessage(){
  120. ModelAndView mv = new ModelAndView("message/insertMessage");
  121. return mv;
  122. }
  123. /**
  124. * 添加一个消息
  125. * 2016年9月14日09:48:12
  126. * @author lc
  127. * @return
  128. */
  129. @RequestMapping(value ="/insert", method = RequestMethod.POST)
  130. public ModelAndView insertMessage(HttpServletRequest req,Message message){
  131. ModelAndView mv = new ModelAndView("message/insertMessage");
  132. Integer n = 0;
  133. //这里判断是否需要推送,调用推送util
  134. if(message.getIs_needsend()==1){ //1需要推送,2不需要
  135. String sendresult = Jdpush.buildPushObject_all_notifi(message);
  136. message.setSend_result(sendresult);
  137. }
  138. //设置调用推送结果,
  139. n = messageService.insertMessage(message);
  140. if(n > 0){
  141. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加成功!"));
  142. }else{
  143. mv.addObject("msgObj", new MessageDTO(true, "操作结果", "添加失败!"));
  144. }
  145. return mv;
  146. }
  147. @RequestMapping(value = "/sendMessage", method = RequestMethod.GET)
  148. private ModelAndView sendMessage() {
  149. ModelAndView mv = new ModelAndView("/message/sendMessage");
  150. return mv;
  151. }
  152. /**
  153. * 发送极光推送
  154. * @param content 内容
  155. * @param tag 目标人群的标签
  156. * @param platform 平台
  157. * @return
  158. */
  159. @RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
  160. private ModelAndView sendMessage2(JpushMessageDTO jpushmessage) {
  161. ModelAndView mv = new ModelAndView("/message/sendMessage");
  162. String resultCode = Jdpush.sendmessage_jpushmessage(jpushmessage);
  163. Message message = new Message();
  164. message.setTitle(jpushmessage.getContent());
  165. message.setContent(jpushmessage.getContent());
  166. message.setUser(Long.parseLong(jpushmessage.getTag())); //tag 有规范,徐特殊处理
  167. message.setRemark(jpushmessage.getPlatform());
  168. message.setSend_result(resultCode);
  169. message.setUrl(request.getParameter("url"));
  170. //添加到数据库
  171. messageService.insertMessage(message);
  172. System.out.println(resultCode);
  173. return mv;
  174. }
  175. /**
  176. * 点击发送极光推送
  177. * @param content 内容
  178. * @return
  179. */
  180. @RequestMapping(value = "/sendMessageByid", method = RequestMethod.POST)
  181. @ResponseBody
  182. private MessageDTO sendMessageByid(@RequestParam(value = "recordId") Long recordId) {
  183. Message message = messageService.selectUserMessageByid(recordId);
  184. //修改到数据库
  185. String sendresult = Jdpush.buildPushObject_all_notifi(message);
  186. message.setSend_result(sendresult);
  187. int i = messageService.updateMessage(message);
  188. return new MessageDTO(true, "操作结果",sendresult);
  189. }
  190. /**
  191. * 获取用户已读,未读消息
  192. * @param token 用户token
  193. * @param isread 1已读,2 未读
  194. * @return 用户已读,未读的条数
  195. */
  196. @RequestMapping(value = "/select_userMessage_byisread", method = RequestMethod.POST)
  197. @ResponseBody
  198. private Response selectUserMessageByisread(@RequestParam(value = "token") String token,@RequestParam("isread") Long isread) {
  199. int messCount = messageService.selectUserMessageByisread(token,isread);
  200. if (messCount == -1){
  201. return Response.INVALID_TOKEN;
  202. }
  203. return SUCCESS.setData(messCount, messCount);
  204. }
  205. /**
  206. * 根据用户token获取用户的所有消息
  207. * @param token 用户token
  208. * @return 用户的所有消息
  209. */
  210. @RequestMapping(value = "/select_userMessage_recoreds", method = RequestMethod.POST)
  211. @ResponseBody
  212. private Response selectUserMessageRecoreds(@RequestParam(value = "token") String token) {
  213. List<Message> messages = messageService.selectUserMessageRecoreds(token);
  214. if (messages == null){
  215. return Response.INVALID_TOKEN;
  216. }
  217. return SUCCESS.setData(messages, messages.size());
  218. }
  219. /**
  220. * 根据消息id获取消息实体类--并修改为已读
  221. * @param recordId 消息实体类主键id
  222. * @return 消息实体类
  223. */
  224. @RequestMapping(value = "/select_userMessage_byid", method = RequestMethod.POST)
  225. @ResponseBody
  226. private Response selectUserMessageByid(@RequestParam(value = "recordId") Long recordId) {
  227. Message message = messageService.selectUserMessageByid(recordId);
  228. if (message == null){
  229. return Response.NOT_FOUND;
  230. }
  231. return SUCCESS.setData(message, 1);
  232. }
  233. }