package com.jshop.action; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.json.annotations.JSON; import org.json.simple.JSONObject; import org.json.simple.JSONValue; import org.springframework.stereotype.Controller; import com.jshop.action.tools.BaseTools; import com.jshop.action.tools.Serial; import com.jshop.action.tools.Validate; import com.jshop.entity.ProductSpecificationsT; import com.jshop.service.ProductSpecificationsTService; import com.jshop.service.impl.ProductSpecificationsTServiceImpl; import com.opensymphony.xwork2.ActionSupport; @ParentPackage("jshop") @Controller("productSpecificationsTAction") public class ProductSpecificationsTAction extends ActionSupport { @Resource(name = "serial") private Serial serial; private ProductSpecificationsTService productSpecificationsTService; private String specificationsid; private String name; private String note; private String sort; private String specificationsType; private String specificationsValue; private Date createtime; private String creatorid; private String state; private ProductSpecificationsT bean = new ProductSpecificationsT(); private List beanlist = new ArrayList(); private List<ProductSpecificationsT> specification = new ArrayList<ProductSpecificationsT>(); private String query; private String qtype; private List rows = new ArrayList(); private int rp; private int page = 1; private int total = 0; private String specificationslist = null; private String specificationsselect = null; private boolean slogin; private boolean sucflag; private String sortname; private String sortorder; @JSON(serialize = false) public Serial getSerial() { return serial; } public void setSerial(Serial serial) { this.serial = serial; } @JSON(serialize = false) public ProductSpecificationsTService getProductSpecificationsTService() { return productSpecificationsTService; } public void setProductSpecificationsTService(ProductSpecificationsTService productSpecificationsTService) { this.productSpecificationsTService = productSpecificationsTService; } public String getSpecificationsid() { return specificationsid; } public void setSpecificationsid(String specificationsid) { this.specificationsid = specificationsid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } public String getSort() { return sort; } public void setSort(String sort) { this.sort = sort; } public String getSpecificationsType() { return specificationsType; } public void setSpecificationsType(String specificationsType) { this.specificationsType = specificationsType; } public String getSpecificationsValue() { return specificationsValue; } public void setSpecificationsValue(String specificationsValue) { this.specificationsValue = specificationsValue; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public String getCreatorid() { return creatorid; } public void setCreatorid(String creatorid) { this.creatorid = creatorid; } public ProductSpecificationsT getBean() { return bean; } public void setBean(ProductSpecificationsT bean) { this.bean = bean; } public List getBeanlist() { return beanlist; } public void setBeanlist(List beanlist) { this.beanlist = beanlist; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getQtype() { return qtype; } public void setQtype(String qtype) { this.qtype = qtype; } public List getRows() { return rows; } public void setRows(List rows) { this.rows = rows; } public int getRp() { return rp; } public void setRp(int rp) { this.rp = rp; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public boolean isSlogin() { return slogin; } public void setSlogin(boolean slogin) { this.slogin = slogin; } public boolean isSucflag() { return sucflag; } public void setSucflag(boolean sucflag) { this.sucflag = sucflag; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getSpecificationslist() { return specificationslist; } public void setSpecificationslist(String specificationslist) { this.specificationslist = specificationslist; } public List<ProductSpecificationsT> getSpecification() { return specification; } public void setSpecification(List<ProductSpecificationsT> specification) { this.specification = specification; } public String getSpecificationsselect() { return specificationsselect; } public void setSpecificationsselect(String specificationsselect) { this.specificationsselect = specificationsselect; } public String getSortname() { return sortname; } public void setSortname(String sortname) { this.sortname = sortname; } public String getSortorder() { return sortorder; } public void setSortorder(String sortorder) { this.sortorder = sortorder; } /** * 清楚错误 */ @Override public void validate() { this.clearErrorsAndMessages(); } /** * 增加所有商品规格值 * * @return */ @Action(value = "addProductSpecification", results = { @Result(name = "json", type = "json") }) public String addProductSpecification() { ProductSpecificationsT pst = new ProductSpecificationsT(); pst.setSpecificationsid(this.getSerial().Serialid(Serial.PRODUCTSPECIFICATION)); pst.setName(this.getName().trim()); pst.setNote(this.getNote()); pst.setSort(this.getSort()); pst.setSpecificationsType(this.getSpecificationsType()); pst.setSpecificationsValue(this.getSpecificationsValue()); pst.setCreatetime(BaseTools.systemtime()); pst.setCreatorid(BaseTools.adminCreateId()); pst.setState("1"); this.getProductSpecificationsTService().addProductSpecification(pst); this.setSucflag(true); return "json"; } /** * 查询所有商品规格值 * * @return */ @Action(value = "findAllProductSpecificationsT", results = { @Result(name = "json", type = "json") }) public String findAllProductSpecificationsT() { if ("sc".equals(this.getQtype())) { this.findDefaultAllProductSpecificationsT(); } else { if (Validate.StrisNull(this.getQuery())) { return "json"; } else { return "json"; } } return "json"; } public void findDefaultAllProductSpecificationsT() { int currentPage = page; int lineSize = rp; total = this.getProductSpecificationsTService().countfindAllProductSpecificationsT(); String queryString = "from ProductSpecificationsT order by " + sortname + " " + sortorder + " "; if (Validate.StrNotNull(sortname) && Validate.StrNotNull(sortorder)) { List<ProductSpecificationsT> list = this.getProductSpecificationsTService().sortAllProductSpecificationsT(currentPage, lineSize, queryString); if (list != null) { this.ProcessProductSpecificationsTList(list); } } } public void ProcessProductSpecificationsTList(List<ProductSpecificationsT> list) { rows.clear(); StringBuilder sb = new StringBuilder(); String[] array; for (Iterator it = list.iterator(); it.hasNext();) { ProductSpecificationsT gst = (ProductSpecificationsT) it.next(); if (gst.getSpecificationsType().equals("1")) { gst.setSpecificationsType("文字类型"); } else { gst.setSpecificationsType("图片类型"); } array = gst.getSpecificationsValue().split("-"); if (array.length > 1) { for (int i = 0; i < array.length; i++) { JSONObject jo = (JSONObject) JSONValue.parse(array[i]); Iterator iter = jo.keySet().iterator(); while (iter.hasNext()) { String key = iter.next().toString(); if (key.equals("goodsattributename")) { sb.append(jo.get(key).toString() + " "); } } } }else{ JSONObject jo = (JSONObject) JSONValue.parse(gst.getSpecificationsValue()); Iterator iter = jo.keySet().iterator(); while (iter.hasNext()) { String key = iter.next().toString(); if (key.equals("goodsattributename")) { sb.append(jo.get(key).toString() + " "); } } } gst.setSpecificationsValue(sb.toString()); if (gst.getNote() == null) { gst.setNote(""); } Map<String, Object> cellMap = new HashMap<String, Object>(); cellMap.put("id", gst.getSpecificationsid()); cellMap.put("cell", new Object[] { gst.getName() + "[" + gst.getNote() + "]", gst.getSpecificationsType(), gst.getSpecificationsValue(), gst.getSort(), BaseTools.formateDbDate(gst.getCreatetime()) }); rows.add(cellMap); sb.delete(0, sb.length()); } } /** * 根据规格值id获取规格值 * * @return */ @Action(value = "findProductSpecificationsTByspecificationsid", results = { @Result(name = "json", type = "json") }) public String findProductSpecificationsTByspecificationsid() { if (Validate.StrNotNull(this.getSpecificationsid())) { bean = this.getProductSpecificationsTService().findProductSpecificationsTByspecificationsid(this.getSpecificationsid().trim()); if (bean != null) { return "json"; } } return "json"; } /** * 更新商品规格值 * * @return */ @Action(value = "updateProductSpecification", results = { @Result(name = "json", type = "json") }) public String updateProductSpecification() { ProductSpecificationsT pst = new ProductSpecificationsT(); pst.setSpecificationsid(this.getSpecificationsid().trim()); pst.setName(this.getName().trim()); pst.setNote(this.getNote()); pst.setSort(this.getSort()); pst.setSpecificationsType(this.getSpecificationsType()); pst.setSpecificationsValue(this.getSpecificationsValue()); pst.setCreatetime(BaseTools.systemtime()); pst.setCreatorid(BaseTools.adminCreateId()); @SuppressWarnings("unused") int i = this.getProductSpecificationsTService().updateProductSpecification(pst); this.setSucflag(true); return "json"; } /** *删除商品规格值 * * @return */ @Action(value = "delProductSpecification", results = { @Result(name = "json", type = "json") }) public String delProductSpecification() { if (Validate.StrNotNull(this.getSpecificationsid())) { String[] list = this.getSpecificationsid().split(","); int i = this.getProductSpecificationsTService().delProductSpecification(list); this.setSucflag(true); return "json"; } else { this.setSucflag(false); return "json"; } } /** * 查询所有商品规格值 * * @return */ @Action(value = "findAllSpecificationsforjson", results = { @Result(name = "json", type = "json") }) public String findAllSpecificationsforjson() { this.setSpecificationslist(""); this.setSpecificationsselect(""); String tempvalue = ""; String strbeg = ""; String strend = ""; this.specification = this.getProductSpecificationsTService().findAllProductSpecificationsTWithoutPage(); if (this.specification != null) { for (Iterator it = this.specification.iterator(); it.hasNext();) { ProductSpecificationsT pst = (ProductSpecificationsT) it.next(); tempvalue = pst.getName(); if (pst.getNote() == null) { pst.setName(pst.getName() + "[]"); } else { pst.setName(pst.getName() + "[" + pst.getNote() + "]"); } this.specificationslist += "<div class='checkbox'><input type='checkbox' id='" + pst.getSpecificationsid() + "' name='pstspecificationsid' onclick='checkpstspecificationsid()' value='" + tempvalue + "'/><label>" + pst.getName() + "</label></div>"; strbeg = "<select id='" + pst.getSpecificationsid() + "' name='" + pst.getSpecificationsid() + "'><option value='0'>---请选择---</option>"; this.specificationsselect += "<option value='" + tempvalue + "'>" + pst.getName() + "</option>"; } this.setSpecificationslist(this.specificationslist); this.setSpecificationsselect(strbeg + this.specificationsselect); this.setSucflag(true); return "json"; } this.setSucflag(true); return "json"; } }