Java tutorial
/** * Copyright (c) 2012-2014 http://www.eryansky.com * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.eryansky.web.base; import com.eryansky.common.exception.ActionException; import com.eryansky.common.model.Combobox; import com.eryansky.common.model.Datagrid; import com.eryansky.common.model.Result; import com.eryansky.common.model.TreeNode; import com.eryansky.common.orm.Page; import com.eryansky.common.orm.PropertyFilter; import com.eryansky.common.orm.entity.StatusState; import com.eryansky.common.orm.hibernate.EntityManager; import com.eryansky.common.utils.StringUtils; import com.eryansky.common.utils.collections.Collections3; import com.eryansky.common.utils.mapper.JsonMapper; import com.eryansky.common.web.struts2.StrutsAction; import com.eryansky.common.web.struts2.utils.Struts2Utils; import com.eryansky.entity.base.Organ; import com.eryansky.entity.base.User; import com.eryansky.entity.base.state.OrganType; import com.eryansky.service.base.OrganManager; import com.eryansky.service.base.UserManager; import com.eryansky.utils.SelectType; import com.google.common.collect.Lists; import org.apache.commons.collections.ListUtils; import org.apache.commons.lang.ArrayUtils; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; import org.springframework.beans.factory.annotation.Autowired; import java.util.List; /** * Organ? Action. * * @author &Eryan eryanwcp@gmail.com * @date 2013-09-09 ?21:36:24 */ @SuppressWarnings("serial") public class OrganAction extends StrutsAction<Organ> { /** * */ private List<Long> userIds; /** * ?ID */ private Long managerUserId; /** * ??? */ private String nameOrCode; /** * */ private Integer parentOrganType; @Autowired private OrganManager organManager; @Autowired private UserManager userManager; @Override public EntityManager<Organ, Long> getEntityManager() { return organManager; } public String treegrid() throws Exception { try { List<PropertyFilter> filters = Lists.newArrayList(); // // List<PropertyFilter> filters = HibernateWebUtils // .buildPropertyFilters(Struts2Utils.getRequest()); List<Organ> list = getEntityManager().find(filters, sort, order); Datagrid<Organ> dg = new Datagrid<Organ>(list.size(), list); Struts2Utils.renderJson(dg); } catch (Exception e) { throw e; } return null; } /** * combogrid * @return * @throws Exception */ public String combogrid() throws Exception { try { Criterion statusCriterion = Restrictions.eq("status", StatusState.normal.getValue()); Criterion[] criterions = new Criterion[0]; criterions = (Criterion[]) ArrayUtils.add(criterions, 0, statusCriterion); Criterion criterion = null; if (!Collections3.isEmpty(ids)) { //in? Criterion inCriterion = Restrictions.in("id", ids); if (StringUtils.isNotBlank(nameOrCode)) { Criterion nameCriterion = Restrictions.like("name", nameOrCode, MatchMode.ANYWHERE); Criterion codeCriterion = Restrictions.like("code", nameOrCode, MatchMode.ANYWHERE); Criterion criterion1 = Restrictions.or(nameCriterion, codeCriterion); criterion = Restrictions.or(inCriterion, criterion1); } else { criterion = inCriterion; } //?? criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion); } else { if (StringUtils.isNotBlank(nameOrCode)) { Criterion nameCriterion = Restrictions.like("name", nameOrCode, MatchMode.ANYWHERE); Criterion codeCriterion = Restrictions.like("code", nameOrCode, MatchMode.ANYWHERE); criterion = Restrictions.or(nameCriterion, codeCriterion); //?? criterions = (Criterion[]) ArrayUtils.add(criterions, 0, criterion); } } // Page<Organ> p = new Page<Organ>(rows);// p = organManager.findByCriteria(p, criterions); Datagrid<Organ> dg = new Datagrid<Organ>(p.getTotalCount(), p.getResult()); Struts2Utils.renderJson(dg); } catch (Exception e) { throw e; } return null; } @Override public String input() throws Exception { if (parentOrganType == null && model.getParentOrgan() != null) { parentOrganType = model.getParentOrgan().getType(); } return super.input(); } /** * ?. */ public String save() throws Exception { Result result = null; try { model.setParentOrgan(null); // ???? Organ organ = organManager.getByName(model.getName()); if (organ != null && !organ.getId().equals(model.getId())) { result = new Result(Result.WARN, "??[" + model.getName() + "],!", "name"); logger.debug(result.toString()); Struts2Utils.renderText(result); return null; } // if (model.get_parentId() != null) { Organ parentOrgan = organManager.loadById(model.get_parentId()); if (parentOrgan == null) { logger.error("[{}].", model.get_parentId()); throw new ActionException("."); } model.setParentOrgan(parentOrgan); } //? if (model.getId() != null) { if (model.getId().equals(model.get_parentId())) { result = new Result(Result.ERROR, "[]?[??]?.", null); logger.debug(result.toString()); Struts2Utils.renderText(result); return null; } } organManager.saveOrgan(model); result = Result.successResult(); logger.debug(result.toString()); Struts2Utils.renderText(result); } catch (Exception e) { throw e; } return null; } /** * ? * @return * @throws Exception */ public String user() throws Exception { try { super.prepareModel(); List<User> organUsers = model.getUsers(); Datagrid<User> dg = new Datagrid<User>(organUsers.size(), organUsers); String managerUserCombogridData = JsonMapper.nonDefaultMapper().toJson(dg); logger.debug(managerUserCombogridData); Struts2Utils.getRequest().setAttribute("managerUserCombogridData", managerUserCombogridData); } catch (Exception e) { throw e; } return "user"; } /** * * @throws Exception */ public void prepareUpdateOrganUser() throws Exception { super.prepareModel(); } /** * * @return * @throws Exception */ public String updateOrganUser() throws Exception { Result result; try { // List<User> userList = Lists.newArrayList(); if (!Collections3.isEmpty(userIds)) { for (Long userId : userIds) { User user = userManager.loadById(userId); userList.add(user); } } model.setUsers(userList); model.setManagerUserId(managerUserId); // // //? // List<User> orgUsers = Lists.newArrayList(); // if(model.getManagerUserId() != null){ // User managerUser = userManager.loadById(model.getManagerUserId()) ; // if(Collections3.isEmpty(model.getUsers())){ // orgUsers.add(managerUser); // model.setUsers(orgUsers); // }else{ // orgUsers = model.getUsers(); // boolean isContain = false; // for(User user:model.getUsers()){ // if(user.getId().equals(model.getManagerUserId())){ // isContain = true; // } // } // if(!isContain){ // orgUsers.add(managerUser); // model.setUsers(orgUsers); // } // } // } organManager.saveOrgan(model); result = Result.successResult(); logger.debug(result.toString()); Struts2Utils.renderText(result); } catch (Exception e) { throw e; } return null; } /** * . */ public void tree() throws Exception { List<TreeNode> treeNodes = Lists.newArrayList(); try { List<TreeNode> titleList = Lists.newArrayList(); // "------"?"------" if (!StringUtils.isBlank(selectType)) { SelectType s = SelectType.getSelectTypeValue(selectType); if (s != null) { TreeNode selectTreeNode = new TreeNode("", s.getDescription()); titleList.add(selectTreeNode); } } treeNodes = organManager.getOrganTree(null, true); List<TreeNode> unionList = ListUtils.union(titleList, treeNodes); Struts2Utils.renderJson(unionList); } catch (Exception e) { throw e; } } /** * . */ public void organTypeCombobox() throws Exception { List<Combobox> cList = Lists.newArrayList(); try { //combobox "------"?"------" if (!StringUtils.isBlank(selectType)) { SelectType s = SelectType.getSelectTypeValue(selectType); if (s != null) { Combobox selectCombobox = new Combobox("", s.getDescription()); cList.add(selectCombobox); } } OrganType _enumParentType = OrganType.getOrganType(parentOrganType); if (_enumParentType != null) { if (_enumParentType.equals(OrganType.organ)) { OrganType[] rss = OrganType.values(); for (int i = 0; i < rss.length; i++) { Combobox combobox = new Combobox(); combobox.setValue(rss[i].getValue().toString()); combobox.setText(rss[i].getDescription()); cList.add(combobox); } } else if (_enumParentType.equals(OrganType.department)) { Combobox departmentCombobox = new Combobox(OrganType.department.getValue().toString(), OrganType.department.getDescription().toString()); Combobox groupCombobox = new Combobox(OrganType.group.getValue().toString(), OrganType.group.getDescription().toString()); cList.add(departmentCombobox); cList.add(groupCombobox); } else if (_enumParentType.equals(OrganType.group)) { Combobox groupCombobox = new Combobox(OrganType.group.getValue().toString(), OrganType.group.getDescription().toString()); cList.add(groupCombobox); } } else { Combobox groupCombobox = new Combobox(OrganType.organ.getValue().toString(), OrganType.organ.getDescription().toString()); cList.add(groupCombobox); } Struts2Utils.renderJson(cList); } catch (Exception e) { throw e; } } /** * . */ @SuppressWarnings("unchecked") public void parentOrgan() throws Exception { prepareModel(); List<TreeNode> treeNodes = Lists.newArrayList(); try { List<TreeNode> titleList = Lists.newArrayList(); // "------"?"------" if (!StringUtils.isBlank(selectType)) { SelectType s = SelectType.getSelectTypeValue(selectType); if (s != null) { TreeNode selectTreeNode = new TreeNode("", s.getDescription()); titleList.add(selectTreeNode); } } treeNodes = organManager.getOrganTree(model.getId(), true); List<TreeNode> unionList = ListUtils.union(titleList, treeNodes); Struts2Utils.renderJson(unionList); } catch (Exception e) { throw e; } } /** * ?. */ public void maxSort() throws Exception { Result result; try { Integer maxSort = organManager.getMaxSort(); result = new Result(Result.SUCCESS, null, maxSort); logger.debug(result.toString()); Struts2Utils.renderJson(result); } catch (Exception e) { e.printStackTrace(); throw e; } } public void setUserIds(List<Long> userIds) { this.userIds = userIds; } public void setManagerUserId(Long managerUserId) { this.managerUserId = managerUserId; } public void setNameOrCode(String nameOrCode) { this.nameOrCode = nameOrCode; } public Integer getParentOrganType() { return parentOrganType; } public void setParentOrganType(Integer parentOrganType) { this.parentOrganType = parentOrganType; } }