項目需求: 商品多個規格,規格下面多個顏色,每個顏色價格不同,庫存不同!
前端傳的這個String products 是個JSON字符串: 數據格式是:
[{“name”:“自定義名稱”,“status”:1,“price”:“2342”,“promotion_price”:“234234”},{“name”:“自定義名稱”,“status”:1,“price”:“2342”,“promotion_price”:“234234”}]
然後就要JSON字符串傳List進行保存!
@ApiOperation(value="新增產品",notes = ApiNotes.USER_DATA_ACTIVITY)
@RequestMapping(value = "/add",method = RequestMethod.POST)
@ApiImplicitParam(name="commodity" ,value="內容",required = true,dataType = "String",paramType = "query")
@ResponseBody
public Object add(@ModelAttribute Commodity commodity,String products) {
List<CommodityProduct> commodities = new ArrayList<CommodityProduct>();
commodity.setCreateTime(new Date());
commodity.setTypeId(commodity.getTypeId());
commodity.setLibraryId(commodity.getLibraryId());
commodityService.insert(commodity);
JSONArray jsonArray=JSONArray.fromObject(products);
for(int i=0; i<jsonArray.size(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
CommodityProduct commo = (CommodityProduct)JSONObject.toBean(jsonObject,CommodityProduct.class);
commo.setCreateTime(new Date());
commo.setCommodityId(commodity.getId());
System.out.println(commodity.getId());
commodities.add(commo);
}
commodityProductService.insertBatch(commodities);
return SUCCESS_TIP;
}
還有一種方法:是對象裏面包括一個list,也就是Commodity這個實體類中包含一個泛型,然後讓前端進行傳值,處理方法是:
/**
* 新增產品
*/
@ApiOperation(value="新增產品",notes = ApiNotes.USER_DATA_ACTIVITY)
@RequestMapping(value = "/add",method = RequestMethod.POST)
@ResponseBody
public Object add(@ApiParam("參數封裝") @RequestBody Commodity commodity) {
ration(commodity);
commodity.setDecide(Const.COMMODITY_DECIDE);
commodity.setCreateTime(new Date());
//服務類型添加
List<CommodityProduct>list = Lists.newArrayList();
CommodityProduct commodityn = new CommodityProduct();
for(CommodityProduct c : commodity.getProducts()){
commodityn.setCommodityId(commodity.getId());
BeanUtils.copyProperties(c, commodityn);
}
list.add(commodityn);
commodityService.insert(commodity);
commodityProductService.insertBatch(list);
return SUCCESS_TIP;
}