Package com.founder.fix.fixflow.expand.identity

Source Code of com.founder.fix.fixflow.expand.identity.UserDefinitionImpl

/**
* Copyright 1996-2013 Founder International Co.,Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @author kenshin
*/
package com.founder.fix.fixflow.expand.identity;

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

import com.founder.fix.fixflow.core.cache.CacheHandler;
import com.founder.fix.fixflow.core.db.pagination.Pagination;
import com.founder.fix.fixflow.core.exception.FixFlowException;
import com.founder.fix.fixflow.core.impl.Context;
import com.founder.fix.fixflow.core.impl.Page;
import com.founder.fix.fixflow.core.impl.db.SqlCommand;
import com.founder.fix.fixflow.core.impl.identity.GroupDefinition;
import com.founder.fix.fixflow.core.impl.identity.GroupTo;
import com.founder.fix.fixflow.core.impl.identity.UserDefinition;
import com.founder.fix.fixflow.core.impl.identity.UserTo;
import com.founder.fix.fixflow.core.impl.util.StringUtil;

public class UserDefinitionImpl extends UserDefinition {
 

  @Override
  public UserTo findUserByUserId(String userId) {
 
    if (userId == null || userId.equals("")) {

      throw new FixFlowException("查询的用户编号不能为空");

    }

    CacheHandler cache = Context.getProcessEngineConfiguration().getCacheHandler();

    Object cacheData = cache.getCacheData("user_findUserByUserId_" + userId);
    if (cacheData != null) {
      return (UserTo) cacheData;
    } else {
     
      String userIdField=getUserInfoConfig().getUserIdField();
     
      String userNameField=getUserInfoConfig().getUserNameField();
     
      String sqlText=getUserInfoConfig().getSqlText();
     
     

      SqlCommand sqlCommand = getSqlCommand();

      List<Object> objectParamWhere = new ArrayList<Object>();

      objectParamWhere.add(userId);

      List<Map<String, Object>> dataObj = sqlCommand.queryForList("SELECT USERTABLE.* FROM ("+sqlText+") USERTABLE where USERTABLE."+userIdField+"=?", objectParamWhere);

      if(dataObj.size()==0){
        return null;
      }
     
      if (dataObj.get(0).get(userIdField) == null) {
        return null;
      }
      UserTo userTo = new UserTo(userId, StringUtil.getString(dataObj.get(0).get(userNameField)), dataObj.get(0));
      cache.putCacheData("user_findUserByUserId_"+userId, userTo);
     
      return userTo;
    }
  }

  @Override
  public List<GroupTo> getUserInGroups(String userId) {
    List<GroupDefinition> groupDefinitions = Context.getProcessEngineConfiguration().getGroupDefinitions();
    List<GroupTo> groupTos=new ArrayList<GroupTo>();
    for (GroupDefinition groupDefinition : groupDefinitions) {
      List<GroupTo> groupTosTemp=groupDefinition.findGroupMembersByUser(userId);
     
      if(groupTosTemp!=null&&groupTosTemp.size()>0){
        groupTos.addAll(groupTosTemp);
      }
     
     
    }
    return groupTos;
  }
 
  @Override
  public Map<String,Object> getUserTos(Page page,Map<String,Object> queryMap) {
    Map<String,Object> resultMap = new HashMap<String,Object>();
    List<UserTo> resultList = new ArrayList<UserTo>();
    String userIdField=getUserInfoConfig().getUserIdField();
    String userNameField=getUserInfoConfig().getUserNameField();
    String sqlText=getUserInfoConfig().getSqlText();
    SqlCommand sqlCommand = getSqlCommand();
    String sql = "SELECT USERTABLE.* FROM ("+sqlText+") USERTABLE WHERE 1=1";
    String countSql = "SELECT count(*) FROM ("+sqlText+") USERTABLE WHERE 1=1";
    String whereSql = "";
    if(queryMap != null && queryMap.containsKey("USERID")){
      whereSql += " AND "+userIdField+" LIKE '%"+queryMap.get("USERID")+"%'";
    }
    if(queryMap != null && queryMap.containsKey("USERNAME")){
      whereSql += " AND "+userNameField+" LIKE '%"+queryMap.get("USERNAME")+"%' ";
    }
    sql += whereSql;
    countSql += whereSql;
   
    int count = Integer.parseInt(sqlCommand.queryForValue(countSql).toString());
    if (page != null) {
      Pagination pagination = Context.getProcessEngineConfiguration().getDbConfig().getPagination();
      sql = pagination.getPaginationSql(sql, page.getFirstResult(), page.getMaxResults(), "*",null);
    }
    List<Map<String, Object>> dataObj = sqlCommand.queryForList(sql, null);
   
    for(int i= 0;i<dataObj.size();i++){
      if (dataObj.get(i).get(userIdField) != null) {
        UserTo userTo = new UserTo(StringUtil.getString(dataObj.get(i).get(userIdField)), StringUtil.getString(dataObj.get(i).get(userNameField)), dataObj.get(i));
        resultList.add(userTo);
      }
    }
    resultMap.put("userList", resultList);
    resultMap.put("count", count);
    return resultMap;
  }

}
TOP

Related Classes of com.founder.fix.fixflow.expand.identity.UserDefinitionImpl

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.