.NET Web API 实现小程序产品加入购物车功能 判断是否有重复的 累加

请大佬帮忙看下 写法是否有问题 参数

postman测试可以的 小程序调用时还是重复添加

[HttpPost]
public async Task<IActionResult> Create(string productid,int quantity, WsUserCartViewModel model)
{
 var predicate = PredicateBuilder.True<WsUserCart>();
 predicate = predicate.And(a => a.Deleted == false);
    if (!string.IsNullOrEmpty(productid))
    {
            predicate = predicate.And(a => a.ProductId == productid);
    }
    var page = _wsUserCartService.GetPagedList(predicate, 1, 10000).Result;
    //查询是否有数据  条件ProductId(唯一的)
    if (page.Count==0)
    { //添加数据   
            if (ModelState.IsValid)
            {
                model.CreatedOn = DateTime.Now;
                model.UpdatedOn = DateTime.Now;
                await _wsUserCartService.AddViewModel(model);
            }
            return Ok(model);
    }
    else
    { //查询当前购物车列表 上面if里添加的这条数据 的数量  在下面 修改的时候 加上修改的数量 总数量=page1[0].Quantity+quantity
            var page1 = _wsUserCartService.GetPagedList(predicate, 1, 10000).Result;
            var id = page[0].Id;
            var ucmodel = await _wsUserCartService.GetViewModel(id);
            ucmodel.Quantity = page1[0].Quantity+quantity;
            await _wsUserCartService.UpdateViewModel(ucmodel);
            return Ok(ucmodel);
    }

}

图片说明

1个回答

考虑下是不是并发导致,数据库或者代码层面加锁,比如数据库乐观锁,根据数据版本(Version)记录机制实现;代码也可以通过redis原子操作实现等

jsrgckf
面向对象三大概念 回复-海深不蓝森浓不绿: postman的参数跟你程序的参数一样吗?如果postman没问题那就是你程序的问题。
5 个月之前 回复
weixin_44984517
-海深不蓝森浓不绿 API 参数有问题吗
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问