Package net.loyin.controller

Source Code of net.loyin.controller.EmployeeController

package net.loyin.controller;

import java.util.ArrayList;
import java.util.List;

import net.loyin.ftl.OrgSelectTarget;
import net.loyin.ftl.PartmentSelectTarget;
import net.loyin.interceptor.ManagerPowerInterceptor;
import net.loyin.jFinal.anatation.PowerBind;
import net.loyin.jFinal.anatation.RouteBind;
import net.loyin.model.Employee;
import net.loyin.model.Organization;
import net.loyin.model.Partment;
import net.loyin.model.Role;
import net.loyin.util.safe.MD5;

import com.jfinal.aop.Before;
import com.jfinal.log.Logger;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

/**
* 网站管理用户
*
* @author 刘声凤 2012-9-6 下午9:06:42
*/
@RouteBind(path = "/employee")
@Before({ ManagerPowerInterceptor.class })
public class EmployeeController extends BaseController {
  public static Logger log = Logger.getLogger(EmployeeController.class);
  private static String navTabId = "employee";
  private boolean f;

  public void index() {
    f = true;
    list();
    setAttr("org",Organization.dao.find("select id, name,num from Organization order by id"));
    setAttr("part",Partment.dao.find("select id, name,num from Partment order by id"));
    render("index.html");
  }

  public void list() {
    Long pid = getParaToLong(1, 0L);
    Long orgid = getParaToLong(0, 0L);
    StringBuffer whee = new StringBuffer();
    List<Object> param = new ArrayList<Object>();
    String fullname = getPara("fullname");
    if (fullname != null && !"".equals(fullname.trim())) {
      whee.append(" and fullname like ?");
      param.add("%" + fullname + "%");
    }
    String userno = getPara("userno");
    if (userno != null && !"".equals(userno.trim())) {
      whee.append(" and userno like ?");
      param.add("%" + userno + "%");
    }
    if (pid != 0) {
      whee.append(" and p.id = ?");
      param.add(pid);
    }
    setAttr("fullname", fullname);
    setAttr("userno", userno);
    setAttr("partid", pid);
    if (orgid != 0) {
      whee.append(" and p.orgid = ?");
      param.add(orgid);
    }
    setAttr("orgid", orgid);
    setAttr("pid", pid);
    setAttr("page",
        Db.paginate(
            getParaToInt("pageNum", 1),
            getParaToInt("numPerPage", 20),
            "select e.id,userno 编号,fullname 姓名,e.gender 性别,phone 手机电话,stat 状态 ",
            " from  Employee e join partment p on p.id=e.partmentid "
                + whee.toString() + " order by e.id ",
            param.toArray()));
    setAttr("collist", new String[] { "编号", "姓名", "性别", "手机电话", "状态" });
    if (f == false)
      render("list.html");
  }

  private static final String chars = "23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz";

  /**
   * 产生随机数
   * @return
   */
  private char[] getCode(int length) {
    char[] rands = new char[length];
    for (int i = 0; i < length; i++) {
      int rand = (int) (Math.random() * chars.length());
      rands[i] = chars.charAt(rand);
    }
    return rands;
  }

  public void add() {
    Employee pojo = new Employee();
    Long id = getParaToLong(2, 0L);
    Long pid = getParaToLong(1, 0L);
    Long orgid = getParaToLong(0, 0L);
    pojo.set("partmentid", pid);
    pojo.set("orgid", orgid);
    if (id != 0) {
      pojo = Employee.dao.findById(id);
    }
    setAttr(OrgSelectTarget.targetName, new OrgSelectTarget());
    setAttr(PartmentSelectTarget.targetName, new PartmentSelectTarget());
    setAttr("pojo", pojo);
    render("add.html");
  }
  public void show() {
    Employee pojo = new Employee();
    Long id = getParaToLong(0, 0L);
    pojo = Employee.dao.findById(id);
    setAttr("part",Partment.dao.findById(pojo.get("partmentid")));
    setAttr("org",Organization.dao.findById(pojo.get("orgid")));
    setAttr("pojo", pojo);
    render("show.html");
  }
  public void save() {
    try {
      Employee m = getModel(Employee.class);
      if (m.getLong("id") != null) {
        m.update();
      } else {
        m.save();
      }
       Db.update("update employee e set e.orgid=(select p.orgid from partment p where p.id=e.partmentid)");
      toDwzJson(200, "保存成功!", navTabId);
    } catch (Exception e) {
      log.error("保存员工异常", e);
      toDwzJson(300, "保存异常!");
    }
  }

  public void del() {
    Long id = getParaToLong(0, 0L);
    Record po = getCurrentUser();
    if (id != po.getLong("id")) {
      Employee.dao.deleteById(id);
      toDwzJson(200, "删除成功!", navTabId);
    } else {
      toDwzJson(300, "不能删除自己的账号!");
    }
  }

  public void resetPwd() {
    String pwd = new String(getCode(6));// 随机密码
    Long id = getParaToLong(0, 0L);
    if (id != 0L) {
      Employee.dao.set("id", id).set("pwd", MD5.getMD5ofStr(pwd))
          .update();
    }
    toDwzJson(200, "重置密码成功!密码为<br><h3><b style='color:red;'>" + pwd
        + "</b></h3><br>请牢记!", navTabId);
  }
  @PowerBind
  public void pwd() {
    render("pwd.html");
  }
  @PowerBind
  public void savepwd() {
    String oldpwd = getPara("oldpwd");
    String pwd = getPara("pwd");
    Record po = getCurrentUser();
    Employee e = Employee.dao.findById(po.get("id"));
    String pwd1 = e.getStr("pwd");
    if (MD5.getMD5ofStr(oldpwd).equals(pwd1)) {
      e.set("pwd", MD5.getMD5ofStr(pwd));
      e.update();
      toDwzJson(200, "重置密码成功!密码为<br><h3><b style='color:red;'>" + pwd
          + "</b></h3><br>请牢记!");
    } else {
      toDwzJson(300, "旧密码输入错误!");
    }
  }

  public void role() {
    Long id = getParaToLong(0, 0L);
    setAttr("id", id);
    setAttr("pojo", Employee.dao.findById(id));
    setAttr("urolelist",
        Db.find("select roleid from userrole where userid=?", id));
    setAttr("rolelist", Role.dao.find("select * from role"));
    render("role.html");
  }

  public void saveRole() {
    try {
      Long id = getParaToLong(0, 0L);
      Integer[] roles=this.getParaValuesToInt("roles");
      if(roles!=null&&roles.length>0){
        Db.update("delete from userrole where userid=?",id);
        Integer[][] objs=new Integer[roles.length][1];
        int i=0;
        for(Integer m:roles){
          objs[i++][0]=m;
        }
        Db.batch("insert into userrole (userid,roleid) values("+id+",?)", objs,20);
      }
      toDwzJson(200, "保存成功!");
    } catch (Exception e) {
      toDwzJson(300, "保存异常!");
    }
  }
}
TOP

Related Classes of net.loyin.controller.EmployeeController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.