package cn.hmsoft.frame.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.hmsoft.frame.data.dao.FrameModuleDao;
import cn.hmsoft.frame.data.model.FrameModule;
import cn.hmsoft.frame.util.FrameAssertUtil;

@Service
public class FrameModuleService extends FrameService {

	@Autowired
	private FrameModuleDao frameModuleDao;

	public List<FrameModule> listModule(String project_name) {
		return frameModuleDao.listModule(project_name);
	}
	
	public void addModule(FrameModule module) {
		FrameAssertUtil.isNotEmpty(module.getModule_name(), "模块名称为空");
		FrameAssertUtil.isNotEmpty(module.getModule_version(), "模块版本为空");
		FrameAssertUtil.isNotEmpty(module.getModule_class(), "模块实现类为空");
		module.setModule_name(module.getModule_name().trim());
		FrameModule tr = this.frameModuleDao.find("module_name", module.getModule_name());
		FrameAssertUtil.isNull(tr, "模块名称 " + module.getModule_name() + " 已经存在，请重新输入");
		this.frameModuleDao.insert(module);
	}

	public void editModule(FrameModule module) {
		FrameAssertUtil.isNotEmpty(module.getModule_name(), "模块名称为空");
		FrameAssertUtil.isNotEmpty(module.getModule_version(), "模块版本为空");
		FrameAssertUtil.isNotEmpty(module.getModule_class(), "模块实现类为空");
		FrameModule tr = this.frameModuleDao.find("module_name", module.getModule_name());
		if (tr != null)
			FrameAssertUtil.isEqual(tr.getModule_id(), module.getModule_id(), "模块 " + module.getModule_name() + " 已经存在，请重新输入");
		
		this.frameModuleDao.update(module);
	}

	public void deleteModule(int module_id) {		
		this.frameModuleDao.delete(module_id);
	}

}
