package com.fang.bbks.modules.social.rest; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.fang.bbks.common.persistence.JsonResult; import com.fang.bbks.common.utils.CookieUtils; import com.fang.bbks.common.utils.SessionUtil; import com.fang.bbks.common.utils.Validate; import com.fang.bbks.common.web.BaseController; import com.fang.bbks.common.web.BaseResponse; import com.fang.bbks.modules.social.dao.DynamicDao; import com.fang.bbks.modules.social.entity.Dynamic; import com.fang.bbks.modules.social.entity.Friend; import com.fang.bbks.modules.social.entity.Message; import com.fang.bbks.modules.social.service.DynamicService; import com.fang.bbks.modules.social.service.MessageService; import com.fang.bbks.modules.social.service.RelationService; import com.fang.bbks.modules.sys.entity.User; import com.fang.bbks.modules.sys.service.UserService; import com.google.common.collect.Lists; /** * @Intro descrption here * @author Lee [shouli1990@gmail.com] * @Version V0.0.1 * @Date 2013-12-2 * @since 下午3:26:36 */ @Controller @RequestMapping(BaseController.REST_PREFIX + "/user") public class UserRest extends BaseController { private static final Logger logger = LoggerFactory .getLogger(UserRest.class); @Autowired private UserService userService; @Autowired private DynamicService dynamicService; @Autowired private SessionUtil sessionUtil; @Autowired private RelationService relationService; @Autowired private MessageService messageService; @RequestMapping(value = { "/login" }, produces = "text/plain;charset=UTF-8") public @ResponseBody String login(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "pwd", required = true) String pwd) { JsonResult jr = new JsonResult(); try { User user = userService.signIn(name, pwd); if (user != null) { // 设置session sessionUtil.setSignInUser(request.getSession(), user); // 设置cookies CookieUtils.setUser(response, user.getUsername(), pwd, user.getId() + ""); jr.setIsSuccess(Boolean.TRUE); jr.setMessage("成功!"); jr.setObj(user); jr.setUser_id(user.getId()); } else { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("失败!"); } } catch (Exception e) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("异常!"); } return jr.toJson(jr); } @RequestMapping(value = { "/regist" }, produces = "text/plain;charset=UTF-8") public @ResponseBody String login(@RequestParam(value = "name", required = true) String name, @RequestParam(value = "email", required = true) String email, @RequestParam(value = "pwd", required = true) String pwd) { JsonResult jr = new JsonResult(); try { if (userService.isExit(name)) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("用户名被占用!"); return jr.toJson(jr); } else if (userService.isExitEmail(email)) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("邮箱被占用!"); return jr.toJson(jr); } User user = userService.signUp(name, email, pwd); if (user != null) { // 设置session sessionUtil.setSignInUser(request.getSession(), user); // 设置cookies CookieUtils.setUser(response, user.getUsername(), pwd, user.getId() + ""); jr.setIsSuccess(Boolean.TRUE); jr.setMessage("成功!"); jr.setObj(user); jr.setUser_id(user.getId()); } else { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("失败!"); } } catch (Exception e) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("异常!"); } return jr.toJson(jr); } /*** friends ****/ @RequestMapping(value = { "/friends" }, produces = "text/plain;charset=UTF-8") @ResponseBody public String getFriends( @RequestParam(value = "uid", required = true) Long uid, @RequestParam(value = "type", required = true) Integer type) { JsonResult jr = new JsonResult(); try { List<User> users = Lists.newArrayList(); if (type == 1) { users = relationService.findFloweds(uid); } else { users = relationService.findFlowings(uid); } List<Friend> fs = Friend.transfer(users); if (fs != null && !fs.isEmpty()) { jr.setIsSuccess(Boolean.TRUE); jr.setMessage("成功!"); jr.setUser_id(uid); jr.setRows(fs); } else { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("失败!"); } } catch (Exception e) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("异常!"); } return jr.toJson(jr); } /*** messages ****/ @RequestMapping(value = { "/messages" }, produces = "text/plain;charset=UTF-8") @ResponseBody public String getMessages( @RequestParam(value = "type", required = true) Integer type, @RequestParam(value = "uid", required = true) Long uid) { JsonResult jr = new JsonResult(); try { List<Message> ms = Lists.newArrayList(); if(type == 1){ ms = messageService.ISend(uid); }else if(type == 2){ ms = messageService.IRecived(uid); }else{ ms = messageService.unRead(uid); } if (ms != null && !ms.isEmpty()) { jr.setIsSuccess(Boolean.TRUE); jr.setMessage("成功!"); jr.setUser_id(uid); jr.setRows(ms); } else { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("失败!"); } } catch (Exception e) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("异常!"); } return jr.toJson(jr); } /*** dynamic ****/ @RequestMapping(value = { "/dynamics" }, produces = "text/plain;charset=UTF-8") public @ResponseBody String getDynamics( @RequestParam(value = "uid" ,required=true) Long uid, @RequestParam(value = "type" ,required=false) Integer type) { // TODO 需要对信息进行装载 JsonResult jr = new JsonResult(); try { List<Dynamic> ds = dynamicService.listDynamic(uid); if (ds != null && !ds.isEmpty()) { jr.setIsSuccess(Boolean.TRUE); jr.setMessage("成功!"); jr.setUser_id(uid); jr.setRows(ds); } else { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("失败!"); } } catch (Exception e) { jr.setIsSuccess(Boolean.FALSE); jr.setMessage("异常!"); } return jr.toJson(jr); } @RequestMapping(value = { "/dynamic/:uid" }, produces = { "application/json;charset=UTF-8" }) public @ResponseBody ResponseEntity<BaseResponse> publishDynamic( @PathVariable(value = "uid") Long uid, @RequestParam(required = true, value = "content") String content, HttpServletRequest request, HttpSession session) { try { dynamicService.publishDynamic(content, uid); return new ResponseEntity<BaseResponse>(defaultError(), HttpStatus.OK); } catch (Exception e) { return new ResponseEntity<BaseResponse>(defaultOK(), HttpStatus.OK); } } }