package me.jcala.blog.controller.admin;
import me.jcala.blog.domain.Info;
import me.jcala.blog.service.inter.BlogSer;
import me.jcala.blog.service.inter.InfoSer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
/**
* 后台管理中个人信息管理页面
* 包括对修改密码,更改用户名,邮箱,twitter,github地址以及简历
* 更改用户名,邮箱,twitter,github地址后,前端显示也会随之改变
* 此页面中所有处理请求的前缀为/admin,比如info方法匹配的url为/admin/info
*/
@Controller
public class InfoCtrl {
private InfoSer infoSer;
@Autowired
public InfoCtrl(InfoSer infoSer) {
this.infoSer = infoSer;
}
@GetMapping("/admin/info")
public String info(Model model){
Info info = infoSer.getInfo();
model.addAttribute("info", info);
return "admin/info";
}
@PostMapping("/admin/info.action")
public String updateInfo(@ModelAttribute("infoForm") Info info, Model model) {
boolean result = infoSer.updateInfo(info);
model.addAttribute("targetUrl", "/admin/info");
if (result) {
model.addAttribute("result", 1);
return "admin/result";
} else {
model.addAttribute("result", 0);
return "admin/result";
}
}
@PostMapping("/admin/pass.action")
public String passModify(@RequestParam String old_pass,@RequestParam String new_pass, HttpServletRequest request){
int result = infoSer.modifyPw(old_pass, new_pass);
if (result == 0) {
infoSer.destroySession(request);
}
return "redirect:/admin/info?result=" + result;
}
@GetMapping("/admin/resume")
public String resume(Model model) {
model.addAttribute("md", infoSer.getResumeMd());
return "admin/resume";
}
@PostMapping("/admin/resume.action")
public String resumeUpdate(@ModelAttribute("resumeForm") Info info){
infoSer.updateResume(info);
return "redirect:/admin/resume";
}
}