|   | 
| package com.matrix.system.hiveErp.action; | 
|   | 
| import com.matrix.core.pojo.AjaxResult; | 
| import com.matrix.core.pojo.PaginationVO; | 
| import com.matrix.core.tools.DateUtil; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.core.tools.excl.ExcelSheetPO; | 
| import com.matrix.core.tools.excl.ExcelVersion; | 
| import com.matrix.system.common.tools.ResponseHeadUtil; | 
| import com.matrix.system.constance.Dictionary; | 
| import com.matrix.system.hive.action.BaseController; | 
| import com.matrix.system.hive.action.util.QueryUtil; | 
| import com.matrix.system.hive.bean.MoneyCardAssemble; | 
| import com.matrix.system.hive.bean.ShoppingGoods; | 
| import com.matrix.system.hive.bean.ShoppingGoodsAssemble; | 
| import com.matrix.system.hive.dao.ShoppingGoodsAssembleDao; | 
| import com.matrix.system.hive.dao.ShoppingGoodsDao; | 
| import com.matrix.system.hive.service.MoneyCardAssembleService; | 
| import com.matrix.system.hive.service.ShoppingGoodsService; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Controller; | 
| import org.springframework.ui.ModelMap; | 
| import org.springframework.web.bind.annotation.RequestMapping; | 
| import org.springframework.web.bind.annotation.ResponseBody; | 
|   | 
| import javax.annotation.Resource; | 
| import javax.servlet.http.HttpServletRequest; | 
| import javax.servlet.http.HttpServletResponse; | 
| import java.io.IOException; | 
| import java.io.OutputStream; | 
| import java.net.URLEncoder; | 
| import java.util.ArrayList; | 
| import java.util.List; | 
|   | 
|   | 
| /** | 
|  * 商品 | 
|  * | 
|  * @author jiangyouyao | 
|  * @date 2016-8-22 | 
|  */ | 
| @Controller | 
| @RequestMapping(value = "admin/erpShoppinggoods") | 
| public class ErpShoppingGoodsController extends BaseController { | 
|     @Resource | 
|     private ShoppingGoodsService shoppingGoodsService; | 
|   | 
|     @Resource | 
|     private MoneyCardAssembleService cardAssembleService; | 
|   | 
|     @Autowired | 
|     private ShoppingGoodsAssembleDao shoppingGoodsAssembleDao; | 
|   | 
|   | 
|     //记录编辑前的值Before_Edit_Value | 
|     public static final String BEV = "shoppinggoods_BEV"; | 
|   | 
|   | 
|     @Autowired | 
|     private ShoppingGoodsDao shoppingGoodsDao; | 
|   | 
|     /** | 
|      * 列表显示 | 
|      */ | 
|     @RequestMapping(value = "/showList") | 
|     public @ResponseBody | 
|     AjaxResult showList(ShoppingGoods shoppingGoods, PaginationVO pageVo) { | 
|         pageVo.setOrder("desc"); | 
|         pageVo.setSort("createTime"); | 
|         QueryUtil.setQueryLimitCom(shoppingGoods); | 
|         shoppingGoods.setIsDel(ShoppingGoods.NORMAL); | 
|         List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo); | 
|         AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS,  dataList, shoppingGoodsService.findTotal(shoppingGoods)); | 
|         return result; | 
|     } | 
|   | 
|     /** | 
|      * 进入线下产品修改界面 | 
|      */ | 
|     @RequestMapping(value = "/editFormUderline") | 
|     public String editFormUderline(Long id) { | 
|         ShoppingGoods shoppingGoods; | 
|         if (id != null) { | 
|             WebUtil.getRequest().setAttribute("isUpdate", shoppingGoodsService.checkIsUpdate(id)); | 
|             shoppingGoods = shoppingGoodsService.findById(id); | 
|   | 
|             //查询的绑定关系 | 
|             if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(shoppingGoods.getGoodType())) { | 
|                 List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsId(shoppingGoods.getId()); | 
|                 shoppingGoods.setAssembleGoods(assembleList); | 
|             } else if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(shoppingGoods.getGoodType())) { | 
|                 List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectProjByShoppingGoodsId(shoppingGoods.getId()); | 
|                 shoppingGoods.setAssembleProj(assembleList); | 
|             } else if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(shoppingGoods.getGoodType())) { | 
|   | 
|                 List<ShoppingGoodsAssemble> assembleListGoods = shoppingGoodsAssembleDao.selectGoodsByShoppingGoodsId(shoppingGoods.getId()); | 
|                 shoppingGoods.setAssembleGoods(assembleListGoods); | 
|                 List<ShoppingGoodsAssemble> assembleListProj = shoppingGoodsAssembleDao.selectProjByShoppingGoodsId(shoppingGoods.getId()); | 
|                 shoppingGoods.setAssembleProj(assembleListProj); | 
|             } else if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(shoppingGoods.getGoodType())) { | 
|                 List<ShoppingGoodsAssemble> assembleList = shoppingGoodsAssembleDao.selectAssembleShoppingGoodsByShoppingGoodsId(shoppingGoods.getId()); | 
|                 shoppingGoods.setZongheCarGoods(assembleList); | 
|             } | 
|   | 
|   | 
|             // 如果是充值卡 | 
|             if (shoppingGoods.getGoodType().equals(Dictionary.SHOPPING_GOODS_TYPE_CZK)) { | 
|                 MoneyCardAssemble moneyCardAssembleQuery = new MoneyCardAssemble(); | 
|                 moneyCardAssembleQuery.setCardId(shoppingGoods.getId()); | 
|                 // 查询充值卡中的分类 | 
|                 moneyCardAssembleQuery.setType(Dictionary.CZK_ASSEMBLE_FL); | 
|                 List<MoneyCardAssemble> cateIdList = cardAssembleService.findByModel(moneyCardAssembleQuery); | 
|                 String cates = ","; | 
|                 for (MoneyCardAssemble moneyCardAssemble : cateIdList) { | 
|                     cates += moneyCardAssemble.getCateId() + ","; | 
|                 } | 
|                 WebUtil.getRequest().setAttribute("cates", cates); | 
|                 // 查询充值卡中的产品 | 
|                 moneyCardAssembleQuery.setType(Dictionary.CZK_ASSEMBLE_SP); | 
|                 List<MoneyCardAssemble> goodsIdList = cardAssembleService.findByModel(moneyCardAssembleQuery); | 
|                 List<ShoppingGoods> goodsList = new ArrayList<>(); | 
|                 String goodsIds = ""; | 
|                 for (MoneyCardAssemble moneyCardAssemble : goodsIdList) { | 
|                     goodsList.add(shoppingGoodsService.findById(moneyCardAssemble.getGoodsId())); | 
|                     goodsIds += moneyCardAssemble.getGoodsId() + ","; | 
|                 } | 
|                 WebUtil.getRequest().setAttribute("goodsIds", goodsIds); | 
|                 // 返回充值卡编辑界面 | 
|                 WebUtil.getRequest().setAttribute("obj", shoppingGoods); | 
|                 return "admin/hive-erp/products/money-card-form"; | 
|             } else if (shoppingGoods.getGoodType().equals(Dictionary.SHOPPING_GOODS_TYPE_ZHK)) { | 
|                 WebUtil.getRequest().setAttribute("obj", shoppingGoods); | 
|                 return "admin/hive-erp/products/zonghe-card-form"; | 
|             } | 
|   | 
|   | 
|   | 
|             WebUtil.getRequest().setAttribute("obj", shoppingGoods); | 
|   | 
|         } else { | 
|             WebUtil.getRequest().setAttribute("isUpdate", true); | 
|         } | 
|         // 返回非充值卡页面 | 
|   | 
|         return "admin/hive-erp/products/goods-form"; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 删除 | 
|      */ | 
|     @RequestMapping(value = "/del") | 
|     public @ResponseBody | 
|     AjaxResult del(String keys) { | 
|   | 
|         return remove(shoppingGoodsService, keys); | 
|     } | 
|   | 
|     @RequestMapping(value = "/exportShoppinggoods") | 
|     public void exportShoppinggoods(ModelMap model, HttpServletRequest request, HttpServletResponse response, ShoppingGoods shoppingGoods) throws IOException { | 
|         if (shoppingGoods.getGoodType() != null && !"".equals(shoppingGoods.getGoodType())) { | 
|             shoppingGoods.setGoodType(new String(shoppingGoods.getGoodType().getBytes("iso-8859-1"), "UTF-8")); | 
|         } | 
|         List<ExcelSheetPO> res = new ArrayList<>(); | 
|         ExcelSheetPO orderSheet = new ExcelSheetPO(); | 
|         String title = "商品资料"; | 
|         orderSheet.setSheetName(title); | 
|         orderSheet.setTitle(title); | 
|         String[] header = {"商品名称", "售价/(本金)", "参考价/(赠送金额)", "真实销量", "状态", "是否赠送", "类型", "分类", "套餐卡"}; | 
|         orderSheet.setHeaders(header); | 
|         QueryUtil.setQueryLimitCom(shoppingGoods); | 
|         List<ShoppingGoods> dataList = shoppingGoodsService.findAll(shoppingGoods); | 
|         List<List<Object>> list = new ArrayList<>(); | 
|         if (dataList.size() > 0) { | 
|             for (ShoppingGoods item : dataList) { | 
|                 List<Object> temp = new ArrayList<>(); | 
|                 temp.add(item.getName()); | 
|                 temp.add(item.getSealPice()); | 
|                 temp.add(item.getReferencePice()); | 
|                 temp.add(item.getRealSealCount()); | 
|                 temp.add(item.getStaus()); | 
|                 temp.add(item.getIsPresent()); | 
|                 temp.add(item.getGoodType()); | 
|                 temp.add(item.getCateName()); | 
|                 temp.add(item.getIsCourse()); | 
|                 list.add(temp); | 
|             } | 
|         } | 
|         orderSheet.setDataList(list); | 
|         res.add(orderSheet); | 
|         response = ResponseHeadUtil.setExcelHead(response); | 
|         response.setHeader("Content-Disposition", | 
|                 "attachment;filename=" + URLEncoder.encode(title + DateUtil.getTimeMark() + ".xlsx".trim(), "UTF-8")); | 
|         OutputStream os = response.getOutputStream(); | 
|         com.matrix.core.tools.excl.ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true); | 
|     } | 
|   | 
| } |