package com.norteksoft.bs.options.web;
import java.util.Date;
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.acs.entity.authorization.BusinessSystem;
import com.norteksoft.acs.service.authorization.BusinessSystemManager;
import com.norteksoft.bs.options.entity.Option;
import com.norteksoft.bs.options.entity.OptionGroup;
import com.norteksoft.bs.options.service.OptionGroupManager;
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;
@Namespace("/options")
@ParentPackage("default")
@Results( { @Result(name = CrudActionSupport.RELOAD, location = "option-group", type = "redirectAction")})
public class OptionGroupAction extends CrudActionSupport<OptionGroup> {
private static final long serialVersionUID = 1L;
private Long optionGroupId;
private OptionGroup optionGroup;
private Page<OptionGroup> groups = new Page<OptionGroup>(0, true);
private OptionGroupManager optionGroupManager;
private String ids;
private String groupName;
private String groupNo;
private List<Option> option;
private Long optionId;
private Long systemId;
@Autowired
private BusinessSystemManager businessSystemManager;
private List<BusinessSystem> businessSystems;
@Override
public String list() throws Exception {
if(groups.getPageSize()>1){
optionGroupManager.getAllOptionGroupForPage(groups,systemId);
ApiFactory.getBussinessLogService().log("选项组管理", "查看选项组列表",ContextUtils.getSystemId("bs"));
renderText(PageUtils.pageToJson(groups));
return null;
}
return SUCCESS;
}
@Action("option-group-input")
public String input() throws Exception {
if(optionGroupId != null){
option = optionGroup.getOptions();
}
return SUCCESS;
}
public String checkGroupName() throws Exception {
boolean canCreate = optionGroupManager.checkOptionGroupCanCreate(groupName, optionGroupId);
renderText(String.valueOf(canCreate));
return null;
}
public String checkGroupNo() throws Exception{
boolean isOnly = optionGroupManager.checkOptionGroupForOnly(groupNo);
renderText(String.valueOf(isOnly));
return null;
}
@Action("option-group-save")
public String save() throws Exception {
if(optionGroupId == null){
optionGroup.setCompanyId(ContextUtils.getCompanyId());
optionGroup.setCreatorName(ContextUtils.getUserName());
optionGroup.setSystemId(systemId);
optionGroup.setCreatedTime(new Date());
}
option = optionGroupManager.saveOptionGroup(optionGroup, option);
addActionMessage("<font class=\"onSuccess\"><nobr>保存成功</nobr></font>");
ApiFactory.getBussinessLogService().log("选项组管理", "保存选项组",ContextUtils.getSystemId("bs"));
return "option-group-input";
}
@Action("option-group-delete")
public String delete() throws Exception {
String result=optionGroupManager.deleteOptionGroups(ids);
addActionMessage("<font class=\"onSuccess\"><nobr>"+result+"</nobr></font>");
ApiFactory.getBussinessLogService().log("选项组管理", "删除选项组",ContextUtils.getSystemId("bs"));
return null;
}
/**
* 删除选项
* @return
* @throws Exception
*/
public String deleteOption() throws Exception {
optionGroupManager.deleteOption(optionId);
return null;
}
/**
* 得到所有系统树
* @return
* @throws Exception
*/
@Action("system-tree")
public String systemTree() throws Exception {
StringBuilder tree = new StringBuilder("[ ");
tree.append(JsTreeUtils.generateJsTreeNodeNew("all_system", "open", "所有系统",childSystem(),""));
tree.append(" ]");
renderText(tree.toString());
return null;
}
public String childSystem(){
StringBuilder tree = new StringBuilder("");
businessSystems= businessSystemManager.getAllSystems();
for(BusinessSystem system :businessSystems){
tree.append(JsTreeUtils.generateJsTreeNodeNew(system.getId().toString(), "root", system.getName(),"")).append(",");
}
JsTreeUtils.removeLastComma(tree);
return tree.toString();
}
@Override
protected void prepareModel() throws Exception {
if(optionGroupId == null){
optionGroup = new OptionGroup();
}else{
optionGroup = optionGroupManager.getOptionGroup(optionGroupId);
}
}
public OptionGroup getModel() {
return this.optionGroup;
}
public Long getOptionGroupId() {
return optionGroupId;
}
public void setOptionGroupId(Long optionGroupId) {
this.optionGroupId = optionGroupId;
}
public Page<OptionGroup> getGroups() {
return groups;
}
public void setGroups(Page<OptionGroup> groups) {
this.groups = groups;
}
@Autowired
public void setOptionGroupManager(OptionGroupManager optionGroupManager) {
this.optionGroupManager = optionGroupManager;
}
public void setIds(String ids) {
this.ids = ids;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
public List<Option> getOption() {
return option;
}
public void setOption(List<Option> option) {
this.option = option;
}
public Long getOptionId() {
return optionId;
}
public void setOptionId(Long optionId) {
this.optionId = optionId;
}
public void setGroupNo(String groupNo) {
this.groupNo = groupNo;
}
public Long getSystemId() {
return systemId;
}
public void setSystemId(Long systemId) {
this.systemId = systemId;
}
}