}
public BizResult login(Map<String,String> input){
String username = input.get("username");
String password = input.get("password");
BizResult data = this.dao.query("usr_userinfo", null, "ui_username = '"+username+"' and ui_password = '"+password+"'");
Map<String,Object> user = data.getData();
if(null == user){
data.setType((String.valueOf(ResultType.REDIRECT)));
data.setPage("login.jsp");
this.setReqAttr("msg", "用户名或密码错误!");
return data;
}
this.setSionAttr(GlobalKey.USER, user);
if(!"admin".equals(username)){
this.setSionAttr("models", this.dao.injoin(
new String[]{"usr_obs o","sys_securityrole r","sys_securitygroup g","sys_r_sg_sr rr","mdl_security ms","sys_model m"},
new String[]{"rr.*,m.*"},
"o.o_role = r.sr_id and r.sr_id = rr.r_r and g.sg_id = rr.r_g and ms.ts_sg = g.sg_id and ms.ts_model = m.m_id",
"rr.r_read = 1 and o.o_id = "+user.get("ui_dept"),
null,100, 0).getData());
}else{
this.setSionAttr("models", this.dao.list("sys_model",null,null,null,100, 0).getData());
}
Object o = user.get("ui_desktop");
String did = "1";//默认的工作台ID
//获取用户的工作台
if(null!=o){
did = o.toString();
}else{
//如果用户未分配工作台,则添加部门的工作台
o = user.get("ui_dept");
if(null!=o){
did = o.toString();
data = this.dao.query("usr_obs", new String[]{"o_desktop"}, "o_id = "+did);
Map<String,Object> obs = data.getData();
o = obs.get("o_desktop");
if(null!=o){
//加载部门的工作台
did = o.toString();
}
}
}
data = this.dao.injoin(new String[]{"usr_desktop d","usr_dashboard b"}, new String[]{"b.*"}, "d.d_id = b.d_desktop", "d.d_id = "+did, " b.d_id ", 100, 0);
List<Map<String,Object>> dashboards = data.getData();
this.setSionAttr(GlobalKey.DASHBOARD, dashboards);
BizResult rst = new BizResult().setCode("0");
rst.setType(String.valueOf(ResultType.JUMP));
rst.setPage("main.jsp");
return rst;
}