package com.github.ouyangbob.admin.account.controller;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.github.ouyangbob.admin.account.model.entity.AdminUser;
import com.github.ouyangbob.admin.account.model.vo.AdminUserQueryVo;
import com.github.ouyangbob.admin.account.service.IAdminUserService;
import com.github.ouyangbob.admin.account.shiro.PasswordHelper;
import com.github.ouyangbob.shiro.CurrentUserUtil;
import com.github.pagehelper.PageInfo;
@Controller
@RequestMapping("/admin/user/")
public class AdminUserController {
private static final Logger logger=LoggerFactory.getLogger(AdminUserController.class);
@Autowired
private IAdminUserService adminUserService;
@RequestMapping("list")
public String index(AdminUserQueryVo query,ModelMap modelMap){
query.setPageSize(1);
PageInfo<AdminUser> pageInfo = adminUserService.queryAdminUserPage(query);
modelMap.put("pageInfo", pageInfo);
return "admin/user/list";
}
@RequestMapping("delete")
public String delete(String userId,RedirectAttributes redirectAttributes){
AdminUser adminUser=adminUserService.findAdminUserById(userId);
if(adminUser!=null){
if(adminUser.getId().equals(CurrentUserUtil.getCurrentUser().getId())){
redirectAttributes.addFlashAttribute("error", "禁止删除当前登录账号");
}else{
adminUserService.removeAdminUser(adminUser);
redirectAttributes.addFlashAttribute("info", "删除成功");
}
}
return "redirect:list.adm";
}
@RequestMapping(value="form" , method=RequestMethod.GET)
public String formGet(String userId,AdminUser adminUser,ModelMap modelMap){
if(StringUtils.isNotBlank(userId)){
adminUser=adminUserService.findAdminUserById(userId);
}else{
adminUser.setStatus(1);
}
modelMap.put("adminUser", adminUser);
return "admin/user/form";
}
@RequestMapping(value="form" , method=RequestMethod.POST)
public String formPost(AdminUser adminUser,RedirectAttributes redirectAttributes){
if(StringUtils.isBlank(adminUser.getLoginName())){
redirectAttributes.addFlashAttribute("adminUser", adminUser);
redirectAttributes.addFlashAttribute("error", "请输入用户名");
redirectAttributes.addAttribute("userId", adminUser.getId());
return "redirect:form.adm";
}else if(StringUtils.isBlank(adminUser.getId()) && StringUtils.isBlank(adminUser.getLoginPasswd())){
redirectAttributes.addFlashAttribute("adminUser", adminUser);
redirectAttributes.addFlashAttribute("error", "请输入密码");
redirectAttributes.addAttribute("userId", adminUser.getId());
return "redirect:form.adm";
}
AdminUser adminUserDb=adminUser;
if(StringUtils.isNotBlank(adminUser.getId())){
adminUserDb=adminUserService.findAdminUserById(adminUser.getId());
adminUserDb.setStatus(adminUser.getStatus());
if(StringUtils.isNotBlank(adminUser.getLoginPasswd())){
adminUserDb.setLoginPasswd(PasswordHelper.newPassword(adminUser.getLoginPasswd()));
}
redirectAttributes.addFlashAttribute("info", "修改管理员成功");
}else{
adminUserDb.setLoginPasswd(PasswordHelper.newPassword(adminUser.getLoginPasswd()));
redirectAttributes.addFlashAttribute("info", "添加管理员成功");
}
adminUserService.saveOrUpdateAdminUser(adminUserDb);
return "redirect:list.adm";
}
}