1 商品类别批量添加之 Controller
ProductCategoryManagementController
@Controller
@RequestMapping("/shopadmin")
public class ProductCategoryManagementController {
@Autowired
private ProductCategoryService productCategoryService;
@RequestMapping(value = "/addproductcategorys", method = RequestMethod.POST)
@ResponseBody
private Map<String, Object> addProductCategorys(
@RequestBody List<ProductCategory> productCategoryList,
HttpServletRequest request) {
Map<String, Object> modelMap = new HashMap<>();
Shop currentShop = (Shop) request.getSession().getAttribute("currentShop");
for (ProductCategory pc : productCategoryList) {
pc.setShopId(currentShop.getShopId());
}
if (productCategoryList != null && productCategoryList.size() > 0) {
try{
ProductCategoryExecution pe = productCategoryService.batchAddProductCategory(productCategoryList);
if(pe.getState() == ProductCategoryStateEnum.SUCCESS.getState()){
modelMap.put("success",true);
}else{
modelMap.put("success",false);
modelMap.put("errMsg",pe.getStateInfo());
}
}catch (RuntimeException e){
modelMap.put("success",false);
modelMap.put("errMsg", e.toString());
return modelMap;
}
}else{
modelMap.put("success", false);
modelMap.put("errMsg", "请至少输入一个商品类别");
}
return modelMap;
}
}
2 productcategorymanagement.js
// 新增按钮的点击事件
$('#new').click(function() {
// 新增数据 以 temp 为标识,便于和库表中的数据区分开来
var tempHtml = '<div class="row row-product-category temp">'
+ '<div class="col-33"><input class="category-input category" type="text" placeholder="分类名"></div>'
+ '<div class="col-33"><input class="category-input priority" type="number" placeholder="优先级"></div>'
+ '<div class="col-33"><a href="#" class="button delete">删除</a></div>'
+ '</div>';
$('.product-categroy-wrap').append(tempHtml);
});
$('#submit').click(function() {
// 通过temp 获取新增的行
var tempArr = $('.temp');
// 定义数组接收新增的数据
var productCategoryList = [];
tempArr.map(function(index, item) {
var tempObj = {};
tempObj.productCategoryName = $(item).find('.category').val();
tempObj.priority = $(item).find('.priority').val();
if (tempObj.productCategoryName && tempObj.priority) {
productCategoryList.push(tempObj);
}
});
$.ajax({
url : addProductCategoryURL,
type : 'POST',
// 后端通过 @HttpRequestBody直接接收
data : JSON.stringify(productCategoryList),
contentType : 'application/json',
success : function(data) {
if (data.success) {
$.toast('新增【' + data.effectNum + '】条成功!');
// 重新加载数据
getProductCategoryList();
} else {
$.toast(data.errMsg);
}
}
});
});
2.1 测试添加功能