CarInfoServiceImpl.java 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. package com.ruoyi.base.service.impl;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.ruoyi.base.domain.CarInfo;
  4. import com.ruoyi.base.mapper.CarInfoMapper;
  5. import com.ruoyi.base.service.ICarInfoService;
  6. import com.ruoyi.common.core.redis.RedisCache;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.context.event.EventListener;
  9. import org.springframework.scheduling.annotation.Async;
  10. import org.springframework.stereotype.Service;
  11. import javax.annotation.PostConstruct;
  12. import java.util.List;
  13. import java.util.concurrent.CopyOnWriteArrayList;
  14. /**
  15. * 车辆信息Service业务层处理
  16. *
  17. * @author ruoyi
  18. * @date 2023-09-19
  19. */
  20. @Service
  21. public class CarInfoServiceImpl implements ICarInfoService {
  22. @Autowired
  23. private CarInfoMapper carInfoMapper;
  24. @Autowired
  25. RedisCache redisCache;
  26. private static CopyOnWriteArrayList<CarInfo> carList ;
  27. /**
  28. * 查询车辆信息
  29. *
  30. * @param id 车辆信息主键
  31. * @return 车辆信息
  32. */
  33. @Override
  34. public CarInfo selectCarInfoById(Long id) {
  35. return carInfoMapper.selectCarInfoById(id);
  36. }
  37. /**
  38. * 查询车辆信息列表
  39. *
  40. * @param carInfo 车辆信息
  41. * @return 车辆信息
  42. */
  43. @Override
  44. public List<CarInfo> selectCarInfoList(CarInfo carInfo) {
  45. if (ObjectUtil.isNull(carList) ||carList.size() ==0){
  46. carList = new CopyOnWriteArrayList<>(carInfoMapper.selectCarInfoList(carInfo));
  47. }
  48. return carList;
  49. }
  50. /**
  51. * 查询车辆信息
  52. *
  53. * @param carInfo 车辆信息
  54. * @return 车辆信息
  55. */
  56. @Override
  57. public CarInfo selectCarInfoByModel(CarInfo carInfo) {
  58. List<CarInfo> list = carInfoMapper.selectCarInfoList(carInfo);
  59. if (list != null && list.size() > 0) {
  60. return list.get(0);
  61. } else {
  62. return null;
  63. }
  64. }
  65. /**
  66. * 新增车辆信息
  67. *
  68. * @param carInfo 车辆信息
  69. * @return 结果
  70. */
  71. @Override
  72. public int insertCarInfo(CarInfo carInfo) {
  73. return carInfoMapper.insertCarInfo(carInfo);
  74. }
  75. /**
  76. * 修改车辆信息
  77. *
  78. * @param carInfo 车辆信息
  79. * @return 结果
  80. */
  81. @Override
  82. public int updateCarInfo(CarInfo carInfo) {
  83. return carInfoMapper.updateCarInfo(carInfo);
  84. }
  85. /**
  86. * 批量删除车辆信息
  87. *
  88. * @param ids 需要删除的车辆信息主键
  89. * @return 结果
  90. */
  91. @Override
  92. public int deleteCarInfoByIds(Long[] ids) {
  93. return carInfoMapper.deleteCarInfoByIds(ids);
  94. }
  95. /**
  96. * 删除车辆信息信息
  97. *
  98. * @param id 车辆信息主键
  99. * @return 结果
  100. */
  101. @Override
  102. public int deleteCarInfoById(Long id) {
  103. return carInfoMapper.deleteCarInfoById(id);
  104. }
  105. @EventListener
  106. @Async
  107. public void updateStatus(CarInfo carInfo){
  108. CarInfo car = carList.get(carInfo.getCarno().intValue() - 1);
  109. if ("status".equals(carInfo.getUpdateType())){
  110. if(!car.getState().equals(carInfo.getState())){
  111. car.setState(carInfo.getState());
  112. carList.set(carInfo.getCarno().intValue() - 1,car);
  113. }
  114. }else {
  115. int a = 0;
  116. if(!car.getX().equals(carInfo.getX())){
  117. car.setX(carInfo.getX());
  118. a =1;
  119. }
  120. if(!car.getY().equals(carInfo.getY())){
  121. car.setY(carInfo.getY());
  122. a =1;
  123. }
  124. if (a==1){
  125. carList.set(carInfo.getCarno().intValue() - 1,car);
  126. }
  127. }
  128. }
  129. }