| | |
| | | import com.supersavedriving.user.modular.system.util.mongodb.model.Location; |
| | | import com.supersavedriving.user.modular.system.warpper.*; |
| | | import io.swagger.models.auth.In; |
| | | import org.redisson.api.RLock; |
| | | import org.redisson.api.RedissonClient; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private RedisUtil redisUtil; |
| | | |
| | | @Autowired |
| | | private RedissonClient redissonClient; |
| | | |
| | | @Autowired |
| | | private MongoTemplate mongoTemplate; |
| | |
| | | */ |
| | | @Override |
| | | public ResultUtil travelOrder(Integer uid, TravelOrder travelOrder) throws Exception { |
| | | boolean lock = redisUtil.lock(uid + "_travelOrder"); |
| | | if(!lock){ |
| | | RLock lock1 = redissonClient.getLock("travelOrder:" + uid); |
| | | boolean lock2 = lock1.tryLock(5, TimeUnit.SECONDS); |
| | | if(!lock2){ |
| | | return ResultUtil.error("系统繁忙,请稍后重试"); |
| | | } |
| | | try { |
| | |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | redisUtil.unlock(uid + "_travelOrder"); |
| | | lock1.unlock(); |
| | | } |
| | | return ResultUtil.error("系统异常"); |
| | | } |