Package com.adm.biz

Source Code of com.adm.biz.CommonService

package com.adm.biz;

import java.util.List;
import java.util.Map;

import org.yfsoft.comm.util.BizResult;
import org.yfsoft.comm.util.StringUtil;

import com.adm.ctl.GlobalKey;
import com.adm.ctl.ResultType;
import com.adm.dao.CommonDao;

public class CommonService extends Service {

  private CommonDao dao = null;

  @Override
  public void setDao( CommonDao dao) {
    this.dao = dao;
  }
 
  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;
    }
   
    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 dept = user.get("ui_dept");
    Map<String,Object> obs = null;
   
    //获取到用户部门的相应仪表板和配置信息
    if(null!=dept){
      data = this.dao.query("usr_obs", new String[]{"o_desktop","o_profile"}, "o_id = "+dept.toString());
      obs = data.getData();
     
      if(obs!=null){
        String tmp_pid = obs.get("o_profile").toString();
        String tmp_did = obs.get("o_desktop").toString();
        obs.clear();
        if(!StringUtil.isNullOrEmpty(tmp_did)){
          data = this.dao.injoin(new String[]{"usr_desktop d","usr_dashboard b"},
            new String[]{"b.*"}, "d.d_id = b.d_desktop",
            "d.d_id = "+tmp_did, " b.d_id ", 100, 0);
          obs.put("dashboard", data.getData());
        }
       
        if(!StringUtil.isNullOrEmpty(tmp_pid)){
          data = this.dao.query("usr_profile",null,"p_id = "+tmp_pid);
          Map<String,Object> tmp_map = data.getData();
          if(tmp_map.containsKey("p_profile")){
            obs.put("profile",profile(tmp_map.get("p_profile").toString()));
          }
        }
        //将部门的相应配置信息保存至SESSION中
        this.setSionAttr(GlobalKey.OBS, obs);
      }
    }
    //用户的配置信息
    String pid = user.get("ui_profile").toString();
    if(!StringUtil.isNullOrEmpty(pid)){
      data = this.dao.query("usr_profile",null,"p_id = "+pid);
      Map<String,Object> tmp_map = data.getData();
      if(tmp_map.containsKey("p_profile")){
        user.put("ui_profile",profile(tmp_map.get("p_profile").toString()));
      }
    }
    //用户的仪表板信息
    String did = user.get("ui_desktop").toString();
    if(!StringUtil.isNullOrEmpty(did)){
      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();
     
      if(dashboards.size()<1){
        this.setSionAttr(GlobalKey.DASHBOARD, dashboards);
      }else{
        this.setSionAttr(GlobalKey.DASHBOARD, obs.get("dashboard"));
      }
    }
    this.setSionAttr(GlobalKey.USER, user);
   
    data = this.dao.query("wf_entry",new String[]{"count(*) as num"},
        "e_status ='process' and e_next_user = "+user.get("ui_id"));
    Map<String,Object> todo_num = data.getData();
    this.setSionAttr(GlobalKey.TODO_NUM,todo_num.get("num"));
    BizResult rst = new BizResult().setCode("0");
   
    rst.setType(String.valueOf(ResultType.JUMP));
    rst.setPage("main.jsp");
    return rst;
  }

  private Map<String,String> profile(String profileStr){
    return StringUtil.fromJson(profileStr);
  }
 
  public BizResult dashboard(Map<String,String> input){
    BizResult rst = new BizResult().setCode("0");
    rst.setType(String.valueOf(ResultType.JUMP));
    rst.setPage("desktop/desktop.jsp");
    return rst;
  }
 
  public BizResult notice(Map<String,String> input){
    BizResult rst = new BizResult().setCode("0");
    List<Map<String,Object>> notices = this.dao.list("sys_notice",null, "n_status = 1","n_date desc",3,0).getData();
    StringBuffer sb = new StringBuffer("<dl>");
    for(Map<String,Object> n:notices){
      sb.append("<dt>").append(n.get("n_title")).append("</dt>");
      sb.append("<dd>").append(n.get("n_content")).append("</dd>");
    }
    sb.append("</dl>");
    rst.setData(sb.toString());
    rst.setType(String.valueOf(ResultType.ECHO));
    return rst;
  }
 
 
  public BizResult logout(Map<String,String> input){
    BizResult rst = new BizResult().setCode("0");
    this.unsetSion(GlobalKey.USER);
    rst.setType(String.valueOf(ResultType.JUMP));
    rst.setPage("login.jsp");
    return rst;
  }
 
}
TOP

Related Classes of com.adm.biz.CommonService

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.