当前位置: 首页 > news >正文

做网站每年交服务费哪里可以免费发布招聘信息

做网站每年交服务费,哪里可以免费发布招聘信息,如何利用fortran语言建设网站,wordpress和discuz共存瑞吉外卖部分功能补充 菜品的启售和停售 在浏览器控制台点击对应功能后可以看到前端发送的请求是#xff1a;http://localhost:9999/dish/status/1?ids1413342036832100354#xff0c;请求方式为POST。 接收到前端参数后#xff0c;进行controller层代码补全#xff0c…瑞吉外卖部分功能补充 菜品的启售和停售 在浏览器控制台点击对应功能后可以看到前端发送的请求是http://localhost:9999/dish/status/1?ids1413342036832100354请求方式为POST。 接收到前端参数后进行controller层代码补全在DishController中添加下面的接口代码 /*** 对菜品进行停售或者是起售* return*/ PostMapping(/status/{status}) public RString status(PathVariable(status) Integer status,Long ids){log.info(status:{},status);log.info(ids:{},ids);Dish dish dishService.getById(ids);if (dish ! null){dish.setStatus(status);dishService.updateById(dish);return R.success(开始启售);}return R.error(售卖状态设置异常); }菜品批量启售和批量停售 把上面对单个菜品的售卖状态的方法进行修改; /*** 对菜品批量或者是单个 进行停售或者是起售* return*/ PostMapping(/status/{status}) //这个参数这里一定记得加注解才能获取到参数否则这里非常容易出问题 public RString status(PathVariable(status) Integer status,RequestParam ListLong ids){//log.info(status:{},status);//log.info(ids:{},ids);LambdaQueryWrapperDish queryWrapper new LambdaQueryWrapper();queryWrapper.in(ids !null,Dish::getId,ids);//根据数据进行批量查询ListDish list dishService.list(queryWrapper);for (Dish dish : list) {if (dish ! null){dish.setStatus(status);dishService.updateById(dish);}}return R.success(售卖状态修改成功); }注意controller层的代码是不可以直接写业务的建议把它抽离到service层controller调用一下service的方法就行下面的批量删除功能是抽离的controller没有写业务代码 菜品的批量删除 前端发来的请求 在DishFlavor实体类中在private Integer isDeleted;字段上加上TableLogic注解表示删除是逻辑删除由mybatis-plus提供的 在DishController中添加接口 /*** 套餐批量删除和单个删除* return*/ DeleteMapping public RString delete(RequestParam(ids) ListLong ids){//删除菜品 这里的删除是逻辑删除dishService.deleteByIds(ids);//删除菜品对应的口味 也是逻辑删除LambdaQueryWrapperDishFlavor queryWrapper new LambdaQueryWrapper();queryWrapper.in(DishFlavor::getDishId,ids);dishFlavorService.remove(queryWrapper);return R.success(菜品删除成功); }DishServicez中添加相关的方法 //根据传过来的id批量或者是单个的删除菜品 void deleteByIds(ListLong ids);在实现类实现该方法 /***套餐批量删除和单个删除* param ids*/ Override Transactional public void deleteByIds(ListLong ids) {//构造条件查询器LambdaQueryWrapperDish queryWrapper new LambdaQueryWrapper();//先查询该菜品是否在售卖如果是则抛出业务异常queryWrapper.in(ids!null,Dish::getId,ids);ListDish list this.list(queryWrapper);for (Dish dish : list) {Integer status dish.getStatus();//如果不是在售卖,则可以删除if (status 0){this.removeById(dish.getId());}else {//此时应该回滚,因为可能前面的删除了但是后面的是正在售卖throw new CustomException(删除菜品中有正在售卖菜品,无法全部删除);}}}功能测试单个删除批量删除批量删除中有启售的… 测试成功 菜品删除逻辑优化 上面写的菜品的删除功能有点小简单下面完善一下相关的逻辑 相关的service的注入这里就不列举出来了代码中使用了哪个service你就autowire就行 下面的代码可能会有点冗余这里我就不进行抽离了 /*** 菜品批量删除和单个删除* 1.判断要删除的菜品在不在售卖的套餐中如果在那不能删除* 2.要先判断要删除的菜品是否在售卖如果在售卖也不能删除* return*///遇到一个小问题添加菜品后然后再添加套餐但是套餐可选择添加的菜品选项是没有刚刚添加的菜品的//原因redis存储的数据没有过期不知道为什么redis没有重新刷新缓存// 与DishController中的GetMapping(/list)中的缓存设置有关目前不知道咋配置刷新缓存。。。。。// 解决方案把redis中的数据手动的重新加载一遍或者是等待缓存过期后再添加相关的套餐或者改造成使用spring catchDeleteMappingpublic RString delete(RequestParam(ids) ListLong ids){//根据菜品id在stemeal_dish表中查出哪些套餐包含该菜品LambdaQueryWrapperSetmealDish setmealDishLambdaQueryWrapper new LambdaQueryWrapper();setmealDishLambdaQueryWrapper.in(SetmealDish::getDishId,ids);ListSetmealDish SetmealDishList setmealDishService.list(setmealDishLambdaQueryWrapper);//如果菜品没有关联套餐直接删除就行 其实下面这个逻辑可以抽离出来这里我就不抽离了if (SetmealDishList.size() 0){//这个deleteByIds中已经做了菜品起售不能删除的判断力dishService.deleteByIds(ids);LambdaQueryWrapperDishFlavor queryWrapper new LambdaQueryWrapper();queryWrapper.in(DishFlavor::getDishId,ids);dishFlavorService.remove(queryWrapper);return R.success(菜品删除成功);}//如果菜品有关联套餐并且该套餐正在售卖那么不能删除//得到与删除菜品关联的套餐idArrayListLong Setmeal_idList new ArrayList();for (SetmealDish setmealDish : SetmealDishList) {Long setmealId setmealDish.getSetmealId();Setmeal_idList.add(setmealId);}//查询出与删除菜品相关联的套餐LambdaQueryWrapperSetmeal setmealLambdaQueryWrapper new LambdaQueryWrapper();setmealLambdaQueryWrapper.in(Setmeal::getId,Setmeal_idList);ListSetmeal setmealList setmealService.list(setmealLambdaQueryWrapper);//对拿到的所有套餐进行遍历然后拿到套餐的售卖状态如果有套餐正在售卖那么删除失败for (Setmeal setmeal : setmealList) {Integer status setmeal.getStatus();if (status 1){return R.error(删除的菜品中有关联在售套餐,删除失败);}}//要删除的菜品关联的套餐没有在售可以删除//这下面的代码并不一定会执行,因为如果前面的for循环中出现status 1,那么下面的代码就不会再执行dishService.deleteByIds(ids);LambdaQueryWrapperDishFlavor queryWrapper new LambdaQueryWrapper();queryWrapper.in(DishFlavor::getDishId,ids);dishFlavorService.remove(queryWrapper);return R.success(菜品删除成功);}套餐管理的启售停售 前端发来的请求 根据前面菜品模块自己实现的功能我们可以知道我们只需要写一个批量处理的方法就可以完成单个或者是批量套餐的启售停售 SetmealController中的controller层代码 /*** 对套餐批量或者是单个 进行停售或者是起售* return*/ PostMapping(/status/{status}) //这个参数这里一定记得加注解才能获取到参数否则这里非常容易出问题 public RString status(PathVariable(status) Integer status,RequestParam ListLong ids){setmealService.updateSetmealStatusById(status,ids);return R.success(售卖状态修改成功); }SetmealService中添加下面方法 /*** 根据套餐id修改售卖状态* param status* param ids*/ void updateSetmealStatusById(Integer status,ListLong ids);该方法的实现 /*** 根据套餐id修改售卖状态* param status* param ids*/ Override public void updateSetmealStatusById(Integer status, ListLong ids) {LambdaQueryWrapperSetmeal queryWrapper new LambdaQueryWrapper();queryWrapper.in(ids !null,Setmeal::getId,ids);ListSetmeal list this.list(queryWrapper);for (Setmeal setmeal : list) {if (setmeal ! null){setmeal.setStatus(status);this.updateById(setmeal);}} }功能测试成功
http://www.yingshimen.cn/news/9694/

相关文章:

  • 免费网站网络推广培训网网站源码
  • 学做网站是什么专业从网站建设到网站运营
  • 江苏省城乡建设部网站首页wordpress邀请有奖
  • 大连鼎信网站建设cms建站系统哪个好
  • 深圳做网站推广优化建设银行校园招聘网站
  • 专业做网站的公司有没有服务器电子商务就业前景和就业方向
  • 虚拟机下载手机版牛商网网站做seo好么
  • 做新房网站怎么弄做百度网站需要钱吗
  • 设计海报网站网站关键字
  • 广州服装网站建设制作网站软件哪个好
  • 潍坊网站建设 选聚搜网络郴州刚刚发生的事
  • 公司建立网站流程哈尔滨网站制作方案定制
  • 如何做资源论坛网站优化大师手机版下载安装app
  • 有些网站为什么会有弹窗北京黄页电话查询
  • 视频网站建设技术方案做视频网站要什么软件下载
  • 西部数码网站管理助手 mysql保存路径大气简约企业网站模板免费下载
  • 大二学生做网站难吗小型生鲜超市店面设计
  • 制作网页网站项目介绍wordpress slider插件
  • 公司网站建设需要哪些设备西安建筑科技大学就业信息网
  • 网站开发费用是否资本化泰州seo外包公司
  • 合肥网站建设哪家好重庆公司建设网站
  • 无锡做装修网站wordpress建了个幻灯片怎么输出
  • 郑州网站空间个人介绍微电影网站模板
  • 现货交易平台合法吗seo优化快排
  • 汕头网站建设推广方法揭阳市建设发展总公司网站
  • 海口模板建站上海网站建设代
  • 折纸效果网站设计吧
  • 关于手机网站设计的若干想法网站后台添加关键词
  • 网站模板 实验室中国出口外贸网
  • 在百度建免费网站吗小型门户网站模板