清空购物车
<p>[TOC]</p>
<h5>简要描述</h5>
<ul>
<li>清空购物车接口</li>
</ul>
<h5>前端页面和服务端的交互过程</h5>
<ul>
<li>点击清空购物车按钮,页面发送ajax请求,请求服务端来执行清空购物车操作</li>
</ul>
<h5>触发事件</h5>
<pre><code><div class="clear" @click="clearCart">
<i class="el-icon-delete"></i> 清空
</div></code></pre>
<h5>接口调用</h5>
<pre><code>async clearCart(){
const res = await clearCartApi()
if(res.code === 1){
for(let ele of this.dishList){
ele.number = undefined
}
this.cartData = []
this.cartDialogShow = false
}else{
this.$notify({ type:'warning', message:res.msg});
}
},</code></pre>
<h5>请求URL</h5>
<ul>
<li><code>[context-path]/shoppingCart/clean</code></li>
</ul>
<h5>请求方式</h5>
<ul>
<li>delete</li>
</ul>
<h5>接口API</h5>
<pre><code>function clearCartApi() {
return $axios({
'url': '/shoppingCart/clean',
'method': 'delete',
})
}</code></pre>
<h5>返回示例</h5>
<pre><code>code: 1
data: "购物车已清空,请重新选择"
map: {}
msg: null</code></pre>
<h5>返回参数说明</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">code</td>
<td style="text-align: left;">int</td>
<td>返回码,1:成功;0或其他:失败</td>
</tr>
<tr>
<td style="text-align: left;">msg</td>
<td style="text-align: left;">string</td>
<td>错误信息</td>
</tr>
<tr>
<td style="text-align: left;">data</td>
<td style="text-align: left;">object</td>
<td>返回数据</td>
</tr>
<tr>
<td style="text-align: left;">map</td>
<td style="text-align: left;">map</td>
<td>动态数据</td>
</tr>
</tbody>
</table>
<h5>备注</h5>
<p>data有两种返回值</p>
<pre><code>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;
}</code></pre>
<h5>后端代码</h5>
<pre><code>@DeleteMapping("/clean")
public R<String> clean(){
LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());
shoppingCartService.remove(queryWrapper);
return R.success("购物车已清空,请重新选择");
}</code></pre>