You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
2.1 KiB
Java
41 lines
2.1 KiB
Java
package com.sztzjy.linkCommerce.service.impl;
|
|
|
|
import com.sztzjy.linkCommerce.config.exception.handler.ServiceException;
|
|
import com.sztzjy.linkCommerce.config.security.JwtUser;
|
|
import com.sztzjy.linkCommerce.entity.dto.TargetUserProfileStepOneValidationRequest;
|
|
import com.sztzjy.linkCommerce.entity.dto.TargetUserProfileStepOneValidationResult;
|
|
import com.sztzjy.linkCommerce.service.TargetUserProfileStepOneService;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.Locale;
|
|
|
|
@Service
|
|
public class TargetUserProfileStepOneServiceImpl implements TargetUserProfileStepOneService {
|
|
@Override
|
|
public TargetUserProfileStepOneValidationResult validate(TargetUserProfileStepOneValidationRequest request, JwtUser user) {
|
|
if (user == null || StringUtils.isBlank(user.getUserId())) {
|
|
throw new ServiceException(HttpStatus.UNAUTHORIZED, "请先登录后再校验");
|
|
}
|
|
if (user.getRoleId() != 4) {
|
|
throw new ServiceException(HttpStatus.FORBIDDEN, "仅学生可进行实训校验");
|
|
}
|
|
if (request == null || StringUtils.isBlank(request.getExcelUrl()) || StringUtils.isBlank(request.getExcelName())) {
|
|
throw new ServiceException(HttpStatus.BAD_REQUEST, "请上传 RFM 用户分层分析结果 Excel 数据");
|
|
}
|
|
String excelName = request.getExcelName().trim().toLowerCase(Locale.ROOT);
|
|
if (!excelName.endsWith(".xls") && !excelName.endsWith(".xlsx")) {
|
|
throw new ServiceException(HttpStatus.BAD_REQUEST, "仅支持 .xls、.xlsx 格式的 Excel 文件");
|
|
}
|
|
if (request.getPreviewRowCount() == null || request.getPreviewRowCount() < 1
|
|
|| request.getPreviewColumnCount() == null || request.getPreviewColumnCount() < 1) {
|
|
throw new ServiceException(HttpStatus.BAD_REQUEST, "Excel 文件需要包含可预览的表头和数据");
|
|
}
|
|
TargetUserProfileStepOneValidationResult result = new TargetUserProfileStepOneValidationResult();
|
|
result.setValid(true);
|
|
result.setMessage("校验通过");
|
|
return result;
|
|
}
|
|
}
|