Merge remote-tracking branch 'origin/master'

master
Eterlaze 8 months ago
commit 1316ccaa6a

@ -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<Commodity> findAll() {
return commodityService.findAll();
}
/**
*
* @param name
* @return
*/
@Log(module = "商品管理", type = BusinessType.QUERY) // 记录日志,标记为查询操作
@GetMapping("/search/{name}") // 定义 GET 请求的路由,包含路径变量
public List<Commodity> 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);
}
}

@ -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;
}
}

@ -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;
}

@ -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@Settercodegettersetter
*/
@Getter
@Setter
private Integer code;
}

@ -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;
}

@ -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<Code, String> {
/**
*
* @param email
* @param value
* @return null
*/
Code findByEmailAndValue(String email, String value);
}

@ -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<Commodity, String> {
/**
*
* @param name
* @return null
*/
Commodity findByName(String name);
/**
*
* @param name
* @return
*/
List<Commodity> findByNameLike(String name);
}

@ -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<Distribution, String> {
}

@ -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<Driver, String> {
/**
*
* @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<Driver> findAllByDriving(boolean driving);
}

@ -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<Employee, String> {
}

@ -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<InventoryRecord, String> {
/**
* ID
* @param wid ID
* @return ID
*/
List<InventoryRecord> findAllByWid(String wid);
/**
*
* @param type -1+1
* @return
*/
List<InventoryRecord> findAllByType(Integer type);
/**
* ID
* @param cid ID
* @return ID
*/
List<InventoryRecord> findAllByCid(String cid);
}

@ -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<Inventory, String> {
/**
* IDID
* @param wid ID
* @param cid ID
* @return null
*/
Inventory findByWidAndCid(String wid, String cid);
/**
* ID
* @param cid ID
* @return ID
*/
List<Inventory> findAllByCid(String cid);
/**
* ID
* @param wid ID
* @return ID
*/
List<Inventory> findAllByWid(String wid);
}

@ -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<LoginLog,String> {
}

@ -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<Sale, String> {
// 定义一个方法findAllByCompanyLike用于根据公司名称模糊查询销售记录
// 这个方法会根据传入的参数name查询company字段中包含name字符串的所有Sale记录
List<Sale> findAllByCompanyLike(String name);
}

@ -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<SystemLog,String>, JpaSpecificationExecutor<SystemLog> {
}

@ -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<User, String> {
}

@ -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<Vehicle, String> {
/**
*
* @param driving truefalse
* @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 truefalse
* @return vehicles
*/
List<Vehicle> findAllByDriving(boolean driving);
}

@ -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<Warehouse, String> {
}

@ -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<Commodity> findAll();
/**
*
* @param name
* @return
*/
List<Commodity> findAllByLikeName(String name);
}

@ -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<Commodity> findAll() {
return commodityRepository.findAll(); // 查询所有商品信息
}
/**
*
* @param name
* @return
*/
@Override
public List<Commodity> findAllByLikeName(String name) {
return commodityRepository.findByNameLike("%" + name + "%"); // 模糊查询商品信息
}
}
Loading…
Cancel
Save