package com.xiaozhi.blog.web.manager;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.tianji.test.core.redis.LoginHelper;
import com.xiaozhi.blog.formbean.UserForm;
import com.xiaozhi.blog.img.ImageService;
import com.xiaozhi.blog.service.UserService;
import com.xiaozhi.blog.utils.FileUtil;
import com.xiaozhi.blog.vo.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
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 org.springframework.web.multipart.MultipartFile;
@Controller
@RequestMapping("/user/")
public class UserInfoManageController {
private static Log logger = LogFactory.getLog(UserInfoManageController.class);
@Autowired
private UserService userService;
@Autowired
private ImageService imageService;
/**
* 编辑用户信息表单
* @param model
* @return
*/
@RequestMapping("showedituser")
public String showeditUser(Model model) {
User user =userService.getUserById(LoginHelper.getUserId());
if(logger.isDebugEnabled())logger.debug("#########################"+user.toString());
model.addAttribute("user", user);
return "/manage/showedituser";
}
/**
* 用户信息提交
* @param company
* @param school
* @param model
* @return
*/
@RequestMapping("edituser")
public String editUser(UserForm userForm, Model model) {
if(logger.isDebugEnabled())logger.debug("=====================>userForm :"+userForm.toString());
String uid =LoginHelper.getUserId();
userService.editUser(uid, userForm);
User user = userService.getUserById(uid);
model.addAttribute("user", user);
return "/manage/showedituser";
}
@RequestMapping("userPortrait")
public String userPortrait( HttpServletRequest request,Model model) {
String uid =LoginHelper.getUserId();
model.addAttribute("user", userService.getUserById(uid));
model.addAttribute("sessionId", request.getSession().getId());
return "/manage/portrait";
}
/**
* 头像上传原始图片
* @param model
* @param logo
* @param resquest
* @return
*/
@RequestMapping(method = RequestMethod.POST,value="upload")
public @ResponseBody String uploadOriginalImage(ModelMap model,@RequestParam("filename") MultipartFile logo,HttpServletRequest resquest ) {
try {
int originalwidth = FileUtil.getImageWidth(logo.getInputStream());
String url=this.imageService.uploadOriginalFileHandle(logo.getBytes(), LoginHelper.getUserId(), logo.getOriginalFilename(),originalwidth);
return url;
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return "null";
}
/**
* 头像裁剪并压缩生成大小两张头像图片
* @param model
* @param logo
* @param resquest
* @return
*/
@RequestMapping(method = RequestMethod.POST,value="portraithandle")
public String portraitHandle(
@RequestParam(value="width",required=false,defaultValue="0") int width,
@RequestParam(value="heigth",required=false,defaultValue="0") int heigth,
@RequestParam(value="x",required=false,defaultValue="0") int x,
@RequestParam(value="y",required=false,defaultValue="0") int y,
@RequestParam(value="url",required=false) String url,HttpServletRequest resquest) {
try {
String uid=LoginHelper.getUserId();
String name=this.imageService.ProHandle(uid, url.substring(url.lastIndexOf("/")), width, heigth, x, y);
if(name!=null)this.userService.editPortrait(url.substring(0,url.lastIndexOf("/")+1)+name, uid);
return "redirect:/user/userPortrait";
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "null";
}
}