Package com.iisigroup.cap.auth.handler

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

/*
* RoleSetHandler.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.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.Role;
import com.iisigroup.cap.auth.model.RoleFunction;
import com.iisigroup.cap.auth.model.UserRole;
import com.iisigroup.cap.auth.service.RoleSetService;
import com.iisigroup.cap.base.service.CodeTypeService;
import com.iisigroup.cap.component.IRequest;
import com.iisigroup.cap.dao.utils.ISearch;
import com.iisigroup.cap.exception.CapException;
import com.iisigroup.cap.exception.CapFormatException;
import com.iisigroup.cap.exception.CapMessageException;
import com.iisigroup.cap.formatter.IBeanFormatter;
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.CapBeanUtil;
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("rolesethandler")
public class RoleSetHandler extends MFormHandler {

    @Resource
    private ICommonService commonSrv;

    @Autowired
    private CodeTypeService codeTypeService;

    @Resource
    private RoleSetService roleSetService;

    @HandlerType(HandlerTypeEnum.GRID)
    public GridResult query(ISearch search, IRequest params) {

        Map<String, IFormatter> fmt = new HashMap<String, IFormatter>();
        fmt.put("userCount", new IBeanFormatter() {
            private static final long serialVersionUID = 1L;

            @SuppressWarnings("unchecked")
            public Integer reformat(Object in) throws CapFormatException {
                if (in instanceof Role) {
                    return ((Role) in).getUrList().size();
                }
                return 0;
            }
        });

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

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

        Page<Map<String, Object>> page = roleSetService.findPageUser(search,
                code);
        return new MapGridResult(page.getContent(), page.getTotalRow(), null);
    }

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

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

    @HandlerType(HandlerTypeEnum.GRID)
    public MapGridResult queryEditUsr(ISearch search, IRequest params)
            throws CapException {
        String depCode = params.get("depCode");
        String roleCode = params.get("roleCode");

        Page<Map<String, Object>> page = roleSetService.findPageEditUsr(search,
                roleCode, depCode);
        return new MapGridResult(page.getContent(), page.getTotalRow(), null);
    }

    @HandlerType(HandlerTypeEnum.GRID)
    public MapGridResult queryEditFunc(ISearch search, IRequest params)
            throws CapException {
        String parent = params.get("parent");
        String code = params.get("code");
        String sysType = params.get("sysType");

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

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

        if (!CapString.isEmpty(code)) {
            role = roleSetService.findRoleByCode(code);
        }

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

        return result;
    }// ;

    public IResult getAllDepartment(IRequest request) throws CapException {
        AjaxFormResult result = new AjaxFormResult();
        result.set("All", CapAppContext.getMessage("All"));
        result.putAll(roleSetService.findAllDepartment());

        return result;
    }

    public IResult getAllFunc(IRequest request) throws CapException {
        AjaxFormResult result = new AjaxFormResult();
        String sysType = request.get("sysType");
        if (CapString.isEmpty(sysType)) {
            return result;
        }

        result.set("All", CapAppContext.getMessage("All"));
        result.putAll(roleSetService.findAllFunc(sysType));

        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");
        Role role = null;

        if (!CapString.isEmpty(code)) {
            role = roleSetService.findRoleByCode(code);
            if (isNew.equals("true") && role != null) {
                throw new CapMessageException(
                        CapAppContext.getMessage("js.data.exists"),
                        RoleSetHandler.class);
            }
        } else {
            throw new CapMessageException(
                    CapAppContext.getMessage("EXCUE_ERROR"),
                    RoleSetHandler.class);
        }
        if (role == null) {
            role = new Role();
        }
        CapBeanUtil.map2Bean(request, role, Role.class);
        role.setUpdater(CapSecurityContext.getUserId());
        role.setUpdateTime(CapDate.getCurrentTimestamp());

        commonSrv.save(role);

        return result;
    }// ;

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

        if (!CapString.isEmpty(code)) {
            role = roleSetService.findRoleByCode(code);
        }
        if (role == null) {
            throw new CapMessageException(
                    CapAppContext.getMessage("EXCUE_ERROR"),
                    RoleSetHandler.class);
        }

        List<UserRole> list = new ArrayList<UserRole>();
        if (users != null) {
            for (Object item : users) {
                JSONObject user = (JSONObject) item;
                UserRole userRole = new UserRole();
                userRole.setUserCode(user.getString("code"));
                userRole.setRoleCode(role.getCode());
                userRole.setUpdater(CapSecurityContext.getUserId());
                userRole.setUpdateTime(CapDate.getCurrentTimestamp());
                list.add(userRole);
            }
        }
        commonSrv.save(list);

        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 funcItem = JSONArray.fromObject(request.get("funcItem"));
        Role role = null;

        if (!CapString.isEmpty(code)) {
            role = roleSetService.findRoleByCode(code);
        }
        if (role == null) {
            throw new CapMessageException(
                    CapAppContext.getMessage("EXCUE_ERROR"),
                    RoleSetHandler.class);
        }

        List<RoleFunction> list = new ArrayList<RoleFunction>();
        if (funcItem != null) {
            for (Object item : funcItem) {
                JSONObject func = (JSONObject) item;
                RoleFunction roleFunc = new RoleFunction();
                roleFunc.setRoleCode(role.getCode());
                roleFunc.setFuncCode(func.getString("code"));
                roleFunc.setUpdater(CapSecurityContext.getUserId());
                roleFunc.setUpdateTime(CapDate.getCurrentTimestamp());
                list.add(roleFunc);
            }
        }
        commonSrv.save(list);

        return result;
    }// ;

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

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

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

        List<String> delUsr = new ArrayList<String>();
        if (users != null) {
            for (Object item : users) {
                JSONObject usr = (JSONObject) item;
                delUsr.add(usr.getString("code"));
            }
        }
        roleSetService.deleteUrList(code, delUsr);

        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 funcItem = JSONArray.fromObject(request.get("funcItem"));

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

        List<String> delFunc = new ArrayList<String>();
        if (funcItem != null) {
            for (Object item : funcItem) {
                JSONObject usr = (JSONObject) item;
                delFunc.add(usr.getString("code"));
            }
        }
        roleSetService.deleteRfList(code, delFunc);

        return result;
    }// ;

}
TOP

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

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.