From c6c1b011450aba866ea9a6bf62baee3591ee4cfb Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 15:35:11 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BC=A0=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/CommodityController.java | 86 ------------------- 1 file changed, 86 deletions(-) delete mode 100644 IDEA/src/main/java/com/example/api/controller/CommodityController.java diff --git a/IDEA/src/main/java/com/example/api/controller/CommodityController.java b/IDEA/src/main/java/com/example/api/controller/CommodityController.java deleted file mode 100644 index db020a30..00000000 --- a/IDEA/src/main/java/com/example/api/controller/CommodityController.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.example.api.controller; - -import com.example.api.annotation.Log; -import com.example.api.model.entity.Commodity; -import com.example.api.model.enums.BusinessType; -import com.example.api.service.CommodityService; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.annotation.Resource; -import java.util.List; - -/** - * CommodityController 类是商品管理的 RESTful API 控制器。 - */ -@RestController // 表明这是一个 REST 控制器,其方法的返回值会自动作为 HTTP 响应体 -@RequestMapping("/api/commodity") // 定义类级别的路由:/api/commodity -@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN','ROLE_COMMODITY','ROLE_SALE')") // 权限注解,只有具有指定角色的用户才能访问 -public class CommodityController { - - @Resource // 自动注入 CommodityService - private CommodityService commodityService; - - /** - * 保存商品信息。 - * @param commodity 商品实体 - * @return 保存后的商品实体 - */ - @Log(module = "商品管理", type = BusinessType.INSERT) // 记录日志,标记为插入操作 - @PostMapping("") // 定义 POST 请求的路由 - public Commodity save(@RequestBody Commodity commodity) { - return commodityService.save(commodity); - } - - /** - * 删除商品信息。 - * @param id 商品的 ID - */ - @Log(module = "商品管理", type = BusinessType.DELETE) // 记录日志,标记为删除操作 - @DeleteMapping("") // 定义 DELETE 请求的路由 - public void delete(String id) { - commodityService.delete(id); - } - - /** - * 更新商品信息。 - * @param commodity 商品实体 - */ - @Log(module = "商品管理", type = BusinessType.UPDATE) // 记录日志,标记为更新操作 - @PutMapping("") // 定义 PUT 请求的路由 - public void update(@RequestBody Commodity commodity) { - commodityService.update(commodity); - } - - /** - * 查询所有商品信息。 - * @return 商品列表 - */ - @Log(module = "商品管理", type = BusinessType.QUERY) // 记录日志,标记为查询操作 - @GetMapping("") // 定义 GET 请求的路由 - public List findAll() { - return commodityService.findAll(); - } - - /** - * 根据名称模糊查询商品信息。 - * @param name 名称关键字 - * @return 匹配的商品列表 - */ - @Log(module = "商品管理", type = BusinessType.QUERY) // 记录日志,标记为查询操作 - @GetMapping("/search/{name}") // 定义 GET 请求的路由,包含路径变量 - public List findByLikeName(@PathVariable String name) { - return commodityService.findAllByLikeName(name); - } - - /** - * 根据 ID 查询商品信息。 - * @param id 商品的 ID - * @return 商品实体 - */ - @Log(module = "商品管理", type = BusinessType.QUERY) // 记录日志,标记为查询操作 - @GetMapping("/{id}") // 定义 GET 请求的路由,包含路径变量 - public Commodity findById(@PathVariable String id) { - return commodityService.findById(id); - } -} From e0deda9e57aabbe2855cd4aad99a09dfb5efc4fa Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 15:35:51 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=AE=9E=E4=BD=93/=E9=AA=8C=E8=AF=81=E7=A0=81=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/api/model/entity/Code.java | 50 ----------------- .../example/api/model/entity/Commodity.java | 54 ------------------- 2 files changed, 104 deletions(-) delete mode 100644 IDEA/src/main/java/com/example/api/model/entity/Code.java delete mode 100644 IDEA/src/main/java/com/example/api/model/entity/Commodity.java diff --git a/IDEA/src/main/java/com/example/api/model/entity/Code.java b/IDEA/src/main/java/com/example/api/model/entity/Code.java deleted file mode 100644 index f929975e..00000000 --- a/IDEA/src/main/java/com/example/api/model/entity/Code.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.example.api.model.entity; - -// 导入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; - -/** - * 验证码实体类,用于表示数据库中的验证码表 - */ -// @Data注解自动生成getter和setter方法,以及toString(), equals()和hashCode()方法 -@Data -// @Entity注解标记这个类是一个JPA实体,可以被持久化到数据库 -@Entity -// @NoArgsConstructor注解生成一个无参数的构造函数 -@NoArgsConstructor -public class Code { - - // 使用@Id标记email字段为主键 - @Id - private String email; - - // value字段,用于存储验证码的值 - private String value; - - // exp字段,用于存储验证码的过期时间(毫秒值) - private long exp; - - /** - * Code类的构造函数,用于创建验证码实例 - * @param email 验证码绑定的邮箱 - * @param value 验证码的值 - */ - public Code(String email, String value) { - this.email = email; - this.value = value; - // 设置验证码的过期时间为当前时间加上15分钟(15分钟 = 15 * 60秒 = 15 * 60 * 1000毫秒) - this.exp = System.currentTimeMillis() + 1000 * 60 * 15; - } - -} diff --git a/IDEA/src/main/java/com/example/api/model/entity/Commodity.java b/IDEA/src/main/java/com/example/api/model/entity/Commodity.java deleted file mode 100644 index b58ea6a5..00000000 --- a/IDEA/src/main/java/com/example/api/model/entity/Commodity.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.example.api.model.entity; - -// 导入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; - -/** - * 商品实体类,用于表示数据库中的商品表 - */ -// @Data注解自动生成getter和setter方法,以及toString(), equals()和hashCode()方法 -@Data -// @Entity注解标记这个类是一个JPA实体,可以被持久化到数据库 -@Entity -// @NoArgsConstructor注解生成一个无参数的构造函数 -@NoArgsConstructor -public class Commodity { - - // 使用@Id标记id字段为主键 - @Id - // 使用@GeneratedValue指定主键值的生成策略,这里使用"uuid2"生成器 - @GeneratedValue(generator = "uuid2") - // 使用@GenericGenerator定义一个名为"uuid2"的生成器,使用Hibernate的UUID生成策略 - @GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator") - private String id; - - // name字段,用于存储商品的名称 - private String name; - - // price字段,用于存储商品的价格 - private double price; - - // description字段,用于存储商品的描述信息 - private String description; - - // count字段,用于存储商品的数量 - private int count; - - // createAt字段,用于存储商品的创建时间 - private String createAt; - - // updateAt字段,用于存储商品的更新时间 - private String updateAt; - -} \ No newline at end of file From 8be3b7bdfbcf989c36b4acc7f4ea91ac20bdb36f Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 15:36:20 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=B4=BE=E9=80=81=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/model/enums/DistributionStatus.java | 41 ------------------- 1 file changed, 41 deletions(-) delete mode 100644 IDEA/src/main/java/com/example/api/model/enums/DistributionStatus.java diff --git a/IDEA/src/main/java/com/example/api/model/enums/DistributionStatus.java b/IDEA/src/main/java/com/example/api/model/enums/DistributionStatus.java deleted file mode 100644 index 890ad5cb..00000000 --- a/IDEA/src/main/java/com/example/api/model/enums/DistributionStatus.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.api.model.enums; - -import lombok.Getter; -import lombok.Setter; - -/** - * 配送单状态枚举,用于表示配送单的不同状态。 - */ -public enum DistributionStatus { - - /** - * 正在审核状态,对应代码为0。 - */ - REVIEWING(0), - - /** - * 审核成功状态,对应代码为1。 - */ - REVIEW_SUCCESS(1), - - /** - * 订单完成状态,对应代码为2。 - */ - END(2); - - /** - * 构造函数,用于为枚举实例设置状态代码。 - * @param code 状态代码 - */ - DistributionStatus(Integer code) { - this.code = code; - } - - /** - * 通过lombok提供的@Getter和@Setter注解自动生成code属性的getter和setter方法。 - */ - @Getter - @Setter - private Integer code; - -} From 0400b2e49a309ef5e101cd32c7c64b3d966ba724 Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 15:47:51 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AF=AF=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/model/vo/CommodityChartVo.java | 16 ---- .../api/repository/CodeRepository.java | 22 ----- .../api/repository/CommodityRepository.java | 30 ------- .../repository/DistributionRepository.java | 9 --- .../api/repository/DriverRepository.java | 36 --------- .../api/repository/EmployeeRepository.java | 9 --- .../repository/InventoryRecordRepository.java | 37 --------- .../api/repository/InventoryRepository.java | 38 --------- .../api/repository/LoginLogRepository.java | 9 --- .../api/repository/SaleRepository.java | 18 ----- .../api/repository/SystemLogRepository.java | 14 ---- .../api/repository/UserRepository.java | 9 --- .../api/repository/VehicleRepository.java | 36 --------- .../api/repository/WareHouseRepository.java | 9 --- .../example/api/service/CommodityService.java | 51 ------------ .../service/impl/CommodityServiceImpl.java | 80 ------------------- 16 files changed, 423 deletions(-) delete mode 100644 IDEA/src/main/java/com/example/api/model/vo/CommodityChartVo.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/CodeRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/CommodityRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/DistributionRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/DriverRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/EmployeeRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/InventoryRecordRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/InventoryRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/LoginLogRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/SaleRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/SystemLogRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/UserRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/VehicleRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/repository/WareHouseRepository.java delete mode 100644 IDEA/src/main/java/com/example/api/service/CommodityService.java delete mode 100644 IDEA/src/main/java/com/example/api/service/impl/CommodityServiceImpl.java diff --git a/IDEA/src/main/java/com/example/api/model/vo/CommodityChartVo.java b/IDEA/src/main/java/com/example/api/model/vo/CommodityChartVo.java deleted file mode 100644 index d32833bc..00000000 --- a/IDEA/src/main/java/com/example/api/model/vo/CommodityChartVo.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.api.model.vo; - -import lombok.AllArgsConstructor; -import lombok.Data; - -@Data -@AllArgsConstructor -public class CommodityChartVo { - - //商品名 - private Integer value; - - //数量 - private String name; - -} diff --git a/IDEA/src/main/java/com/example/api/repository/CodeRepository.java b/IDEA/src/main/java/com/example/api/repository/CodeRepository.java deleted file mode 100644 index 8f9a0fe2..00000000 --- a/IDEA/src/main/java/com/example/api/repository/CodeRepository.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Code; // 导入Code实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 - -/** - * 验证码仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface CodeRepository extends JpaRepository { - - /** - * 根据邮箱和值查找验证码。 - * @param email 用户的邮箱 - * @param value 验证码的值 - * @return 匹配的验证码对象,如果没有找到则返回null - */ - Code findByEmailAndValue(String email, String value); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/CommodityRepository.java b/IDEA/src/main/java/com/example/api/repository/CommodityRepository.java deleted file mode 100644 index be260209..00000000 --- a/IDEA/src/main/java/com/example/api/repository/CommodityRepository.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Commodity; // 导入Commodity实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 - -import java.util.List; // 导入List类,用于返回多个结果 - -/** - * 商品仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface CommodityRepository extends JpaRepository { - - /** - * 根据商品名称精确查找商品。 - * @param name 商品的名称 - * @return 匹配的商品对象,如果没有找到则返回null - */ - Commodity findByName(String name); - - /** - * 根据商品名称模糊查找商品。 - * @param name 商品名称的模糊匹配字符串 - * @return 匹配的所有商品对象列表 - */ - List findByNameLike(String name); - -} \ No newline at end of file diff --git a/IDEA/src/main/java/com/example/api/repository/DistributionRepository.java b/IDEA/src/main/java/com/example/api/repository/DistributionRepository.java deleted file mode 100644 index fc28e95e..00000000 --- a/IDEA/src/main/java/com/example/api/repository/DistributionRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Distribution; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface DistributionRepository extends JpaRepository { -} diff --git a/IDEA/src/main/java/com/example/api/repository/DriverRepository.java b/IDEA/src/main/java/com/example/api/repository/DriverRepository.java deleted file mode 100644 index 65f33d73..00000000 --- a/IDEA/src/main/java/com/example/api/repository/DriverRepository.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Driver; // 导入Driver实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.data.jpa.repository.Modifying; // 注解,用于标识修改数据库的操作 -import org.springframework.data.jpa.repository.Query; // 注解,用于执行自定义的JPQL或SQL查询 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 -import org.springframework.transaction.annotation.Transactional; // 注解,用于声明事务性方法 - -import java.util.List; // 导入List类,用于返回多个结果 - -/** - * 驾驶员仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface DriverRepository extends JpaRepository { - - /** - * 更新指定驾驶员的驾驶状态。 - * @param driving 新的驾驶状态 - * @param id 驾驶员的ID - */ - @Modifying // 标识这是一个修改操作 - @Transactional // 标识这是一个事务性方法 - @Query("update Driver d set d.driving = ?1 where d.id = ?2") // JPQL查询,用于更新操作 - void updateDriving(boolean driving, String id); - - /** - * 查找所有驾驶状态为指定值的驾驶员。 - * @param driving 驾驶状态 - * @return 匹配的驾驶员列表 - */ - List findAllByDriving(boolean driving); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/EmployeeRepository.java b/IDEA/src/main/java/com/example/api/repository/EmployeeRepository.java deleted file mode 100644 index 89f4ae65..00000000 --- a/IDEA/src/main/java/com/example/api/repository/EmployeeRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Employee; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface EmployeeRepository extends JpaRepository { -} diff --git a/IDEA/src/main/java/com/example/api/repository/InventoryRecordRepository.java b/IDEA/src/main/java/com/example/api/repository/InventoryRecordRepository.java deleted file mode 100644 index 936a3f7d..00000000 --- a/IDEA/src/main/java/com/example/api/repository/InventoryRecordRepository.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.InventoryRecord; // 导入InventoryRecord实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 - -import java.util.List; // 导入List类,用于返回多个结果 - -/** - * 库存记录仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface InventoryRecordRepository extends JpaRepository { - - /** - * 根据仓库ID查找所有库存记录。 - * @param wid 仓库ID - * @return 与指定仓库ID相关的所有库存记录列表 - */ - List findAllByWid(String wid); - - /** - * 根据库存记录类型查找所有库存记录。 - * @param type 库存记录类型(例如:-1表示出库,+1表示入库) - * @return 与指定类型相关的所有库存记录列表 - */ - List findAllByType(Integer type); - - /** - * 根据商品信息ID查找所有库存记录。 - * @param cid 商品信息ID - * @return 与指定商品信息ID相关的所有库存记录列表 - */ - List findAllByCid(String cid); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/InventoryRepository.java b/IDEA/src/main/java/com/example/api/repository/InventoryRepository.java deleted file mode 100644 index e9c06253..00000000 --- a/IDEA/src/main/java/com/example/api/repository/InventoryRepository.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Inventory; // 导入Inventory实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 - -import java.util.List; // 导入List类,用于返回多个结果 - -/** - * 库存仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface InventoryRepository extends JpaRepository { - - /** - * 根据仓库ID和商品信息ID查找库存。 - * @param wid 仓库ID - * @param cid 商品信息ID - * @return 匹配的库存对象,如果没有找到则返回null - */ - Inventory findByWidAndCid(String wid, String cid); - - /** - * 根据商品信息ID查找所有库存记录。 - * @param cid 商品信息ID - * @return 与指定商品信息ID相关的所有库存记录列表 - */ - List findAllByCid(String cid); - - /** - * 根据仓库ID查找所有库存记录。 - * @param wid 仓库ID - * @return 与指定仓库ID相关的所有库存记录列表 - */ - List findAllByWid(String wid); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/LoginLogRepository.java b/IDEA/src/main/java/com/example/api/repository/LoginLogRepository.java deleted file mode 100644 index 7b161267..00000000 --- a/IDEA/src/main/java/com/example/api/repository/LoginLogRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.LoginLog; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface LoginLogRepository extends JpaRepository { -} diff --git a/IDEA/src/main/java/com/example/api/repository/SaleRepository.java b/IDEA/src/main/java/com/example/api/repository/SaleRepository.java deleted file mode 100644 index 010721c6..00000000 --- a/IDEA/src/main/java/com/example/api/repository/SaleRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Sale; // 导入Sale实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 导入Spring Data JPA的JpaRepository接口 -import org.springframework.stereotype.Repository; // 导入Spring的@Repository注解,用于声明这是一个Repository - -import java.util.List; // 导入List接口,用于返回列表类型的数据 - -// 使用@Repository注解声明这是一个Repository,通常用于数据库操作 -@Repository -// 声明这是一个SaleRepository接口,它继承了JpaRepository接口 -public interface SaleRepository extends JpaRepository { - - // 定义一个方法findAllByCompanyLike,用于根据公司名称模糊查询销售记录 - // 这个方法会根据传入的参数name,查询company字段中包含name字符串的所有Sale记录 - List findAllByCompanyLike(String name); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/SystemLogRepository.java b/IDEA/src/main/java/com/example/api/repository/SystemLogRepository.java deleted file mode 100644 index f847ba94..00000000 --- a/IDEA/src/main/java/com/example/api/repository/SystemLogRepository.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.SystemLog; -import org.springframework.data.jpa.domain.Specification; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.data.jpa.repository.Query; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface SystemLogRepository extends JpaRepository, JpaSpecificationExecutor { -} diff --git a/IDEA/src/main/java/com/example/api/repository/UserRepository.java b/IDEA/src/main/java/com/example/api/repository/UserRepository.java deleted file mode 100644 index 2942c52c..00000000 --- a/IDEA/src/main/java/com/example/api/repository/UserRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.User; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface UserRepository extends JpaRepository { -} diff --git a/IDEA/src/main/java/com/example/api/repository/VehicleRepository.java b/IDEA/src/main/java/com/example/api/repository/VehicleRepository.java deleted file mode 100644 index 3b67432e..00000000 --- a/IDEA/src/main/java/com/example/api/repository/VehicleRepository.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Vehicle; // 导入Vehicle实体类 -import org.springframework.data.jpa.repository.JpaRepository; // 继承JPA仓库接口 -import org.springframework.data.jpa.repository.Modifying; // 注解,用于标识修改数据库的操作 -import org.springframework.data.jpa.repository.Query; // 注解,用于执行自定义的JPQL或SQL查询 -import org.springframework.stereotype.Repository; // 标识这是一个Repository组件 -import org.springframework.transaction.annotation.Transactional; // 注解,用于声明事务性方法 - -import java.util.List; // 导入List类,用于返回多个结果 - -/** - * 车辆仓库接口,用于数据库操作。 - */ -// 使用@Repository注解标识这是一个Spring组件,通常用于数据访问层 -@Repository -public interface VehicleRepository extends JpaRepository { - - /** - * 更新指定车辆的驾驶状态。 - * @param driving 新的驾驶状态,true表示正在驾驶,false表示未在驾驶 - * @param id 车辆的ID - */ - @Modifying // 标识这是一个修改操作 - @Transactional // 标识这是一个事务性方法 - @Query("update Vehicle v set v.driving = ?1 where v.id = ?2") // JPQL查询,用于更新操作 - void updateDriving(boolean driving, String id); - - /** - * 查找所有驾驶状态为指定值的车辆。 - * @param driving 驾驶状态,true表示正在驾驶,false表示未在驾驶 - * @return 匹配的 vehicles 列表 - */ - List findAllByDriving(boolean driving); - -} diff --git a/IDEA/src/main/java/com/example/api/repository/WareHouseRepository.java b/IDEA/src/main/java/com/example/api/repository/WareHouseRepository.java deleted file mode 100644 index 4e938dde..00000000 --- a/IDEA/src/main/java/com/example/api/repository/WareHouseRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.example.api.repository; - -import com.example.api.model.entity.Warehouse; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface WareHouseRepository extends JpaRepository { -} diff --git a/IDEA/src/main/java/com/example/api/service/CommodityService.java b/IDEA/src/main/java/com/example/api/service/CommodityService.java deleted file mode 100644 index 25e74e3e..00000000 --- a/IDEA/src/main/java/com/example/api/service/CommodityService.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.example.api.service; - -import com.example.api.model.entity.Commodity; // 导入Commodity实体类,代表商品信息 - -import java.util.List; // 导入List类,用于处理列表数据 - -/** - * 商品服务接口,定义商品相关的业务操作。 - */ -public interface CommodityService { - - /** - * 保存商品信息。 - * @param commodity 商品实体对象,包含商品的各个属性 - * @return 保存后的商品实体对象,包含由数据库生成的ID等信息 - */ - Commodity save(Commodity commodity); - - /** - * 更新商品信息。 - * @param commodity 要更新的商品实体对象 - */ - void update(Commodity commodity); - - /** - * 根据ID删除商品信息。 - * @param id 要删除的商品ID - */ - void delete(String id); - - /** - * 根据ID查询商品信息。 - * @param id 要查询的商品ID - * @return 查询到的商品实体对象,如果没有找到则返回null - */ - Commodity findById(String id); - - /** - * 查询所有商品信息。 - * @return 商品实体对象列表,包含所有商品的详细信息 - */ - List findAll(); - - /** - * 根据商品名称模糊查询商品信息。 - * @param name 商品名称关键词 - * @return 与商品名称匹配的商品实体对象列表 - */ - List findAllByLikeName(String name); - -} \ No newline at end of file diff --git a/IDEA/src/main/java/com/example/api/service/impl/CommodityServiceImpl.java b/IDEA/src/main/java/com/example/api/service/impl/CommodityServiceImpl.java deleted file mode 100644 index c75d7bb1..00000000 --- a/IDEA/src/main/java/com/example/api/service/impl/CommodityServiceImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.example.api.service.impl; - -import com.example.api.model.entity.Commodity; // 导入Commodity实体类 -import com.example.api.repository.CommodityRepository; // 导入CommodityRepository接口 -import com.example.api.service.CommodityService; // 导入CommodityService接口 -import com.example.api.utils.DataTimeUtil; // 导入日期时间工具类 -import org.springframework.stereotype.Service; // 导入Service注解 - -import javax.annotation.Resource; // 导入Resource注解,用于注入Spring管理的Bean -import java.util.List; // 导入List类,用于处理列表数据 - -/** - * 商品服务实现类,提供商品相关的业务逻辑。 - */ -@Service -public class CommodityServiceImpl implements CommodityService { - - @Resource - private CommodityRepository commodityRepository; // 注入Commodity仓库 - - /** - * 保存商品信息。 - * @param commodity 商品实体对象 - * @return 保存后的商品实体对象 - */ - @Override - public Commodity save(Commodity commodity) { - commodity.setCreateAt(DataTimeUtil.getNowTimeString()); // 设置创建时间 - return commodityRepository.save(commodity); // 保存商品信息 - } - - /** - * 更新商品信息。 - * @param commodity 商品实体对象 - */ - @Override - public void update(Commodity commodity) { - commodity.setUpdateAt(DataTimeUtil.getNowTimeString()); // 设置更新时间 - commodityRepository.save(commodity); // 更新商品信息 - } - - /** - * 根据ID删除商品信息。 - * @param id 商品ID - */ - @Override - public void delete(String id) { - commodityRepository.deleteById(id); // 根据ID删除商品信息 - } - - /** - * 根据ID查询商品信息。 - * @param id 商品ID - * @return 查询到的商品实体对象,如果没有找到则返回null - */ - @Override - public Commodity findById(String id) { - return commodityRepository.findById(id).orElse(null); // 根据ID查询商品信息 - } - - /** - * 查询所有商品信息。 - * @return 商品实体对象列表 - */ - @Override - public List findAll() { - return commodityRepository.findAll(); // 查询所有商品信息 - } - - /** - * 根据商品名称模糊查询商品信息。 - * @param name 商品名称关键词 - * @return 匹配的商品实体对象列表 - */ - @Override - public List findAllByLikeName(String name) { - return commodityRepository.findByNameLike("%" + name + "%"); // 模糊查询商品信息 - } - -} \ No newline at end of file From e860b8165224b61b7859b6cb4373a94143040627 Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 16:01:56 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=BC=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/api/model/dto/LoginDto.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 IDEA/src/main/java/com/example/api/model/dto/LoginDto.java diff --git a/IDEA/src/main/java/com/example/api/model/dto/LoginDto.java b/IDEA/src/main/java/com/example/api/model/dto/LoginDto.java new file mode 100644 index 00000000..1bd2bc0b --- /dev/null +++ b/IDEA/src/main/java/com/example/api/model/dto/LoginDto.java @@ -0,0 +1,19 @@ +package com.example.api.model.dto; + +import lombok.Data; + +/** + * 登录传输数据 + */ +@Data +public class LoginDto { + + private String email; + + private String password; + + private String code; + + private boolean remember; + +} From bf7f432278aba60ee503e632ec147a6518857986 Mon Sep 17 00:00:00 2001 From: Eterlaze <1215710470@qq.com> Date: Sat, 21 Dec 2024 16:04:32 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/api/aspect/LogAspect.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 IDEA/src/main/java/com/example/api/aspect/LogAspect.java diff --git a/IDEA/src/main/java/com/example/api/aspect/LogAspect.java b/IDEA/src/main/java/com/example/api/aspect/LogAspect.java new file mode 100644 index 00000000..0abdcb1b --- /dev/null +++ b/IDEA/src/main/java/com/example/api/aspect/LogAspect.java @@ -0,0 +1,86 @@ +package com.example.api.aspect; + +import com.example.api.annotation.Log; +import com.example.api.model.entity.SystemLog; +import com.example.api.service.SystemLogService; +import com.example.api.utils.IpUtil; +import com.example.api.utils.JwtTokenUtil; +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.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.lang.reflect.Method; +import java.time.LocalDateTime; + +/** + * LogAspect 类是一个切面(Aspect),用于记录系统日志。 + */ +@Aspect // 表明这是一个切面 +@Component // 表明这是一个 Spring 组件 +public class LogAspect { + @Autowired // 自动注入 SystemLogService + private SystemLogService logService; + + /** + * 定义切点,匹配所有标记了 @Log 注解的方法。 + */ + @Pointcut("@annotation(com.example.api.annotation.Log)") + public void pt(){} + + /** + * 环绕通知,用于在目标方法执行前后记录日志。 + * @param point 连接点 + * @return 方法执行结果 + * @throws Throwable 可能抛出的异常 + */ + @Around("pt()") + public Object Around(ProceedingJoinPoint point) throws Throwable { + // 记录开始时间 + long beginTime = System.currentTimeMillis(); + Object res = null; + try { + // 执行方法 + res = point.proceed(); + } finally { + // 计算执行时长 + long time = System.currentTimeMillis() - beginTime; + recordLog(point); + } + return res; + } + + /** + * 记录日志的方法。 + * @param point 连接点 + */ + private void recordLog(ProceedingJoinPoint point){ + // 获取当前请求对象 + ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = requestAttributes.getRequest(); + // 获取目标方法签名 + MethodSignature signature = (MethodSignature) point.getSignature(); + Method method = signature.getMethod(); + Log annotation = method.getAnnotation(Log.class); + // 封装日志对象 + SystemLog systemLog = new SystemLog(); + systemLog.setModule(annotation.module()); + systemLog.setBusinessType(annotation.type().getName()); + systemLog.setIp(IpUtil.getIpAddr(request)); + systemLog.setTime(LocalDateTime.now()); + // 获取方法的全路径 + systemLog.setMethod(signature.getDeclaringTypeName()+"."+signature.getName()); + // 获取token,并解析token来获取当前账号 + String token = request.getHeader(JwtTokenUtil.TOKEN_HEADER); + systemLog.setAccount(JwtTokenUtil.getUsername(token)); + // 持久化到数据库 + logService.record(systemLog); + } +}