控制层与服务层

main^2
R 4 months ago
parent e7fb44ce43
commit 9466d76e7b

@ -12,17 +12,20 @@ import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
// Spring Boot 启动类
@SpringBootApplication
//告诉 MyBatis 扫描 com.jiudian.manage.mapper 包下的所有接口
@MapperScan(value = "com.jiudian.manage.mapper")
public class ManageApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ManageApplication.class, args);
}
//主方法,启动 Spring 容器
// 构建跨域配置对象
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
//许任何前端域名访问
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");

@ -1,5 +1,8 @@
package com.jiudian.manage.controller;
//业务相关类User用户实体封装用户 ID、账号、权限等信息、UserServiceImpl用户服务实现类处理用户业务逻辑
//工具与常量类ImageCode验证码生成工具类、State状态常量类如成功 / 错误码、StateSignal统一响应格式工具类
//Spring 与 Servlet 类:@RestControllerREST 控制器注解)、@RequestMappingURL 映射)、@RequestParam接收请求参数、HttpServletResponse输出响应如验证码图片、HttpSession存储会话数据如验证码
//基础类List存储用户列表、Map接口返回的 JSON 格式载体、IOException处理验证码生成的 IO 异常)
import com.jiudian.manage.model.Room;
import com.jiudian.manage.service.RoomService;
import com.jiudian.manage.until.State;
@ -44,7 +47,7 @@ public class RoomController {
}
return signal.getResult();
}
@RequestMapping("/getRoom.do")
@RequestMapping("/getRoom.do") //
public Map selectRoom(@RequestParam int state,@RequestParam int type,@RequestParam int pageNum,@RequestParam int pageSize){
List<Room> roomByState = roomService.getRoomByState(state, type,pageNum,pageSize);
StateSignal signal = new StateSignal();

@ -5,20 +5,22 @@ import org.springframework.stereotype.Repository;
import java.util.List;
//MyBatis 的 Mapper 接口,用于定义与房间表相关的数据库操作
//标记当前接口是 “数据访问层组件”,让 Spring 扫描时能识别并管理;
@Repository
public interface RoomMapper {
//传入要删除的房间 ID用 Integer 而非 int支持 null 判断,避免传入无效值);
int deleteByPrimaryKey(Integer roomid);
//全字段插入房间
int insert(Room record);
//选择性插入房间
int insertSelective(Room record);
//按主键查询房间
Room selectByPrimaryKey(Integer roomid);
//选择性更新房间
int updateByPrimaryKeySelective(Room record);
//全字段更新房间
int updateByPrimaryKey(Room record);
//按状态和类型查询房间列表
List<Room> selectRoomByStateType(Room stateType);

@ -15,7 +15,7 @@ public class FileUtil {
if(!targetFile.exists()){
targetFile.mkdirs();
}
//写入文件
//写入文件将文件二进制流byte[] file写入指定路径filePath+fileName
FileOutputStream out = new FileOutputStream(filePath+fileName);
out.write(file);
out.flush();

@ -1,8 +1,11 @@
package com.jiudian.manage.until;
//图像处理BufferedImage图像缓冲区用于绘制验证码图片、Graphics绘图工具用于画背景、文字、干扰元素
// ImageIO将图像写入输出流返回给前端
//Servlet 相关HttpServletResponse向前端输出图片流、HttpSession存储正确验证码供后续验证使用
//基础工具Random生成随机数用于随机颜色、位置、OutputStream字节输出流承载图片数据、IOException处理图像写入的 IO 异常)。
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSession;//服务器端的会话存储
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
@ -12,6 +15,8 @@ import java.util.Random;
public class ImageCode {
public static final String CODENAME="ImageCode";
//* 生成验证码图片并发送到客户端
//HttpServletResponse responseServlet 响应对象,用于将生成的图片流写入前端(前端通过 <img> 标签加载);
//HttpSession session会话对象用于存储正确的验证码后续登录时前端传入的验证码需与 Session 中的值对比
public static void createImage(HttpServletResponse response, HttpSession session) throws IOException {
// 创建图像缓冲区
BufferedImage image = new BufferedImage(80, 30, BufferedImage.TYPE_INT_RGB);

@ -1,10 +1,13 @@
package com.jiudian.manage.until;
//HashMap 是 Java 中的哈希表集合用于存储键值对key-value
// 此处作为响应数据的载体,能灵活存储状态码、消息、业务数据等不同类型的信息。
import java.util.HashMap;
//StateSignal类是一个响应结果构建器
//统一了 API 响应格式:所有接口返回包含状态码和消息的标准格式
public class StateSignal {
// 存储响应数据的HashMap
//定义 result 为 HashMap 类型key是字符串类型如 “code”“message”“user”
// 值value是 Object 类型(支持存储数字、字符串、实体类对象等任意类型数据)
HashMap<String,Object> result = new HashMap<String,Object>();
/**
*
@ -18,6 +21,7 @@ public class StateSignal {
* @param name
* @param val
*/
//object val自定义值可是任意类型如 List<User> 列表、int 类型的用户 ID、double 类型的价格);
public void put(String name,Object val){
result.put(name,val);
}

Loading…
Cancel
Save