Commit c0f3aa29 authored by 刘斌's avatar 刘斌

fix: 完善H5

parent c6ba991f
package com.anplus.hr.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
......@@ -14,13 +16,15 @@ import jakarta.annotation.Resource;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import org.dromara.core.trans.anno.TransMethodResult;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import top.binfast.app.biz.sysapi.bean.params.sysDept.SysDeptParam;
import top.binfast.app.biz.sysapi.bean.vo.sysDept.SysDeptDTO;
import top.binfast.app.biz.sysbiz.service.SysDeptServ;
import top.binfast.app.biz.sysapi.bean.vo.sysOss.SysOssVo;
import top.binfast.common.core.constant.BusinessType;
import top.binfast.common.core.enums.ResultCode;
import top.binfast.common.core.util.ResponseUtils;
import top.binfast.common.core.validate.AddGroup;
import top.binfast.common.core.validate.EditGroup;
......@@ -228,4 +232,20 @@ public class EmployeeInfoCtrl {
public MultiResponse<SysDeptDTO> deptTree(SysDeptParam dept) {
return MultiResponse.of(employeeSysDeptServ.selectDeptTreeForEmployee(dept));
}
/**
* 上传OSS对象存储
*
* @param file 文件
*/
@SaIgnore
@PinSysLog(value = "OSS对象存储", businessType = BusinessType.INSERT)
@PostMapping(value = "/photo/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public SingleResponse<SysOssVo> upload(@RequestPart("file") MultipartFile file) {
if (ObjectUtil.isNull(file)) {
return SingleResponse.buildFailure(ResultCode.FAIL.getCode(), "上传文件不能为空");
}
SysOssVo oss = employeeInfoServ.upload(file);
return SingleResponse.of(oss);
}
}
\ No newline at end of file
......@@ -52,12 +52,16 @@ public class EmployeeBaseInfoParam {
@NotNull(message = "年龄不能为空")
private Integer age;
// /**
// * 照片
// */
// @NotBlank(message = "照片不能为空")
// private String photo;
/**
* 照片
* 头像OSS_ID
*/
@NotBlank(message = "照片不能为空")
private String photo;
private Long ossId;
/**
* 籍贯
......
......@@ -12,6 +12,7 @@ import com.anplus.hr.domain.vo.EmployeeInfoImportVo;
import com.anplus.hr.domain.vo.EmployeeInfoVo;
import org.springframework.web.multipart.MultipartFile;
import top.binfast.app.biz.sysapi.bean.model.oss.SysOss;
import top.binfast.app.biz.sysapi.bean.vo.sysOss.SysOssVo;
import top.binfast.common.excel.image.CellImageData;
import top.binfast.common.excel.image.ExcelProcessingResult;
import top.binfast.common.oss.entity.UploadResult;
......@@ -158,6 +159,14 @@ public interface EmployeeInfoServ extends IService<EmployeeInfo> {
*/
SysOss handleImageToUrl(ExcelProcessingResult excelProcessingResult, EmployeeInfoImportVo importVo);
/**
* 上传 MultipartFile 到对象存储服务,并保存文件信息到数据库
*
* @param file 要上传的 MultipartFile 对象
* @return 上传成功后的 SysOssVo 对象,包含文件信息
*/
SysOssVo upload(MultipartFile file);
/**
* 构建部门名称字符串
*
......
......@@ -30,11 +30,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.trans.service.impl.TransService;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import top.binfast.app.biz.sysapi.bean.model.oss.SysOss;
import top.binfast.app.biz.sysapi.bean.vo.sysOss.SysOssVo;
import top.binfast.app.biz.sysapi.dao.system.SysOssMapper;
import top.binfast.app.biz.sysbiz.service.SysOssServ;
import top.binfast.common.core.enums.ResultCode;
import top.binfast.common.core.exception.PlatformException;
import top.binfast.common.core.util.LambdaUtil;
......@@ -59,6 +62,7 @@ import java.util.stream.Stream;
* @author LiuBin
* @date 2025-10-28
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, EmployeeInfo> implements EmployeeInfoServ {
......@@ -69,6 +73,7 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
private final EmployeeAuditLogServ employeeAuditLogServ;
private final TransService transService;
private final OssService ossService;
private final SysOssServ sysOssServ;
private final SysOssMapper sysOssMapper;
private final EmployeeAsyncService employeeAsyncService;
......@@ -336,6 +341,14 @@ public class EmployeeInfoServImpl extends ServiceImpl<EmployeeInfoMapper, Employ
return null;
}
@Override
public SysOssVo upload(MultipartFile file) {
SysOssVo sysOssVo = sysOssServ.upload(file);
sysOssMapper.update(null, new LambdaUpdateWrapper<SysOss>()
.set(SysOss::getTenantId, 1L)
.eq(SysOss::getId, sysOssVo.getOssId()));
return sysOssVo;
}
@Override
public Boolean checkEmployeeIdCardNumberUnique(EmployeeInfoParam employee) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment