package cn.jeesoft.mvc.action.web.manage; import java.io.File; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; 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.bind.annotation.ResponseBody; import cn.jeesoft.core.interceptor.Before; import cn.jeesoft.core.model.BaseBean.State; import cn.jeesoft.core.model.PagerModel; import cn.jeesoft.core.resolver.FormBean; import cn.jeesoft.core.utils.FileUtils; import cn.jeesoft.core.utils.StringUtils; import cn.jeesoft.core.utils.UnicodeUtils; import cn.jeesoft.interceptor.AdminLoginInterceptor; import cn.jeesoft.mvc.Config; import cn.jeesoft.mvc.action.web.BaseManageAction; import cn.jeesoft.mvc.bean.Users; import cn.jeesoft.mvc.model.ResultCode; import cn.jeesoft.mvc.services.UsersService; import com.alibaba.fastjson.JSONObject; /** * 后台用户管理 * @author king */ @Controller("manage.users") @RequestMapping("manage/users") @Before(AdminLoginInterceptor.class) public class UsersAction extends BaseManageAction<Users, UsersAction.MPagerModel> { public static class MPagerModel extends PagerModel<Users, Users> { } @Autowired private UsersService usersService; @RequestMapping("list") public String list(HttpServletRequest request, ModelMap modelMap, @FormBean("pager") MPagerModel pager) { if (pager.getQuery()==null) { pager.setQuery(new Users()); } pager.getQuery().setState(State.YES); if (!StringUtils.isEmpty(pager.getQuery().getPass())) { pager.getQuery().setPass(Users.encryption(pager.getQuery().getPass())); } pager = getService().selectPageList(pager); modelMap.addAttribute("pager", pager); modelMap.addAttribute("currentMenu", "会员管理"); return FTL_MANAGE + "users/list"; } @RequestMapping(value="verify") public String verify(HttpServletRequest request, ModelMap modelMap, @FormBean("pager") MPagerModel pager) { if (pager.getQuery()==null) { pager.setQuery(new Users()); } pager.getQuery().setState(State.NO); if (!StringUtils.isEmpty(pager.getQuery().getPass())) { pager.getQuery().setPass(Users.encryption(pager.getQuery().getPass())); } pager = getService().selectPageList(pager); modelMap.addAttribute("pager", pager); modelMap.addAttribute("currentMenu", "注册审核"); return FTL_MANAGE + "users/verify"; } @ResponseBody @RequestMapping(value="verifyYes", method=RequestMethod.POST) public String verifyYes(HttpServletRequest request, Users users) { Users updateUsers = new Users(); updateUsers.setId(users.getId()); updateUsers.setState(State.YES); int updateNum = getService().update(updateUsers); if (updateNum > 0) { return toSuccess(); } else { return toFailure(ResultCode.FAILURE, "操作失败,请重试"); } } @ResponseBody @RequestMapping(value="verifyNo", method=RequestMethod.POST) public String verifyNo(HttpServletRequest request, Users users) { Users updateUsers = new Users(); updateUsers.setId(users.getId()); updateUsers.setState(State.NO); int updateNum = getService().update(updateUsers); if (updateNum > 0) { return toSuccess(); } else { return toFailure(ResultCode.FAILURE, "操作失败,请重试"); } } //邀请人管理 @RequestMapping("invite") public String selectPageListByInviteId(HttpServletRequest request, ModelMap modelMap, @FormBean("pager") MPagerModel pager) { if (pager.getQuery()==null) { pager.setQuery(new Users()); } //pager.getQuery().setState(State.YES); pager= usersService.list(pager);//根据邀请人ID查询用户列表 modelMap.addAttribute("pager", pager); modelMap.addAttribute("currentMenu", "邀请管理"); return FTL_MANAGE+"users/invite"; } @RequestMapping(value = "update", method = RequestMethod.GET) public String update(HttpServletRequest request, ModelMap modelMap, Users bean) { if (bean.getId() != null) { // 根据usersId查询 Users users = usersService.selectById(bean.getId()); modelMap.addAttribute("users", users); } else { modelMap.addAttribute("errorMessage", "用户ID 不能为空"); } modelMap.addAttribute("currentMenu", "会员管理"); return FTL_MANAGE + "users/update"; } @RequestMapping(value = "update", method = RequestMethod.POST) public String doUpdate(HttpServletRequest request, ModelMap modelMap, Users bean) { Map<String, File> files = FileUtils.saveMultipartFiles(request, bean.getPhone()); if (files.containsKey("portrait")) { bean.setPortrait(FileUtils.getRelativePath(files.get("portrait"))); } int update = usersService.update(bean); if (update > 0) { modelMap.addAttribute("errorMessage", "更新成功"); } else { modelMap.addAttribute("errorMessage", "更新失败"); } Users users = usersService.selectById(bean.getId()); modelMap.addAttribute("users", users); modelMap.addAttribute("currentMenu", "会员管理"); return FTL_MANAGE + "users/update"; } @RequestMapping(value = "insert", method = RequestMethod.GET) public String insert(HttpServletRequest request, ModelMap modelMap, Users bean) { modelMap.addAttribute("currentMenu", "会员注册"); return FTL_MANAGE + "users/update"; } @RequestMapping(value = "insert", method = RequestMethod.POST) public String doInsert(HttpServletRequest request, ModelMap modelMap, Users bean) { if (!StringUtils.isPhone(bean.getPhone())) { modelMap.addAttribute("errorMessage", "手机号格式不正确"); } else if (StringUtils.isEmpty(bean.getPass())) { modelMap.addAttribute("errorMessage", "密码不能为空"); } else { Map<String, File> files = FileUtils.saveMultipartFiles(request, bean.getPhone()); if (files.containsKey("portrait")) { bean.setPortrait(FileUtils.getRelativePath(files.get("portrait"))); } String pass = bean.getPass(); bean.setPass(Users.encryption(pass)); try { bean.setState(State.YES); int insert = usersService.insert(bean); if (insert > 0) { return Redirect+"/manage/users/list?pager.query.id="+insert; } else { modelMap.addAttribute("errorMessage", "更新失败"); } } catch (DuplicateKeyException e) { modelMap.addAttribute("errorMessage", "唯一性约束"); String cause = e.getMessage(); if (!StringUtils.isEmpty(cause)) { if (cause.contains("phone_UNIQUE")) { modelMap.addAttribute("errorMessage", "该手机号已注册"); } else if (cause.contains("idcard_UNIQUE")) { modelMap.addAttribute("errorMessage", "该身份证已注册"); } else if (cause.contains("nickname_UNIQUE")) { modelMap.addAttribute("errorMessage", "该昵称已注册"); } else if (cause.contains("name_UNIQUE")) { modelMap.addAttribute("errorMessage", "该用户名已注册"); } } e.printStackTrace(); } bean.setPass(pass); } modelMap.addAttribute("users", bean); modelMap.addAttribute("currentMenu", "会员注册"); return FTL_MANAGE + "users/update"; } @ResponseBody @RequestMapping("selectPageList") public String selectPageList(HttpServletRequest request, MPagerModel pager) { int usersId = StringUtils.toInt(request.getParameter("usersId"), 0); int pageSize = StringUtils.toInt(request.getParameter("length"), Config.PAGE_SIZE); if (pageSize != Config.PAGE_SIZE) { pager.setPageSize(pageSize); } if (pager.getOffset() <= 0) { pager.setOffset(StringUtils.toInt(request.getParameter("start"), 0)); } pager = getService().selectPageList(pager); if (pager.getList()!=null) { for (int i=0; i<pager.getList().size(); i++) { Users users = pager.getList().get(i); if (users.getId() == usersId) { pager.getList().remove(i); break; } } } JSONObject json = new JSONObject(); json.put("data", pager.getList()); json.put("length", pager.getPageSize()); json.put("total", pager.getTotal()); json.put("iTotalRecords", pager.getTotal()); json.put("iTotalDisplayRecords", pager.getTotal()); return UnicodeUtils.encodeChina(json.toJSONString()); } @ResponseBody @RequestMapping("update_invite") public String updateInvite(HttpServletRequest request, Users users) { System.out.println(users); if (users.getId() == null || users.getInviteId()==null) { return toFailure(ResultCode.ERROE_PARAMETER, "参数不正确"); } Users bean = new Users(); bean.setId(users.getId()); bean.setInviteId(users.getInviteId()); int update = usersService.update(bean); if (update > 0) { return toSuccess(); } else { return toFailure(ResultCode.FAILURE, "修改失败"); } } @Override public UsersService getService() { return usersService; } }