基于Spring boot开发中商城商品中 规格的后台开发 及数据规格的排序思考
@Transactional public void addCommodity(Commodity commodity,List<Map<String, Object>> list){ //添加規格 //新增 int i=0; for(Map<String ,Object> map1: list){ CommodityDetails commodityDetails = new CommodityDetails(); commodityDetails.setName((String) map1.get("name")); commodityDetails.setId(IdGen.uuid()); commodityDetails.setDeleted(0); commodityDetails.setCommodityId(commodity.getId()); commodityDetails.setSerialNumber(i); commodityDetailsMapper.insert(commodityDetails); i++; } commodityMapper.insert(commodity); } @Transactional public void updataCommodity(Commodity commodity,List<Map<String, Object>> list){ //根据他的商品id查询出他数据库中的规格表中的id list List<String> commodityDetailsIdList = commodityDetailsMapper.selectIdByCommosityId(commodity.getId()); CommodityDetails commodityDetails; List<String> nowCommodityDetailsIdList = new ArrayList<>(); int j=0; int m=0; for(Map<String,Object> map : list){ //如果是新增的 前端只是传递规格的名称 if(map.get("id") == null){ //新增 commodityDetails = new CommodityDetails(); commodityDetails.setName((String) map.get("name")); commodityDetails.setId(IdGen.uuid()); commodityDetails.setDeleted(0); commodityDetails.setCommodityId(commodity.getId()); commodityDetailsMapper.insert(commodityDetails); j++; }else{ //修改 根据前端传递过来的id来获取他的对象 commodityDetails = commodityDetailsMapper.selectByPrimaryKey((String) map.get("id")); //比较name是否相等来进行修改 if(!commodityDetails.getName().equals(map.get("name"))){ commodityDetails.setName((String) map.get("name")); commodityDetails.setSerialNumber(m); commodityDetailsMapper.updateByPrimaryKey(commodityDetails); m++; } //将修改过的这些字段暂时保存到 list nowCommodityDetailsIdList.add((String) map.get("id")); } } //遍历数据库查询出来的规格id列表 for(String commodityDetailsId : commodityDetailsIdList){ //和更改的这个列表进行进行判断 if(!nowCommodityDetailsIdList.contains(commodityDetailsId)){ //如果不存在进行删除 commodityDetailsMapper.updateStateByPrimaryKey(commodityDetailsId); //刪除购物车的该规格 Map<String,Object> param6 =new HashMap<>(); param6.put("commodityId",commodity.getId()); param6.put("commodityDetailsId",commodityDetailsId); shoppingCartMapper.deleteSpecificationsByPrimaryKeyCommodityId(param6); } } //更新商品基本信息 commodityMapper.updateByPrimaryKey(commodity); }
前端用的 vue 后端接口文档用的eolinker https://www.eolinker.com/#/?status=link-jump
commodityDetails.setSerialNumber(m); 是用于排序的字段 如果用Mysql的时间排序由于插入的时间太相近区分不出来 ,用自增列数据有时候会很大,所以用自定义数字的方式排序
public MsgResponse add(@RequestBody Map<String, Object> param){ MsgResponse msgResponse=new MsgResponse(); if(param==null){ return msgResponse.setSuccess(false).setMsg("请填写商品信息"); } //添加商品基本信息 Commodity commodity=new Commodity(); BeanUtil.populate(commodity, param); String CommodityId = IdGen.uuid(); commodity.setId(CommodityId); commodity.setSalesNumber(0); List<Map<String,Object>> specifications1=(List<Map<String,Object>>) param.get("specifications"); commodityService.addCommodity(commodity,specifications1); //添加商品图信息 CommodityImg commodityImg=new CommodityImg(); //轮播图 if(param.get("CommodityDynamicImg")!=null){ int j=0; List <String> DynamicImg=(List) param.get("CommodityDynamicImg"); for (String di:DynamicImg){ commodityImg.setType(1); commodityImg.setImg(di); commodityImg.setId(IdGen.uuid()); commodityImg.setCommodityId(CommodityId); commodityImg.setSerialNumber(j); commodityImgService.add(commodityImg); j++; } } if(param.get("CommodityStaticImg")!=null){ //详情图 List <String> StaticImg=(List) param.get("CommodityStaticImg"); int i=0; for (String si:StaticImg){ commodityImg.setType(2); commodityImg.setImg(si); commodityImg.setId(IdGen.uuid()); commodityImg.setCommodityId(CommodityId); commodityImg.setSerialNumber(i); commodityImgService.add(commodityImg); i++; } } return msgResponse.setSuccess(true).setMsg("添加商品成功"); } /** * 更新商品信息 * @param param * @return */ @PostMapping("/updateCommodity") public MsgResponse updata(@RequestBody Map<String, Object> param) { MsgResponse msgResponse = new MsgResponse(); if (param.get("id") == null || StringUtils.isEmpty((String) param.get("id"))) { return msgResponse.setSuccess(false).setMsg("请选择商品信息"); } Commodity commodity = new Commodity(); BeanUtil.populate(commodity, param); //更新商品和规格 List<Map<String,Object>> specifications=(List<Map<String,Object>>) param.get("specifications"); commodityService.updataCommodity(commodity,specifications); //更新图片信息 CommodityImg commodityImg = new CommodityImg(); //轮播图,更新之前删除原来的数据 if (param.get("CommodityDynamicImg") != null) { Map<String,Object> param1 =new HashMap<>(); param1.put("commodityId",param.get("id").toString()); param1.put("type",1); commodityImgService.deleteByPrimaryKeyCommodityImg(param1); List <String> CommodityDynamicImg=(List) param.get("CommodityDynamicImg"); int d=0; for (String ci:CommodityDynamicImg){ commodityImg.setId(IdGen.uuid()); commodityImg.setImg(ci); commodityImg.setCommodityId(param.get("id").toString()); commodityImg.setType(1); commodityImg.setSerialNumber(d); commodityImgService.add(commodityImg); d++; } } if (param.get("CommodityStaticImg") != null) { List <String> CommodityStaticImg=(List) param.get("CommodityStaticImg"); int s10=0; //详情图 Map<String,Object> param2 =new HashMap<>(); param2.put("commodityId",param.get("id").toString()); param2.put("type",2); commodityImgService.deleteByPrimaryKeyCommodityImg(param2); for (String csi:CommodityStaticImg){ commodityImg.setId(IdGen.uuid()); commodityImg.setType(2); commodityImg.setImg(csi); commodityImg.setCommodityId(param.get("id").toString()); commodityImg.setSerialNumber(s10); commodityImgService.add(commodityImg); s10++; } } return msgResponse.setSuccess(true).setMsg("商品更新成功"); }

浙公网安备 33010602011771号