📄 configaction.java
字号:
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 + -