diff --git a/chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java b/chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java index f20174a..9f77d15 100644 --- a/chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java +++ b/chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java @@ -481,4 +481,43 @@ public class VetQualificationController extends BaseController vetQualificationService.manualCheckCertificates(userId); return success("证书检查完成"); } + + /** + * 下架资质 + */ + @PreAuthorize("@ss.hasPermi('vet:qualification:unshelf')") + @Log(title = "兽医资质下架", businessType = BusinessType.UPDATE) + @PostMapping("/unshelf/{qualificationId}") + public AjaxResult unshelf(@PathVariable Long qualificationId, + @RequestParam(required = false) String reason) { + try { + int result = vetQualificationService.unshelfQualification(qualificationId, reason); + if (result > 0) { + return AjaxResult.success("下架成功"); + } else { + return AjaxResult.error("下架失败"); + } + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + } + + /** + * 上架资质 + */ + @PreAuthorize("@ss.hasPermi('vet:qualification:shelf')") + @Log(title = "兽医资质上架", businessType = BusinessType.UPDATE) + @PostMapping("/shelf/{qualificationId}") + public AjaxResult shelf(@PathVariable Long qualificationId) { + try { + int result = vetQualificationService.shelfQualification(qualificationId); + if (result > 0) { + return AjaxResult.success("上架成功"); + } else { + return AjaxResult.error("上架失败"); + } + } catch (Exception e) { + return AjaxResult.error(e.getMessage()); + } + } } \ No newline at end of file diff --git a/chenhai-system/src/main/java/com/chenhai/vet/domain/VetQualification.java b/chenhai-system/src/main/java/com/chenhai/vet/domain/VetQualification.java index c4cb6ab..acf788c 100644 --- a/chenhai-system/src/main/java/com/chenhai/vet/domain/VetQualification.java +++ b/chenhai-system/src/main/java/com/chenhai/vet/domain/VetQualification.java @@ -60,7 +60,7 @@ public class VetQualification extends BaseEntity @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date auditTime; - /** 审核状态(0待审核 1通过 2拒绝) */ + /** 审核状态(0待审核 1通过 2拒绝 3下架) */ @Excel(name = "审核状态", dictType = "qualification_shenhe") private String auditStatus; diff --git a/chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java b/chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java index 3304f02..583c9c8 100644 --- a/chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java +++ b/chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java @@ -88,4 +88,14 @@ public interface IVetQualificationService */ Map getCertificateStatistics(Long userId); + /** + * 下架资质 + */ + int unshelfQualification(Long qualificationId, String reason); + + /** + * 上架资质 + */ + int shelfQualification(Long qualificationId); + } \ No newline at end of file diff --git a/chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java b/chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java index 025aa79..32cbc9c 100644 --- a/chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java +++ b/chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java @@ -1,6 +1,7 @@ package com.chenhai.vet.service.impl; import com.chenhai.common.utils.DateUtils; +import com.chenhai.common.utils.SecurityUtils; import com.chenhai.common.utils.StringUtils; import com.chenhai.vet.domain.VetQualification; import com.chenhai.vet.mapper.VetQualificationMapper; @@ -368,4 +369,70 @@ public class VetQualificationServiceImpl implements IVetQualificationService return statistics; } + + @Override + public int unshelfQualification(Long qualificationId, String reason) { + // 1. 获取资质信息 + VetQualification existing = selectVetQualificationByQualificationId(qualificationId); + if (existing == null) { + throw new RuntimeException("资质信息不存在"); + } + + // 2. 逻辑判断:必须是已上架状态 + if (!"1".equals(existing.getAuditStatus())) { + throw new RuntimeException("只有已上架的资质才能下架"); + } + + // 3. 执行下架 + VetQualification update = new VetQualification(); + update.setQualificationId(qualificationId); + update.setAuditStatus("3"); // 3=已下架 + update.setAuditOpinion(reason != null ? "下架原因:" + reason : "管理员下架"); + update.setAuditTime(new Date()); + update.setUpdateTime(new Date()); + + // 记录操作人 + try { + String username = SecurityUtils.getUsername(); + update.setUpdateBy(username); + update.setAuditorId(SecurityUtils.getUserId()); + } catch (Exception e) { + update.setUpdateBy("system"); + } + + return vetQualificationMapper.updateVetQualification(update); + } + + @Override + public int shelfQualification(Long qualificationId) { + // 1. 获取资质信息 + VetQualification existing = selectVetQualificationByQualificationId(qualificationId); + if (existing == null) { + throw new RuntimeException("资质信息不存在"); + } + + // 2. 逻辑判断:必须是已下架状态 + if (!"3".equals(existing.getAuditStatus())) { + throw new RuntimeException("只有已下架的资质才能上架"); + } + + // 3. 执行上架 + VetQualification update = new VetQualification(); + update.setQualificationId(qualificationId); + update.setAuditStatus("1"); // 1=已上架 + update.setAuditOpinion("重新上架"); + update.setAuditTime(new Date()); + update.setUpdateTime(new Date()); + + // 记录操作人 + try { + String username = SecurityUtils.getUsername(); + update.setUpdateBy(username); + update.setAuditorId(SecurityUtils.getUserId()); + } catch (Exception e) { + update.setUpdateBy("system"); + } + + return vetQualificationMapper.updateVetQualification(update); + } } \ No newline at end of file diff --git a/chenhai-ui/src/api/vet/qualification.js b/chenhai-ui/src/api/vet/qualification.js index 0f19c56..237b26b 100644 --- a/chenhai-ui/src/api/vet/qualification.js +++ b/chenhai-ui/src/api/vet/qualification.js @@ -105,3 +105,21 @@ export function submitQualification(data) { }) } + // 下架资质 + export function unshelfQualification(qualificationId, reason) { + return request({ + url: '/vet/qualification/unshelf/' + qualificationId, + method: 'post', + params: { reason: reason } + }) + } + +// 上架资质 + export function shelfQualification(qualificationId) { + return request({ + url: '/vet/qualification/shelf/' + qualificationId, + method: 'post' + }) + +} + diff --git a/chenhai-ui/src/views/vet/qualification/index.vue b/chenhai-ui/src/views/vet/qualification/index.vue index 9f5cc4e..3915e24 100644 --- a/chenhai-ui/src/views/vet/qualification/index.vue +++ b/chenhai-ui/src/views/vet/qualification/index.vue @@ -148,130 +148,77 @@ - + @@ -352,11 +299,11 @@