diff --git a/car-base-common/src/main/java/com/god/base/server/common/constants/VehicleConstant.java b/car-base-common/src/main/java/com/god/base/server/common/constants/VehicleConstant.java new file mode 100644 index 0000000..53f4924 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/constants/VehicleConstant.java @@ -0,0 +1,32 @@ +package com.god.base.server.common.constants; + + +/** + * 车辆信息 + */ +public class VehicleConstant { + + /** + * 车辆启动 + */ + public static final Integer VEHICLE_START = 1; + /** + * 车辆停止 + */ + public static final Integer VEHICLE_END = 0 ; + /** + * 车辆状态更改队列 + */ + public static final String VEHICLE_STATUS_UPDATE_QUEUE = "vehicle_status_update_queue"; + /** + * 车辆信息前缀 + */ + public static final String VEHICLE_INFO_MAP = "vehicle_info_map"; + + + + + + + +} 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 index e91cfbb..b701f5b 100644 --- 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 @@ -12,8 +12,7 @@ import lombok.NoArgsConstructor; import java.util.Date; /** - * @ClassName Car - * @Author WenHao.Sao + * 车辆信息管理对象 */ @Data @AllArgsConstructor @@ -22,6 +21,8 @@ import java.util.Date; @TableName(value = "t_car") public class Car { + private static final long serialVersionUID = 1L; + /** * 车辆Vin 主键 */ diff --git a/car-base-common/src/main/java/com/god/base/server/common/domain/DrivingRecord.java b/car-base-common/src/main/java/com/god/base/server/common/domain/DrivingRecord.java new file mode 100644 index 0000000..495a536 --- /dev/null +++ b/car-base-common/src/main/java/com/god/base/server/common/domain/DrivingRecord.java @@ -0,0 +1,66 @@ +package com.god.base.server.common.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.god.common.core.annotation.Excel; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 车辆行驶记录对象 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@TableName("driving_record") +@Builder +public class DrivingRecord { + private static final long serialVersionUID = 1L; + + /** + * id + */ + private long id; + /** + * vin + */ + private String vin; + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开始时间" , width = 30 , dateFormat = "yyyy-MM-dd") + private Date startTime; + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "结束时间" , width = 30 , dateFormat = "yyyy-MM-dd") + private Date endTime; + /** + * 开始表示 + */ + private String startKey; + /** + * 结束标识 + */ + private String endKey; + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id",getId()) + .append("vin",getVin()) + .append("startTime",getStartTime()) + .append("endTime",getEndKey()) + .append("startKey",getStartKey()) + .append("endKey",getEndKey()) + .toString(); + } +} diff --git a/car-base-common/src/main/resources/bootstrap.yml b/car-base-common/src/main/resources/bootstrap.yml index a68864d..403a368 100644 --- a/car-base-common/src/main/resources/bootstrap.yml +++ b/car-base-common/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ server: spring: application: # 应用名称 - name: god-car-management + name: god-car-base profiles: # 环境配置 active: dev 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 index af98c20..521866a 100644 --- 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; 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 com.god.base.server.util.AopConfig; import com.god.common.core.domain.Result; import com.god.common.core.utils.poi.ExcelUtil; import com.god.common.core.web.controller.BaseController; @@ -34,6 +35,9 @@ public class CarController extends BaseController { @Autowired private CarService carService; + @Autowired + private AopConfig aopConfig; + /** * 查询车辆信息管理列表 @@ -41,19 +45,10 @@ public class CarController extends BaseController { @RequiresPermissions @GetMapping("/list") public Result> list(@RequestBody CarRequest carRequest){ - log.info("功能介绍车辆信息列表查看,请求方式:{},请求路径:{},请求参数:{}", - request.getMethod(), - request.getRequestURL(), - JSONObject.toJSONString(carRequest)); startPage();//设置请求分页数据 List list = carService.selectCarInfoList(carRequest); - log.info("功能介绍车辆信息列表查看,响应方式:{},响应路径:{},响应参数:{}", - request.getMethod(), - request.getRequestURL(), - JSONObject.toJSONString(list)); - return getDataTable(list); } diff --git a/car-base-server/src/main/java/com/god/base/server/controller/DrivingRecordController.java b/car-base-server/src/main/java/com/god/base/server/controller/DrivingRecordController.java new file mode 100644 index 0000000..267d8b4 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/controller/DrivingRecordController.java @@ -0,0 +1,145 @@ +package com.god.base.server.controller; + +import com.god.base.server.common.domain.DrivingRecord; +import com.god.base.server.service.IDrivingRecordService; +import com.god.common.core.domain.Result; +import com.god.common.core.utils.poi.ExcelUtil; +import com.god.common.core.web.controller.BaseController; +import com.god.common.core.web.page.TableDataInfo; +import com.god.common.log.annotation.Log; +import com.god.common.log.enums.BusinessType; +import com.god.common.security.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 车辆行驶记录 DrivingRecordController + */ +@RestController +@RequestMapping("/record") +public class DrivingRecordController extends BaseController { + + @Autowired + private IDrivingRecordService drivingRecordService; + + /** + * 查询车辆行驶记录 + * + * @param drivingRecord + * @return + */ + @RequiresPermissions("record:record:list") + @GetMapping("list") + public Result> list(DrivingRecord drivingRecord){ + //设置请求分页数据 + startPage(); + List list = drivingRecordService.selectDrivingRecordList(drivingRecord); + return getDataTable(list); + } + + + /** + * 导出车辆行驶记录列表 + * @param response + * @param drivingRecord + */ + @RequiresPermissions("record:record:export") + @Log(title = "车辆行驶记录" , businessType = BusinessType.EXPORT) // 导出 + @PostMapping("export") + public void export(HttpServletResponse response , DrivingRecord drivingRecord) + { + List list = drivingRecordService.selectDrivingRecordList(drivingRecord); + ExcelUtil util = new ExcelUtil<>(DrivingRecord.class); + //对list数据源将其里面的数据导入到excel表中 + util.exportExcel(response , list , "车辆行驶记录数据"); + } + + /** + * 获取车辆行驶记录详细信息 + * @param id + * @return + */ + @GetMapping(value = "/{id}") + public Result getInfo(@PathVariable("id") Long id){ //操作信息提醒 + //返回成功数据 | 查询车辆行驶记录 + return Result.success(drivingRecordService.selectDrivingRecordById(id)); + } + + /** + * 新增车辆行驶记录 + * @param drivingRecord + * @return + */ + @RequiresPermissions("record:record:add") + @Log(title = "车辆行驶记录" , businessType = BusinessType.INSERT) // 新增 + @PostMapping + public Result add(@RequestBody DrivingRecord drivingRecord){ + //响应返回结果 | 新增车辆行驶记录 + return Result.success(drivingRecordService.insertDrivingRecord(drivingRecord)); + } + + /** + * 修改车辆行驶记录 + * @param drivingRecord + * @return + */ + @RequiresPermissions("record:record:edit") + @Log(title = "车辆行驶记录" , businessType = BusinessType.UPDATE) // 修改 + @PutMapping + public Result edit(@RequestBody DrivingRecord drivingRecord) + { + //响应返回结果 | 修改车辆行驶记录 + return Result.success(drivingRecordService.updateDrivingRecord(drivingRecord)); + } + + + /** + * 车辆行驶记录的批量删除 + * @param ids + * @return + */ + @RequiresPermissions("record:record:remove") + @Log(title = "车辆行驶记录" , businessType = BusinessType.DELETE) // 删除 + @DeleteMapping("/{ids}") + public Result remove(@PathVariable Long[] ids) + { + //响应返回结果 | 批量删除车辆行驶记录 + return Result.success(drivingRecordService.deleteDrivingRecordByIds(ids)); + } + + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/mapper/DrivingRecordMapper.java b/car-base-server/src/main/java/com/god/base/server/mapper/DrivingRecordMapper.java new file mode 100644 index 0000000..b27767e --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/mapper/DrivingRecordMapper.java @@ -0,0 +1,68 @@ +package com.god.base.server.mapper; + +import com.god.base.server.common.domain.DrivingRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 车辆行驶轨迹 mapper 层 + */ +@Mapper +public interface DrivingRecordMapper { + /** + * 查询车辆行驶记录列表 + * @param drivingRecord + * @return + */ + List selectDrivingRecordList(DrivingRecord drivingRecord); + + /** + * 查询车辆行驶记录 + * @param id 车辆行驶主键 + * @return 车辆行驶记录 + */ + DrivingRecord selectDrivingRecordById(@Param("id") Long id); + + /** + * 新增车辆行驶记录 + * @param drivingRecord + * @return 结果 + */ + int insertDrivingRecord(DrivingRecord drivingRecord); + + /** + * 修改车辆行驶记录 + * @param drivingRecord + * @return 结果 + */ + int updateDrivingRecord(DrivingRecord drivingRecord); + + /** + * 批量删除车辆行驶记录 + * @param ids + * @return + */ + int deleteDrivingRecordByIds(@Param("ids") Long[] ids); +} + + + + + + + + + + + + + + + + + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/service/IDrivingRecordService.java b/car-base-server/src/main/java/com/god/base/server/service/IDrivingRecordService.java new file mode 100644 index 0000000..0d592b9 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/IDrivingRecordService.java @@ -0,0 +1,65 @@ +package com.god.base.server.service; + + +import com.god.base.server.common.domain.DrivingRecord; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 车辆行驶记录Service接口 + */ +public interface IDrivingRecordService { + + /** + * 查询车辆行驶记录列表 + * @param drivingRecord + * @return + */ + List selectDrivingRecordList(DrivingRecord drivingRecord); + + /** + * 车辆行驶记录主键 + * @param id + * @return + */ + DrivingRecord selectDrivingRecordById(@Param("id") Long id); + + /** + * 新增车辆行驶记录 + * @param drivingRecord 车辆行驶记录 + * @return 结果 + */ + int insertDrivingRecord(DrivingRecord drivingRecord); + + /** + * 修改车辆行驶记录 + * @param drivingRecord 车辆行驶记录 + * @return 结果 + */ + int updateDrivingRecord(DrivingRecord drivingRecord); + + int deleteDrivingRecordByIds(Long[] ids); +} + + + + + + + + + + + + + + + + + + + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/service/impl/IDrivingRecordServiceImpl.java b/car-base-server/src/main/java/com/god/base/server/service/impl/IDrivingRecordServiceImpl.java new file mode 100644 index 0000000..d6b3640 --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/service/impl/IDrivingRecordServiceImpl.java @@ -0,0 +1,97 @@ +package com.god.base.server.service.impl; + +import com.god.base.server.common.domain.DrivingRecord; +import com.god.base.server.mapper.DrivingRecordMapper; +import com.god.base.server.service.IDrivingRecordService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * @ClassName IDrivingRecordServiceImpl + * @Author WenHao.Sao + */ + +/** + * 车辆行驶记录Service业务层处理 + */ +public class IDrivingRecordServiceImpl implements IDrivingRecordService { + + @Autowired + private DrivingRecordMapper drivingRecordMapper; + + @Override + public List selectDrivingRecordList(DrivingRecord drivingRecord) { + return drivingRecordMapper.selectDrivingRecordList(drivingRecord); + } + + /** + * 查询车辆行驶记录 + * @param id 车辆行驶记录主键 + * @return 车辆行驶记录 + */ + @Override + public DrivingRecord selectDrivingRecordById(Long id) { + return drivingRecordMapper.selectDrivingRecordById(id); + } + + + /** + * 新增车辆行驶记录 + * @param drivingRecord 车辆行驶记录 + * @return 结果 + */ + @Override + public int insertDrivingRecord(DrivingRecord drivingRecord) { + return drivingRecordMapper.insertDrivingRecord(drivingRecord); + } + + /** + * 修改车辆行驶记录 + * @param drivingRecord 车辆行驶记录 + * @return 结果 + */ + @Override + public int updateDrivingRecord(DrivingRecord drivingRecord) { + //修改车辆行驶记录 + return drivingRecordMapper.updateDrivingRecord(drivingRecord); + } + + /** + * 批量删除车辆行驶记录 + * @param ids + * @return 结果 + */ + @Override + public int deleteDrivingRecordByIds(Long[] ids) { + //批量删除车辆行驶记录 + return drivingRecordMapper.deleteDrivingRecordByIds(ids); + } +} + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/car-base-server/src/main/java/com/god/base/server/util/AopConfig.java b/car-base-server/src/main/java/com/god/base/server/util/AopConfig.java new file mode 100644 index 0000000..e15dbec --- /dev/null +++ b/car-base-server/src/main/java/com/god/base/server/util/AopConfig.java @@ -0,0 +1,67 @@ +package com.god.base.server.util; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + + +/** + * aop切面 工具类 + */ +@Aspect +@Component +public class AopConfig { + //日志打印 + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + ThreadLocal threadLocal = new ThreadLocal<>(); + + /** + * @Description: 定义切面的那个类 + */ + @Pointcut("execution(* com.god.base.server.controller.*.*(..))") + public void print(){} + + + @Around("print()") + public Object LogStart(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { + threadLocal.set(System.currentTimeMillis()); + //使用ServletRequestAttributes请求上下文获取更多 + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + String typeName = proceedingJoinPoint.getSignature().getDeclaringTypeName(); + String name = proceedingJoinPoint.getSignature().getName(); + //使用数据来获取参数 + Object[] pointArgs = proceedingJoinPoint.getArgs(); + ObjectMapper objectMapper = new ObjectMapper(); + logger.info("—_—方—_—_—法_—_—_—启—_—_—动—_—_—开—_—_—始—_—_—希—_—_—望—_—_—无—_—_—B—_—_—U—_—_—G—_—"); + logger.info("|调用前是: 【{}】", typeName); + logger.info("|方法名称: 【{}】", name); + logger.info("|传递参数: 【{}】", objectMapper.writeValueAsString(objectMapper)); + logger.info("|URL: 【{}】", request.getRequestURI().toString()); + logger.info("IP: 【{}】", request.getRemoteAddr()); + logger.info("______________________________________________________________________"); + + + Object proceed = proceedingJoinPoint.proceed(); + logger.info("|调用前是: 【{}】", typeName); + logger.info("|方法名称: 【{}】", name); + logger.info("|传递参数: 【{}】", objectMapper.writeValueAsString(objectMapper)); + logger.info("|URL: 【{}】", request.getRequestURI().toString()); + logger.info("IP: 【{}】", request.getRemoteAddr()); + logger.info("|耗时: 【{}】", System.currentTimeMillis() - threadLocal.get()); + + return proceed; + } + + +} diff --git a/car-base-server/src/main/resources/mapper/DrivingRecordMapper.xml b/car-base-server/src/main/resources/mapper/DrivingRecordMapper.xml new file mode 100644 index 0000000..9fb4379 --- /dev/null +++ b/car-base-server/src/main/resources/mapper/DrivingRecordMapper.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + select id , vin ,start_time ,end_time , start_key , end_key , from driving_record + + + + + + + + + + + insert into driving_record + + vin, + start_time, + end_time, + start_time, + end_key, + + + #{vin}, + #{startTime}, + #{endTime}, + #{startKey}, + #{endKey}, + + + + + + update driving_record + + vin = #{vin}, + start_time = #{startTime}, + end_time = #{endTime}, + start_time = #{startKey}, + end_key = #{endKey}, + + where id = #{id} + + + + + delete from drving_record where id in + + #{ids} + + + + + + + + + + + + + + + + + + + + + + +