| | |
| | | import com.sinata.core.common.constant.factory.PageFactory; |
| | | import com.sinata.core.common.exception.BizExceptionEnum; |
| | | import com.sinata.core.log.LogObjectHolder; |
| | | import com.sinata.core.shiro.ShiroKit; |
| | | import com.sinata.core.util.Convert; |
| | | import com.sinata.core.util.DateUtils2; |
| | | import com.sinata.core.util.ExcelExportUtil; |
| | | import com.sinata.core.util.SpringContextHolder; |
| | | import com.sinata.modular.mall.model.*; |
| | | import com.sinata.modular.mall.service.*; |
| | | import org.apache.commons.collections.CollectionUtils; |
| | |
| | | public List<MallGoodsSku> getGoodsSpecData(Integer goodsId) { |
| | | List<MallGoodsSku> skuList = mallGoodsSkuService.selectList( |
| | | new EntityWrapper<MallGoodsSku>() |
| | | .setSqlSelect("spec_ids id, grep_name, stock") |
| | | .setSqlSelect("spec_ids id, grep_name, stock,price_sale,price_member") |
| | | .eq("goods_id", goodsId) |
| | | .eq("merchant_id", 0) |
| | | ); |
| | |
| | | wrapper.eq("group_type", groupType); |
| | | } |
| | | List<MallGoods> goodsList = mallGoodsService.selectList(wrapper); |
| | | List<HashMap<String, Object>> goodsMapList = goodsList.stream().map(goods -> { |
| | | HashMap<String, Object> goodMap = new HashMap<>(); |
| | | //商品编号 |
| | | goodMap.put("aGoodsNo", goods.getGoodsNo()); |
| | | goodMap.put("bName", goods.getGoodsName()); |
| | | goodMap.put("cGroupType", goods.getGroupType()); |
| | | String groupTypName = goods.getGroupType() > 0 ? (goods.getGroupType() == 1 ? "黄金套餐" : "钻石套餐") : "普通商品"; |
| | | goodMap.put("cGroupTypeName", groupTypName); |
| | | goodMap.put("dPrice", goods.getPrice()); |
| | | goodMap.put("dPriceDale", goods.getPriceSale()); |
| | | goodMap.put("ePriceMember", goods.getPriceMember()); |
| | | goodMap.put("fStock", goods.getStock()); |
| | | goodMap.put("gBuyCount", goods.getBuyCount()); |
| | | goodMap.put("hId", goods.getId()); |
| | | return goodMap; |
| | | }).collect(Collectors.toList()); |
| | | Set<Integer> goodsIdList = goodsList.stream().map(MallGoods::getId).collect(Collectors.toSet()); |
| | | Wrapper skuWrapper = new EntityWrapper<MallGoodsSku>().in("goods_id", goodsIdList) |
| | | .eq("merchant_id", 0).orderBy("id", false); |
| | | List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(skuWrapper); |
| | | List<HashMap<String, Object>> result = new ArrayList<>(); |
| | | goodsList.forEach(goods -> { |
| | | List<MallGoodsSku> goodsSkuList = skuList.stream() |
| | | .filter(sku -> sku.getGoodsId().equals(goods.getId())) |
| | | .collect(Collectors.toList()); |
| | | List<HashMap<String, Object>> goodsMapList = goodsSkuList.stream().map(sku -> { |
| | | HashMap<String, Object> goodMap = new HashMap<>(); |
| | | //商品编号 |
| | | goodMap.put("aGoodsNo", goods.getGoodsNo()); |
| | | goodMap.put("bName", goods.getGoodsName()); |
| | | goodMap.put("bbGrepName", sku.getGrepName()); |
| | | goodMap.put("cGroupType", goods.getGroupType()); |
| | | String groupTypName = goods.getGroupType() > 0 ? (goods.getGroupType() == 1 ? "黄金套餐" |
| | | : "钻石套餐") : "普通商品"; |
| | | goodMap.put("cGroupTypeName", groupTypName); |
| | | goodMap.put("dPrice", goods.getPrice()); |
| | | goodMap.put("dPriceDale", sku.getPriceSale()); |
| | | goodMap.put("ePriceMember", sku.getPriceMember()); |
| | | goodMap.put("fStock", sku.getStock()); |
| | | goodMap.put("gBuyCount", goods.getBuyCount()); |
| | | goodMap.put("hId", goods.getId()); |
| | | goodMap.put("iSpecIds", sku.getSpecIds()); |
| | | goodMap.put("jSkuId", sku.getId()); |
| | | return goodMap; |
| | | }).collect(Collectors.toList()); |
| | | result.addAll(goodsMapList); |
| | | }); |
| | | /*for (int i = 0; i < result.size(); i++) { |
| | | for (int j = i+1; j < result.size(); j++) { |
| | | if (result.get(i).get("hId").equals(result.get(j).get("hId"))) { |
| | | result.get(j).put("bName",""); |
| | | } |
| | | } |
| | | }*/ |
| | | return new HashMap<String, Object>() {{ |
| | | put("code", 200); |
| | | put("value", goodsMapList); |
| | | put("value", result); |
| | | }}; |
| | | } |
| | | |
| | |
| | | |
| | | @BussinessLog(value = "获取商品规格") |
| | | @RequestMapping(value = "/getGoodsSpecs") |
| | | public Object getGoodsSpecs(Integer oneClassifyId, Integer twoClassifyId, Model model) { |
| | | public Object getGoodsSpecs(Integer oneClassifyId, Integer twoClassifyId,@RequestParam(required = false) List<String> selectedItems, Model model) { |
| | | Wrapper<MallGoodsSpec> wrapper = new EntityWrapper<MallGoodsSpec>() |
| | | .eq("is_delete", EnumIsDelete.EXISTED.index) |
| | | .addFilter("concat(',',classify_id_one,',') like concat( '%,', {0}, ',%' )", oneClassifyId); |
| | |
| | | if (CollectionUtils.isEmpty(goodsSpecs)) { |
| | | goodsSpecs = Lists.newArrayList(); |
| | | } |
| | | if (!selectedItems.isEmpty()) { |
| | | goodsSpecs = goodsSpecs.stream() |
| | | .filter(specs -> !selectedItems.contains(specs.getSpecName())).collect( |
| | | Collectors.toList()); |
| | | } |
| | | model.addAttribute("goodsSpecs", goodsSpecs); |
| | | return PREFIX + "add_specs.html"; |
| | | } |