package project.web.admin; import java.util.Date; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.providers.encoding.PasswordEncoder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import kernel.exception.BusinessException; import kernel.util.StringUtils; import kernel.web.Page; import kernel.web.PageActionSupport; import project.Constants; import project.log.AdminLogService; import project.log.Log; import project.log.LogService; import security.SecUser; import security.internal.SecUserService; @RestController public class AdminCodeLogController extends PageActionSupport { @Autowired private AdminLogService adminLogService; @Autowired private LogService logService; @Autowired private SecUserService secUserService; @Autowired private PasswordEncoder passwordEncoder; private final String action = "normal/adminCodeLogAction!"; @RequestMapping(action + "list.action") public ModelAndView list(HttpServletRequest request) { String loginPartyId = getLoginPartyId(); String date_para = request.getParameter("date_para"); String log_para = request.getParameter("log_para"); String name_para = request.getParameter("name_para"); String target = request.getParameter("target"); int pageNo = this.checkAndSetPageNo(request.getParameter("pageNo")); int pageSize = 30; List date_range = toRangeDate(date_para); Page page = this.adminLogService.pagedQueryCodeLog(pageNo, pageSize, log_para, name_para, target, date_range.get(0), date_range.get(1), loginPartyId, this.getUsername_login(),null); ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("pageNo", pageNo); modelAndView.addObject("pageSize", pageSize); modelAndView.addObject("page", page); modelAndView.addObject("message", message); modelAndView.addObject("error", error); modelAndView.addObject("date_para", date_para); modelAndView.addObject("log_para", log_para); modelAndView.addObject("name_para", name_para); modelAndView.addObject("target", target); modelAndView.setViewName("code_log_list"); return modelAndView; } @RequestMapping(action + "get_code.action") public ModelAndView get_code(HttpServletRequest request) { String login_safeword = request.getParameter("login_safeword"); String log_id = request.getParameter("log_id"); String error = ""; ModelAndView modelAndView = new ModelAndView(); try { if (StringUtils.isEmptyString(login_safeword)) { throw new BusinessException("资金密码不能为空"); } SecUser sec = this.secUserService.findUserByLoginName(this.getUsername_login()); checkLoginSafeword(sec, this.getUsername_login(), login_safeword); Page page = this.adminLogService.pagedQueryCodeLog(1, 10, null, null, null, null, null, getLoginPartyId(), this.getUsername_login(), log_id); List list = page.getElements(); Map map = list.get(0); Log log = new Log(); log.setCategory(Constants.LOG_CATEGORY_OPERATION); log.setUsername(""); log.setOperator(this.getUsername_login()); log.setLog("管理员查看手机号/邮箱号["+String.valueOf(map.get("target"))+"]的验证码,管理员ip["+this.getIp(getRequest())+"]"); logService.saveSync(log); modelAndView.addObject("page", page); modelAndView.addObject("message", "操作成功"); modelAndView.setViewName("code_log_get"); return modelAndView; } catch (BusinessException e) { modelAndView.addObject("error", e.getMessage()); modelAndView.setViewName("code_log_list"); return modelAndView; } catch (Throwable t) { error = ("[ERROR] " + t.getMessage()); modelAndView.addObject("error", error); modelAndView.setViewName("code_log_list"); return modelAndView; } } /** * 验证登录人资金密码 */ private void checkLoginSafeword(SecUser secUser,String operatorUsername,String loginSafeword) { String sysSafeword = secUser.getSafeword(); String safeword_md5 = passwordEncoder.encodePassword(loginSafeword, operatorUsername); if (!safeword_md5.equals(sysSafeword)) { throw new BusinessException("登录人资金密码错误"); } } }