Browse Source

删除资质上传的上架和下架接口

master
ChaiNingQi 1 month ago
parent
commit
d6da7db120
  1. 95
      chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java
  2. 2
      chenhai-system/src/main/java/com/chenhai/vet/domain/VetQualification.java
  3. 10
      chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java
  4. 71
      chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java
  5. 16
      chenhai-ui/src/api/vet/qualification.js
  6. 84
      chenhai-ui/src/views/vet/qualification/index.vue

95
chenhai-admin/src/main/java/com/chenhai/web/controller/vet/VetQualificationController.java

@ -88,62 +88,6 @@ public class VetQualificationController extends BaseController
return AjaxResult.success(options);
}
/**
* 上传资质文件关联兽医资质ID
*/
@PreAuthorize("@ss.hasPermi('vet:qualification:edit')")
@Log(title = "兽医资质文件上传", businessType = BusinessType.UPDATE)
@PostMapping("/upload")
public AjaxResult uploadQualificationFile(@RequestParam("file") MultipartFile file) {
try {
if (file.isEmpty()) {
return AjaxResult.error("文件不能为空");
}
String originalFileName = file.getOriginalFilename();
String ext = FileUtils.getExtension(originalFileName).toLowerCase();
String[] allowedExts = {"jpg", "png", "pdf", "doc", "docx", "xls", "xlsx"};
boolean isAllowed = FileUtils.isAllowedExtension(originalFileName, allowedExts);
if (!isAllowed) {
return AjaxResult.error("文件类型不允许");
}
String basePath = uploadRootPath;
String subPath = "vet/qualification";
String datePath = new SimpleDateFormat("yyyy/MM/dd").format(new Date());
String fullPath = basePath + File.separator + subPath + File.separator + datePath;
File destDir = new File(fullPath);
if (!destDir.exists()) {
destDir.mkdirs();
}
String uuid = UUID.randomUUID().toString().replace("-", "");
String fileName = uuid + "_" + originalFileName;
String filePath = fullPath + File.separator + fileName;
File destFile = new File(filePath);
file.transferTo(destFile);
String fileUrl = "/" + subPath + "/" + datePath + "/" + fileName;
String downloadUrl = "/common/download?fileName=" + URLEncoder.encode(fileUrl, "UTF-8");
Map<String, Object> data = new HashMap<>();
data.put("fileName", originalFileName);
data.put("fileUrl", fileUrl);
data.put("downloadUrl", downloadUrl);
data.put("filePath", fileUrl);
data.put("fileSize", file.getSize());
data.put("uuid", uuid);
return AjaxResult.success("上传成功", data);
} catch (Exception e) {
log.error("文件上传失败", e);
return AjaxResult.error("上传失败: " + e.getMessage());
}
}
/**
* 查询兽医资质列表含证书信息
@ -481,43 +425,4 @@ 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());
}
}
}

2
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拒绝 3下架) */
/** 审核状态(0待审核 1通过 2拒绝 ) */
@Excel(name = "审核状态", dictType = "qualification_shenhe")
private String auditStatus;

10
chenhai-system/src/main/java/com/chenhai/vet/service/IVetQualificationService.java

@ -88,14 +88,4 @@ public interface IVetQualificationService
*/
Map<String, Object> getCertificateStatistics(Long userId);
/**
* 下架资质
*/
int unshelfQualification(Long qualificationId, String reason);
/**
* 上架资质
*/
int shelfQualification(Long qualificationId);
}

71
chenhai-system/src/main/java/com/chenhai/vet/service/impl/VetQualificationServiceImpl.java

@ -108,13 +108,13 @@ public class VetQualificationServiceImpl implements IVetQualificationService
@Override
public int insertVetQualification(VetQualification vetQualification) {
if (vetQualification.getAuditStatus() == null) {
vetQualification.setAuditStatus(null);
vetQualification.setAuditStatus("3");
}
if (vetQualification.getCertificateFiles() == null ||
/*if (vetQualification.getCertificateFiles() == null ||
vetQualification.getCertificateFiles().isEmpty()) {
vetQualification.setCertificateFiles("default.pdf");
}
*/
if (vetQualification.getScopeIds() != null && !vetQualification.getScopeIds().isEmpty()) {
String scopeNames = getScopeNamesFromDict(vetQualification.getScopeIds());
vetQualification.setScopeNames(scopeNames);
@ -370,69 +370,4 @@ 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);
}
}

16
chenhai-ui/src/api/vet/qualification.js

@ -105,21 +105,5 @@ 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'
})
}

84
chenhai-ui/src/views/vet/qualification/index.vue

@ -187,27 +187,6 @@
v-hasPermi="['vet:qualification:edit']"
>{{ !scope.row.auditStatus ? '提交审核' : '重新提交' }}</el-button>
<!-- 下架按钮已上架状态显示 -->
<el-button
v-if="scope.row.auditStatus === '1'"
size="mini"
type="text"
icon="el-icon-bottom"
style="color: #E6A23C"
@click="handleUnshelf(scope.row)"
v-hasPermi="['vet:qualification:unshelf']"
>下架</el-button>
<!-- 上架按钮已下架状态显示 -->
<el-button
v-if="scope.row.auditStatus === '3'"
size="mini"
type="text"
icon="el-icon-top"
style="color: #67C23A"
@click="handleShelf(scope.row)"
v-hasPermi="['vet:qualification:shelf']"
>上架</el-button>
<!-- 删除按钮 -->
<el-button
@ -299,7 +278,7 @@
<script>
import { listQualification, getQualification, delQualification, addQualification, updateQualification } from "@/api/vet/qualification"
import { submitQualification, unshelfQualification, shelfQualification } from "@/api/vet/qualification"
import { submitQualification } from "@/api/vet/qualification"
export default {
name: "Qualification",
@ -394,10 +373,10 @@ export default {
/** 获取审核状态标签类型 */
getAuditStatusType(status) {
const map = {
'0': 'info', // -
'0': 'primary', // -
'1': 'success', // - 绿
'2': 'danger', // -
'3': 'warning' // -
}
return map[status] || 'info'
},
@ -409,64 +388,7 @@ export default {
return value
},
/** 下架操作 */
handleUnshelf(row) {
this.$prompt('请输入下架原因', '下架确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPlaceholder: '请输入下架原因(如:证书过期、违规操作等)',
inputValidator: (value) => {
if (!value || value.trim().length < 2) {
return '下架原因不能少于2个字'
}
if (value.trim().length > 200) {
return '下架原因不能超过200字'
}
return true
}
}).then(({ value }) => {
this.loading = true
unshelfQualification(row.qualificationId, value).then(response => {
this.loading = false
if (response.code === 200) {
this.$modal.msgSuccess('下架成功')
this.getList() //
} else {
this.$modal.msgError(response.msg || '下架失败')
}
}).catch(error => {
this.loading = false
this.$modal.msgError(error.msg || '下架失败')
})
}).catch(() => {
//
})
},
/** 上架操作 */
handleShelf(row) {
this.$confirm('确认要上架此资质吗?', '上架确认', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.loading = true
shelfQualification(row.qualificationId).then(response => {
this.loading = false
if (response.code === 200) {
this.$modal.msgSuccess('上架成功')
this.getList() //
} else {
this.$modal.msgError(response.msg || '上架失败')
}
}).catch(error => {
this.loading = false
this.$modal.msgError(error.msg || '上架失败')
})
}).catch(() => {
//
})
},
/** 提交审核操作 */
handleSubmitAudit(row) {

Loading…
Cancel
Save