public boolean buy(String username, String componname) { List<User> users = userMapper.selectByUsername(username); List<Compon> compons = componMapper.selectAllByComponname(componname); Integer userid = users.get(0).getUserid(); Integer componid = compons.get(0).getComponid(); QueryWrapper<Order> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("userid",userid); queryWrapper.eq("componid",componid); Order order = orderMapper.selectOne(queryWrapper); if (order == null){ orderMapper.insert(new Order(userid, componid)); return true; }else { int res = orderMapper.updateNumberByUseridAndComponid(userid, componid); if (res > 0) return true; else return false; } }
时间: 2024-04-01 20:35:51 浏览: 119
这段代码实现了一个购买组件的功能。首先根据用户名和组件名查询用户和组件信息,然后获取用户 ID 和组件 ID。接着使用 MyBatis-Plus 提供的 QueryWrapper 构造查询条件,查询订单表中是否已经存在该用户对应该组件的订单记录。如果订单不存在,则向订单表插入一条新的记录,并返回 true 表示购买成功;否则更新订单数量并返回 true,若更新失败则返回 false。
需要注意的是,这段代码中没有对用户账户余额进行判断,如果用户账户余额不足以支付该组件的价格,购买会失败。同时,如果同一用户购买同一组件的操作过于频繁,可能会导致数据库中出现重复的订单记录,需要在应用层面上加以限制。
阅读全文