⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configaction.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.yuanchung.sales.struts.config.action;

import java.util.Date;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.yuanchung.sales.dao.config.FieldListDAO;
import com.yuanchung.sales.dao.config.FieldListDAOImpl;
import com.yuanchung.sales.dao.config.ValueListDAO;
import com.yuanchung.sales.dao.config.ValueListDAOImpl;
import com.yuanchung.sales.exception.ApplicationException;
import com.yuanchung.sales.model.config.ConfigTree;
import com.yuanchung.sales.model.config.FieldList;
import com.yuanchung.sales.model.config.Interrelater;
import com.yuanchung.sales.model.config.ValueList;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.service.config.ConfigTreeMgr;
import com.yuanchung.sales.service.config.FieldListMgr;
import com.yuanchung.sales.service.config.InterrelaterMgr;
import com.yuanchung.sales.service.config.ValueListMgr;
import com.yuanchung.sales.util.SessionMgr;

public class ConfigAction extends DispatchAction {
	private static Logger logger = Logger.getLogger(ConfigAction.class);

	private ConfigTreeMgr configTreeMgr;

	public void setConfigTreeMgr(ConfigTreeMgr configTreeMgr) {
		this.configTreeMgr = configTreeMgr;
	}

	private FieldListMgr fieldListMgr;

	public void setFieldListMgr(FieldListMgr fieldListMgr) {
		this.fieldListMgr = fieldListMgr;
	}

	private ValueListMgr valueListMgr;

	public void setValueListMgr(ValueListMgr valueListMgr) {
		this.valueListMgr = valueListMgr;
	}

	public InterrelaterMgr interrelaterMgr;

	public void setInterrelaterMgr(InterrelaterMgr interrelaterMgr) {
		this.interrelaterMgr = interrelaterMgr;
	}

	// 获取全部字段
	public ActionForward getField(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		String forward = "fieldList";
		String id = request.getParameter("id");// 实体ID
		logger.debug("传过来的ID=" + id);

		// 根据ID封装ConfigTree
		ConfigTree configTree = configTreeMgr.getById(Integer.parseInt(id));
		logger.debug("父ID=" + configTree.getParentId());
		logger.debug("根据ID=" + id + "封装ConfigTree成功");
		// 根据上面封装的ConfigTree查找Fieldlist
		List fieldList = fieldListMgr.getByConfigTree(configTree);

		request.setAttribute("id", id);
		request.setAttribute("configTree", configTreeMgr.getById(configTree
				.getParentId()));
		request.setAttribute("fieldList", fieldList);
		return mapping.findForward(forward);
	}

	// 封装所需字段,进入字段编辑
	public ActionForward gotoEditField(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		String forward = "editField";
		String id = request.getParameter("id");// 字段ID

		// 根据字段ID封装字段
		FieldList fieldList = fieldListMgr.getById(Integer.parseInt(id));

		// 判断是否为自定义字段
		if (fieldList.getIsStandardField() == 2) {
			forward = "editDefinedField";
		}

		request.setAttribute("fields", fieldList);

		// 根据字段找出对应的列表值
		List valueList = valueListMgr.getByField(fieldList);
		request.setAttribute("valueList", valueList);

		return mapping.findForward(forward);
	}

	// 查看字段所有信息
	public ActionForward view(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		String forward = "valueList";
		String id = request.getParameter("id");// 字段ID

		// 根据字段ID封装字段
		FieldList fieldList = fieldListMgr.getById(Integer.parseInt(id));
		request.setAttribute("fields", fieldList);

		// 根据字段找出对应的列表值
		List valueList = valueListMgr.getByField(fieldList);
		request.setAttribute("valueList", valueList);
		return mapping.findForward(forward);
	}

	// 封装所需选项值,进入选项值编辑
	public ActionForward gotoEditValue(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		String forward = "editValue";
		String id = request.getParameter("id");// 选项列表值ID

		// 根据选项列表值ID封装选项列表值
		ValueList valueList = valueListMgr.getById(Integer.parseInt(id));
		request.setAttribute("valueList", valueList);
		return mapping.findForward(forward);
	}

	// 确定修改选项值
	public ActionForward updateValue(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		User user = SessionMgr.getCustSession(request);

		String forward = "editField";
		String id = request.getParameter("id");// 选项列表值ID
		String modifyValue = request.getParameter("modifyValue");// 将被修改的值
		String value = request.getParameter("value");// 修改后的目标值
		Integer defaultValue = 2;// 默认值为否
		if (request.getParameter("defauldValue") != null) {
			defaultValue = Integer.parseInt(request
					.getParameter("defauldValue"));// 判断是否默认值
		}
		// 判断是否有设置了默认值,如果有,要把其他的设为不是默认值
		if (defaultValue == 1) {
			logger.debug("这里有到吗?");
			List list = valueListMgr.getByNotEId(Integer.parseInt(id));
			Iterator it = list.iterator();
			while (it.hasNext()) {
				ValueList value1 = (ValueList) it.next();
				value1.setDefaultValue(2);// 2为不是默认值
				valueListMgr.update(value1);
			}
		}
		logger.debug("是否有设默认值 defaultValue="
				+ request.getParameter("defauldValue"));

		ValueList values = valueListMgr.getById(Integer.parseInt(id));

		if (values.getFieldList().getIsStandardField() != 2) {

			// 判断字段是否有多值isMoreValue,如果也对相关值进行修改
			int isMoreValue = values.getFieldList().getIsMoreValue();
			if (isMoreValue == 1) {
				String interrelaterValue = request
						.getParameter("interrelaterValue");
				Integer interrelaterId = Integer.parseInt(request
						.getParameter("interrelaterId"));
				Interrelater interrelater = interrelaterMgr
						.getById(interrelaterId);
				interrelater.setInterrelaterValue(interrelaterValue);
				interrelaterMgr.update(interrelater);

				// 修改对应实表数据(相关值)
				String InterrelaterFieldName = interrelater.getFieldList()
						.getFieldName();
				logger.debug("修改对应实表的相关字段InterrelaterFieldName="
						+ InterrelaterFieldName);
				String InterrelaterTableName = configTreeMgr.getById(
						interrelater.getFieldList().getConfigTree()
								.getParentId()).getTableName();
				logger.debug("修改对应实表的相关表名InterrelaterTableName="
						+ InterrelaterTableName);
				configTreeMgr.updateTable(InterrelaterTableName,
						InterrelaterFieldName, request
								.getParameter("FormerlyInterrelaterValue"),
						interrelaterValue);
			}

			// 修改对应实表数据
			// 得到要修改的字段名
			String fieldName = values.getFieldList().getFieldName();
			logger.debug("得到要修改的字段名" + fieldName);
			// 这个字段名所属哪个模块实体ID
			int objectId = values.getFieldList().getConfigTree().getParentId();
			logger.debug("模块实体ID=" + objectId);
			String tableName = configTreeMgr.getById(objectId).getTableName();
			logger.debug("这个字段名所属模块实体表 " + tableName + " 字段为 " + fieldName
					+ " 值为 '" + modifyValue + "' 都将被修改为 '" + value + "'");
			// 修改对应实表值
			configTreeMgr.updateTable(tableName, fieldName, modifyValue, value);
			logger.debug("修改成功了");

		}
		// 修改选项列表值
		values.setListValue(value);
		values.setListValueState(request.getParameter("listValueState"));
		values.setDefaultValue(defaultValue);// 设置默认值,setDefaultValue=1为默认
		values.setLastModifier(user);
		values.setLastModifyTime(new Date());
		valueListMgr.update(values);

		List valueList = valueListMgr.getByField(values.getFieldList());

		request.setAttribute("fields", values.getFieldList());
		request.setAttribute("valueList", valueList);
		return mapping.findForward(forward);
	}

	// 编辑自定义字段
	public ActionForward editDefinedField(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		String id = request.getParameter("id");
		String fieldLable = request.getParameter("fieldLable");
		String fieldName = request.getParameter("fieldName");
		String dataType = request.getParameter("dataType");
		String remark = request.getParameter("remark");
		String helpText = request.getParameter("helpText");

		FieldList fields = fieldListMgr.getById(Integer.parseInt(id));
		fields.setFieldLable(fieldLable);
		fields.setFieldName(fieldName);
		fields.setDataType(dataType);
		fields.setRemark(remark);
		fields.setHelpText(helpText);
		fields.setLastModifyTime(new Date());
		logger.debug("时间"+fields.getLastModifyTime());
		fields.setLastModifier(SessionMgr.getCustSession(request));
		fieldListMgr.update(fields);

		request.setAttribute("id", fields.getConfigTree().getId());
		request.setAttribute("configTree", configTreeMgr.getById(fields
				.getConfigTree().getParentId()));
		request.setAttribute("fieldList", fieldListMgr.getByConfigTree(fields
				.getConfigTree()));
		return mapping.findForward("fieldList");
	}

	// 删除自定义字段
	public ActionForward deleteDefinedField(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws ApplicationException {
		String id = request.getParameter("id");
		FieldList fields = fieldListMgr.getById(Integer.parseInt(id));

		// 如果是选项列表类型的要先删除列表值
		List list = valueListMgr.getByField(fields);
		Iterator it = list.iterator();
		while (it.hasNext()) {
			valueListMgr.delete((ValueList) it.next());
		}

		fieldListMgr.delete(fields);
		request.setAttribute("message", "自定义字段删除成功!");
		request.setAttribute("id", fields.getConfigTree().getId());
		request.setAttribute("configTree", configTreeMgr.getById(fields
				.getConfigTree().getParentId()));
		request.setAttribute("fieldList", fieldListMgr.getByConfigTree(fields
				.getConfigTree()));
		return mapping.findForward("fieldList");
	}

	// 封装所需选项值,进入选项值删除
	public ActionForward deleteValue(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {
		String id = request.getParameter("id");// 选项列表值ID

		ValueList values = valueListMgr.getById(Integer.parseInt(id));
		List valueList = valueListMgr.getByField(values.getFieldList());
		FieldList field = values.getFieldList();
		if (field.getIsStandardField() == 2) {
			valueListMgr.delete(values);
			request.setAttribute("fields", field);
			request.setAttribute("valueList", valueListMgr.getByField(field));
			return mapping.findForward("editField");
		}
		if (values.getFieldList().getIsMoreValue() == 1) {
			String FormerlyInterrelaterValue = values.getInterrelater()
					.getInterrelaterValue();
			request.setAttribute("FormerlyInterrelaterValue",
					FormerlyInterrelaterValue);
		}

		request.setAttribute("valueList", valueList);
		request.setAttribute("values", values);
		return mapping.findForward("deleteValue");
	}

	// 确定删除选项值
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {

		String deleteId = request.getParameter("deleteId");// 将被删除值的ID
		String id = request.getParameter("value");// 替换值ID
		String deleteValue = request.getParameter("deleteValue");// 将被替换掉的值
		logger.debug("将被删除值的ID deleteId=" + deleteId);
		logger.debug("id===" + id);

		ValueList delevalue = valueListMgr.getById(Integer.parseInt(deleteId));// 封装将被替换的值
		ValueList value1 = valueListMgr.getById(Integer.parseInt(id));// 封装替换值

		value1.getListValue();// 得到替换值

		// 判断该字段是否有多值,如果有把相关值也替换掉
		int isMoreValue = value1.getFieldList().getIsMoreValue();
		if (isMoreValue == 1) {
			Interrelater interrelater = value1.getInterrelater();
			delevalue.getInterrelater().setInterrelaterValue(
					interrelater.getInterrelaterValue());
			interrelaterMgr.update(value1.getInterrelater());

			// 修改对应实表数据
			String InterrelaterFieldName = interrelater.getFieldList()
					.getFieldName();
			logger.debug("修改对应实表的相关字段InterrelaterFieldName="
					+ InterrelaterFieldName);
			String InterrelaterTableName = configTreeMgr.getById(
					interrelater.getFieldList().getConfigTree().getParentId())
					.getTableName();
			logger.debug("修改对应实表的相关表名InterrelaterTableName="
					+ InterrelaterTableName);
			configTreeMgr.updateTable(InterrelaterTableName,
					InterrelaterFieldName, request
							.getParameter("FormerlyInterrelaterValue"), value1
							.getInterrelater().getInterrelaterValue());
		}

		// 修改对应实表数据
		// 得到要修改的字段名
		String fieldName = value1.getFieldList().getFieldName();
		logger.debug("得到要修改的字段名" + fieldName);
		// 这个字段名所属哪个模块实体

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -