package com.kingschan.blog.controller.admin; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.kingschan.blog.services.system.impl.EmailNotifyServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.kingschan.blog.common.enums.Variable; import com.kingschan.blog.common.freemarker.util.FreemarkerParseUtil; import com.kingschan.blog.services.impl.UserServiceImpl; import com.kingschan.blog.util.BlogUtil; import com.kingschan.blog.util.PathUtil; import com.kingschan.blog.util.StringUtil; /** * * <pre> * 类名称:AdminPanelController * 类描述: 管理员控制面板 * 创建人:陈国祥 (kingschan) * 创建时间:2016-3-1 上午8:57:15 * 修改人:Administrator * 修改时间:2016-3-1 上午8:57:15 * 修改备注: * @version V1.0 * </pre> */ @Controller @RequestMapping("/admin") public class AdminPanelController { private static Logger log = LoggerFactory.getLogger(AdminPanelController.class); @Autowired private UserServiceImpl user_serv; @Autowired private EmailNotifyServiceImpl emailNotifyService; /** * 登录成功后跳转页面 * @return */ @RequestMapping("/main.do") public String main() { return "/admin/main"; } /** * 发送验证邮箱邮件 * @param req * @param email * @return */ @ResponseBody @RequestMapping("/sendValidateEmail.do") public String sendValidateEmail(HttpServletRequest req,String email){ BlogUtil bu = new BlogUtil(req); // JavaMailSender sender =mail; String result="邮件发送成功!"; try { Map<String, Object> root = new HashMap<String, Object>(); String random=StringUtil.getUUID(); root.put("uid", bu.getCurrentUser().getId()); root.put("random", random); String path=String.format("%s/%s", PathUtil.getWebInfPath(),"/template/"); String mailcontent=FreemarkerParseUtil.parserFileTemplate(root, path,"validate-email.html"); user_serv.addCache(Variable.CACHE_CONTENT_VALIDATE_EMAIL.getKey(), bu.getCurrentUser().getId(), random); emailNotifyService.sendEmail(email, "51so.info邮箱验证", mailcontent); } catch (Exception e) { result=e.getMessage(); log.error("邮箱验证邮件发送",e); } return result; } /** * 邮箱验证 * @param req * @param key * @param code * @return */ @RequestMapping("/validateEmail.do") public ModelAndView validateEmail(HttpServletRequest req,String key,String code) { ModelAndView mav = new ModelAndView("/admin/pub/msg"); try { if (null==key||null==code||key.isEmpty()||code.isEmpty()) { mav.addObject("msg", "<b style='color:red;'>参数为空,非法操作!</b>"); }else{ Object value=user_serv.getCache(Variable.CACHE_CONTENT_VALIDATE_EMAIL.getKey(), key); if (null!=value&&value.toString().equals(code)) { user_serv.activeEmail(req, key); user_serv.removeCache(Variable.CACHE_CONTENT_VALIDATE_EMAIL.getKey(), key); mav.addObject("msg", "<b style='color:green;'>邮箱验证成功!</b>"); }else{ throw new Exception("<b style='color:red;'>验证信息已过期或者不存在!</b>"); } } } catch (Exception e) { log.error("validateEmail",e); mav.addObject("msg", e.getMessage()); } return mav; } }