package com.gaowj.business.procdefiChooseUser;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;

import org.apache.ibatis.session.RowBounds;

import com.gaowj.business.ProcdefiChooseUserBusiness;
import com.gaowj.business.exception.BusinessException;
import com.gaowj.business.util.Page;
import com.gaowj.business.util.SessionUtil;

public class ProcdefiChooseUserBusinessImpl implements
		ProcdefiChooseUserBusiness {

	private procdefiChooseUserDAO procdefiChooseUserDAO;
	
	
	public procdefiChooseUserDAO getProcdefiChooseUserDAO() {
		return procdefiChooseUserDAO;
	}


	public void setProcdefiChooseUserDAO(procdefiChooseUserDAO procdefiChooseUserDAO) {
		this.procdefiChooseUserDAO = procdefiChooseUserDAO;
	}


	@Override
	public void insert_procdefi_chooseUser(Map<String, Object> entity)
			throws BusinessException {
		// TODO Auto-generated method stub
		if (entity.get("UUID") == null) {
			entity.put("UUID", java.util.UUID.randomUUID().toString());
		}
		if (entity.get("CREATE_TIME") == null) {
			entity.put("CREATE_TIME", new Date());
		}
		if (entity.get("CREATE_ID") == null) {
			entity.put("CREATE_ID", SessionUtil.getCode());
		}
		if (entity.get("UPDATE_ID") == null) {
			entity.put("UPDATE_ID", SessionUtil.getCode());
		}
		if (entity.get("UPDATE_TIME") == null) {
			entity.put("UPDATE_TIME", new Date());
		}

		// 动态传值插入
		List<String> infoListKey = new ArrayList<String>();
		List<Object> infoList = new ArrayList<Object>();
		if (entity.keySet() != null) {
			Set<String> key = entity.keySet();
			// 将map集合中的key和value 取出来分别放到list集合里
			for (String str : key) {
				infoList.add(entity.get(str));
				infoListKey.add(str);
			}
			entity.put("infoListKey", infoListKey);
			entity.put("infoList", infoList);
		}
		procdefiChooseUserDAO.insert_procdefi_chooseUser(entity);
		entity.clear();
		
	}


	@Override
	public Page<Map<String, Object>> list_procdefi_chooseUser(int pageNo,
			int pageSize, Map<String, Object> query) throws BusinessException {
		// TODO Auto-generated method stub
		int pageStart = (pageNo - 1) * pageSize;

		// 获取列表
		List<Map<String, Object>> items = procdefiChooseUserDAO.list_procdefi_chooseUser(new RowBounds(pageStart, pageSize), query);
		// 获取列表个数
		int count = procdefiChooseUserDAO.listCount_procdefi_chooseUser(query);

		// 创建分页对象
		Page<Map<String, Object>> page = new Page<Map<String, Object>>();
		page.setStart(pageStart);
		page.setLimit(pageSize);
		page.setCount(count);
		page.setItems(items);
		return page;
	}


	@Override
	public List<Map<String, Object>> list_procdefi_chooseUser(
			Map<String, Object> entity) throws BusinessException {
		// TODO Auto-generated method stub
		return procdefiChooseUserDAO.list_procdefi_chooseUser(entity);
	}


	@Override
	public void delete_procdefi_chooseUser_byKeyId(String key_id)
			throws BusinessException {
		// TODO Auto-generated method stub
		procdefiChooseUserDAO.delete_procdefi_chooseUser_byKeyId(key_id);
	}

}