Package com.iisigroup.cap.auth.handler

Source Code of com.iisigroup.cap.auth.handler.FunctionSetHandler

/*
* PgmSetHandler.java
*
* Copyright (c) 2009-2012 International Integrated System, Inc.
* All Rights Reserved.
*
* Licensed Materials - Property of International Integrated System, Inc.
*
* This software is confidential and proprietary information of
* International Integrated System, Inc. ("Confidential Information").
*/
package com.iisigroup.cap.auth.handler;

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

import javax.annotation.Resource;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import com.iisigroup.cap.annotation.HandlerType;
import com.iisigroup.cap.annotation.HandlerType.HandlerTypeEnum;
import com.iisigroup.cap.auth.model.Function;
import com.iisigroup.cap.auth.model.RoleFunction;
import com.iisigroup.cap.auth.service.FunctionSetService;
import com.iisigroup.cap.base.formatter.CodeTypeFormatter;
import com.iisigroup.cap.base.service.CodeTypeService;
import com.iisigroup.cap.component.IRequest;
import com.iisigroup.cap.dao.utils.ISearch;
import com.iisigroup.cap.dao.utils.SearchMode;
import com.iisigroup.cap.exception.CapException;
import com.iisigroup.cap.exception.CapMessageException;
import com.iisigroup.cap.formatter.IFormatter;
import com.iisigroup.cap.handler.MFormHandler;
import com.iisigroup.cap.jpa.utils.CapEntityUtil;
import com.iisigroup.cap.model.Page;
import com.iisigroup.cap.response.AjaxFormResult;
import com.iisigroup.cap.response.GridResult;
import com.iisigroup.cap.response.IResult;
import com.iisigroup.cap.response.MapGridResult;
import com.iisigroup.cap.security.CapSecurityContext;
import com.iisigroup.cap.service.ICommonService;
import com.iisigroup.cap.utils.CapAppContext;
import com.iisigroup.cap.utils.CapDate;
import com.iisigroup.cap.utils.CapString;

/**
* <pre>
* 系統功能維護
* </pre>
*
* @since 2014/1/16
* @author tammy
* @version <ul>
*          <li>2014/1/16,tammy,new
*          </ul>
*/
@Scope("request")
@Controller("functionsethandler")
public class FunctionSetHandler extends MFormHandler {

  @Resource
  private ICommonService commonSrv;

  @Autowired
  private CodeTypeService codeTypeService;

  @Resource
  private FunctionSetService functionSetService;

  @HandlerType(HandlerTypeEnum.GRID)
  public GridResult query(ISearch search, IRequest params) {
    String sysType = params.get("sysType");
    String level = params.get("level");
    String code = params.get("code");
    String name = params.get("name");

    if (!CapString.isEmpty(sysType)) {
      search.addSearchModeParameters(SearchMode.EQUALS, "sysType", sysType);
    }
    if (!CapString.isEmpty(level)) {
      search.addSearchModeParameters(SearchMode.EQUALS, "level", level);
    }
    if (!CapString.isEmpty(code)) {
      search.addSearchModeParameters(SearchMode.EQUALS, "code", code);
    }
    if (!CapString.isEmpty(name)) {
      search.addSearchModeParameters(SearchMode.EQUALS, "name", name);
    }

    Map<String, IFormatter> fmt = new HashMap<String, IFormatter>();
    fmt.put("SYSNAME", new CodeTypeFormatter(codeTypeService, "authSysId"));

    Page<Function> page = commonSrv.findPage(Function.class, search);
    return new GridResult(page.getContent(), page.getTotalRow(), fmt);
  }// ;

  @HandlerType(HandlerTypeEnum.GRID)
  public MapGridResult queryRole(ISearch search, IRequest params) {
    String sysType = params.get("sysType");
    String code = params.get("code");
    if (CapString.isEmpty(code)) {
      return new MapGridResult();
    }

    Page<Map<String, Object>> page = functionSetService.findPage(search, sysType,
        code);
    return new MapGridResult(page.getContent(), page.getTotalRow(), null);
  }// ;

  @HandlerType(HandlerTypeEnum.GRID)
  public MapGridResult queryAllRole(ISearch search, IRequest params) {
    String sysType = params.get("sysType");
    String code = params.get("code");
    if (CapString.isEmpty(code)) {
      return new MapGridResult();
    }

    Page<Map<String, Object>> page = functionSetService.findEditPage(search,
        sysType, code);
    return new MapGridResult(page.getContent(), page.getTotalRow(), null);
  }// ;

  public IResult queryForm(IRequest request) {
    AjaxFormResult result = new AjaxFormResult();
    String code = request.get("code");
    Function function = null;

    if (!CapString.isEmpty(code)) {
      function = functionSetService.findFunctionByCode(code);
    }

    if (function != null) {
      result.putAll(new AjaxFormResult(function.toJSONObject(
          CapEntityUtil.getColumnName(function), null)));
    }

    return result;
  }// ;

  public IResult loadFunc(IRequest request) throws CapException {
    AjaxFormResult result = new AjaxFormResult();
    String sysType = request.get("sysType");
    String level = request.get("level");

    List<Function> functions = functionSetService.findFunctionBySysTypeAndLevel(sysType,
        level);

    if (!CollectionUtils.isEmpty(functions)) {
      JSONArray funcArray = new JSONArray();
      for (Function func : functions) {
        funcArray.add(func.toJSONObject(
            CapEntityUtil.getColumnName(func), null));
      }
      result.set("functions", funcArray.toString());
    }

    return result;
  }// ;

  /**
   * 編輯資料
   *
   * @param request
   *            IRequest
   * @return {@link tw.com.iisi.cap.response.IResult}
   * @throws CapException
   */
  public IResult save(IRequest request) {
    AjaxFormResult result = new AjaxFormResult();
    String code = request.get("code");
    String isNew = request.get("isNew");
    Function function = null;

    if (!CapString.isEmpty(code)) {
      function = functionSetService.findFunctionByCode(code);
      if (isNew.equals("true") && function != null) {
        throw new CapMessageException(
            CapAppContext.getMessage("js.data.exists"),
            FunctionSetHandler.class);
      }
    }
    functionSetService.save(function, request);
    return result;
  }// ;

  /**
   * 編輯資料
   *
   * @param request
   *            IRequest
   * @return {@link tw.com.iisi.cap.response.IResult}
   * @throws CapException
   */
  public IResult saveRfList(IRequest request) {
    AjaxFormResult result = new AjaxFormResult();
    String code = request.get("code");
    JSONArray roleItem = JSONArray.fromObject(request.get("roleItem"));
    Function codeItem = null;

    if (!CapString.isEmpty(code)) {
      codeItem = functionSetService.findFunctionByCode(code);
    }
    if (codeItem == null) {
      throw new CapMessageException(
          CapAppContext.getMessage("EXCUE_ERROR"),
          RoleSetHandler.class);
    }

    List<RoleFunction> setRole = new ArrayList<RoleFunction>();
    if (roleItem != null) {
      for (Object item : roleItem) {
        JSONObject role = (JSONObject) item;
        RoleFunction rlf = new RoleFunction();
        rlf.setRoleCode(role.getString("code"));
        rlf.setFuncCode(Integer.toString(codeItem.getCode()));
        rlf.setUpdater(CapSecurityContext.getUserId());
        rlf.setUpdateTime(CapDate.getCurrentTimestamp());
        setRole.add(rlf);
      }
    }
    commonSrv.save(setRole);

    return result;
  }// ;

  /**
   * 刪除資料
   *
   * @param request
   *            IRequest
   * @return {@link tw.com.iisi.cap.response.IResult}
   * @throws CapException
   */
  public IResult delete(IRequest request) {
    AjaxFormResult result = new AjaxFormResult();
    Function code = functionSetService.findFunctionByCode(request.get("code"));
    if (code != null) {
      commonSrv.delete(code);
    }
    return result;
  }// ;

  /**
   * 刪除資料
   *
   * @param request
   *            IRequest
   * @return {@link tw.com.iisi.cap.response.IResult}
   * @throws CapException
   */
  public IResult deleteRfList(IRequest request) {
    AjaxFormResult result = new AjaxFormResult();
    String code = request.get("code");
    JSONArray roleItem = JSONArray.fromObject(request.get("roleItem"));

    if (CapString.isEmpty(code)) {
      throw new CapMessageException(
          CapAppContext.getMessage("EXCUE_ERROR"),
          RoleSetHandler.class);
    }

    List<String> delRole = new ArrayList<String>();
    if (roleItem != null) {
      for (Object item : roleItem) {
        JSONObject role = (JSONObject) item;
        delRole.add(role.getString("code"));
      }
    }
    functionSetService.deleteRfList(code, delRole);

    return result;
  }// ;

}
TOP

Related Classes of com.iisigroup.cap.auth.handler.FunctionSetHandler

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.