提供车辆信息查询与车辆状态更新接口

server_2024_4_2_yuanyonghao
xiaoSu 2024-04-08 15:25:11 +08:00
parent 08a8480ab5
commit e4bfdc56c8
40 changed files with 224 additions and 82 deletions

View File

@ -1,7 +0,0 @@
package com.zhilian.business.remote;
import org.springframework.stereotype.Component;
@Component
public interface RemoteFenceService {
}

View File

@ -1,8 +0,0 @@
package com.zhilian.business.remote.factory;
import com.zhilian.common.core.constant.ServiceNameConstants;
import org.springframework.cloud.openfeign.FeignClient;
//@FeignClient(contextId = "remoteFileService", value = ServiceNameConstants.FILE_SERVICE, fallbackFactory = RemoteFileFallbackFactory.class)
public class RemoteFenceFallbackFactory {
}

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain;
package com.zhilian.common.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain;
package com.zhilian.common.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain;
package com.zhilian.common.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain;
package com.zhilian.common.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain.middle;
package com.zhilian.common.business.domain.middle;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.zhilian.business.domain.middle;
package com.zhilian.common.business.domain.middle;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

View File

@ -1,15 +1,10 @@
package com.zhilian.business.domain.vo;
package com.zhilian.common.business.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* @ClassName FenceResp //类名称
* @Author: yannan //作者
* @CreateDate: 2024/3/26 20:03 //创建时间
*/
@Data
@AllArgsConstructor
@NoArgsConstructor

View File

@ -1,7 +1,5 @@
package com.zhilian.business.domain.vo;
package com.zhilian.common.business.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.zhilian.common.core.annotation.Excel;
import lombok.Data;
@Data

View File

@ -0,0 +1,32 @@
package com.zhilian.common.business.remote;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.common.business.remote.factory.RemoteVehicleFallbackFactory;
import com.zhilian.common.core.constant.ServiceNameConstants;
import com.zhilian.common.core.domain.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(contextId = "remoteVehicleService", value = ServiceNameConstants.VIEHICLE_SERVICE, fallbackFactory = RemoteVehicleFallbackFactory.class)
public interface RemoteVehicleService {
// @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
// public Result<SysFile> upload (@RequestPart(value = "file") MultipartFile file);
/**
* VIN
* @param vehicleVIN
* @return
*/
@PostMapping("/vehicle/getMarkersByVIN/{vehicleVIN}")
public Result<Vehicle> getVehicleByVIN(@PathVariable("vehicleVIN") String vehicleVIN);
/**
*
* @param vehicle
* @return
*/
@PostMapping("/vehicle/updateState")
public Result updateState(@RequestBody Vehicle vehicle);
}

View File

@ -0,0 +1,31 @@
package com.zhilian.common.business.remote.factory;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.common.business.remote.RemoteVehicleService;
import com.zhilian.common.core.domain.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
@Component
public class RemoteVehicleFallbackFactory implements FallbackFactory<RemoteVehicleService> {
private static final Logger log = LoggerFactory.getLogger(RemoteVehicleFallbackFactory.class);
@Override
public RemoteVehicleService create(Throwable throwable) {
log.error("用户服务调用失败:{}", throwable.getMessage());
return new RemoteVehicleService() {
@Override
public Result<Vehicle> getVehicleByVIN(String vehicleVIN) {
return Result.error("获取车辆信息失败:" + throwable.getMessage());
}
@Override
public Result updateState(Vehicle vehicle) {
return Result.error("更新车辆状态失败:" + throwable.getMessage());
}
};
}
}

View File

@ -0,0 +1 @@
com.zhilian.common.business.remote.factory.RemoteVehicleFallbackFactory

View File

@ -20,4 +20,8 @@ public class ServiceNameConstants {
* serviceid
*/
public static final String FILE_SERVICE = "zhilian-file";
/**
* serviceid
*/
public static final String VIEHICLE_SERVICE = "zhilian-vehicle";
}

View File

@ -2,7 +2,7 @@ package com.zhilian.business.controller;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;
import com.zhilian.business.domain.Fence;
import com.zhilian.common.business.domain.Fence;
import com.zhilian.business.service.FenceService;
import com.zhilian.common.core.web.page.TableDataInfo;
import com.zhilian.common.security.utils.SecurityUtils;

View File

@ -1,16 +1,18 @@
package com.zhilian.business.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhilian.business.domain.Markers;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.common.business.domain.Markers;
import com.zhilian.common.business.domain.middle.MarkersFence;
import com.zhilian.business.service.MarkersFenceService;
import com.zhilian.business.service.MarkersService;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;
import com.zhilian.common.core.web.page.TableDataInfo;
import com.zhilian.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@RestController
@ -33,22 +35,51 @@ public class MarkersController extends BaseController {
return getDataTable(result);
}
/**
*
* @return
*/
@GetMapping("markersVehicle")
public Result<List<Markers>> markersVehicle() {
List<Markers> listMarkers = markersService.listMarkers();
return Result.success(listMarkers);
}
/**
*
* @param markers
* @return
*/
@PostMapping("insert")
public Result insert(@RequestBody Markers markers){
return toAjax(markersService.save(markers));
}
/**
*
* @param markers
* @return
*/
@PostMapping("update")
public Result update(@RequestBody Markers markers) {
return toAjax(markersService.updateById(markers));
markers.setUpdateBy(SecurityUtils.getUsername());
markers.setUpdateTime(new Date());
markersFenceService.removeAllFence(markers);
//修改原表数据
boolean update =markersService.updateById(markers);
//重新添加中间表数据
markersFenceService.insert(markers);
return toAjax(update);
}
/**
*
* @param markersId
* @return
*/
@PostMapping("delete/{markersId}")
public Result delete(@PathVariable Long markersId) {
markersFenceList(markersId).forEach(markersFence -> {
@ -57,11 +88,22 @@ public class MarkersController extends BaseController {
return toAjax(markersService.removeById(markersId));
}
/**
*
* @param markers
* @return
*/
@PostMapping("insertMarkersFence")
public Result insertMarkersFenceMarkers(@RequestBody MarkersFence markersFence){
return toAjax(markersFenceService.save(markersFence));
public Result insertMarkersFenceMarkers(@RequestBody Markers markers){
boolean insert = markersFenceService.insert(markers);
return toAjax(insert);
}
/**
*
* @param markersId
* @return
*/
@PostMapping("markersFenceList/{markersId}")
public List<MarkersFence> markersFenceList(@PathVariable Long markersId){
LambdaQueryWrapper<MarkersFence> queryWrapper = new LambdaQueryWrapper<>();

View File

@ -1,6 +1,6 @@
package com.zhilian.business.controller;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.common.business.domain.middle.MarkersFence;
import com.zhilian.business.service.MarkersFenceService;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;

View File

@ -1,12 +1,12 @@
package com.zhilian.business.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zhilian.business.domain.Markers;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.common.business.domain.middle.VehicleMarkers;
import com.zhilian.business.service.MarkersService;
import com.zhilian.business.service.VehicleMarkersService;
import com.zhilian.business.service.VehicleService;
import com.zhilian.business.service.VehicleTypeService;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;
import com.zhilian.common.core.web.page.TableDataInfo;
@ -26,6 +26,9 @@ public class VehicleController extends BaseController {
@Autowired
private VehicleMarkersService vehicleMarkersService;
@Autowired
private VehicleTypeService vehicleTypeService;
@Autowired
private MarkersService markersService;
@ -87,17 +90,6 @@ public class VehicleController extends BaseController {
queryWrapper.eq(VehicleMarkers::getVehicleId, vehicleId);
return vehicleMarkersService.list(queryWrapper);
}
// @PostMapping("/getMarkers/{vehicleId}")
// public List<Markers> getMarkers(@PathVariable Long vehicleId){
// LambdaQueryWrapper<VehicleMarkers> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(VehicleMarkers::getVehicleId, vehicleId);
// List<VehicleMarkers> list = vehicleMarkersService.list(queryWrapper);
// list.forEach(vehicleMarkers -> {
// Markers markers = markersService.getById(vehicleMarkers.getMarkersId());
// });
// return null;
// }
/**
*
* @param vehicleId
@ -121,4 +113,26 @@ public class VehicleController extends BaseController {
boolean insert = vehicleMarkersService.insert(vehicle);
return toAjax(insert);
}
/**
* VIN
* @param vehicleVIN
* @return
*/
@PostMapping("/getMarkersByVIN/{vehicleVIN}")
public Result<Vehicle> getVehicleByVIN(@PathVariable("vehicleVIN") String vehicleVIN) {
Vehicle vehicle = vehicleService.getVehicleByVIN(vehicleVIN);
// vehicleMarkersService.getById(vehicle.getVehicleId());
return Result.success(vehicle);
}
/**
* VIN
* @param vehicle
* @return
*/
@PostMapping("/updateState")
public Result updateState(@RequestBody Vehicle vehicle) {
return toAjax(vehicleService.updateState(vehicle));
}
}

View File

@ -1,6 +1,6 @@
package com.zhilian.business.controller;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.middle.VehicleMarkers;
import com.zhilian.business.service.VehicleMarkersService;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;

View File

@ -1,6 +1,6 @@
package com.zhilian.business.controller;
import com.zhilian.business.domain.VehicleType;
import com.zhilian.common.business.domain.VehicleType;
import com.zhilian.business.service.VehicleTypeService;
import com.zhilian.common.core.domain.Result;
import com.zhilian.common.core.web.controller.BaseController;

View File

@ -1,15 +1,13 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.Fence;
import com.zhilian.business.domain.vo.FenceVo;
import com.zhilian.common.business.domain.Fence;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import java.util.List;
@Mapper
@Component
public interface FenceMapper extends BaseMapper<Fence> {
List<Fence> fenceList(FenceVo fenceVo);
}

View File

@ -1,7 +1,7 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.common.business.domain.middle.MarkersFence;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.Markers;
import com.zhilian.common.business.domain.Markers;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.common.business.domain.Vehicle;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.middle.VehicleMarkers;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.zhilian.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zhilian.business.domain.VehicleType;
import com.zhilian.common.business.domain.VehicleType;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

View File

@ -1,7 +1,7 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.Fence;
import com.zhilian.common.business.domain.Fence;
import java.util.List;

View File

@ -1,8 +1,11 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.common.business.domain.Markers;
import com.zhilian.common.business.domain.middle.MarkersFence;
public interface MarkersFenceService extends IService<MarkersFence> {
// List<MarkersFence> selectFenceByIdAndMarkersBuyId(List<MarkersFence> list, List<Fence> list1, List<Markers> list2,MarkersFence markersFence);
boolean insert(Markers markers);
void removeAllFence(Markers markers);
}

View File

@ -1,7 +1,7 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.Markers;
import com.zhilian.common.business.domain.Markers;
import java.util.List;

View File

@ -1,8 +1,8 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.common.business.domain.middle.VehicleMarkers;
import org.springframework.stereotype.Service;
@Service

View File

@ -1,7 +1,7 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.common.business.domain.Vehicle;
import java.util.List;
@ -9,4 +9,7 @@ public interface VehicleService extends IService<Vehicle> {
List<Vehicle> selectVehicleList(Vehicle vehicle);
Vehicle getVehicleByVIN(String vehicleVIN);
boolean updateState(Vehicle vehicle);
}

View File

@ -1,7 +1,7 @@
package com.zhilian.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhilian.business.domain.VehicleType;
import com.zhilian.common.business.domain.VehicleType;
import java.util.List;

View File

@ -2,7 +2,7 @@ package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.Fence;
import com.zhilian.common.business.domain.Fence;
import com.zhilian.business.mapper.FenceMapper;
import com.zhilian.business.service.FenceService;
import com.zhilian.common.core.utils.StringUtils;

View File

@ -1,16 +1,38 @@
package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.middle.MarkersFence;
import com.zhilian.common.business.domain.Markers;
import com.zhilian.common.business.domain.middle.MarkersFence;
import com.zhilian.business.mapper.MarkersFenceMapper;
import com.zhilian.business.service.MarkersFenceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class MarkersFenceServiceImpl extends ServiceImpl<MarkersFenceMapper, MarkersFence> implements MarkersFenceService {
@Autowired
private MarkersFenceMapper markersFenceMapper;
@Override
public boolean insert(Markers markers) {
markers.getFenceIds().forEach(fenceId -> {
MarkersFence markersFence = new MarkersFence();
markersFence.setMarkerId(markers.getMarkersId());
markersFence.setFenceId(fenceId);
markersFenceMapper.insert(markersFence);
});
return true;
}
@Override
public void removeAllFence(Markers markers) {
List<MarkersFence> list = this.list(new LambdaQueryWrapper<MarkersFence>().eq(MarkersFence::getMarkerId, markers.getMarkersId()));
list.forEach(item -> {
this.removeById(item.getMarkerId());
});
}
}

View File

@ -2,7 +2,7 @@ package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.Markers;
import com.zhilian.common.business.domain.Markers;
import com.zhilian.business.mapper.MarkersMapper;
import com.zhilian.business.service.MarkersService;
import com.zhilian.common.core.utils.StringUtils;

View File

@ -2,8 +2,8 @@ package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.common.business.domain.middle.VehicleMarkers;
import com.zhilian.business.mapper.VehicleMarkersMapper;
import com.zhilian.business.service.VehicleMarkersService;
import org.springframework.stereotype.Service;

View File

@ -2,21 +2,19 @@ package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.Vehicle;
import com.zhilian.business.domain.middle.VehicleMarkers;
import com.zhilian.common.business.domain.Vehicle;
import com.zhilian.business.mapper.VehicleMapper;
import com.zhilian.business.mapper.VehicleMarkersMapper;
import com.zhilian.business.service.VehicleService;
import com.zhilian.common.core.utils.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> implements VehicleService {
@Autowired
private VehicleMapper vehicleMapper;
@Override
public List<Vehicle> selectVehicleList(Vehicle vehicle) {
@ -60,4 +58,20 @@ public class VehicleServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> impl
return this.list(queryWrapper);
}
@Override
public Vehicle getVehicleByVIN(String vehicleVIN) {
LambdaQueryWrapper<Vehicle> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Vehicle::getVehicleVIN, vehicleVIN);
return vehicleMapper.selectOne(queryWrapper);
}
@Override
public boolean updateState(Vehicle vehicle) {
int update = vehicleMapper.update(vehicle, new LambdaQueryWrapper<Vehicle>().eq(Vehicle::getVehicleVIN, vehicle.getVehicleVIN()));
if(update==0){
return false;
}
return true;
}
}

View File

@ -1,7 +1,7 @@
package com.zhilian.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhilian.business.domain.VehicleType;
import com.zhilian.common.business.domain.VehicleType;
import com.zhilian.business.mapper.VehicleTypeMapper;
import com.zhilian.business.service.VehicleTypeService;
import com.zhilian.common.redis.service.RedisService;