配送管理接口与配送管理实体

master
cjy 8 months ago
parent 969760e76a
commit b4feb5201c

@ -0,0 +1,61 @@
package com.example.api.controller;
import com.example.api.annotation.Log; // 导入自定义的日志注解
import com.example.api.model.entity.Distribution; // 导入配送实体类
import com.example.api.model.enums.BusinessType; // 导入业务类型枚举
import com.example.api.repository.DriverRepository; // 导入司机数据访问层接口
import com.example.api.repository.VehicleRepository; // 导入车辆数据访问层接口
import com.example.api.service.DistributionService; // 导入配送服务类
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; // 导入资源注入注解
import java.util.HashMap; // 导入HashMap类
import java.util.List; // 导入List接口
import java.util.Map; // 导入Map接口
// 定义RestController注解表示该类是一个控制器用于处理HTTP请求
@RestController
// 定义RequestMapping注解设置该控制器的基础URL路径
@RequestMapping("/api/distribution")
public class DistributionController {
// 通过@Resource注解自动注入DistributionService
@Resource
private DistributionService distributionService;
// 通过@Resource注解自动注入DriverRepository
@Resource
private DriverRepository driverRepository;
// 通过@Resource注解自动注入VehicleRepository
@Resource
private VehicleRepository vehicleRepository;
// 使用@Log注解记录操作日志模块为“配送管理”操作类型为插入BusinessType.INSERT
@Log(module = "配送管理", type = BusinessType.INSERT)
// 处理POST请求用于保存配送信息
@PostMapping("")
public Distribution save(@RequestBody Distribution distribution) throws Exception {
return distributionService.save(distribution);
}
// 使用@Log注解记录操作日志模块为“配送管理”操作类型为查询BusinessType.QUERY
@Log(module = "配送管理", type = BusinessType.QUERY)
// 处理GET请求用于查询所有配送信息
@GetMapping("")
public List<Distribution> findAll() {
return distributionService.findAll();
}
// 处理GET请求用于获取可用于配送的司机和车辆信息
@GetMapping("can")
public Map<String, Object> can() {
Map<String, Object> map = new HashMap<>();
// 将所有司机信息放入map中
map.put("drivers", driverRepository.findAll());
// 将所有车辆信息放入map中
map.put("vehicles", vehicleRepository.findAll());
return map;
}
}

@ -0,0 +1,81 @@
package com.example.api.model.entity;
// 导入Jackson库提供的@JsonFormat注解用于定义JSON序列化和反序列化时的格式
import com.fasterxml.jackson.annotation.JsonFormat;
// 导入Lombok提供的@Data注解用于自动生成类的getter、setter、toString、equals和hashCode方法
import lombok.Data;
// 导入Lombok提供的@NoArgsConstructor注解用于生成无参构造函数
import lombok.NoArgsConstructor;
// 导入Hibernate提供的GenericGenerator注解用于自定义主键生成策略
import org.hibernate.annotations.GenericGenerator;
// 导入JPA提供的@Entity注解用于标记类为JPA实体
import javax.persistence.Entity;
// 导入JPA提供的@Id注解用于标记类的字段为主键
import javax.persistence.Id;
// 导入JPA提供的@GeneratedValue注解用于指定主键的生成策略
import javax.persistence.GeneratedValue;
// 导入java.time.LocalDateTime用于存储日期和时间
import java.time.LocalDateTime;
// 导入java.util.Date用于存储日期
import java.util.Date;
/**
*
*/
// @Data注解自动生成getter和setter方法以及toString(), equals()和hashCode()方法
@Data
// @Entity注解标记这个类是一个JPA实体可以被持久化到数据库
@Entity
// @NoArgsConstructor注解生成一个无参数的构造函数
@NoArgsConstructor
public class Distribution {
/**
* id
* 使@Id
* 使@GeneratedValue@GenericGenerator使
* 使"uuid2"使UUID
*/
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
private String id;
// 司机id
private String did;
// 车辆id
private String vid;
// 司机姓名
private String driver;
// 车牌号
private String number;
// 客户电话
private String phone;
// 客户地址
private String address;
// 是否加急处理
private boolean urgent;
// 关注事项
private String care;
/**
*
* 使@JsonFormatJSON
* "yyyy-MM-dd HH:mm:ss""GMT+8"
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime time;
// 配送状态
private Integer status;
}
Loading…
Cancel
Save