购物网站17-1:产品action---品牌列表---品牌管理---生成产品静态页面---前台产品管理----产品列表----产品管理

@Controller("/control/brand/list")
public class BrandAction extends Action {
 @Resource(name="brandServiceBean")
 private BrandService brandService;

 @Override @Permission(module="brand",privilege="view")
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  BrandForm formbean = (BrandForm) form;
  StringBuffer jpql = new StringBuffer("o.visible=?1");
  List<Object> params = new ArrayList<Object>();
  params.add(true);
  if("true".equals(formbean.getQuery())){
   jpql.append(" and o.name like ?"+ (params.size()+1));
   params.add("%"+ formbean.getName()+ "%");
  }
  PageView<Brand> pageView = new PageView<Brand>(12, formbean.getPage());
  LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
  orderby.put("code", "desc");
  pageView.setQueryResult(brandService.getScrollData(pageView.getFirstResult(),
    pageView.getMaxresult(), jpql.toString(), params.toArray(), orderby));
  request.setAttribute("pageView", pageView);  
  return mapping.findForward("list");
 }

}

 

 

---------------------------------------------------------------------

 

/**
 * 品牌管理
 *
 */
@Controller("/control/brand/manage")
public class BrandManageAction extends DispatchAction {
 @Resource(name="brandServiceBean")
 private BrandService brandService;
 
 /**
  * 品牌查询界面
  */
 @Permission(module="brand",privilege="view")
 public ActionForward queryUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {  
  return mapping.findForward("query");
 }
 
 /**
  * 品牌修改界面
  */
 @Permission(module="brand",privilege="update")
 public ActionForward editUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  BrandForm formbean = (BrandForm) form;
  Brand brand = brandService.find(formbean.getCode());
  formbean.setName(brand.getName());
  formbean.setLogoimagepath(brand.getLogopath());
  return mapping.findForward("edit");
 }
 
 /**
  * 品牌修改
  */
 @Permission(module="brand",privilege="update")
 public ActionForward edit(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  BrandForm formbean = (BrandForm) form;
  if(!BrandForm.validateImageFileType(formbean.getLogofile())){
   request.setAttribute("message", "图片格式不正确");
   return mapping.findForward("message");
  }
  Brand brand = brandService.find(formbean.getCode());
  brand.setName(formbean.getName());
  if(formbean.getLogofile()!=null && formbean.getLogofile().getFileSize()>0){
   SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");
   String logopathdir = "/images/brand/"+ dateformat.format(new Date());//构建图片保存的目录
   //得到图片保存目录的真实路径
   String logorealpathdir = request.getSession().getServletContext().getRealPath(logopathdir);
   File logosavedir = new File(logorealpathdir);
   if(!logosavedir.exists()) logosavedir.mkdirs();//如果目录不存在就创建
   String ext = formbean.getLogofile().getFileName().substring(formbean.getLogofile().getFileName().lastIndexOf('.'));
   String imagename = UUID.randomUUID().toString()+ ext;//构建文件名称
   FileOutputStream fileoutstream = new FileOutputStream(new File(logorealpathdir, imagename));
   fileoutstream.write(formbean.getLogofile().getFileData());
   fileoutstream.close();
   String logopath = logopathdir+"/"+imagename;
   brand.setLogopath(logopath);
  }  
  brandService.update(brand);
  request.setAttribute("message", "品牌修改成功");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.brand.list"));
  return mapping.findForward("message");
 }
 
 /**
  * 品牌添加界面
  */
 @Permission(module="brand",privilege="insert")
 public ActionForward addUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  return mapping.findForward("add");
 }
 
 /**
  * 品牌添加
  */
 @Permission(module="brand",privilege="insert")
 public ActionForward add(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  BrandForm formbean = (BrandForm) form;
  if(!BrandForm.validateImageFileType(formbean.getLogofile())){
   System.out.println(formbean.getLogofile().getContentType());
   request.setAttribute("message", "图片格式不正确");
   return mapping.findForward("message");
  }
  Brand brand = new Brand();
  brand.setName(formbean.getName());
  if(formbean.getLogofile()!=null && formbean.getLogofile().getFileSize()>0){
   SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");
   String logopathdir = "/images/brand/"+ dateformat.format(new Date());//构建图片保存的目录
   //得到图片保存目录的真实路径
   String logorealpathdir = request.getSession().getServletContext().getRealPath(logopathdir);
   File logosavedir = new File(logorealpathdir);
   if(!logosavedir.exists()) logosavedir.mkdirs();//如果目录不存在就创建
   String ext = formbean.getLogofile().getFileName().substring(formbean.getLogofile().getFileName().lastIndexOf('.'));
   String imagename = UUID.randomUUID().toString()+ ext;//构建文件名称
   FileOutputStream fileoutstream = new FileOutputStream(new File(logorealpathdir, imagename));
   fileoutstream.write(formbean.getLogofile().getFileData());
   fileoutstream.close();
   String logopath = logopathdir+"/"+imagename;
   brand.setLogopath(logopath);
  }  
  brandService.save(brand);
  request.setAttribute("message", "品牌添加成功");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.brand.list"));
  return mapping.findForward("message");
 }
}

 

 

-------------------------------------------------------

 

public class BuildHtmlFile {
 
 public static void createProductHtml(ProductInfo product, File saveDir){
  try {
   if(!saveDir.exists()) saveDir.mkdirs();
   VelocityContext context = new VelocityContext();
   context.put("product", product);
   Template template = Velocity.getTemplate("product/productview.vm");
   FileOutputStream outStream = new FileOutputStream(new File(saveDir, product.getId()+".shtml"));
   OutputStreamWriter writer =  new OutputStreamWriter(outStream,"UTF-8");
   BufferedWriter sw = new BufferedWriter(writer);
   template.merge(context, sw);
   sw.flush();
   sw.close();
   outStream.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}

 

-----------------------------------------------------------------

 

@Controller("/product/list/display")
public class FrontProductAction extends Action {
 @Resource(name="productInfoServiceBean")
 private ProductInfoService productInfoService;
 
 @Resource(name="productTypeServiceBean")
 private ProductTypeService productTypeService;

 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  FrontProductForm formbean = (FrontProductForm) form;
  PageView<ProductInfo> pageView = new PageView<ProductInfo>(2, formbean.getPage());
  pageView.setPagecode(20);
  int firstindex = (pageView.getCurrentpage()-1)* pageView.getMaxresult();
  LinkedHashMap<String, String> orderby = buildOrder(formbean.getSort());
  StringBuffer jpql = new StringBuffer("o.visible=?1");
  List<Object> params = new ArrayList<Object>();
  params.add(true); 
  
  List<Integer> typeids = new ArrayList<Integer>();
  typeids.add(formbean.getTypeid());
  getTypeids(typeids, new Integer[]{formbean.getTypeid()});
  StringBuffer n = new StringBuffer();
  for(int i=0; i<typeids.size();i++){
   n.append('?').append((i+2)).append(',');
  }
  n.deleteCharAt(n.length()-1);
  jpql.append(" and o.type.typeid in("+ n.toString()+ ")");
  params.addAll(typeids);
  
  if(formbean.getBrandid()!=null && !"".equals(formbean.getBrandid().trim())){
   jpql.append(" and o.brand.code=?").append((params.size()+1));
   params.add(formbean.getBrandid());
  }   
  if(formbean.getSex()!=null ){
   String sex = formbean.getSex().trim(); 
   if("NONE".equalsIgnoreCase(sex) || "MAN".equalsIgnoreCase(sex) || "WOMEN".equalsIgnoreCase(sex)){
    jpql.append(" and o.sexrequest=?").append((params.size()+1));
    params.add(Sex.valueOf(formbean.getSex()));
   }
  }  
  pageView.setQueryResult(productInfoService.getScrollData(firstindex,
     pageView.getMaxresult(), jpql.toString(), params.toArray(), orderby));
  for(ProductInfo product : pageView.getRecords()){
   Set<ProductStyle> styles = new HashSet<ProductStyle>();
   for(ProductStyle style : product.getStyles()){
    if(style.getVisible()){
     styles.add(style);
     break;
    }
   }
   product.setStyles(styles);
   //注意:执行此句代码会把修改后的数据同步回数据库,如果不想把数据同步回数据库,请在其后调用productInfoService.clear();
   product.setDescription(WebUtil.HtmltoText(product.getDescription()));
  }
  productInfoService.clear();//让托管状态的实体成为游离状态
  request.setAttribute("pageView", pageView);
  Integer[] ids = new Integer[typeids.size()];
  for(int i=0;i<typeids.size();i++){
   ids[i]=typeids.get(i);
  }
  request.setAttribute("brands", productInfoService.getBrandsByProductTypeid(ids)); 
  if(formbean.getTypeid()!=null && formbean.getTypeid()>0){
   ProductType type = productTypeService.find(formbean.getTypeid());
   if(type!=null){
    List<ProductType> types = new ArrayList<ProductType>();
    types.add(type);
    ProductType parent = type.getParent();
    while(parent!=null){
     types.add(parent);
     parent = parent.getParent();
    }
    request.setAttribute("producttype", type);
    request.setAttribute("types", types);
   }
  }
  return mapping.findForward(getView(formbean.getStyle()));
 }
 /**
  * 获取显示视图
  * @param style 样式
  * @return
  */
 public String getView(String style){
  if("imagetext".equalsIgnoreCase(style)) return "list_imagetext";//图文版
  else return "list_image";//图片版  
 }
 
 /**
  * 获取类别下所有子类的id(注:子类级其子类的id都会获取到)
  * @param outtypeids
  * @param typeids
  */
 public void getTypeids(List<Integer> outtypeids, Integer[] typeids){
  List<Integer> subtypeids =productTypeService.getSubTypeid(typeids);
  if(subtypeids!=null && subtypeids.size()>0){
   outtypeids.addAll(subtypeids);
   Integer[] ids = new Integer[subtypeids.size()];
   for(int i=0;i<subtypeids.size();i++){
    ids[i]=subtypeids.get(i);
   }
   getTypeids(outtypeids, ids);
  }
 }
 /**
  * 组拼排序
  * @param orderfied
  * @return
  */
 private LinkedHashMap<String, String> buildOrder(String orderfied){
  LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
  if("selldesc".equals(orderfied)){
   orderby.put("sellcount", "desc");
  }else if("sellpricedesc".equals(orderfied)){
   orderby.put("sellprice", "desc");
  }else if("sellpriceasc".equals(orderfied)){
   orderby.put("sellprice", "asc");
  }else{
   orderby.put("createdate", "desc");
  }
  return orderby;
 }
}

 

--------------------------------------------------------------------------

 

/**
 * 产品分页列表
 *
 */
@Controller("/control/product/list")
public class ProductAction extends Action {
 @Resource(name="productInfoServiceBean")
 private ProductInfoService productInfoService;

 @Override @Permission(module="product",privilege="view")
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  PageView<ProductInfo> pageView = new PageView<ProductInfo>(12, formbean.getPage());
  LinkedHashMap<String, String> orderby = new LinkedHashMap<String, String>();
  orderby.put("visible", "desc");
  orderby.put("id", "desc");
  
  if("true".equals(formbean.getQuery())){
   StringBuffer jpql = new StringBuffer("");
   List<Object> params = new ArrayList<Object>();
   //按产品名称查询
   if(formbean.getName()!=null && !"".equals(formbean.getName())){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.name like ?").append((params.size()+1));
    params.add("%"+ formbean.getName()+ "%");
   }
   //按产品类型查询
   if(formbean.getTypeid()!=null && formbean.getTypeid()>0){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.type.typeid=?").append((params.size()+1));
    params.add(formbean.getTypeid());
   }
   //按采购价区间查询
   if(formbean.getStartbaseprice()!=null && formbean.getStartbaseprice()>0){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.baseprice>=?").append((params.size()+1));
    params.add(formbean.getStartbaseprice());
   }
   if(formbean.getEndbaseprice()!=null && formbean.getEndbaseprice()>0){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.baseprice<=?").append((params.size()+1));
    params.add(formbean.getEndbaseprice());
   }
   //按销售价区间查询
   if(formbean.getStartsellprice()!=null && formbean.getStartsellprice()>0){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.sellprice>=?").append((params.size()+1));
    params.add(formbean.getStartsellprice());
   }
   if(formbean.getEndsellprice()!=null && formbean.getEndsellprice()>0){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.sellprice<=?").append((params.size()+1));
    params.add(formbean.getEndsellprice());
   }
   //按货号查询
   if(formbean.getCode()!=null && !"".equals(formbean.getCode())){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.code=?").append((params.size()+1));
    params.add(formbean.getCode());
   }
   //按品牌查询
   if(formbean.getBrandid()!=null && !"".equals(formbean.getBrandid())){
    if(params.size()>0) jpql.append(" and ");
    jpql.append(" o.brand.code=?").append((params.size()+1));
    params.add(formbean.getBrandid());
   }
   pageView.setQueryResult(productInfoService.getScrollData(pageView.getFirstResult(),
     pageView.getMaxresult(), jpql.toString(), params.toArray(), orderby));
  }else{
   pageView.setQueryResult(productInfoService.getScrollData(pageView.getFirstResult(),
     pageView.getMaxresult(), orderby));
  }
  request.setAttribute("pageView", pageView);  
  return mapping.findForward("list");
 }
 
 
 
}

 

------------------------------------------------------------------

 

@Controller("/control/product/manage")
public class ProductManageAction extends DispatchAction {
 @Resource(name="productInfoServiceBean")
 private ProductInfoService productInfoService;
 @Resource(name="brandServiceBean")
 private BrandService brandService; 
 @Resource(name="productTypeServiceBean")
 private ProductTypeService productTypeService;

 /**
  * 设置产品上架
  */
 @Permission(module="product",privilege="visible")
 public ActionForward visible(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  productInfoService.setVisibleStatu(formbean.getProductids(), true);
  request.setAttribute("message", "设置成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  return mapping.findForward("message");
 }
 
 /**
  * 设置产品下架
  */
 @Permission(module="product",privilege="visible")
 public ActionForward disable(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  productInfoService.setVisibleStatu(formbean.getProductids(), false);
  request.setAttribute("message", "设置成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  return mapping.findForward("message");
 }
 
 /**
  * 设置产品为推荐
  */
 @Permission(module="product",privilege="commend")
 public ActionForward commend(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  productInfoService.setCommendStatu(formbean.getProductids(), true);
  request.setAttribute("message", "设置成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  return mapping.findForward("message");
 }
 
 /**
  * 设置产品为不推荐
  */
 @Permission(module="product",privilege="commend")
 public ActionForward uncommend(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  productInfoService.setCommendStatu(formbean.getProductids(), false);
  request.setAttribute("message", "设置成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  return mapping.findForward("message");
 }
 /**
  * 产品查询界面
  */
 @Permission(module="product",privilege="view")
 public ActionForward queryUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  request.setAttribute("brands", brandService.getScrollData().getResultlist());
  return mapping.findForward("query");
 }
 /**
  * 选择类别
  */
 public ActionForward selectUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  String jpql = "o.parent is null and o.visible=true";
  Object[] params = new Object[0];
  if(formbean.getTypeid()!=null && formbean.getTypeid()>0){
   jpql = "o.parent.id=?1";
   params = new Object[]{formbean.getTypeid()};
   ProductType type = productTypeService.find(formbean.getTypeid());
   ProductType parent = type.getParent();
   List<ProductType> types = new ArrayList<ProductType>();
   types.add(type);
   while(parent!=null){
        types.add(parent);
        parent =  parent.getParent();
   }
   request.setAttribute("menutypes", types);
  }
  request.setAttribute("types", productTypeService.getScrollData(-1, -1, jpql, params).getResultlist());
  return mapping.findForward("typeselect");
 }
 /**
  * 产品添加界面
  */
 @Permission(module="product",privilege="insert")
 public ActionForward addUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  request.setAttribute("brands", brandService.getScrollData().getResultlist());
  return mapping.findForward("add");
 }
 
 /**
  * 产品添加
  */
 @Permission(module="product",privilege="insert")
 public ActionForward add(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  ProductInfo product = new ProductInfo();
  product.setName(formbean.getName());
  product.setBaseprice(formbean.getBaseprice());
  product.setSellprice(formbean.getSellprice());
  product.setMarketprice(formbean.getMarketprice());
  if(formbean.getBrandid()!=null && !"".equals(formbean.getBrandid().trim())){
   product.setBrand(brandService.find(formbean.getBrandid()));
  }
  product.setBuyexplain(formbean.getBuyexplain());
  product.setCode(formbean.getCode());
  product.setDescription(formbean.getDescription());
  product.setModel(formbean.getModel());
  product.setSexrequest(Sex.valueOf(formbean.getSex()));
  product.setWeight(formbean.getWeight());
  product.setType(productTypeService.find(formbean.getTypeid()));
  
  if(!ProductForm.validateImageFileType(formbean.getImagefile())){
   request.setAttribute("message", "文件格式不正确,只允许上传gif/jpg/png/bmp图片");
   request.setAttribute("urladdress", SiteUrl.readUrl("control.product.add"));
   return mapping.findForward("message");
  }  
  if(formbean.getImagefile().getFileSize()>204800){
   request.setAttribute("message", "图片不能大于200K");
   request.setAttribute("urladdress", SiteUrl.readUrl("control.product.add"));
   return mapping.findForward("message");
  }
  String ext = UploadfileForm.getExt(formbean.getImagefile());
  String filename = UUID.randomUUID().toString()+ "."+ext;//构建文件名称   
  product.addProductStyle(new ProductStyle(formbean.getStylename(), filename));
  productInfoService.save(product);
  
  ProductForm.saveProductImageFile(request, formbean.getImagefile(),formbean.getTypeid(),
    product.getId(), filename); 
  request.setAttribute("message", "添加成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  //生成的文件存放在网站根目录的html/product/类别id/
  File saveDir = new File(request.getSession().getServletContext().getRealPath("/html/product/"+product.getType().getTypeid()));
  BuildHtmlFile.createProductHtml(product, saveDir);
  return mapping.findForward("message");
 }
 
 /**
  * 产品修改界面
  */
 @Permission(module="product",privilege="update")
 public ActionForward editUI(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  ProductInfo product = productInfoService.find(formbean.getProductid());
  formbean.setBaseprice(product.getBaseprice());
  if(product.getBrand()!=null) formbean.setBrandid(product.getBrand().getCode());
  formbean.setBuyexplain(product.getBuyexplain());
  formbean.setCode(product.getCode());
  formbean.setDescription(product.getDescription());
  formbean.setMarketprice(product.getMarketprice());
  formbean.setModel(product.getModel());
  formbean.setName(product.getName());
  formbean.setSellprice(product.getSellprice());
  formbean.setSex(product.getSexrequest().toString());
  formbean.setTypeid(product.getType().getTypeid());
  formbean.setWeight(product.getWeight());
  request.setAttribute("typename", product.getType().getName());
  request.setAttribute("brands", brandService.getScrollData().getResultlist());
  return mapping.findForward("edit");
 }
 
 /**
  * 产品修改
  */
 @Permission(module="product",privilege="update")
 public ActionForward edit(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response) throws Exception {
  ProductForm formbean = (ProductForm) form;
  ProductInfo product = productInfoService.find(formbean.getProductid());
  product.setName(formbean.getName());
  product.setBaseprice(formbean.getBaseprice());
  product.setSellprice(formbean.getSellprice());
  product.setMarketprice(formbean.getMarketprice());
  if(formbean.getBrandid()!=null && !"".equals(formbean.getBrandid().trim()) &&
    !product.getBrand().getCode().equals(formbean.getBrandid().trim())){
   product.setBrand(brandService.find(formbean.getBrandid()));
  }
  product.setBuyexplain(formbean.getBuyexplain());
  product.setCode(formbean.getCode());
  product.setDescription(formbean.getDescription());
  product.setModel(formbean.getModel());
  product.setSexrequest(Sex.valueOf(formbean.getSex()));
  product.setWeight(formbean.getWeight());
  product.setType(productTypeService.find(formbean.getTypeid()));  
  productInfoService.update(product);
  
  request.setAttribute("message", "修改成功了");
  request.setAttribute("urladdress", SiteUrl.readUrl("control.product.list"));
  
  File saveDir = new File(request.getSession().getServletContext().getRealPath("/html/product/"+product.getType().getTypeid()));
  BuildHtmlFile.createProductHtml(product, saveDir);
  
  return mapping.findForward("message");
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值