All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.wicp.tams.cas.components.ComboBoxUser Maven / Gradle / Ivy

package net.wicp.tams.cas.components;

import java.sql.Connection;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.util.TextStreamResponse;

import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.cas.bean.constant.ColsSysUser;
import net.wicp.tams.cas.services.IQuery;
import net.wicp.tams.common.apiext.CollectionUtil;
import net.wicp.tams.common.apiext.json.EasyUiAssist;
import net.wicp.tams.common.callback.impl.convertvalue.ConvertValueEnum;
import net.wicp.tams.common.constant.dic.YesOrNo;
import net.wicp.tams.common.web.PageAssist;
import net.wicp.tams.component.tools.TapestryAssist;

/*****
 * 用户下拉列表
 * 
 * TODO pageSize设置会有问题
 * 
 * @author Andy.zhou
 * 
 */
@Import(stack = "easyuistack")
@Slf4j
public class ComboBoxUser extends ComboBoxBusiAbs {

	@Parameter
	private String userName;

	@Parameter
	private String orgId;
	/**
	 * 是否查询子组织?默认为是
	 */
	@Parameter(value = "true")
	private boolean hasSub;

	@Override
	protected String getBusiName() {
		return "queryUser";
	}

	@Override
	protected void initParams() {
		// super.pagination=true;
	}

	@Inject
	private IQuery query;

	TextStreamResponse onQueryUser() {
		StringBuffer buff = new StringBuffer("where 1=1");
		if (resources.isBound("userName")) {
			buff.append(" and " + ColsSysUser.userName.getOriColName() + "='" + userName + "'");
		}
		if (resources.isBound("orgId")) {
			if (hasSub) {
				List> orgList = query.queryOrgById(orgId);
				Set colSetFromObj = CollectionUtil.getColSetFromObj(orgList, "id");
				String arrayJoin = CollectionUtil.arrayJoin(colSetFromObj.toArray(new Object[colSetFromObj.size()]),
						",");
				buff.append(" and " + ColsSysUser.orgId.getOriColName() + " in (" + arrayJoin + ")");
			} else {
				buff.append(" and " + ColsSysUser.orgId.getOriColName() + "=" + orgId);
			}
		}
		PageAssist page = req.buildPage();
		try {
			// 查询
			Connection connection = getConn();
			String sql = String.format("select * from %s.%s  %s", getDb(), ColsSysUser.tb, buff.toString());
			page.queryDo(connection, sql);
			connection.close();
		} catch (Exception e) {
			log.error("查询失败", e);
		}
		String retstr = EasyUiAssist.getJsonForGridAlias(page.getResult(),
				new String[] { String.format("%s,%s1", ColsSysUser.status, ColsSysUser.status) },
				CollectionUtil.newMap(ColsSysUser.status + "1", new ConvertValueEnum(YesOrNo.class)), page.getAllNum());
		return TapestryAssist.getTextStreamResponse(retstr);
	}

}