?? 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);
// 根據(jù)ID封裝ConfigTree
ConfigTree configTree = configTreeMgr.getById(Integer.parseInt(id));
logger.debug("父ID=" + configTree.getParentId());
logger.debug("根據(jù)ID=" + id + "封裝ConfigTree成功");
// 根據(jù)上面封裝的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);
}
// 封裝所需字段,進(jìn)入字段編輯
public ActionForward gotoEditField(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
String forward = "editField";
String id = request.getParameter("id");// 字段ID
// 根據(jù)字段ID封裝字段
FieldList fieldList = fieldListMgr.getById(Integer.parseInt(id));
// 判斷是否為自定義字段
if (fieldList.getIsStandardField() == 2) {
forward = "editDefinedField";
}
request.setAttribute("fields", fieldList);
// 根據(jù)字段找出對應(yīng)的列表值
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
// 根據(jù)字段ID封裝字段
FieldList fieldList = fieldListMgr.getById(Integer.parseInt(id));
request.setAttribute("fields", fieldList);
// 根據(jù)字段找出對應(yīng)的列表值
List valueList = valueListMgr.getByField(fieldList);
request.setAttribute("valueList", valueList);
return mapping.findForward(forward);
}
// 封裝所需選項值,進(jìn)入選項值編輯
public ActionForward gotoEditValue(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws ApplicationException {
String forward = "editValue";
String id = request.getParameter("id");// 選項列表值ID
// 根據(jù)選項列表值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");// 修改后的目標(biāo)值
Integer defaultValue = 2;// 默認(rèn)值為否
if (request.getParameter("defauldValue") != null) {
defaultValue = Integer.parseInt(request
.getParameter("defauldValue"));// 判斷是否默認(rèn)值
}
// 判斷是否有設(shè)置了默認(rèn)值,如果有,要把其他的設(shè)為不是默認(rèn)值
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為不是默認(rèn)值
valueListMgr.update(value1);
}
}
logger.debug("是否有設(shè)默認(rèn)值 defaultValue="
+ request.getParameter("defauldValue"));
ValueList values = valueListMgr.getById(Integer.parseInt(id));
if (values.getFieldList().getIsStandardField() != 2) {
// 判斷字段是否有多值isMoreValue,如果也對相關(guān)值進(jìn)行修改
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);
// 修改對應(yīng)實表數(shù)據(jù)(相關(guān)值)
String InterrelaterFieldName = interrelater.getFieldList()
.getFieldName();
logger.debug("修改對應(yīng)實表的相關(guān)字段InterrelaterFieldName="
+ InterrelaterFieldName);
String InterrelaterTableName = configTreeMgr.getById(
interrelater.getFieldList().getConfigTree()
.getParentId()).getTableName();
logger.debug("修改對應(yīng)實表的相關(guān)表名InterrelaterTableName="
+ InterrelaterTableName);
configTreeMgr.updateTable(InterrelaterTableName,
InterrelaterFieldName, request
.getParameter("FormerlyInterrelaterValue"),
interrelaterValue);
}
// 修改對應(yīng)實表數(shù)據(jù)
// 得到要修改的字段名
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 + "'");
// 修改對應(yīng)實表值
configTreeMgr.updateTable(tableName, fieldName, modifyValue, value);
logger.debug("修改成功了");
}
// 修改選項列表值
values.setListValue(value);
values.setListValueState(request.getParameter("listValueState"));
values.setDefaultValue(defaultValue);// 設(shè)置默認(rèn)值,setDefaultValue=1為默認(rèn)
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");
}
// 封裝所需選項值,進(jìn)入選項值刪除
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();// 得到替換值
// 判斷該字段是否有多值,如果有把相關(guān)值也替換掉
int isMoreValue = value1.getFieldList().getIsMoreValue();
if (isMoreValue == 1) {
Interrelater interrelater = value1.getInterrelater();
delevalue.getInterrelater().setInterrelaterValue(
interrelater.getInterrelaterValue());
interrelaterMgr.update(value1.getInterrelater());
// 修改對應(yīng)實表數(shù)據(jù)
String InterrelaterFieldName = interrelater.getFieldList()
.getFieldName();
logger.debug("修改對應(yīng)實表的相關(guān)字段InterrelaterFieldName="
+ InterrelaterFieldName);
String InterrelaterTableName = configTreeMgr.getById(
interrelater.getFieldList().getConfigTree().getParentId())
.getTableName();
logger.debug("修改對應(yīng)實表的相關(guān)表名InterrelaterTableName="
+ InterrelaterTableName);
configTreeMgr.updateTable(InterrelaterTableName,
InterrelaterFieldName, request
.getParameter("FormerlyInterrelaterValue"), value1
.getInterrelater().getInterrelaterValue());
}
// 修改對應(yīng)實表數(shù)據(jù)
// 得到要修改的字段名
String fieldName = value1.getFieldList().getFieldName();
logger.debug("得到要修改的字段名" + fieldName);
// 這個字段名所屬哪個模塊實體
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -