海上捞火锅

海上捞火锅


菜品批量起售/停售

[TOC]

简要描述
  • 菜品批量起售/停售
前端页面和服务端交互过程
  • 在DishController添加status方法,通过数组保存ids,实现批量起售停售
触发事件
<span class="span-btn blueBug non" @click="statusHandle('1')">批量启售</span>
<span style="border:none;" class="span-btn delBut non" @click="statusHandle('0')">批量停售</span>
接口调用
statusHandle (row) {
  let params = {}
  if (typeof row === 'string' ) {
    if (this.checkList.length === 0) {
      this.$message.error('批量操作,请先勾选操作菜品!')
      return false
    }
    params.id = this.checkList.join(',')
    params.status = row
  } else {
    params.id = row.id
    params.status = row.status ? '0' : '1'
  }
  this.dishState = params
  this.$confirm('确认更改该菜品状态?', '提示', {
    'confirmButtonText': '确定',
    'cancelButtonText': '取消',
    'type': 'warning'
  }).then(() => {
    // 起售停售---批量起售停售接口
    dishStatusByStatus(this.dishState).then(res => {
      if (res.code === 1) {
        this.$message.success('菜品状态已经更改成功!')
        this.handleQuery()
      } else {
        this.$message.error(res.msg || '操作失败')
      }
    }).catch(err => {
        this.$message.error('请求出错了:' + err)
    })
  })
},
请求URL
  • [context-path]/dish/status/${params.status}
请求方式
  • POST
API接口
const dishStatusByStatus = (params) => {
  return $axios({
    url: `/dish/status/${params.status}`,
    method: 'post',
    params: { ids: params.id }
  })
}
参数
参数名 必选 类型 说明
id bigint 菜品编号
返回示例
code: 1
data: "状态修改成功!"
map: {}
msg: null
返回参数说明
参数名 类型 说明
code int 返回码:1:成功 0或其他:失败
data object 返回数据
map map 动态数据
msg string 错误信息
备注
  • data有两种返回值
public static <T> R<T> success(T object) {
    R<T> r = new R<T>();
    r.data = object;
    r.code = 1;
    return r;
}

public static <T> R<T> error(String msg) {
    R r = new R();
    r.msg = msg;
    r.code = 0;
    return r;
}
后端接口请求参数
  • 在Controller接口方法中声明数组类型参数ids
  • 通过 @PathVariable 将 URL 中占位符参数status绑定到控制器处理入参
后端代码
@PostMapping("/status/{status}")
public R<String> status(@PathVariable Integer status,String[] ids){
    log.info(ids.toString());
    for (String id : ids) {
        Dish dish = dishService.getById(id);
        dish.setStatus(status);
        dishService.updateById(dish);
    }
    return R.success("状态修改成功!");
}

页面列表

ITEM_HTML