Package com.eatle.service.system.useradmin.impl

Source Code of com.eatle.service.system.useradmin.impl.PrivServiceImpl

package com.eatle.service.system.useradmin.impl;

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

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.eatle.common.Constants;
import com.eatle.persistent.mapper.PrivMapper;
//import com.eatle.persistent.pojo.system.basedata.Menu;
import com.eatle.persistent.pojo.system.useradmin.Priv;
import com.eatle.persistent.pojo.system.useradmin.PrivCriteria;
import com.eatle.persistent.pojo.system.useradmin.PrivTree;
//import com.eatle.persistent.pojo.system.useradmin.Role;
//import com.eatle.persistent.pojo.system.useradmin.RoleCriteria;
import com.eatle.persistent.pojo.system.useradmin.PrivCriteria.Criteria;
import com.eatle.service.system.useradmin.IPrivService;
import com.eatle.utils.Pagination;

/**
*@Title:
*@Description:
*@Author:xt
*@Since:2012-6-19
*@Version:1.1.0
*/
@Service("privService")
public class PrivServiceImpl implements IPrivService
{
  @Resource
  private PrivMapper privMapper;
 
  @SuppressWarnings("unused")
  private Map<String, Priv> allPrivs;

  @Override
  public Pagination findPagination(Map<String, Object> queryMap, int currentPage, int pageSize)
  {
    PrivCriteria privCriteria = new PrivCriteria();
    Criteria criteria = privCriteria.createCriteria();
        // 设置搜索条件参数
    if (queryMap != null)
    {
      if (queryMap.containsKey("privName"))
      {
        criteria.andPrivNameLike("%" + (String) queryMap.get("privName") + "%");
      }
      if (queryMap.containsKey("menuName"))
      {
        criteria.andMeueNameLike("%" + (String) queryMap.get("menuName") + "%");
      }
      if (queryMap.containsKey("actionCmd"))
      {
        criteria.andActionLike("%" + (String) queryMap.get("actionCmd") + "%");
      }
      if (queryMap.containsKey("pidisnull"))
      {
        criteria.andPIdIsNull();
      }
    }
    // 设置分页参数
    privCriteria.setPageSize(pageSize);
    privCriteria.setStartIndex((currentPage - 1) * pageSize);

    List<Priv> items = privMapper.selectByCriteria(privCriteria);
    int totalCount = (int) privMapper.selectCountByCriteria(privCriteria);

    return new Pagination(pageSize, currentPage, totalCount, items);
  }

  @Override
  public List<Priv> findByCriteria(PrivCriteria criteria)
  {
    return privMapper.selectByCriteria(criteria);
  }

  @Override
  public List<Priv> findAll()
  {
    return privMapper.selectByCriteria(null);
  }

  @Override
  public Priv findById(long id)
  {
    return privMapper.selectByPrimaryKey(id);
  }

  @Override
  public int add(Priv priv)
  {
    int result = Constants.Base.FAIL;
   
    PrivCriteria privCriteria = new PrivCriteria();
    Criteria criteria = privCriteria.createCriteria();
    criteria.andActionEqualTo(priv.getAction());
    List<Priv> privs = privMapper.selectByCriteria(privCriteria);
    if (privs.size() < 1)
    {
      if(privMapper.insert(priv) > 0)
      {
        result = Constants.Base.SUCCESS;
      }
    }
    else
    {
      result = Constants.Base.REPEAT;
    }
    return result;
  }

  @Override
  public int update(Priv priv, Priv oldPiv)
  {
    int result = Constants.Base.FAIL;
   
    PrivCriteria privCriteria = new PrivCriteria();
    Criteria criteria = privCriteria.createCriteria();
    criteria.andActionEqualTo(priv.getAction());
    List<Priv> privs = privMapper.selectByCriteria(privCriteria);
    if (privs.size() < 1)
    {
      if(privMapper.updateByPrimaryKeySelective(priv) > 0)
      {
        result = Constants.Base.SUCCESS;
      }
    }
    else
    {
      if(privs.get(0).getAction().equals(oldPiv.getAction()))
      {
        if(privMapper.updateByPrimaryKeySelective(priv) > 0)
        {
          result = Constants.Base.SUCCESS;
        }
      }
      else
      {
        result = Constants.Base.REPEAT;
      }
    }
    return result;
  }

  @Override
  public int delete(Priv priv)
  {
    return privMapper.deleteByPrimaryKey(priv.getId());
  }

  @Override
  public List<PrivTree> findPrivTree()
  {
    List<Priv> list = privMapper.selectByMap(null);
    List<PrivTree> ptList = new ArrayList<PrivTree>();
    if (list == null)
      return null;
    for (int i = 0; i < list.size(); i++)
    {
      Priv pri = list.get(i);
      if (pri.getPid() == null)
      {
        ptList.add(findAllChildPrivs(pri, null, list));
      }
    }
    return ptList;
  }

  @SuppressWarnings("unused")
  private Priv findParentPriv(Priv priv, List<Priv> list)
  {
    for (int i = 0; i < list.size(); i++)
    {
      Priv pri = list.get(i);
      if (priv.getPid() == pri.getId())
      {
        return pri;
      }
    }
    return null;
  }

  private PrivTree findAllChildPrivs(Priv cur, PrivTree ptree, List<Priv> list)
  {
    PrivTree topTree = new PrivTree();
    topTree.setParent(ptree);
    topTree.setPriv(cur);

    List<PrivTree> temp = new ArrayList<PrivTree>();
    for (int i = 0; i < list.size(); i++)
    {
      Priv pri = list.get(i);
      if (cur.getId() == pri.getPid())
      {
        temp.add(findAllChildPrivs(pri, topTree, list));
      }
    }
    if (temp.size() == 0)
    {
      topTree.setChildPrivs(null);
    }
    else
    {
      topTree.setChildPrivs(temp);
    }
    return topTree;
  }

  @SuppressWarnings("unused")
  private List<Priv> findChildPrivs(Priv priv, List<Priv> list)
  {
    List<Priv> temp = new ArrayList<Priv>();
    for (int i = 0; i < list.size(); i++)
    {
      Priv pri = list.get(i);
      if (priv.getId() == pri.getPid())
      {
        temp.add(pri);
      }
    }
    return temp;
  }
 
  @Override
  public String findAllPrivMenu(String contextName, Map<String, Priv> allPrivs)
  {
    this.allPrivs = allPrivs;
    StringBuffer allMenuBuffer = new StringBuffer();
    for(Priv priv : findRootPrivMenu())
    {
//      if(allPrivs.get(priv.getAction()) != null)
//      {
        assembleRootPrivMenu(priv, allMenuBuffer);
        assembleChildPrivMenu(priv, allMenuBuffer,contextName);
//      }
    }
    return allMenuBuffer.toString();
  }
 
  @Override
  public List<Priv> findRootPrivMenu()
  {
    PrivCriteria privCriteria = new PrivCriteria();
    Criteria criteria = privCriteria.createCriteria();
    criteria.andIsShowEqualTo((byte)1);
    criteria.andPIdIsNull();
    return findByCriteria(privCriteria);
  }
 
  public void assembleRootPrivMenu(Priv priv, StringBuffer allMenuBuffer)
  {
    allMenuBuffer.append("<div class=\"accordionHeader\">\n");
    allMenuBuffer.append("<h2><span>Folder</span>" + priv.getMeueName() + "</h2>\n");
    allMenuBuffer.append("</div>\n");
    allMenuBuffer.append("<div class=\"accordionContent\">\n");
  }
  public void assembleChildPrivMenu(Priv priv, StringBuffer allMenuBuffer, String contextName)
  {
    allMenuBuffer.append("<ul class=\"tree treeFolder collapse\">\n");
   
    PrivCriteria privCriteria = new PrivCriteria();
    Criteria criteria = privCriteria.createCriteria();
    criteria.andPIdEqualTo(priv.getId());
    criteria.andIsShowEqualTo((byte)1);
    findChildPrivMenu(findByCriteria(privCriteria), allMenuBuffer,contextName);
    allMenuBuffer.append("</ul>\n");
    allMenuBuffer.append("</div>\n");
  }
 
  public void findChildPrivMenu(List<Priv> parentPrivMenu, StringBuffer allMenuBuffer, String contextName)
  {
    int childMenuSize = 0;
    for(Priv priv : parentPrivMenu)
    {
//      if(allPrivs.get(priv.getAction()) != null)
//      {
        PrivCriteria privCriteria = new PrivCriteria();
        Criteria criteria = privCriteria.createCriteria();
        criteria.andPIdEqualTo(priv.getId());
        criteria.andIsShowEqualTo((byte)1);
        List<Priv> childPrivMenu = findByCriteria(privCriteria);
        childMenuSize = childPrivMenu.size();
        if(childMenuSize > 0)
        {
          allMenuBuffer.append("<li><a>" + priv.getMeueName() + "</a>\n<ul>\n");
          findChildPrivMenu(childPrivMenu, allMenuBuffer,contextName);
        }
        else
        {
          allMenuBuffer.append("<li><a href=\"" + contextName+"/"+priv.getAction() + "?navTabId=" + priv.getId()
              + "&action=" + priv.getAction() + "\" target=\"navTab\" rel=\"" + priv.getId()
              + "\">" + priv.getMeueName() + "</a></li>\n");
        }
//      }
    }
    allMenuBuffer.append("</ul>\n</li>\n");
  }
}
TOP

Related Classes of com.eatle.service.system.useradmin.impl.PrivServiceImpl

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.