diff --git a/car-base-common/src/main/java/com/god/base/common/domain/Fence.java b/car-base-common/src/main/java/com/god/base/common/domain/Fence.java new file mode 100644 index 0000000..fa619b1 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/common/domain/Fence.java @@ -0,0 +1,96 @@ +package com.god.base.common.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.god.base.common.domain.request.FenceAddRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * 电子围栏信息 + * + * @author Lou-Zs + * @Date 2023/11/20 19:41 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "t_fence") +public class Fence { + + + /** + * 围栏主建编号 + */ + @TableId(value = "fence_id",type = IdType.AUTO) + private Integer fenceId; + + /** + * 围栏名称 + */ + @NotEmpty(message = "围栏名称不能为空") + private String fenceName; + + /** + * 围栏坐标位置 + */ + private String fenceLocation; + + /** + * 激活状态 + * 0-停用 + * 1-开启 + */ + private Integer fenceStatus; + + /** + * 行驶状态 + * 1-驶入 + * 2-驶出 + */ + private Integer driveStatus; + + /** + * 车辆主建 + */ + private String carVinId; + + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss") + @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8") + private Date createTime; + + /** + * 修改时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss") + @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8") + private Date updateTime; + + + + public static Fence fenceBuildAdd(FenceAddRequest fenceAddRequest){ + return Fence.builder() + .fenceName(fenceAddRequest.getFenceName()) + .fenceLocation(fenceAddRequest.getFenceLocation()) + .fenceStatus(fenceAddRequest.getFenceStatus()) + .driveStatus(fenceAddRequest.getDriveStatus()) + .carVinId(fenceAddRequest.getCarVinId()) + .createTime(fenceAddRequest.getCreateTime()) + .updateTime(fenceAddRequest.getUpdateTime()) + .build(); + } + +} diff --git a/car-base-common/src/main/java/com/god/base/common/domain/request/FenceAddRequest.java b/car-base-common/src/main/java/com/god/base/common/domain/request/FenceAddRequest.java new file mode 100644 index 0000000..956f4ff --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/common/domain/request/FenceAddRequest.java @@ -0,0 +1,76 @@ +package com.god.base.common.domain.request; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotEmpty; +import java.util.Date; + +/** + * 围栏新增参数 + * + * @author Lou-Zs + * @Date 2023/11/20 19:41 + **/ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName(value = "t_fence") +public class FenceAddRequest { + + + + /** + * 围栏名称 + */ + @NotEmpty(message = "围栏名称不能为空") + private String fenceName; + + /** + * 围栏坐标位置 + */ + private String fenceLocation; + + /** + * 激活状态 + * 0-停用 + * 1-开启 + */ + private Integer fenceStatus; + + /** + * 行驶状态 + * 1-驶入 + * 2-驶出 + */ + private Integer driveStatus; + + /** + * 车辆主建 + */ + private String carVinId; + + /** + * 创建时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss") + @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8") + private Date createTime; + + /** + * 修改时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH-mm-ss") + @JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss",timezone = "GMT+8") + private Date updateTime; + + +} diff --git a/car-base-common/src/main/java/com/god/base/common/domain/request/FenceQueryRequest.java b/car-base-common/src/main/java/com/god/base/common/domain/request/FenceQueryRequest.java new file mode 100644 index 0000000..ee59dbb --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/common/domain/request/FenceQueryRequest.java @@ -0,0 +1,46 @@ +package com.god.base.common.domain.request; + +import com.god.base.common.page.PageQuery; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import javax.validation.constraints.NotEmpty; + +/** + * 电子围栏查询条件 + * + * @author Lou-Zs + * @Date 2023/11/20 22:01 + **/ +@Data +@SuperBuilder +@NoArgsConstructor +@AllArgsConstructor +public class FenceQueryRequest extends PageQuery { + + + /** + * 围栏名称 + */ + private String fenceName; + + + + /** + * 激活状态 + * 0-停用 + * 1-开启 + */ + private Integer fenceStatus; + + /** + * 行驶状态 + * 1-驶入 + * 2-驶出 + */ + private Integer driveStatus; + +} diff --git a/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java b/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java new file mode 100644 index 0000000..1a319f2 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/common/page/PageQuery.java @@ -0,0 +1,36 @@ +package com.god.base.common.page; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + + +/** + * 分页查询条件 + * + * @author Lou-Zs + * @Date 2023/11/20 22:03 + **/ +@Data +@SuperBuilder +@AllArgsConstructor +@NoArgsConstructor +public class PageQuery { + + + private Integer pageNum; + + + + private Integer pageSize; + + + + public Page buildPage(){ + Page page = new Page<>(this.pageNum, this.pageSize); + return page; + } +} diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBox.java b/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBox.java new file mode 100644 index 0000000..ddb8ec1 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBox.java @@ -0,0 +1,64 @@ +package com.god.base.server.common.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + + +/** + * 电池箱信息表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@TableName("t_battery_box") +public class BatteryBox { + + /** + * 电池箱主键 + */ + private long batteryBoxId; + /** + * 电池包编码 + */ + private String batteryBoxBatteryPackCoding; + /** + * 电池包型名称 + */ + private String batteryBoxName; + /** + * 电池型号编号 + */ + private String batteryBoxNumber; + /** + * 实际容量 + */ + private String batteryBoxActualCapacity; + /** + * 实际电压 + */ + private String batteryBoxVirtualVoltage; + /** + * 实际质量 + */ + private String batteryBoxActualMass; + /** + * 出厂时间 + */ + @DateTimeFormat + private Date batteryBoxDate; + /** + * 所在电池组编码 + */ + private long cellId; + /** + * 所在车辆VIN + */ + private String carVin; +} diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBoxModel.java b/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBoxModel.java new file mode 100644 index 0000000..f224dac --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/BatteryBoxModel.java @@ -0,0 +1,56 @@ +package com.god.base.server.common.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 电池箱型号 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@TableName("t_batteryBox_model") +public class BatteryBoxModel { + /** + * 电池箱型号主键 + */ + private long batteryBoxModelId; + /** + * 型号名称 + */ + private String batteryBoxModelName; + /** + * 型号编号 + */ + private String batteryBoxModelNumber; + /** + * 电池包规格代码 + */ + private String batteryBoxModelPackSpecificationCode; + /** + * 电池品牌 + */ + private int batteryBoxModelBrand; + /** + * 温度探针总数 + */ + private String batteryBoxModelTemperatureProbePopulation; + /** + * 模块串并联方式 + */ + private String batteryBoxModelModuleSeriesParallelMode; + /** + * 模块个数 + */ + private String batteryBoxModelNumberOfModules; + /** + * 生产厂商名称 + */ + private String batteryBoxModelManufacturerName; + + +} diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java b/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java new file mode 100644 index 0000000..3ceef4a --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/Car.java @@ -0,0 +1,127 @@ +package com.god.base.server.common.domain; + + +import com.baomidou.mybatisplus.annotation.TableName; +import com.god.base.server.common.domain.request.CarRequest; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 车辆信息 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@TableName(value = "t_car") +public class Car { + /** + * 车辆Vin 主键 + */ + private String carVinId; + /** + * 单位id + */ + private long userId; + /** + * 车辆类型id + */ + private long carTypeId; + /** + * 电池箱信息id + */ + private long batteryBoxId; + /** + * 电池组id + */ + private long cellId; + /** + * 单体电池id + */ + private long batteryCellId; + /** + * 电池组模块id + */ + private long batteryPackInformationId; + /** + * 电子围栏ID + */ + private long fenceId; + /** + * 车牌号 + */ + private String carNumber; + /** + * 驱动机主键 + */ + private long driveMotorId; + /** + * 车辆总里程 + */ + private String carMileage; + /** + * 创建者 + */ + private String createBy; + /** + * 创建时间 + */ + private Date createTime; + /** + * 更新者 + */ + private String updateBy; + /** + * 更新时间 + */ + @DateTimeFormat + private Date updateTime; + /** + * 区域 + */ + private String address; + /** + * 电池厂商 + */ + private String batteryManufacturer; + /** + * 电机厂商 + */ + private String motorManufacturer; + /** + * 电机编号 + */ + private String motorNumber; + /** + * 电池编号 + */ + private String batteryNumber; + /** + * 逻辑删除 + */ + private int isDelete; + + + public static Car addReqBuild(CarRequest carRequest){ + return Car.builder() + //把所有的属性点都加上 + .carVinId(carRequest.getCarVinId()) + .carTypeId(carRequest.getCarTypeId()) + .batteryManufacturer(carRequest.getBatteryManufacturer()) + .motorManufacturer(carRequest.getMotorManufacturer()) + .motorNumber(carRequest.getMotorNumber()) + .batteryNumber(carRequest.getBatteryNumber()) + .batteryNumber(carRequest.getBatteryNumber()) + .build() + ; + } + + + + +} diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/CarType.java b/car-base-common/src/main/java/com/god/base/server/common/domain/CarType.java new file mode 100644 index 0000000..cb39128 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/CarType.java @@ -0,0 +1,29 @@ +package com.god.base.server.common.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 车辆类型表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +@TableName("t_carT_type") +public class CarType { + + /** + * 车辆类型主建 + */ + private long id; + /** + * 类型名称 + */ + private String carTypename; + + +} diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java b/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java new file mode 100644 index 0000000..a2ddded --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/request/CarRequest.java @@ -0,0 +1,58 @@ +package com.god.base.server.common.domain.request; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 车辆请求参数 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@NotNull +public class CarRequest { + + /** + * 车辆Vin 主键 + */ + @NotEmpty(message = "车辆vin不能为空") + private String carVinId; + /** + * 车辆类型 + */ + @NotEmpty(message = "车辆类型不能为空") + private long carTypeId; + /** + * 电子围栏ID + */ + @NotEmpty(message = "电子围栏不能为空") + private long fenceId; + /** + * 电池厂商 + */ + @NotEmpty(message = "电池厂商不能为空") + private String batteryManufacturer; + /** + * 电机厂商 + */ + @NotEmpty(message = "电机厂商不能为空") + private String motorManufacturer; + /** + * 电机编号 + */ + @NotEmpty(message = "电机编号不能为空") + private String motorNumber; + /** + * 电池编号 + */ + @NotEmpty(message = "电池编号不能为空") + private String batteryNumber; + + + + +} diff --git a/car-base-common/src/main/resources/bootstrap.yml b/car-base-common/src/main/resources/bootstrap.yml index 21efc42..403a368 100644 --- a/car-base-common/src/main/resources/bootstrap.yml +++ b/car-base-common/src/main/resources/bootstrap.yml @@ -1,6 +1,6 @@ # Tomcat server: - port: 9802 + port: 9803 # Spring spring: diff --git a/car-base-remote/pom.xml b/car-base-remote/pom.xml index 097a89d..de6bf28 100644 --- a/car-base-remote/pom.xml +++ b/car-base-remote/pom.xml @@ -25,4 +25,4 @@ - + \ No newline at end of file diff --git a/car-base-server/pom.xml b/car-base-server/pom.xml index cb85a13..f6ab95e 100644 --- a/car-base-server/pom.xml +++ b/car-base-server/pom.xml @@ -59,9 +59,27 @@ com.mysql mysql-connector-j + + + com.god + god-common-security + 3.6.3 + + + com.baomidou + mybatis-plus-boot-starter + 3.4.2 + + + + com.baomidou + mybatis-plus-boot-starter + 3.4.2 + + ${project.artifactId} @@ -87,4 +105,4 @@ - \ No newline at end of file + diff --git a/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java b/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java index bcf1604..49d14d9 100644 --- a/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java +++ b/car-base-server/src/main/java/com/god/base/server/GodCarBaseApplication.java @@ -17,6 +17,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class GodCarBaseApplication { public static void main (String[] args) { - SpringApplication.run(com.god.base.server.GodCarBaseApplication .class, args); + SpringApplication.run(GodCarBaseApplication.class, args); } } diff --git a/car-base-server/src/main/java/com/god/base/server/controller/CarController.java b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java new file mode 100644 index 0000000..991d700 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/controller/CarController.java @@ -0,0 +1,77 @@ +package com.god.base.server.controller; +import com.god.base.server.common.domain.Car; +import com.god.base.server.common.domain.request.CarRequest; +import com.god.base.server.service.CarService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import com.god.common.core.domain.Result; + +import java.util.List; + +/** + * 车辆管理 + */ +@RestController +@RequestMapping("/car") +@Log4j2 +public class CarController { + @Autowired + private CarService carService; + + + /** + * 车辆信息查看 + */ + @GetMapping("carList/{userId}") + public Result carList(@PathVariable String userId){ + log.info("请求参数" + userId); + Result> carList = carService.carList(userId); + log.info("响应参数" + carList); + return Result.success(carList); + } + + + /** + * 添加车辆 + */ + @PostMapping("/addCar") + public Result addCarP(@RequestBody @Validated CarRequest carRequest){ + log.info("请求参数" + carRequest); + boolean save = carService.save(Car.addReqBuild(carRequest)); + log.info("响应参数" + save); + return Result.success(); + } + /** + * 修改车辆的连接 进行上报 + */ + @PostMapping("/updCar/{vinId}") + public Result updCat(@PathVariable @Validated String vinId){ + log.info("请求参数" + vinId); + carService.updateById(vinId); + log.info("响应参数" + vinId); + return Result.success(); + } + + /** + * 逻辑删除 + */ + @PostMapping("/delCar/{vinId}") + public Result delCar(@PathVariable String vinId){ + log.info("请求参数" + vinId); + boolean b = carService.removeById(vinId); + log.info("响应参数" + b); + return Result.success(); + } + + /** + * 实时轨迹 + */ + @PostMapping + public Result sSgj(){ + return null; + } + + +} diff --git a/car-base-server/src/main/java/com/god/base/server/controller/FenceController.java b/car-base-server/src/main/java/com/god/base/server/controller/FenceController.java new file mode 100644 index 0000000..69e9e25 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/controller/FenceController.java @@ -0,0 +1,113 @@ +package com.god.base.server.controller; + +/** + * @ClassName FenceController + * @Author Lou-Zs + * @Date 2023/11/19 20:00 + * @Version 1.0 + * @Description TODO + **/ + +import com.alibaba.fastjson.JSONObject; + +import com.god.base.common.domain.Fence; +import com.god.base.common.domain.request.FenceAddRequest; +import com.god.base.common.domain.request.FenceQueryRequest; +import com.god.base.server.service.FenceService; +import com.god.common.core.web.page.TableDataInfo; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import com.god.common.core.domain.Result; +import javax.servlet.http.HttpServletRequest; +/** + * base围栏操作 + * @author Lou-Zs + */ +@RestController +@RequestMapping("/baseFence") +@Log4j2 +public class FenceController { + + @Autowired + private HttpServletRequest request; + @Autowired + private FenceService fenceService; + + + /** + * 增添电子围栏 + * @param fenceAddRequest + * @return + */ + @PostMapping("/insertFence") + public Result insertFence(@RequestBody @Validated FenceAddRequest fenceAddRequest){ + log.info("功能介绍新增电子围栏,请求方式;{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(fenceAddRequest)); + + //围栏添加 + fenceService.save(Fence.fenceBuildAdd(fenceAddRequest)); + + return Result.success(); + } + + + /** + * 根据围栏编号编辑围栏信息 + * @param fence + * @return + */ + @PostMapping("/updateFence") + public Result updateFence(@RequestBody @Validated Fence fence){ + log.info("功能介绍:编辑围栏信息,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(fence)); + + //编辑电子围栏信息 + fenceService.updateById(fence); + + return Result.success(); + } + + + /** + * 根据围栏编号删除围栏 + * @param fenceId + * @return + */ + @GetMapping("/deleteFence") + public Result deleteFence(@RequestParam("fenceId") Integer fenceId){ + log.info("功能介绍:通过围栏编号删除围栏,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(fenceId)); + + //根据围栏编号删除围栏 + fenceService.removeById(fenceId); + return Result.success(); + } + + + /** + * 分页查询电子围栏列表 + * @param fenceQueryRequest + * @return + */ + @PostMapping("/fenceListAndPage") + public Result> fenceListAndPage(@RequestBody FenceQueryRequest fenceQueryRequest){ + log.info("功能介绍:查询围栏列表,请求方式:{},请求路径:{},请求参数:{}", + request.getMethod(), + request.getRequestURL(), + JSONObject.toJSONString(fenceQueryRequest)); + + //分页查询围栏列表 + TableDataInfo dataInfo = fenceService.fenceListAndPage(fenceQueryRequest); + + return Result.success(dataInfo); + + } +} diff --git a/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java new file mode 100644 index 0000000..e0df394 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/mapper/CarMapper.java @@ -0,0 +1,19 @@ +package com.god.base.server.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.god.base.server.common.domain.Car; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +/** + * 车辆mapper + */ +@Mapper +public interface CarMapper extends BaseMapper { + + List getList(int userId1); +} diff --git a/car-base-server/src/main/java/com/god/base/server/mapper/FenceMapper.java b/car-base-server/src/main/java/com/god/base/server/mapper/FenceMapper.java new file mode 100644 index 0000000..6d8cd8a --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/mapper/FenceMapper.java @@ -0,0 +1,17 @@ +package com.god.base.server.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.god.base.common.domain.Fence; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ClassName FenceMapper + * @Author Lou-Zs + * @Date 2023/11/19 20:28 + * @Version 1.0 + * @Description TODO + **/ +@Mapper +public interface FenceMapper extends BaseMapper { + +} diff --git a/car-base-server/src/main/java/com/god/base/server/service/CarService.java b/car-base-server/src/main/java/com/god/base/server/service/CarService.java new file mode 100644 index 0000000..506ed27 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/CarService.java @@ -0,0 +1,17 @@ +package com.god.base.server.service; +import com.baomidou.mybatisplus.extension.service.IService; +import com.god.base.server.common.domain.Car; +import com.god.common.core.domain.Result; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 车辆管理层 + */ +public interface CarService extends IService { + + + Result> carList(@Param("userId") String userId); + + void updateById(@Param("vinId") String vinId); +} diff --git a/car-base-server/src/main/java/com/god/base/server/service/FenceService.java b/car-base-server/src/main/java/com/god/base/server/service/FenceService.java new file mode 100644 index 0000000..9bb810a --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/FenceService.java @@ -0,0 +1,29 @@ +package com.god.base.server.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.god.base.common.domain.Fence; +import com.god.base.common.domain.request.FenceQueryRequest; +import com.god.common.core.web.page.TableDataInfo; + +/** + * @ClassName FenceService + * @Author Lou-Zs + * @Date 2023/11/19 22:26 + * @Version 1.0 + * @Description TODO + **/ + +/** + * 电子围栏 + * @author Lou-Zs + */ +public interface FenceService extends IService { + + + /** + * 分页查询电子围栏列表 + * @param fenceQueryRequest + * @return + */ + TableDataInfo fenceListAndPage(FenceQueryRequest fenceQueryRequest); +} diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java new file mode 100644 index 0000000..2bb4f19 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/CarServiceImpl.java @@ -0,0 +1,43 @@ +package com.god.base.server.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.god.base.server.common.domain.Car; +import com.god.base.server.mapper.CarMapper; +import com.god.base.server.service.CarService; +import com.god.common.core.domain.Result; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.List; + +/** + * 车辆管理业务层 + */ +@Log4j2 +@Service +public class CarServiceImpl extends ServiceImpl implements CarService { + @Autowired + private CarMapper carMapper; + + @Override + public Result> carList(String userId) { +// Long userId1 = SecurityUtils.getUserId(); +// if (null == userId1){ +// throw new SecurityException("请先登录"); +// } + int userId1 = 1; + List carList = carMapper.getList(userId1); + return Result.success(carList); + } + + + /** + * 修改车辆管理信息 + * @param vinId + */ + @Override + public void updateById(String vinId) { + + } + + +} diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java new file mode 100644 index 0000000..801e450 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/FenceServiceImpl.java @@ -0,0 +1,131 @@ +package com.god.base.server.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.god.base.common.domain.Fence; +import com.god.base.common.domain.request.FenceQueryRequest; +import com.god.base.server.mapper.FenceMapper; +import com.god.base.server.service.FenceService; +import com.god.common.core.web.page.TableDataInfo; +import com.god.common.redis.service.RedisService; +import lombok.extern.log4j.Log4j2; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.Serializable; +import java.util.Date; + +/** + * @ClassName FenceServiceImpl + * @Author Lou-Zs + * @Date 2023/11/19 22:26 + * @Version 1.0 + * @Description TODO + **/ + +/** + * 电子围栏 + * @author Lou-Zs + */ +@Service +@Log4j2 +public class FenceServiceImpl extends ServiceImpl implements FenceService { + + //redis + @Autowired + private RedisService redisService; + + /** + * 增添电子围栏 + * @param entity + * @return + */ + @Override + public boolean save(Fence entity) { + boolean save = super.save(entity); + if (!save){ + log.warn("增加围栏:[/-{}-/]失败! 请求参数:{}", + entity.getFenceName(), + JSONObject.toJSONString(entity)); + throw new RuntimeException("增添围栏失败!"); + } + return true; + } + + /** + * 根据围栏编号删除围栏 + * @param id + * @return + */ + @Override + public boolean removeById(Serializable id) { + boolean remove = super.removeById(id); + if (!remove){ + log.warn("删除围栏编号:[/-{}-/]失败!", + id); + throw new RuntimeException("删除围栏失败!"); + } + return true; + } + + /** + * 根据围栏编号编辑围栏信息 + * @param entity + * @return + */ + @Override + public boolean updateById(Fence entity) { + entity.setUpdateTime(new Date()); +// 获取当前围栏坐标 + String fenceLocation = entity.getFenceLocation(); +// 将围栏坐标存储到redis中 +// key 围栏编号 +// value 围栏坐标信息 + redisService.setCacheObject(entity.getFenceId()+"",fenceLocation); + boolean update = super.updateById(entity); + if (!update){ + log.warn("编辑围栏[/-{}-/]未成功! 请求参数:{}", + entity.getFenceName(), + JSONObject.toJSONString(entity)); + throw new RuntimeException("编辑围栏失败!"); + } + return true; + } + + + /** + * 分页查询电子围栏列表 + * @param fenceQueryRequest + * @return + */ + @Override + public TableDataInfo fenceListAndPage(FenceQueryRequest fenceQueryRequest) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + //判断查询围栏是否为空 + if (StringUtils.isNotEmpty(fenceQueryRequest.getFenceName())){ + //模糊查询 + lambdaQueryWrapper.like(Fence::getFenceName,fenceQueryRequest.getFenceName()); + } + //判断激活状态是否为空 + if (null != fenceQueryRequest.getFenceStatus()){ + //精确查询 + lambdaQueryWrapper.eq(Fence::getFenceStatus,fenceQueryRequest.getFenceStatus()); + } + //判断行驶状态是否为空 + if (null != fenceQueryRequest.getDriveStatus()){ + //精确查询 + lambdaQueryWrapper.eq(Fence::getDriveStatus,fenceQueryRequest.getDriveStatus()); + } + //分页 + Page fencePage = fenceQueryRequest.buildPage(); + log.info("分页查询:[ {} ]", JSONObject.toJSONString(fencePage)); + Page page = this.page(fencePage, lambdaQueryWrapper); + return TableDataInfo.builder() + .rows(page.getRecords()) + .total(page.getTotal()) + .build(); + } +} diff --git a/car-base-server/src/main/java/com/god/base/server/test/Test.html b/car-base-server/src/main/java/com/god/base/server/test/Test.html new file mode 100644 index 0000000..b32a738 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/test/Test.html @@ -0,0 +1,30 @@ + + + + + + + + 地图显示 + + + +
+ + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/test/Test2.html b/car-base-server/src/main/java/com/god/base/server/test/Test2.html new file mode 100644 index 0000000..473ee34 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/test/Test2.html @@ -0,0 +1,81 @@ + + + + + + + + 多边形的绘制和编辑 + + + + + +
+
+ + +
+ + + diff --git a/car-base-server/src/main/java/com/god/base/server/test/Test3.html b/car-base-server/src/main/java/com/god/base/server/test/Test3.html new file mode 100644 index 0000000..376e220 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/test/Test3.html @@ -0,0 +1,145 @@ + + + + + Title + + + + + +开始建围栏点击开始建立围栏后,围栏操作按钮才可见 + +
+ + + + + +
+ + + + diff --git a/car-base-server/src/main/java/com/god/base/server/test/Test4.html b/car-base-server/src/main/java/com/god/base/server/test/Test4.html new file mode 100644 index 0000000..22871dc --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/test/Test4.html @@ -0,0 +1,82 @@ + + + + + Title + + + + + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/util/MyBatisPlusPageHelperConfig.java b/car-base-server/src/main/java/com/god/base/server/util/MyBatisPlusPageHelperConfig.java new file mode 100644 index 0000000..e50bce9 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/util/MyBatisPlusPageHelperConfig.java @@ -0,0 +1,25 @@ +package com.god.base.server.util; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * mybatis-plus 分页配置类 + * @author 孙帅比 + */ +@Configuration +@MapperScan("com.god.base.server.mapper") //mapper持久层所在位置 +public class MyBatisPlusPageHelperConfig { + + + /** + * 项目启动创建分页插件实例 + * @return + */ + @Bean + public PaginationInterceptor paginationInterceptor(){ + return new PaginationInterceptor(); + } +} diff --git a/car-base-server/src/main/resources/bootstrap.yml b/car-base-server/src/main/resources/bootstrap.yml index 21efc42..40c59f2 100644 --- a/car-base-server/src/main/resources/bootstrap.yml +++ b/car-base-server/src/main/resources/bootstrap.yml @@ -4,6 +4,8 @@ server: # Spring spring: +# main: +# allow-bean-definition-overriding: true application: # 应用名称 name: god-car-base diff --git a/car-base-server/src/main/resources/mapper/CarMapper.xml b/car-base-server/src/main/resources/mapper/CarMapper.xml new file mode 100644 index 0000000..2cb039a --- /dev/null +++ b/car-base-server/src/main/resources/mapper/CarMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + +