You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nursing-home-management-system/server/src/main/java/com/ew/gerocomium/controller/DepositRechargeController.java

110 lines
8.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 声明该类所属的包,用于组织代码结构,体现代码的模块划分
package com.ew.gerocomium.controller;
// 导入自定义的常量类,该类可能包含项目中的通用常量,如开发者信息等
import com.ew.gerocomium.common.constant.Constant;
// 导入自定义的基础结果类,用于封装接口返回的结果,包含操作状态、消息和数据等
import com.ew.gerocomium.dao.base.Result;
// 导入分页查询预存充值记录的请求实体类,用于封装查询条件和分页信息
import com.ew.gerocomium.dao.query.PageCheckContractByKeyQuery;
// 导入分页查询预存充值的请求实体类,用于封装查询条件和分页信息
import com.ew.gerocomium.dao.query.PageDepositRechargeByKeyQuery;
// 导入分页搜索老人的请求实体类,用于封装搜索条件和分页信息
import com.ew.gerocomium.dao.query.PageSearchElderByKeyQuery;
// 导入入住老人账户充值的请求实体类,用于封装充值相关信息
import com.ew.gerocomium.dao.query.RechargeQuery;
// 导入预存充值业务逻辑的服务类,负责处理预存充值相关的具体业务操作
import com.ew.gerocomium.service.DepositRechargeService;
// 导入 Swagger 的注解,用于生成 API 文档时对控制器进行分类和描述
import io.swagger.annotations.Api;
// 导入 Swagger 的注解,用于描述 API 操作的详细信息,如操作名称和备注
import io.swagger.annotations.ApiOperation;
// 导入 Swagger 的注解,用于描述 API 参数的详细信息,如参数名称、是否必填等
import io.swagger.annotations.ApiParam;
// 导入 Spring Security 的注解,用于在方法执行前进行权限验证
import org.springframework.security.access.prepost.PreAuthorize;
// 导入 Spring MVC 的注解,用于处理 HTTP 请求,定义请求映射和请求方法等
import org.springframework.web.bind.annotation.*;
// 导入 Spring 的注解,用于实现依赖注入,将所需的服务类实例注入到当前类中
import javax.annotation.Resource;
/**
* 预存充值控制器类,用于处理与预存充值相关的各种操作请求,如分页查询预存充值记录、分页搜索老人以及入住老人账户充值等。
*/
// 使用 Swagger 的 @Api 注解,标记该控制器的标签为“预存充值”,方便在生成 API 文档时进行分类展示
@Api(tags = "预存充值")
// 使用 Spring MVC 的 @RestController 注解,将该类标记为 RESTful 风格的控制器,用于处理 HTTP 请求并返回 JSON 等格式的响应
@RestController
// 使用 Spring MVC 的 @RequestMapping 注解,定义该控制器的基础请求路径为 /depositRecharge该控制器下的所有请求都以此为前缀
@RequestMapping("/depositRecharge")
// 使用 Spring Security 的 @PreAuthorize 注解,进行权限控制,只有拥有指定权限(/fee/pay的用户才能访问该控制器的方法
@PreAuthorize("@AuthorityAssert.hasAuthority('/fee/pay')")
public class DepositRechargeController {
// 使用 @Resource 注解,将 DepositRechargeService 类型的实例注入到当前类中,以便调用其方法处理预存充值相关业务逻辑
@Resource
private DepositRechargeService depositRechargeService;
/**
* 分页查询预存充值记录的方法。
*
* @param pageDepositRechargeByKeyQuery 分页查询预存充值的请求实体,包含查询条件(如充值时间、充值金额范围等)和分页信息(如页码、每页数量等)。
* @param token 接口访问请求头中的令牌,用于身份验证,确保只有合法用户才能访问该接口。
* @return 包含分页查询预存充值记录操作结果的 Result 对象,封装了操作是否成功以及查询到的预存充值数据列表等信息。
*/
// 使用 Spring MVC 的 @GetMapping 注解,处理 HTTP GET 请求,路径为 /depositRecharge/pageDepositRechargeByKey
@GetMapping("/pageDepositRechargeByKey")
// 使用 Swagger 的 @ApiOperation 注解,描述该 API 操作的名称为“分页查询预存充值”,并添加备注信息(包含开发者信息)
@ApiOperation(value = "分页查询预存充值", notes = Constant.DEVELOPER + Constant.EMPEROR_WEN)
public Result pageDepositRechargeByKey(
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“分页查询预存充值请求实体”,并标记为必需参数
@ApiParam(value = "分页查询预存充值请求实体", required = true)
PageDepositRechargeByKeyQuery pageDepositRechargeByKeyQuery,
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“接口访问请求头”,并标记为必需参数,同时使用 @RequestHeader 注解从请求头中获取该参数值
@ApiParam(value = "接口访问请求头", required = true) @RequestHeader String token) {
// 调用 DepositRechargeService 的 pageDepositRechargeByKey 方法,传入分页查询请求实体,获取分页查询的预存充值记录信息并返回结果
return depositRechargeService.pageDepositRechargeByKey(pageDepositRechargeByKeyQuery);
}
/**
* 分页搜索老人的方法。
*
* @param pageSearchElderByKeyQuery 分页搜索老人的请求实体,包含搜索条件(如老人姓名、身份证号等)和分页信息(如页码、每页数量等)。
* @param token 接口访问请求头中的令牌,用于身份验证,确保只有合法用户才能访问该接口。
* @return 包含分页搜索老人操作结果的 Result 对象,封装了操作是否成功以及搜索到的老人数据列表等信息。
*/
// 使用 Spring MVC 的 @GetMapping 注解,处理 HTTP GET 请求,路径为 /depositRecharge/pageSearchElderByKey
@GetMapping("/pageSearchElderByKey")
// 使用 Swagger 的 @ApiOperation 注解,描述该 API 操作的名称为“分页搜索老人”,并添加备注信息(包含开发者信息)
@ApiOperation(value = "分页搜索老人", notes = Constant.DEVELOPER + Constant.EMPEROR_WEN)
public Result pageSearchElderByKey(
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“分页搜索老人请求实体”,并标记为必需参数
@ApiParam(value = "分页搜索老人请求实体", required = true)
PageSearchElderByKeyQuery pageSearchElderByKeyQuery,
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“接口访问请求头”,并标记为必需参数,同时使用 @RequestHeader 注解从请求头中获取该参数值
@ApiParam(value = "接口访问请求头", required = true) @RequestHeader String token) {
// 调用 DepositRechargeService 的 pageSearchElderByKey 方法,传入分页搜索请求实体,获取分页搜索的老人信息并返回结果
return depositRechargeService.pageSearchElderByKey(pageSearchElderByKeyQuery);
}
/**
* 入住老人账户充值的方法。
*
* @param rechargeQuery 入住老人账户充值的请求实体,包含充值的详细信息,如老人编号、充值金额等。
* @param token 接口访问请求头中的令牌,用于身份验证,确保只有合法用户才能访问该接口。
* @return 包含入住老人账户充值操作结果的 Result 对象,封装了操作是否成功以及可能的错误信息等。
*/
// 使用 Spring MVC 的 @PutMapping 注解,处理 HTTP PUT 请求,路径为 /depositRecharge/recharge
@PutMapping("/recharge")
// 使用 Swagger 的 @ApiOperation 注解,描述该 API 操作的名称为“入住老人账户充值”,并添加备注信息(包含开发者信息)
@ApiOperation(value = "入住老人账户充值", notes = Constant.DEVELOPER + Constant.EMPEROR_WEN)
public Result recharge(
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“入住老人账户充值请求实体”,并标记为必需参数,同时使用 @RequestBody 注解从请求体中获取该参数值
@ApiParam(value = "入住老人账户充值请求实体", required = true) @RequestBody
RechargeQuery rechargeQuery,
// 使用 Swagger 的 @ApiParam 注解,描述该参数的作用为“接口访问请求头”,并标记为必需参数,同时使用 @RequestHeader 注解从请求头中获取该参数值
@ApiParam(value = "接口访问请求头", required = true) @RequestHeader String token) {
// 调用 DepositRechargeService 的 recharge 方法,传入入住老人账户充值请求实体,执行充值操作并返回结果
return depositRechargeService.recharge(rechargeQuery);
}
}