@Controller
public class GoodsController {
@Resource
private RedisTemplate redisTemplate;
@RequestMapping("toLogin")
public String tologin() {
return "login";
}
@RequestMapping("login")
public String login(User user){
ListOperations<String, User> operations=redisTemplate.opsForList();
List<User>list=operations.range("user_list", 0, -1);
for(User u:list) {
if(u.getUsername().equals(user.getUsername())&&u.getPassword().equals(user.getPassword())) {
return "redirect:list";
}
}
return "redirect:toLogin";
}
@RequestMapping("list")
public String list(Model model) {
ListOperations<String,Goods>operations=redisTemplate.opsForList();
List<Goods>list=operations.range("goodsList", 0, -1);
model.addAttribute("list", list);
return "list";
}
@RequestMapping("getNum")
@ResponseBody
public List<Goods> getNum(){
ListOperations<String, Goods> opsOperations=redisTemplate.opsForList();
List<Goods> list=opsOperations.range("goodsList", 0, -1);
return list;
}
@RequestMapping("buy")
public String buy(Integer id,Model model) {
//获取list操作对象
ListOperations<String,Goods> opsForList = redisTemplate.opsForList();
//获取所有的商品数据
List<Goods> list = opsForList.range("goodsList", 0, -1);
//单个商品修改
for (int i=0;i<list.size();i++) {
//遍历所有的商品数据
Goods goods = list.get(i);
//根据商品id,判断其是否是同一个商品
if(goods.getId().equals(id)) {
//如果找到要抢购的商品
if(goods.getNum() > 0) {
//将商品数量-1
goods.setNum(goods.getNum() - 1);
//再存入list中
list.set(i, goods);
model.addAttribute("msg", "秒杀成功");
}else {
model.addAttribute("msg", "秒杀失败");
}
}
}
//删除原来的数据
redisTemplate.delete("goodsList");
//重新存入redis中
opsForList.leftPushAll("goodsList", list);
return "result";
}
}
浙公网安备 33010602011771号