package com.kingschan.blog.controller.admin;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.kingschan.blog.model.vo.UserVo;
import com.kingschan.blog.po.User;
import com.kingschan.blog.services.impl.UserServiceImpl;
import com.kingschan.blog.util.BlogUtil;
/**
* 用户业务处理控制器
* @author kingschan
*2016-11-11
*/
@Controller
@RequestMapping("/admin")
public class UserController {
private static Logger log = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserServiceImpl user_serv;
/**
* 修改密码
* @param request
* @param newpsw
* @param oldpsw
* @return
*/
@ResponseBody
@RequestMapping("/modify_psw")
public String modifyPsw(HttpServletRequest request,String newpsw,String oldpsw){
BlogUtil bu = new BlogUtil(request);
String msg="success";
try {
int affected=user_serv.modifyPsw(oldpsw, newpsw, bu.getCurrentUser().toUser());
if (affected==0) {
msg="更新失败!";
}else{
User u = user_serv.getUser(bu.getCurrentUser().getId());
UserVo user = new UserVo();
BeanUtils.copyProperties(u, user);
request.getSession().setAttribute(BlogUtil.CURRENT_USER, user);
}
} catch (Exception e) {
msg=e.getMessage();
}
return msg;
}
/**
* 用户个人信息加载
* @param req
* @return
*/
@RequestMapping("/profile.do")
public ModelAndView profile(HttpServletRequest req) {
String userid=new BlogUtil(req).getCurrentUser().getId();
ModelAndView mav = new ModelAndView("/admin/profile");
try {
User user= user_serv.getUser(userid);
mav.addObject("u", user);
} catch (Exception e) {
e.printStackTrace();
}
return mav;
}
/**
* 保存个人信息
* @param request
* @param u
* @param attr
* @return
*/
@RequestMapping("/savePorfile")
public String modifyPsw(HttpServletRequest request,@ModelAttribute UserVo u,RedirectAttributes attr){
BlogUtil bu = new BlogUtil(request);
String msg="success";
try {
u.setId(bu.getCurrentUser().getId());
user_serv.saveUser(u);
} catch (Exception e) {
log.error("savePorfile",e);
e.printStackTrace();
msg=e.getMessage();
}
attr.addFlashAttribute("msg", msg);
return String.format("redirect:%s", "/admin/profile.do");
}
@RequestMapping("/upload-profile")
@ResponseBody
public String uploadProfile(HttpServletRequest request,String base64){
BlogUtil bu = new BlogUtil(request);
String str=null;
try {
str=user_serv.uploadProfile(bu.getCurrentUser().getId(), base64);
// bu.getCurrentUser().setSinaProfileImgS(str);
// bu.getCurrentUser().setSinaProfileImgL(str);
} catch (Exception e) {
str="error";
e.printStackTrace();
}
return str;
}
}