This commit is contained in:
zlwu committed 2026-09-02 13:23:38 +08:00
1 parent f231386592
commit 66d8769020
23 files changed
+78 -64

No files matched your search

@@ -64,7 +64,7 @@ public class XgStuMsgController extends BaseController {
@SaCheckPermission("test:stuMsg:query")
@GetMapping("/{id}")
public R<XgStuMsgVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
@PathVariable("id") Long id) {
return R.ok(xgStuMsgService.queryById(id));
}
@@ -99,7 +99,7 @@ public class XgStuMsgController extends BaseController {
@Log(title = "学生信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
@PathVariable("ids") Long[] ids) {
return toAjax(xgStuMsgService.deleteWithValidByIds(List.of(ids), true));
}
}
@@ -54,9 +54,9 @@ public class AssessmentApprovalController extends BaseController {
// @SaCheckPermission("bzrkh:assessmentApproval:query")
@GetMapping("/detail")
public R<AssessmentApprovalDetailVo> getApprovalDetail(
@RequestParam @NotNull(message = "计划ID不能为空") Long planId,
@RequestParam @NotNull(message = "班级ID不能为空") Long classId,
@RequestParam @NotNull(message = "被评价用户ID不能为空") Long evaluatedUserId) {
@RequestParam("planId") @NotNull(message = "计划ID不能为空") Long planId,
@RequestParam("classId") @NotNull(message = "班级ID不能为空") Long classId,
@RequestParam("evaluatedUserId") @NotNull(message = "被评价用户ID不能为空") Long evaluatedUserId) {
AssessmentApprovalDetailVo detail = assessmentApprovalService.getApprovalDetail(planId, classId,
evaluatedUserId);
return R.ok(detail);
@@ -136,7 +136,7 @@ public class AssessmentApprovalController extends BaseController {
*/
// @SaCheckPermission("bzrkh:assessmentApproval:query")
@GetMapping("/evaluationStats")
public R<EvaluationLevelStatsVo> getEvaluationLevelStats(@RequestParam @NotNull(message = "计划ID不能为空") Long planId) {
public R<EvaluationLevelStatsVo> getEvaluationLevelStats(@RequestParam("planId") @NotNull(message = "计划ID不能为空") Long planId) {
EvaluationLevelStatsVo stats = assessmentApprovalService.getEvaluationLevelStats(planId);
return R.ok(stats);
}
@@ -421,8 +421,8 @@ public class HqSatSurveyController extends BaseController {
@RequestParam(value = "status", required = false) String status,
@RequestParam(value = "userName", required = false) String userName,
@RequestParam(value = "dateRange", required = false) String[] dateRange,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize) {
@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
java.util.Map<String, Object> query = new java.util.HashMap<>();
query.put("status", status);
@@ -251,7 +251,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
@Log(title = "提交奖学金申请", businessType = BusinessType.UPDATE)
@PostMapping("/{id}/submit")
@Operation(summary = "提交申请")
public R<Void> submitApplication(@Parameter(description = "申请ID") @PathVariable @NotNull Long id) {
public R<Void> submitApplication(@Parameter(description = "申请ID") @PathVariable("id") @NotNull Long id) {
return toAjax(applicationService.submitApplication(id));
}
@@ -262,7 +262,7 @@ public class JcbtScholarshipApplicationController extends BaseController {
@Log(title = "撤回奖学金申请", businessType = BusinessType.UPDATE)
@PostMapping("/{id}/withdraw")
@Operation(summary = "撤回申请")
public R<Void> withdrawApplication(@Parameter(description = "申请ID") @PathVariable @NotNull Long id,
public R<Void> withdrawApplication(@Parameter(description = "申请ID") @PathVariable("id") @NotNull Long id,
@Parameter(description = "撤回原因") @RequestParam(value = "reason", required = false) String reason) {
return toAjax(applicationService.withdrawApplication(id, reason));
}
@@ -173,7 +173,7 @@ public class JcbtWorkStudyApplicationCollegeReviewController extends BaseControl
@PostMapping("/batchReview")
public R<Void> batchReview(
@Parameter(description = "申请ID列表") @RequestBody @NotEmpty(message = "申请ID不能为空") Collection<Long> ids,
@Parameter(description = "审核结果") @RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@Parameter(description = "审核结果") @RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@Parameter(description = "审核意见") @RequestParam("reviewComment") String reviewComment) {
// 权限检查:批量审核前检查所有申请是否属于当前用户学院
@@ -261,8 +261,8 @@ public class JcbtWorkStudyApplicationController extends BaseController {
@Log(title = "勤工俭学申请批量学院审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchCollegeReview")
public R<Void> batchCollegeReview(
@RequestParam @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam("ids") @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(value = "reviewComment", required = false) String reviewComment) {
return toAjax(workStudyApplicationService.batchCollegeReview(ids, reviewResult, reviewComment));
}
@@ -275,8 +275,8 @@ public class JcbtWorkStudyApplicationController extends BaseController {
@Log(title = "勤工俭学申请批量学生处审核", businessType = BusinessType.UPDATE)
@PostMapping("/batchFinalReview")
public R<Void> batchFinalReview(
@RequestParam @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam("ids") @NotEmpty(message = "申请ID不能为空") List<Long> ids,
@RequestParam("reviewResult") @NotNull(message = "审核结果不能为空") String reviewResult,
@RequestParam(value = "reviewComment", required = false) String reviewComment) {
return toAjax(workStudyApplicationService.batchFinalReview(ids, reviewResult, reviewComment));
}
@@ -141,8 +141,8 @@ public class JcbtWorkStudyApplicationStudentAffairsReviewController extends Base
@Log(title = "勤工俭学申请批量学工处审核", businessType = BusinessType.UPDATE)
@PutMapping("/batchReview")
public R<Void> batchReview(
@Parameter(description = "申请ID集合") @RequestParam @NotEmpty List<Long> ids,
@Parameter(description = "审核结果") @RequestParam @NotNull String reviewResult,
@Parameter(description = "申请ID集合") @RequestParam("ids") @NotEmpty List<Long> ids,
@Parameter(description = "审核结果") @RequestParam("reviewResult") @NotNull String reviewResult,
@Parameter(description = "审核意见") @RequestParam("reviewComment") String reviewComment) {
// 验证审核结果
@@ -176,7 +176,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
public TableDataInfo<JcbtWorkStudyPositionVo> visibleList(
JcbtWorkStudyPositionBo bo,
PageQuery pageQuery,
@Parameter(description = "是否排除已申请岗位") @RequestParam(defaultValue = "false") Boolean excludeApplied) {
@Parameter(description = "是否排除已申请岗位") @RequestParam(value = "excludeApplied", defaultValue = "false") Boolean excludeApplied) {
// 获取当前用户所在学院ID
Long collegeId = getCurrentUserCollegeId();
@@ -287,8 +287,8 @@ public class JcbtWorkStudyPositionController extends BaseController {
//@SaCheckPermission("jcbt:workStudyPosition:batchUpdateStatus")
@Log(title = "勤工俭学岗位信息", businessType = BusinessType.UPDATE)
@PutMapping("/batchUpdateStatus")
public R<Void> batchUpdateStatus(@RequestParam @NotEmpty(message = "岗位ID列表不能为空") List<Long> ids,
@RequestParam @NotNull(message = "状态不能为空") String status) {
public R<Void> batchUpdateStatus(@RequestParam("ids") @NotEmpty(message = "岗位ID列表不能为空") List<Long> ids,
@RequestParam("status") @NotNull(message = "状态不能为空") String status) {
return toAjax(workStudyPositionService.batchUpdateStatus(ids, status));
}
@@ -363,7 +363,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
@Operation(summary = "即将过期的岗位")
//@SaCheckPermission("jcbt:workStudyPosition:expiringPositions")
@GetMapping("/expiringPositions")
public R<List<JcbtWorkStudyPositionVo>> expiringPositions(@RequestParam(defaultValue = "7") int days) {
public R<List<JcbtWorkStudyPositionVo>> expiringPositions(@RequestParam(value = "days", defaultValue = "7") int days) {
return R.ok(workStudyPositionService.getExpiringPositions(days));
}
@@ -373,7 +373,7 @@ public class JcbtWorkStudyPositionController extends BaseController {
@Operation(summary = "热门岗位")
//@SaCheckPermission("jcbt:workStudyPosition:popularPositions")
@GetMapping("/popularPositions")
public R<List<JcbtWorkStudyPositionVo>> popularPositions(@RequestParam(defaultValue = "10") int limit) {
public R<List<JcbtWorkStudyPositionVo>> popularPositions(@RequestParam(value = "limit", defaultValue = "10") int limit) {
return R.ok(workStudyPositionService.getPopularPositions(limit));
}
@@ -86,7 +86,7 @@ public class RsOverseasApprovalMonitorController extends BaseController {
*/
// @SaCheckPermission("rs:overseas:query")
@GetMapping("/detail/{applicationId}")
public R<RsOverseasApprovalMonitorVo> getDetail(@PathVariable @NotNull(message = "申请ID不能为空") Long applicationId) {
public R<RsOverseasApprovalMonitorVo> getDetail(@PathVariable("applicationId") @NotNull(message = "申请ID不能为空") Long applicationId) {
log.info("查询申请详情,申请ID:{}", applicationId);
RsOverseasApprovalMonitorVo detail = monitorService.queryDetailWithApprovalInfo(applicationId);
return R.ok(detail);
@@ -121,7 +121,7 @@ public class RsOverseasApprovalMonitorController extends BaseController {
// @SaCheckPermission("rs:overseas:query")
@GetMapping("/downloadApprovalPdf/{applicationId}")
public void downloadApprovalPdf(
@PathVariable @NotNull(message = "申请ID不能为空") Long applicationId,
@PathVariable("applicationId") @NotNull(message = "申请ID不能为空") Long applicationId,
HttpServletResponse response) {
log.info("下载出国申请审批表PDF,申请ID:{}", applicationId);
monitorService.downloadApprovalPdf(applicationId, response);
@@ -154,10 +154,10 @@ public class StglClubAnnualReviewController extends BaseController {
@Log(title = "社团年审记录", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/audit")
public R<Void> audit(@RequestParam @NotNull(message = "年审记录ID不能为空") Long id,
@RequestParam @NotBlank(message = "审核结果不能为空") String auditResult,
public R<Void> audit(@RequestParam("id") @NotNull(message = "年审记录ID不能为空") Long id,
@RequestParam("auditResult") @NotBlank(message = "审核结果不能为空") String auditResult,
@RequestParam("auditOpinion") String auditOpinion,
@RequestParam @NotBlank(message = "审核类型不能为空") String auditType) {
@RequestParam("auditType") @NotBlank(message = "审核类型不能为空") String auditType) {
return toAjax(stglClubAnnualReviewService.auditReview(id, auditResult, auditOpinion, auditType));
}
@@ -167,8 +167,8 @@ public class StglClubAnnualReviewController extends BaseController {
@Operation(summary = "检查是否可以创建年审记录")
//@SaCheckPermission("stgl:clubAnnualReview:check")
@GetMapping("/check")
public R<Boolean> checkCanCreate(@RequestParam @NotNull(message = "社团ID不能为空") Long clubId,
@RequestParam @NotNull(message = "年审年度不能为空") Integer reviewYear) {
public R<Boolean> checkCanCreate(@RequestParam("clubId") @NotNull(message = "社团ID不能为空") Long clubId,
@RequestParam("reviewYear") @NotNull(message = "年审年度不能为空") Integer reviewYear) {
return R.ok(stglClubAnnualReviewService.checkCanCreateReview(clubId, reviewYear));
}
@@ -193,8 +193,8 @@ public class StglClubAnnualReviewController extends BaseController {
//@SaCheckPermission("stgl:clubAnnualReview:query")
@GetMapping("/clubActivities")
public R<List<org.dromara.stgl.domain.vo.StglActivityVo>> getClubActivities(
@RequestParam @NotNull(message = "社团ID不能为空") Long clubId,
@RequestParam @NotNull(message = "年审年度不能为空") Integer reviewYear) {
@RequestParam("clubId") @NotNull(message = "社团ID不能为空") Long clubId,
@RequestParam("reviewYear") @NotNull(message = "年审年度不能为空") Integer reviewYear) {
return R.ok(stglClubAnnualReviewService.getClubActivitiesByReviewYear(clubId, reviewYear));
}
@@ -139,7 +139,7 @@ public class StglClubRegisterController extends BaseController {
@Parameter(name = "limit", description = "推荐数量", required = false)
})
public R<List<StglClubRegisterVo>> getRecommendClubs(@RequestParam(value = "clubType", required = false) String clubType,
@RequestParam(required = false, defaultValue = "6") Integer limit) {
@RequestParam(value = "limit", required = false, defaultValue = "6") Integer limit) {
return R.ok(stglClubRegisterService.queryRecommendClubs(clubType, limit));
}
@@ -44,7 +44,7 @@ public class SysTeacherController extends BaseController {
//@SaCheckPermission("system:teacher:list")
@GetMapping("/search")
public R<List<SysTeacherVo>> searchByName(@RequestParam("name") String name,
@RequestParam(defaultValue = "10") Integer limit) {
@RequestParam(value = "limit", defaultValue = "10") Integer limit) {
List<SysTeacherVo> list = sysTeacherService.searchByName(name, limit);
return R.ok(list);
}
@@ -35,8 +35,8 @@ public class SysBucketPasswordController extends BaseController {
//@SaCheckPermission("system:bucket-password:reset")
@PostMapping("/reset")
public R<Void> resetBucketPassword(
@RequestParam @NotBlank(message = "bucket名称不能为空") String bucketName,
@RequestParam @NotBlank(message = "新密码不能为空") String newPassword) {
@RequestParam("bucketName") @NotBlank(message = "bucket名称不能为空") String bucketName,
@RequestParam("newPassword") @NotBlank(message = "新密码不能为空") String newPassword) {
try {
boolean success = bucketPasswordService.resetBucketPassword(bucketName, newPassword);
@@ -91,7 +91,7 @@ public class SysBucketPasswordController extends BaseController {
@GetMapping("/records/{bucketName}")
public R<Object> getBucketAccessRecords(
@PathVariable("bucketName") String bucketName,
@RequestParam(defaultValue = "10") Integer limit) {
@RequestParam(value = "limit", defaultValue = "10") Integer limit) {
try {
var records = bucketPasswordService.getBucketAccessRecords(bucketName, limit);
@@ -110,8 +110,8 @@ public class SysBucketPasswordController extends BaseController {
*/
@PostMapping("/validate")
public R<Boolean> validateBucketPassword(
@RequestParam @NotBlank(message = "bucket名称不能为空") String bucketName,
@RequestParam @NotBlank(message = "密码不能为空") String password) {
@RequestParam("bucketName") @NotBlank(message = "bucket名称不能为空") String bucketName,
@RequestParam("password") @NotBlank(message = "密码不能为空") String password) {
try {
boolean isValid = bucketPasswordService.validateBucketPassword(
@@ -48,7 +48,7 @@ public class SysFileAccessController extends BaseController {
public R<String> getFileAccessUrl(
@PathVariable("ossId") Long ossId,
@RequestParam(value = "bucketPassword", required = false) String bucketPassword,
@RequestParam(defaultValue = "300") Integer expireSeconds,
@RequestParam(value = "expireSeconds", defaultValue = "300") Integer expireSeconds,
HttpServletRequest request) {
// 权限检查:只有登录用户才能获取文件访问URL
@@ -107,7 +107,7 @@ public class SysFileAccessController extends BaseController {
public R<Map<Long, String>> getBatchFileAccessUrl(
@RequestBody List<Long> ossIds,
@RequestParam(value = "bucketPassword", required = false) String bucketPassword,
@RequestParam(defaultValue = "300") Integer expireSeconds,
@RequestParam(value = "expireSeconds", defaultValue = "300") Integer expireSeconds,
HttpServletRequest request) {
// 权限检查
@@ -160,7 +160,7 @@ public class SysFileAccessController extends BaseController {
public R<String> getFileDownloadUrl(
@PathVariable("ossId") Long ossId,
@RequestParam(value = "bucketPassword", required = false) String bucketPassword,
@RequestParam(defaultValue = "300") Integer expireSeconds,
@RequestParam(value = "expireSeconds", defaultValue = "300") Integer expireSeconds,
HttpServletRequest request) {
// 权限检查
@@ -214,7 +214,7 @@ public class SysFileAccessController extends BaseController {
public R<String> getFilePreviewUrl(
@PathVariable("ossId") Long ossId,
@RequestParam(value = "bucketPassword", required = false) String bucketPassword,
@RequestParam(defaultValue = "300") Integer expireSeconds,
@RequestParam(value = "expireSeconds", defaultValue = "300") Integer expireSeconds,
HttpServletRequest request) {
// 权限检查
@@ -306,7 +306,7 @@ public class SysUserController extends BaseController {
*/
//@SaCheckPermission("system:user:list")
@GetMapping("/list/dept/{deptId}")
public R<List<SysUserVo>> listByDept(@PathVariable @NotNull Long deptId) {
public R<List<SysUserVo>> listByDept(@PathVariable("deptId") @NotNull Long deptId) {
return R.ok(userService.selectUserListByDept(deptId));
}
@@ -112,8 +112,8 @@ public class XgDormManagerSourceController extends BaseController {
@Log(title = "分配管理员数据范围", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/assignScope")
public R<Void> assignScope(@RequestParam @NotNull(message = "管理员ID不能为空") Long managerId,
@RequestParam @NotNull(message = "授权类型不能为空") Character authType,
public R<Void> assignScope(@RequestParam("managerId") @NotNull(message = "管理员ID不能为空") Long managerId,
@RequestParam("authType") @NotNull(message = "授权类型不能为空") Character authType,
@RequestBody List<Long> authSourceIds) {
return toAjax(xgDormManagerSourceService.assignScope(managerId, authType, authSourceIds));
}
@@ -127,8 +127,8 @@ public class XgDormManagerSourceController extends BaseController {
*/
// @SaCheckPermission("glysqgx:dormManagerSource:query")
@GetMapping("/getScopeNames")
public R<String> getScopeNames(@RequestParam @NotNull(message = "管理员ID不能为空") Long managerId,
@RequestParam @NotNull(message = "管理员类型不能为空") Integer managerType) {
public R<String> getScopeNames(@RequestParam("managerId") @NotNull(message = "管理员ID不能为空") Long managerId,
@RequestParam("managerType") @NotNull(message = "管理员类型不能为空") Integer managerType) {
return R.ok(xgDormManagerSourceService.getScopeNames(managerId, managerType));
}
}
@@ -53,7 +53,7 @@ public class XgStudentController extends BaseController {
// @SaCheckPermission("xg:student:list")
@GetMapping("/search")
public R<List<XgStudentVo>> searchByName(@RequestParam("name") String name,
@RequestParam(defaultValue = "10") Integer limit) {
@RequestParam(value = "limit", defaultValue = "10") Integer limit) {
List<XgStudentVo> list = xgStudentService.searchByName(name, limit);
return R.ok(list);
}
@@ -197,9 +197,9 @@ public class XgStudentMsgBatchController extends BaseController {
@Log(title = "驳回学生信息提交", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/rejectStudentMsg")
public R<Void> rejectStudentMsg(@RequestParam @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam @NotNull(message = "用户ID不能为空") Long userId,
@RequestParam @NotBlank(message = "驳回原因不能为空") String remark) {
public R<Void> rejectStudentMsg(@RequestParam("batchId") @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam("userId") @NotNull(message = "用户ID不能为空") Long userId,
@RequestParam("remark") @NotBlank(message = "驳回原因不能为空") String remark) {
return toAjax(xgStudentMsgBatchService.rejectStudentMsg(batchId, userId, remark));
}
@@ -214,8 +214,8 @@ public class XgStudentMsgBatchController extends BaseController {
@Log(title = "审核通过学生信息提交", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/approveStudentMsg")
public R<Void> approveStudentMsg(@RequestParam @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam @NotNull(message = "用户ID不能为空") Long userId,
public R<Void> approveStudentMsg(@RequestParam("batchId") @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam("userId") @NotNull(message = "用户ID不能为空") Long userId,
@RequestParam(value = "remark", required = false) String remark) {
return toAjax(xgStudentMsgBatchService.approveStudentMsg(batchId, userId, remark));
}
@@ -229,8 +229,8 @@ public class XgStudentMsgBatchController extends BaseController {
*/
// @SaCheckPermission("studentMsgBatch:studentMsgBatch:query")
@GetMapping("/compareStudentMsg")
public R<Map<String, Object>> compareStudentMsg(@RequestParam @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam @NotNull(message = "用户ID不能为空") Long userId) {
public R<Map<String, Object>> compareStudentMsg(@RequestParam("batchId") @NotNull(message = "批次ID不能为空") Long batchId,
@RequestParam("userId") @NotNull(message = "用户ID不能为空") Long userId) {
return R.ok(xgStudentMsgBatchService.compareStudentMsg(batchId, userId));
}
@@ -1309,7 +1309,7 @@ public class XgStudentMsgController extends BaseController {
*/
// @SaCheckPermission("studentMsg:studentMsg:list")
@GetMapping("/getStudentTree")
public R<List<XgStudentTreeVo>> getStudentTree(@RequestParam(defaultValue = "101") Long secondaryCollegeId) {
public R<List<XgStudentTreeVo>> getStudentTree(@RequestParam(value = "secondaryCollegeId", defaultValue = "101") Long secondaryCollegeId) {
log.info("获取学生信息树,二级学院ID: {}", secondaryCollegeId);
List<XgStudentTreeVo> studentTree = xgStudentMsgService.getStudentTree(secondaryCollegeId);
return R.ok(studentTree);
@@ -92,8 +92,8 @@ public class XljkConsultationAppointmentController extends BaseController {
*/
@GetMapping("/available-slots")
public R<List<Map<String, Object>>> getAvailableTimeSlots(
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
@RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
List<Map<String, Object>> slots = service.getAvailableTimeSlots(startDate, endDate);
return R.ok(slots);
}
@@ -103,7 +103,7 @@ public class XljkConsultationAppointmentController extends BaseController {
*/
@GetMapping("/available-detail-slots")
public R<List<TimeSlotDetailVo>> getAvailableDetailSlots(
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date date,
@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Date date,
@RequestParam("timeSlot") String timeSlot) {
List<TimeSlotDetailVo> detailSlots = service.getAvailableDetailSlots(date, timeSlot);
return R.ok(detailSlots);
@@ -119,8 +119,8 @@ public class XskhDisciplineRecordController extends BaseController {
@GetMapping("/studentOptionsPage")
public R<List<XskhStudentOptionVo>> getStudentOptionsPage(
@RequestParam(value = "keyword", required = false) String keyword,
@RequestParam(required = false, defaultValue = "1") Integer pageNum,
@RequestParam(required = false, defaultValue = "20") Integer pageSize) {
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize) {
return R.ok(xskhDisciplineRecordService.getStudentOptionsPage(keyword, pageNum, pageSize));
}
@@ -74,7 +74,7 @@ public class ZsjyQrCodeController extends BaseController {
@GetMapping("/{id}")
public R<ZsjyQrCodeVo> getInfo(
@Parameter(description = "二维码ID", required = true)
@PathVariable @NotNull(message = "主键不能为空") Long id) {
@PathVariable("id") @NotNull(message = "主键不能为空") Long id) {
return R.ok(qrCodeService.queryById(id));
}
@@ -111,7 +111,7 @@ public class ZsjyQrCodeController extends BaseController {
@DeleteMapping("/{ids}")
public R<Void> remove(
@Parameter(description = "二维码ID数组", required = true)
@PathVariable @NotEmpty(message = "主键不能为空") Long[] ids) {
@PathVariable("ids") @NotEmpty(message = "主键不能为空") Long[] ids) {
return toAjax(qrCodeService.deleteWithValidByIds(Arrays.asList(ids), true));
}
@@ -144,7 +144,7 @@ public class ZsjyQrCodeController extends BaseController {
@PostMapping("/increment/{id}")
public R<Void> incrementUsage(
@Parameter(description = "二维码ID", required = true)
@PathVariable @NotNull(message = "主键不能为空") Long id) {
@PathVariable("id") @NotNull(message = "主键不能为空") Long id) {
return toAjax(qrCodeService.incrementUsage(id));
}
@@ -50,6 +50,7 @@ mvn clean package -Pprod -Dmaven.compiler.parameters=true
# 等价简写(父 POM 已默认开启 maven.compiler.parameters=true,也可直接用):
# mvn clean package -Pprod
mvn clean package -Pprod -Dmaven.test.skip=true
# 检查生成的JAR文件
ls -la ruoyi-admin/target/ruoyi-admin.jar
@@ -138,12 +139,14 @@ docker-compose -f docker-compose-multi.yml down
## 🌐 访问地址
### 直接访问各实例
- **实例1**: http://localhost:9900
- **实例2**: http://localhost:9901
- **实例3**: http://localhost:9902
- **实例4**: http://localhost:9903
### 通过负载均衡器访问
- **主入口**: http://localhost (Nginx负载均衡)
- **监控页面**: http://localhost:8080/status
@@ -185,18 +188,22 @@ netstat -tlnp | grep :99
## ⚠️ 注意事项
### 1. 端口冲突
- 确保9900-9903端口未被其他服务占用
- 检查防火墙设置,确保端口可访问
### 2. 内存配置
- 每个实例默认配置:最小512MB,最大1024MB
- 根据服务器配置调整 `JAVA_OPTS` 参数
### 3. 数据库连接
- 所有实例共享同一个数据库
- 确保数据库连接池配置合理,避免连接数过多
### 4. 文件上传
- 临时文件目录:`/ruoyi/server/temp`
- 确保目录存在且有写权限
@@ -244,12 +251,14 @@ curl http://localhost:9900/health
## 📈 性能优化建议
### 1. JVM调优
```bash
# 根据服务器内存调整JVM参数
JAVA_OPTS="-Xms2g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
```
### 2. 数据库连接池优化
```yaml
# 在application-prod-*.yml中调整
spring:
@@ -261,6 +270,7 @@ spring:
```
### 3. 缓存配置
```yaml
# Redis连接池优化
redisson:
@@ -273,16 +283,19 @@ redisson:
## 🚀 扩展部署
### 1. 添加更多实例
- 复制配置文件模板
- 修改端口号和应用名称
- 更新启动脚本和Docker配置
### 2. 集群部署
- 使用Redis集群
- 配置数据库主从复制
- 实现会话共享
### 3. 容器化部署
- 使用Kubernetes管理
- 配置自动扩缩容
- 实现滚动更新
@@ -290,6 +303,7 @@ redisson:
## 📞 技术支持
如遇到部署问题,请检查:
1. 系统日志和应用日志
2. 端口占用情况
3. 防火墙和网络配置