规格管理的增删改查
SpecificationService
public interface SpecificationService {
//高级查询
public PageResult findPage(Specification spec, Integer page, Integer rows);
// 新建
public void add(SpecEntity specEntity);
//查询实体
public SpecEntity findOne(Long id);
//保存
public void update(SpecEntity specEntity);
//删除
public void delete(Long[] ids);
//下拉框
public List<Map> selectOptionList();
}
SpecificationServiceImpl
@Service
@Transactional
public class SpecificationServiceImpl implements SpecificationService {
@Autowired
private SpecificationDao specDao;
@Autowired
private SpecificationOptionDao optionDao;
//高级查询
@Override
public PageResult findPage(Specification spec, Integer page, Integer rows) {
PageHelper.startPage(page,rows);
SpecificationQuery query = new SpecificationQuery();
SpecificationQuery.Criteria criteria = query.createCriteria();
if(spec!=null){
if(spec.getSpecName()!=null&&!"".equals(spec.getSpecName())){
criteria.andSpecNameLike("%"+spec.getSpecName()+"%");
}
}
Page<Specification> specList = (Page<Specification>)specDao.selectByExample(query);
return new PageResult(specList.getTotal(),specList.getResult());
}
//添加
@Override
public void add(SpecEntity specEntity) {
// 1 添加规格对象
specDao.insertSelective(specEntity.getSpecification());
// 2 添加规格选项对象
if(specEntity.getSpecificationOptionList()!=null){
for(SpecificationOption option:specEntity.getSpecificationOptionList()){
option.setSpecId(specEntity.getSpecification().getId());
optionDao.insertSelective(option);
}
}
}
// 数据回显
@Override
public SpecEntity findOne(Long id) {
//1 根据id 回显规格数据
Specification spec = specDao.selectByPrimaryKey(id);
//2 根据规格id查询规格选项集合对象 外键就必须组装道查询的条件中 形成查询对象
SpecificationOptionQuery query = new SpecificationOptionQuery();
SpecificationOptionQuery.Criteria criteria = query.createCriteria();
criteria.andSpecIdEqualTo(id);
List<SpecificationOption> optionList = optionDao.selectByExample(query);
//3将 规格对象和规格选项对象集合 封装并且返回实体对象中
SpecEntity specEntity = new SpecEntity();
specEntity.setSpecification(spec); // 将规格封装进去
specEntity.setSpecificationOptionList(optionList);// 将选项集合封装进去
return specEntity;
}
//修改
@Override
public void update(SpecEntity specEntity) {
// 1 根据规格对象更新
specDao.updateByPrimaryKeySelective(specEntity.getSpecification());
//2 根据规格id 删除对应的规格选项集合数据
SpecificationOptionQuery query = new SpecificationOptionQuery();
SpecificationOptionQuery.Criteria criteria = query.createCriteria();
criteria.andSpecIdEqualTo(specEntity.getSpecification().getId());
optionDao.deleteByExample(query);
//3 将新的规格选项集合对象那个插入到规格选项集合表中
if(specEntity.getSpecificationOptionList()!=null){
for(SpecificationOption option:specEntity.getSpecificationOptionList()){
// 设置外键
option.setSpecId(specEntity.getSpecification().getId());
optionDao.insertSelective(option);
}
}
}
//批量删除
@Override
public void delete(Long[] ids) {
if(ids!=null){
for(Long id:ids){
// 1 根据规格id 删除规格对象
specDao.deleteByPrimaryKey(id);
//2 根据规格的id 删除 规格选项集合对象
SpecificationOptionQuery query = new SpecificationOptionQuery();
SpecificationOptionQuery.Criteria criteria = query.createCriteria();
criteria.andSpecIdEqualTo(id);
optionDao.deleteByExample(query);
}
}
}
}
SpecificationController
@RestController
@RequestMapping("/specification")
public class SpecController {
@Reference
private SpecificationService specService;
// 规格的高级查询
@RequestMapping("/search")
public PageResult search(@RequestBody Specification spec,Integer page,Integer rows){
PageResult result = specService.findPage(spec, page, rows);
return result;
}
// 新建
@RequestMapping("/add")
public Result add(@RequestBody SpecEntity specEntity){
try{
specService.add(specEntity);
return new Result(true,"保存成功");
}catch (Exception e){
e.printStackTrace();
return new Result(false,"保存失败");
}
}
// 回显数据
@RequestMapping("/findOne")
public SpecEntity findOne(Long id){
SpecEntity one = specService.findOne(id);
return one;
}
// 更新 保存
@RequestMapping("/update")
public Result update(@RequestBody SpecEntity specEntity){
try{
specService.update(specEntity);
return new Result(true,"修改成功");
}catch (Exception e){
e.printStackTrace();
return new Result(false,"修改失败");
}
}
// 批量删除
@RequestMapping("/delete")
public Result delete(Long[] ids){
try{
specService.delete(ids);
return new Result(true,"删除成功");
}catch (Exception e){
e.printStackTrace();
return new Result(false,"删除失败");
}
}
}
来源:CSDN
作者:Sasuke_359
链接:https://blog.csdn.net/weixin_43948082/article/details/103603866