package com.congge.service;
import com.congge.entity.SeekOrder;
import com.congge.mapper.SeekOrderDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Service
public class SeekOrderService {
@Autowired
private SeekOrderDao seekOrderDao;
@Autowired
private RedisTemplate<String,String> redisTemplate;
public Object getList() {
List<SeekOrder> seekOrders = seekOrderDao.getList();
return seekOrders;
}
public String getToken(HttpServletRequest request) {
String ipAddr = IpUtil.getIpAddr(request);
String token = UUID.randomUUID().toString();
redisTemplate.opsForValue().set(ipAddr,token, 1,TimeUnit.MINUTES);
return token;
}
@Transactional
public String createOrder(HttpServletRequest request) {
String ipAddr = IpUtil.getIpAddr(request);
// String token = request.getHeader("token");
// String redisToken = redisTemplate.opsForValue().get(ipAddr);
// if(StringUtils.isEmpty(redisToken)){
// throw new RuntimeException("重复请求");
// }
// if(!redisToken.equals(token)){
// throw new RuntimeException("无效token");
// }
SeekOrder seekOrder = new SeekOrder();
int maxId = seekOrderDao.getMaxId();
seekOrder.setId(maxId+1);
seekOrder.setAmount(11);
seekOrder.setVersion(1);
seekOrderDao.saveOrder(seekOrder);
//执行成功删除token
redisTemplate.delete(ipAddr);
return "订单创建成功";
}
}