员工原理和仓库管理的控制器

master
wjq 2 months ago
parent 55281a4c3e
commit 0d0f660aaa

@ -0,0 +1,65 @@
package com.example.api.controller;
import com.example.api.annotation.Log; // 导入自定义的日志注解,用于记录操作日志
import com.example.api.model.entity.Employee; // 导入Employee实体类代表员工信息
import com.example.api.model.enums.BusinessType; // 导入BusinessType枚举定义不同的业务操作类型
import com.example.api.service.EmployeeService; // 导入EmployeeService服务类包含对Employee数据的操作
import org.springframework.security.access.prepost.PreAuthorize; // 导入Spring Security的PreAuthorize注解用于权限控制
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; // 导入Resource注解用于依赖注入
import java.util.List; // 导入List接口用于处理列表数据
// 定义RestController注解标识该类为一个RESTful控制器
@RestController
// 定义RequestMapping注解设置基础URL路径为"/api/employee"所有方法的URL都将在此基础上构建
@RequestMapping("/api/employee")
// 使用PreAuthorize注解限制访问权限只允许拥有'ROLE_SUPER_ADMIN'或'ROLE_EMPLOYEE'角色的用户访问
@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN' ,'ROLE_EMPLOYEE')")
public class EmployeeController {
// 使用@Resource注解自动注入EmployeeService服务用于处理员工相关的业务逻辑
@Resource
private EmployeeService employeeService;
// 使用@Log注解记录查询操作的日志模块为"员工管理"操作类型为BusinessType.QUERY
@Log(module = "员工管理", type = BusinessType.QUERY)
// 处理GET请求用于查询所有员工信息
@GetMapping("")
public List<Employee> findAll() {
return employeeService.findAll();
}
// 使用@Log注解记录查询操作的日志模块为"员工管理"操作类型为BusinessType.QUERY
@Log(module = "员工管理", type = BusinessType.QUERY)
// 处理GET请求通过URL中的{id}路径变量查询特定员工信息
@GetMapping("/{id}")
public Employee findById(@PathVariable String id) {
return employeeService.findById(id);
}
// 使用@Log注解记录插入操作的日志模块为"员工管理"操作类型为BusinessType.INSERT
@Log(module = "员工管理", type = BusinessType.INSERT)
// 处理POST请求用于保存员工信息
@PostMapping("")
public Employee save(@RequestBody Employee employee) {
return employeeService.save(employee);
}
// 使用@Log注解记录更新操作的日志模块为"员工管理"操作类型为BusinessType.UPDATE
@Log(module = "员工管理", type = BusinessType.UPDATE)
// 处理PUT请求用于更新员工信息
@PutMapping("")
public void update(@RequestBody Employee employee) {
employeeService.update(employee);
}
// 使用@Log注解记录删除操作的日志模块为"员工管理"操作类型为BusinessType.DELETE
@Log(module = "员工管理", type = BusinessType.DELETE)
// 处理DELETE请求通过URL参数{id}删除特定员工信息
@DeleteMapping("")
public void delete(String id) {
employeeService.delete(id);
}
}

@ -0,0 +1,81 @@
package com.example.api.controller;
// 导入相关的实体类
import com.example.api.model.entity.Inventory;
import com.example.api.model.entity.InventoryRecord;
// 导入用于展示商品图表的数据传输对象
import com.example.api.model.vo.CommodityChartVo;
// 导入库存服务接口
import com.example.api.service.InventoryService;
// 导入库存记录服务接口
import com.example.api.service.InventoryRecordService;
// 导入Spring框架的注解支持
import org.springframework.web.bind.annotation.*;
// 使用javax.annotation.Resource注解来实现依赖注入
import javax.annotation.Resource;
// 导入Java的util包用于操作集合
import java.util.List;
// 使用RestController注解声明这是一个REST控制器
@RestController
// 使用RequestMapping注解指定这个控制器的基础URL路径
@RequestMapping("/api/inventory")
public class InventoryController {
// 使用@Resource注解注入InventoryService
@Resource
private InventoryService inventoryService;
// 使用@Resource注解注入InventoryRecordService
@Resource
private InventoryRecordService recordService;
// 使用GetMapping注解定义一个GET请求的处理器用于获取所有库存信息
@GetMapping("")
public List<Inventory> findAll() {
return inventoryService.findAll();
}
// 使用GetMapping注解定义一个GET请求的处理器用于分析商品数据
public List<CommodityChartVo> analyze(Integer type) {
return recordService.analyzeCommodity(type);
}
// 使用GetMapping注解定义一个GET请求的处理器通过路径变量{id}获取指定仓库的库存情况
@GetMapping("/warehouse/{id}")
public List<Inventory> findByWarehouse(@PathVariable String id) {
return inventoryService.findByWarehouseId(id);
}
// 使用GetMapping注解定义一个GET请求的处理器通过路径变量{id}查询某个商品在所有仓库的库存
@GetMapping("/commodity/{id}")
public List<Inventory> findByCommodity(@PathVariable String id) {
return inventoryService.findByCommodityId(id);
}
// 使用GetMapping注解定义一个GET请求的处理器通过路径变量{id}查询某个仓库库内商品的出库入库记录
@GetMapping("/record/warehouse/{id}")
public List<InventoryRecord> findRecordByWarehouse(@PathVariable String id) {
return recordService.findAllByWarehouseId(id);
}
// 使用GetMapping注解定义一个GET请求的处理器通过路径变量{id}查询某个商品在所有仓库出库入库记录
@GetMapping("/record/commodity/{id}")
public List<InventoryRecord> findRecordByCommodity(@PathVariable String id) {
return recordService.findAllByCommodityId(id);
}
// 使用PostMapping注解定义一个POST请求的处理器用于处理商品入库记录
@PostMapping("/in")
public InventoryRecord in(@RequestBody InventoryRecord record) throws Exception {
return recordService.in(record);
}
// 使用PostMapping注解定义一个POST请求的处理器用于处理商品出库记录
@PostMapping("/out")
public InventoryRecord out(@RequestBody InventoryRecord record) throws Exception {
return recordService.out(record);
}
}
Loading…
Cancel
Save