A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 谷粒姐姐 于 2018-8-22 16:18 编辑

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

(1)在 pinyougou-sellergoods-interface 的 TypeTemplateService.java 新增方法定义
[AppleScript] 纯文本查看 复制代码
/**

*返回规格列表

*@return

*/

public  List<Map>  findSpecList(Long  id);
(2)在 pinyougou-sellergoods-service 的 TypeTemplateServiceImpl.java 新增方法
[AppleScript] 纯文本查看 复制代码
@Autowired

private  TbSpecificationOptionMapper  specificationOptionMapper;



@Override

public  List<Map>  findSpecList(Long  id)  {

//查询模板

TbTypeTemplate  typeTemplate  =  typeTemplateMapper.selectByPrimaryKey(id);
[AppleScript] 纯文本查看 复制代码
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 新增方法
[AppleScript] 纯文本查看 复制代码
@RequestMapping("/findSpecList")

public  List<Map>  findSpecList(Long  id){

return  typeTemplateService.findSpecList(id);

}
测试后端代码:
4)前端代码:修改 pinyougou-shop-web typeTemplateService.js
[AppleScript] 纯文本查看 复制代码
//查询规格列表
this.findSpecList=function(id){


return  $http.get('../typeTemplate/findSpecList.do?id='+id);


}

(5)修改 pinyougou-shop-web goodsController.js
[AppleScript] 纯文本查看 复制代码
//模板 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 页面
[AppleScript] 纯文本查看 复制代码
<	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>



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马