商品录入【规格选择】 4.1 需求分析 显示规格及选项列表(复选框)如下图,并保存用户选择的结果 4.1 代码实现 4.1.1 显示规格选项列表 由于我们的模板中只记录了规格名称,而我们除了显示规格名称还是显示规格下的规格选项,所以我们需要在后端扩充方法。

(1)在 pinyougou-sellergoods-interface 的 TypeTemplateService.java 新增方法定义

/**
 
*返回规格列表
 
*@return
 
*/
 
public  List<Map>  findSpecList(Long  id);

(2)在 pinyougou-sellergoods-service 的 TypeTemplateServiceImpl.java 新增方法

@Autowired
 
private  TbSpecificationOptionMapper  specificationOptionMapper;
 
 
 
@Override
 
public  List<Map>  findSpecList(Long  id)  {
 
//查询模板
 
TbTypeTemplate  typeTemplate  =  typeTemplateMapper.selectByPrimaryKey(id);
List<Map>  list  =  JSON.parseArray(typeTemplate.getSpecIds(),  Map.class)    ;
 
for(Map  map:list){
 
//查询规格选项列表
TbSpecificationOptionExample example=new TbSpecificationOptionExample(); com.pinyougou.pojo.TbSpecificationOptionExample.Criteria  criteria  =
example.createCriteria();
criteria.andSpecIdEqualTo(  new  Long(  (Integer)map.get("id")  )  ); List<TbSpecificationOption>  options  =
specificationOptionMapper.selectByExample(example); map.put("options",  options);
}
 
return  list;
 
}

(3)在 pinyougou-shop-web 的 TypeTemplateController.java 新增方法

@RequestMapping("/findSpecList")
 
public  List<Map>  findSpecList(Long  id){
 
return  typeTemplateService.findSpecList(id);
 
}
测试后端代码:
 

(4)前端代码:修改 pinyougou-shop-web 的 typeTemplateService.js

//查询规格列表
this.findSpecList=function(id){
 
 
return  $http.get('../typeTemplate/findSpecList.do?id='+id);
 
 
}

(5)修改 pinyougou-shop-web 的 goodsController.js

//模板 ID 选择后 更新模板对象
 
$scope.$watch('entity.goods.typeTemplateId',  function(newValue,  oldValue)  { typeTemplateService.findOne(newValue).success(
function(response){
 
$scope.typeTemplate=response;//获取类型模板
 
$scope.typeTemplate.brandIds= JSON.parse(  $scope.typeTemplate.brandIds);//品牌列表
 
$scope.entity.goodsDesc.customAttributeItems=JSON.parse(  $scope.typeTemplate.custom
AttributeItems);//扩展属性
 
}
 
 
);
 
//查询规格列表typeTemplateService.findSpecList(newValue).success(
 
function(response){
 
 
$scope.specList=response;
 
 
}
 
 
);
 
 
});

(6)修改 goods_edit.html 页面

<    div     ng-repeat="pojo  in  specList">
 
<div  class="col-md-2  title">{{pojo.text}}</div>
 
<div  class="col-md-10  data">
 
<span  ng-repeat="option  in  pojo.options">
 
<input    type="checkbox"  >{{option.optionName}}
 
</span>
 
</div>
 
</div>