黑马程序员技术交流社区

标题: 【郑州校区】Java之品优购课程讲义_day03(6) [打印本页]

作者: 谷粒姐姐    时间: 2018-8-6 11:15
标题: 【郑州校区】Java之品优购课程讲义_day03(6)
本帖最后由 谷粒姐姐 于 2018-8-6 15:02 编辑

4.3 修改规格
4.3.1 获取规格数据
实现思路:通过规格 ID,到后端查询规格和规格选项列表,然后通过组合实体类返回结果
(1)修改 pinyougou-sellergoods-interface 的 SpecificationService.java
[AppleScript] 纯文本查看 复制代码
/**

*根据 ID 获取实体

*@param  id


*@return


*/

public  Specification  findOne(Long  id);
(2)修改 pinyougou-sellergoods-service 的 SpecificationServiceImpl.java
[AppleScript] 纯文本查看 复制代码
/**

*根据 ID 获取实体

*@param  id


*@return


*/ @Override
public  Specification  findOne(Long  id){

//查询规格

TbSpecification tbSpecification = specificationMapper.selectByPrimaryKey(id);
//查询规格选项列表

TbSpecificationOptionExample  example=new  TbSpecificationOptionExample(); Criteria  criteria  =  example.createCriteria();
criteria.andSpecIdEqualTo(id);//根据规格 ID 查询

List<TbSpecificationOption>  optionList  = specificationOptionMapper.selectByExample(example);
//构建组合实体类返回结果

Specification  spec=new  Specification(); spec.setSpecification(tbSpecification); spec.setSpecificationOptionList(optionList); return  spec;
}
(3)修改 pinyougou-manager-web 的 SpecificationController.java
[AppleScript] 纯文本查看 复制代码
@RequestMapping("/findOne")


public  Specification  findOne(Long  id){ return  specificationService.findOne(id);
(4)修改页面 specification.html        中列表的修改按钮
[AppleScript] 纯文本查看 复制代码
<button  type="button"  class="btn  bg-olive  btn-xs"  data-toggle="modal" data-target="#editModal"  ng-click="findOne(entity.id)">修改</button>
4.3.1 保存修改结果
1)修改 pinyougou-sellergoods-interface SpecificationService.java
[AppleScript] 纯文本查看 复制代码
/**

* 修 改

*/

public  void  update(Specification  specification);
(2)修改 pinyougou-sellergoods-service SpecificationServiceImpl.java
[AppleScript] 纯文本查看 复制代码
/**

* 修 改

*/ @Override
public  void  update(Specification  specification){

//保存修改的规格specificationMapper.updateByPrimaryKey(specification.getSpecification());//
保存规格

//删除原有的规格选项
TbSpecificationOptionExample  example=new  TbSpecificationOptionExample(); com.pinyougou.pojo.TbSpecificationOptionExample.Criteria  criteria  =
example.createCriteria();

criteria.andSpecIdEqualTo(specification.getSpecification().getId());//指定规格 ID 为条件

specificationOptionMapper.deleteByExample(example);//删除

//循环插入规格选项
for(TbSpecificationOption specificationOption:specification.getSpecificationOptionList()){



specificationOption.setSpecId(specification.getSpecification().getId()); specificationOptionMapper.insert(specificationOption);
}

}
(3)修改 pinyougou-manager-web 的 SpecificationController.java
[AppleScript] 纯文本查看 复制代码
/**

*修改

*@param  specification


*@return


*/ @RequestMapping("/update")
public  Result  update(@RequestBody  Specification  specification){


try {


specificationService.update(specification);

return  new  Result(true,  "修改成功");

}  catch  (Exception  e)  { e.printStackTrace();
return  new  Result(false,  "修改失败");

}

}
4.5.1 后端代码
修改 pinyougou-sellergoods-service 的 SpecificationServiceImpl.java





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2