Skip to content

Commit

Permalink
套餐批量删除
Browse files Browse the repository at this point in the history
  • Loading branch information
Q-1515 committed Jul 22, 2022
1 parent ae179e7 commit ece5ee2
Show file tree
Hide file tree
Showing 7 changed files with 87 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/admin/setmeal")
@Slf4j
Expand Down Expand Up @@ -47,5 +49,19 @@ public R<PageResult> page(SetmealPageQueryDTO setmealPageQueryDTO) {
return R.success(pageResult);
}

/**
* 批量删除的套餐
*
* @param ids 批量删除的套餐id
* @return success
*/
@DeleteMapping
@ApiOperation("批量删除的套餐")
public R<String> delete(@RequestParam List<Long> ids) {
log.info("批量删除:{}", ids);
setmealService.deleteBatch(ids);
return R.success("删除成功");
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@
@Mapper
public interface SetmealDishMapper {



//根据菜品ids找套餐
List<Long> getSetmealIdsByDishIds(List<Long> ids);

//保存套餐和菜品的关联关系
void insertBatch(List<SetmealDish> setmealDishes);

//套餐id删除套餐菜品关系表中的数据
void deleteBySetmealId(List<Long> ids);
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,10 @@ public interface SetmealMapper {

//套餐分页查询
Page<SetmealVO> pageQuery(SetmealPageQueryDTO setmealPageQueryDTO);

//通过套餐id查找套餐数据
Setmeal getById(Long id);

//套餐ids删除套餐表中的数据
void deleteById(List<Long> ids);
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@
import com.reggie.dto.SetmealPageQueryDTO;
import com.reggie.result.PageResult;

import java.util.List;

public interface SetmealService {

//新增套餐
void saveWithDish(SetmealDTO setmealDTO);

//套餐分页查询
PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO);

//批量删除的套餐
void deleteBatch(List<Long> ids);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,13 @@

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.reggie.constant.MessageConstant;
import com.reggie.constant.StatusConstant;
import com.reggie.dto.SetmealDTO;
import com.reggie.dto.SetmealPageQueryDTO;
import com.reggie.entity.Setmeal;
import com.reggie.entity.SetmealDish;
import com.reggie.exception.DeletionNotAllowedException;
import com.reggie.mapper.SetmealDishMapper;
import com.reggie.mapper.SetmealMapper;
import com.reggie.result.PageResult;
Expand Down Expand Up @@ -71,4 +74,30 @@ public PageResult pageQuery(SetmealPageQueryDTO setmealPageQueryDTO) {
Page<SetmealVO> page = setmealMapper.pageQuery(setmealPageQueryDTO);
return new PageResult(page.getTotal(), page.getResult());
}

/**
* 批量删除的套餐
*
* @param ids 批量删除的套餐id
*/
@Transactional
public void deleteBatch(List<Long> ids) {
ids.forEach(id -> {
//通过套餐id查找套餐数据
Setmeal setmeal = setmealMapper.getById(id);
if (StatusConstant.ENABLE == setmeal.getStatus()) {
//起售中的套餐不能删除
throw new DeletionNotAllowedException(MessageConstant.SETMEAL_ON_SALE);
}
}
);

//套餐ids删除套餐表中的数据
setmealMapper.deleteById(ids);
//套餐id删除套餐菜品关系表中的数据
setmealDishMapper.deleteBySetmealId(ids);
}



}
10 changes: 9 additions & 1 deletion reggie_server/src/main/resources/mapper/SetmealDishMapper.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,15 @@
(#{setmealDishe.setmealId}, #{setmealDishe.dishId}, #{setmealDishe.name}, #{setmealDishe.price},
#{setmealDishe.copies})
</foreach>

</insert>

<!--套餐id删除套餐菜品关系表中的数据-->
<delete id="deleteBySetmealId">
delete from setmeal_dish
where dish_id in
<foreach collection="ids" item="dish_id" separator="," open="(" close=")">
#{dish_id}
</foreach>
</delete>

</mapper>
17 changes: 17 additions & 0 deletions reggie_server/src/main/resources/mapper/SetmealMapper.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,25 @@
</if>
</where>
order by setmeal.create_time desc
</select>

<!--通过套餐id查找套餐数据-->
<select id="getById" resultType="com.reggie.entity.Setmeal">
select *
from setmeal
where id = #{id};
</select>


<!--套餐ids删除套餐表中的数据-->
<delete id="deleteById">
delete
from setmeal
where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>


</mapper>

0 comments on commit ece5ee2

Please sign in to comment.