增加车辆随机生成

增加vehicle表字段
增加公共异常处理
new-master
dongzeliang 2023-11-15 19:10:56 +08:00
parent ce4f9d7b05
commit fa69241b9d
8 changed files with 150 additions and 4 deletions

View File

@ -0,0 +1,11 @@
package com.muyu.common;
/**
* @author DongZeLiang
* @version 1.0
* @description
* @date 2023/11/15
*/
public class SystemConstant {
}

View File

@ -0,0 +1,25 @@
package com.muyu.config;
import com.muyu.common.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
/**
* @author DongZeLiang
* @version 1.0
* @description
* @date 2023/11/15
*/
@RestControllerAdvice
public class ExceptionAdvice {
/**
*
* @param runtimeException
* @return
*/
@ExceptionHandler(value = RuntimeException.class)
public Result<String> runtimeExceptionHandler(RuntimeException runtimeException){
return Result.error(runtimeException.getMessage());
}
}

View File

@ -5,6 +5,7 @@ import com.muyu.domain.Vehicle;
import com.muyu.service.VehicleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -17,7 +18,6 @@ import java.util.List;
* @date 2023/11/9
*/
@RestController
@RequestMapping("/Information")
public class VehicleController {
@Autowired
@ -27,4 +27,15 @@ public class VehicleController {
public Result<List<Vehicle>> list(){
return Result.success(vehicleService.list());
}
/**
*
* @param sum
* @return
*/
@GetMapping("/gen/{sum}")
public Result<String> generate(@PathVariable(value = "sum") Integer sum){
vehicleService.generate(sum);
return Result.success();
}
}

View File

@ -3,11 +3,13 @@ package com.muyu.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.utils.VehicleUtils;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -23,9 +25,49 @@ import java.util.Date;
@TableName("vehicle")
public class Vehicle {
/**
* VIN
*/
@TableId(value = "vin")
private String vin;
/**
*
*/
@TableField("remaining_battery")
private BigDecimal remainingBattery;
/**
*
*/
@TableField("battery_level")
private BigDecimal batteryLevel;
/**
*
*/
@TableField("total_mileage")
private BigDecimal totalMileage;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
* @return
*/
public static Vehicle gen() {
BigDecimal battery = VehicleUtils.genBattery();
return Vehicle.builder()
.vin(VehicleUtils.genVin())
.createTime(new Date())
.batteryLevel(battery)
.remainingBattery(battery)
.totalMileage(BigDecimal.ZERO)
.build();
}
}

View File

@ -13,4 +13,9 @@ import com.muyu.domain.Vehicle;
*/
public interface VehicleService extends IService<Vehicle> {
/**
*
* @param sum
*/
void generate(Integer sum);
}

View File

@ -4,7 +4,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.domain.Vehicle;
import com.muyu.mapper.VehicleMapper;
import com.muyu.service.VehicleService;
import com.muyu.utils.VehicleUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Stream;
/**
* <p>
@ -17,4 +22,15 @@ import org.springframework.stereotype.Service;
@Service
public class VechileServiceImpl extends ServiceImpl<VehicleMapper, Vehicle> implements VehicleService {
/**
*
*
* @param sum
*/
@Override
@Transactional
public void generate(Integer sum) {
List<Vehicle> vehicleList = Stream.generate(Vehicle::gen).limit(sum).toList();
this.saveBatch(vehicleList);
}
}

View File

@ -0,0 +1,35 @@
package com.muyu.utils;
import com.muyu.common.SystemConstant;
import java.math.BigDecimal;
import java.util.Random;
public class VehicleUtils {
/**
* VIN
* @return
*/
public static String genVin() {
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder(17);
for (int i = 0; i < 17; i++) {
int index = (int) (random.nextFloat() * characters.length());
sb.append(characters.charAt(index));
}
return sb.toString();
}
private static Random random = new Random();
/**
*
* @return
*/
public static BigDecimal genBattery(){
return BigDecimal.valueOf(random.nextInt(54, 60) * 1000L);
}
}

View File

@ -7,8 +7,9 @@ create table if not exists t_user (
) ;
create table if not exists vehicle (
`id` int primary key not null ,
`vin` char (50) not null,
`total_mileage` int not null,
`vin` char (50) primary key not null,
`remaining_battery` DOUBLE not null,
`total_mileage` DOUBLE not null,
`battery_level` DOUBLE not null,
`create_time` datetime not null
) ;