package li.people.action; import li.annotation.Arg; import li.annotation.At; import li.annotation.Bean; import li.annotation.Inject; import li.dao.Page; import li.mvc.AbstractAction; import li.people.Const; import li.people.record.Account; import li.people.record.Resource; import li.people.record.Role; import li.util.Convert; @Bean public class AccountAction extends AbstractAction implements Const { @Inject Account accountDao; @Inject Role roleDao; @Inject Resource resourceDao; @At("account_list.do") public void list(Page page, String key) { setRequest(LIST, accountDao.list(key, page)); setRequest(PAGE, page); keepParams("key"); view("account/list"); } @At("account_edit.do") public void edit(Integer id) { setRequest("account", accountDao.find(id)); setRequest("roles", roleDao.list(MAX_PAGE)); view("account/edit"); } @At(value = "account_update.do", method = POST) public void update(Account account) { write(accountDao.updateIgnoreNull(account.md5PasswordIfNotNull()) ? "更新用户成功" : "更新用户失败"); } @At("account_add.do") public void add() { setRequest("roles", roleDao.list(MAX_PAGE)); view("account/add"); } @At(value = "account_save.do", method = POST) public void save(Account account) { write(accountDao.saveIgnoreNull(account.md5PasswordIfNotNull()) ? "添加用户成功" : "添加用户失败"); } @At(value = "account_delete.do", method = POST) public void delete(Integer id) { write(accountDao.delete(id) ? "删除用户成功" : "删除用户失败"); } @At("username_check.do") public void exist(@Arg("account.username") String username) { write(null == accountDao.findByUsername(username) ? "true" : "false"); } @At(value = "login.do", method = GET) public void login() { view("login"); } @At(value = "login.do", method = POST) public void login(Account account) { if (null != (account = accountDao.login(account))) { setSession("account", account); write("登陆成功"); } else { write("登录失败,用户名或密码错误"); } } @At("logout.do") public void logout() { removeSession("account"); redirect("login.do"); } @At(value = "register.do", method = GET) public void register() { view("register"); } @At(value = "register.do", method = POST) public void register(Account account) { account.set("role_id", 0); if (null != accountDao.findByUsername(account.get(String.class, "username"))) { write("此用户名已注册"); } else if (null != account.findByEmail(account.get(String.class, "email"))) { write("此邮箱已注册"); } else if (accountDao.save(account.set("password", Convert.toMD5(account.get("password"))).set("status", "1"))) { login(account); write("注册成功"); } else { write("注册失败"); } } }