package com.norteksoft.bs.options.web; import java.util.List; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Autowired; import com.norteksoft.bs.options.entity.Internation; import com.norteksoft.bs.options.entity.InternationOption; import com.norteksoft.bs.options.entity.Option; import com.norteksoft.bs.options.service.InternationManager; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.JsTreeUtils; import com.norteksoft.product.util.PageUtils; import com.norteksoft.product.web.struts2.CrudActionSupport; import com.norteksoft.product.web.struts2.Struts2Utils; @Namespace("/options") @ParentPackage("default") @Results( { @Result(name = CrudActionSupport.RELOAD, location = "internation", type = "redirectAction")}) public class InternationAction extends CrudActionSupport<Internation>{ private static final long serialVersionUID = 1L; @Autowired private InternationManager internationManager; private Page<Internation> pages=new Page<Internation>(0,true); private Page<InternationOption> interOptions=new Page<InternationOption>(0,true); private Internation internation; private Long id; private String ids; private String interCode; private static final String SUCCESS_MESSAGE_LEFT = "<font class=\"onSuccess\"><nobr>"; private static final String MESSAGE_RIGHT = "</nobr></font>"; private static final String ERROR_MESSAGE_LEFT = "<font class=\"onError\"><nobr>"; protected void addErrorMessage(String message){ this.addActionMessage(ERROR_MESSAGE_LEFT+message+MESSAGE_RIGHT); } protected void addSuccessMessage(String message){ this.addActionMessage(SUCCESS_MESSAGE_LEFT+message+MESSAGE_RIGHT); } /** * 删除国际化设置 */ @Override @Action("internation-delete") public String delete() throws Exception { internationManager.deleteInternations(ids); addSuccessMessage("删除成功"); ApiFactory.getBussinessLogService().log("国际化设置", "删除国际化设置",ContextUtils.getSystemId("bs")); return "internation"; } /** * 国际化设置表单 */ @Override @Action("internation-input") public String input() throws Exception { ApiFactory.getBussinessLogService().log("国际化设置", "国际化设置表单",ContextUtils.getSystemId("bs")); return "internation-input"; } /** * 国际化列表 */ @Override public String list() throws Exception { if(pages.getPageSize()>1){ internationManager.getInternations(pages); this.renderText(PageUtils.pageToJson(pages)); return null; } ApiFactory.getBussinessLogService().log("国际化设置", "查看国际化列表",ContextUtils.getSystemId("bs")); return SUCCESS; } /** * 子表内容(国际化选项表) * @return */ @Action("internation-chiledList") public String chiledList() throws Exception { if(interOptions.getPageSize()>1){ if(id!=null){ internationManager.getInternationOptions(interOptions,id); this.renderText(PageUtils.pageToJson(interOptions)); } } return null; } @Override protected void prepareModel() throws Exception { if(id==null){ internation=new Internation(); }else{ internation=internationManager.getInternation(id); } } /** * 保存国际化设置 */ @Override @Action("internation-save") public String save() throws Exception { internationManager.saveInternation(internation,interCode); ApiFactory.getBussinessLogService().log("国际化设置", "保存国际化设置",ContextUtils.getSystemId("bs")); return "internation-input"; } /** * 选择语言种类树页面 * @return * @throws Exception */ @Action("internation-select-category") public String selectCategory() throws Exception { StringBuilder sb=new StringBuilder("["); List<com.norteksoft.product.api.entity.Option> options=ApiFactory.getSettingService().getOptionsByGroupCode("internation"); for(com.norteksoft.product.api.entity.Option option:options){ sb.append(JsTreeUtils.generateJsTreeNodeNew(option.getId()+"", "", option.getName(), "")).append(","); } if(sb.charAt(sb.length()-1)==','){ sb.deleteCharAt(sb.length()-1); } sb.append("]"); this.renderText(sb.toString()); return null; } /** * 验证编码是否存在 * @return * @throws Exception */ @Action("internation-check-code") public String checkCode() throws Exception{ this.renderText(internationManager.isInternationExist(interCode,id)+""); return null; } @Action("internation-update-cache") public String updateCache() throws Exception{ internationManager.initAllInternations(); addSuccessMessage("更新缓存成功"); ApiFactory.getBussinessLogService().log("国际化设置", "更新国际化缓存",ContextUtils.getSystemId("bs")); return "internation"; } /** * 删除国家化项目 * @return * @throws Exception */ @Action("delete-internation-option") public String deleteInternationOption() throws Exception { internationManager.deleteInternationOption(id); String callback=Struts2Utils.getParameter("callback"); ApiFactory.getBussinessLogService().log("国际化设置", "删除国际化项目", ContextUtils.getSystemId("bs")); this.renderText(callback+"({msg:'删除成功'})"); return null; } public Internation getModel() { return internation; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Page<Internation> getPages() { return pages; } public Page<InternationOption> getInterOptions() { return interOptions; } public void setIds(String ids) { this.ids = ids; } public Internation getInternation() { return internation; } public void setInterCode(String interCode) { this.interCode = interCode; } }