public String fileUploadHttp(File file, String bucketName, BucketFileBus busCode) throws ManagerException { | public String fileUploadHttp(File file, String bucketName, BucketFileBus busCode) throws ManagerException { | ||||
String fileName = file.getName(); | String fileName = file.getName(); | ||||
String uuidFileName = getUuidFileName(busCode, fileName); | String uuidFileName = getUuidFileName(busCode, fileName); | ||||
logger.info("MinIo 上传文件...{}", uuidFileName); | |||||
try { | try { | ||||
if (StringUtils.isEmpty(bucketName.trim())) { | if (StringUtils.isEmpty(bucketName.trim())) { | ||||
bucketName = defaultBucket; | bucketName = defaultBucket; | ||||
.bucket(bucketName) | .bucket(bucketName) | ||||
.object(uuidFileName) | .object(uuidFileName) | ||||
.stream(inputStream, inputStream.available(), -1) | .stream(inputStream, inputStream.available(), -1) | ||||
.contentType(MinIoContentType.getContentType(fileName.substring(fileName.lastIndexOf(".")))) | |||||
.contentType(MinIoContentType.getContentType(fileName.substring(fileName.lastIndexOf(StrUtil.DOT)))) | |||||
.build()); | .build()); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
logger.error("MinIo 上传文件失败...{}", e); | logger.error("MinIo 上传文件失败...{}", e); | ||||
throw new ManagerException("MinIo 上传文件失败...请联系管理员"); | throw new ManagerException("MinIo 上传文件失败...请联系管理员"); | ||||
}finally { | |||||
file.delete(); | |||||
} | } | ||||
file.delete(); | |||||
return bucketName + StrUtil.SLASH + uuidFileName; | return bucketName + StrUtil.SLASH + uuidFileName; | ||||
} | } | ||||
//生成随机文件名 | //生成随机文件名 | ||||
private static String getUuidFileName(BucketFileBus busCode, String fileName) { | private static String getUuidFileName(BucketFileBus busCode, String fileName) { | ||||
String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 24); | |||||
String uuid = UUID.randomUUID().toString().replace(StrUtil.DASHED, "").substring(0, 24); | |||||
return DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + busCode.getCode() + StrUtil.SLASH + uuid + "_" + fileName; | return DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + busCode.getCode() + StrUtil.SLASH + uuid + "_" + fileName; | ||||
} | } | ||||
} | } |
import cn.com.taiji.core.entity.dict.issue.CouponStatus; | import cn.com.taiji.core.entity.dict.issue.CouponStatus; | ||||
import cn.com.taiji.core.entity.issue.IssueCouponDetail; | import cn.com.taiji.core.entity.issue.IssueCouponDetail; | ||||
import cn.com.taiji.core.entity.issue.IssueCouponInfo; | import cn.com.taiji.core.entity.issue.IssueCouponInfo; | ||||
import cn.com.taiji.core.entity.issue.IssueSingleEquity; | |||||
import cn.com.taiji.core.entity.user.Staff; | import cn.com.taiji.core.entity.user.Staff; | ||||
import cn.com.taiji.core.manager.cache.RedisCacheManager; | import cn.com.taiji.core.manager.cache.RedisCacheManager; | ||||
import cn.com.taiji.core.manager.tools.minio.MinioUtil; | import cn.com.taiji.core.manager.tools.minio.MinioUtil; | ||||
import cn.com.taiji.core.repo.jpa.issue.IssueCouponDetailRepo; | import cn.com.taiji.core.repo.jpa.issue.IssueCouponDetailRepo; | ||||
import cn.com.taiji.core.repo.jpa.issue.IssueCouponInfoRepo; | import cn.com.taiji.core.repo.jpa.issue.IssueCouponInfoRepo; | ||||
import cn.com.taiji.core.repo.jpa.issue.IssueSingleEquityRepo; | |||||
import cn.com.taiji.core.repo.jpa.user.StaffRepo; | import cn.com.taiji.core.repo.jpa.user.StaffRepo; | ||||
import cn.com.taiji.managew.dto.equity.coupon.*; | import cn.com.taiji.managew.dto.equity.coupon.*; | ||||
import cn.com.taiji.managew.manager.excel.CouponDetailListener; | import cn.com.taiji.managew.manager.excel.CouponDetailListener; | ||||
import cn.com.taiji.managew.model.excel.CouponDetailData; | import cn.com.taiji.managew.model.excel.CouponDetailData; | ||||
import cn.com.taiji.managew.repo.jpa.request.IssueCouponDetailPageRequest; | import cn.com.taiji.managew.repo.jpa.request.IssueCouponDetailPageRequest; | ||||
import cn.com.taiji.managew.repo.jpa.request.IssueCouponInfoPageRequest; | import cn.com.taiji.managew.repo.jpa.request.IssueCouponInfoPageRequest; | ||||
import cn.hutool.core.collection.CollectionUtil; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
@Autowired | @Autowired | ||||
private IssueCouponDetailRepo issueCouponDetailRepo; | private IssueCouponDetailRepo issueCouponDetailRepo; | ||||
@Autowired | @Autowired | ||||
private IssueSingleEquityRepo issueSingleEquityRepo; | |||||
@Autowired | |||||
private MinioUtil minioUtil; | private MinioUtil minioUtil; | ||||
@Autowired | @Autowired | ||||
private StaffRepo staffRepo; | private StaffRepo staffRepo; | ||||
if (byCouponId != null) { | if (byCouponId != null) { | ||||
throw new RuntimeException("该卡券有详情,不可刪除"); | throw new RuntimeException("该卡券有详情,不可刪除"); | ||||
} | } | ||||
//是否被权益引用 todo | |||||
//是否被权益引用 | |||||
List<IssueSingleEquity> singleEquities = issueSingleEquityRepo.findByCouponId(req.getId()); | |||||
if (CollectionUtil.isNotEmpty(singleEquities)) { | |||||
throw new RuntimeException("该卡券被权益引用,不可刪除"); | |||||
} | |||||
issueCouponInfoRepo.delete(couponInfo); | |||||
} | } | ||||
import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||
import cn.hutool.json.JSONObject; | |||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import org.apache.commons.lang3.StringEscapeUtils; | import org.apache.commons.lang3.StringEscapeUtils; | ||||
import org.json.JSONObject; | |||||
//import org.json.JSONObject; | |||||
import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
import java.io.UnsupportedEncodingException; | import java.io.UnsupportedEncodingException; | ||||
import java.util.*; | import java.util.*; | ||||
} | } | ||||
/** | |||||
* JSON 转 MAP | |||||
* | |||||
* @param json | |||||
* @return | |||||
*/ | |||||
public static Map<String, Object> entityChangeMap(JSONObject json) { | |||||
Map<String, Object> param = new HashMap<>(); | |||||
Iterator<?> iterator = json.keys(); | |||||
while (iterator.hasNext()) { | |||||
String key = String.valueOf(iterator.next()); | |||||
param.put(key, json.get(key)); | |||||
} | |||||
return param; | |||||
} | |||||
// /** | |||||
// * JSON 转 MAP | |||||
// * | |||||
// * @param json | |||||
// * @return | |||||
// */ | |||||
// public static Map<String, Object> entityChangeMap(JSONObject json) { | |||||
// Map<String, Object> param = new HashMap<>(); | |||||
// Iterator<?> iterator = json.keys(); | |||||
// while (iterator.hasNext()) { | |||||
// String key = String.valueOf(iterator.next()); | |||||
// param.put(key, json.get(key)); | |||||
// } | |||||
// return param; | |||||
// } | |||||
/** | /** | ||||
* 拼接路径 | * 拼接路径 |
package cn.com.taiji.userw.dto.serviceHall; | package cn.com.taiji.userw.dto.serviceHall; | ||||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
* @date Created in 2025/03/27 17:08 | * @date Created in 2025/03/27 17:08 | ||||
*/ | */ | ||||
@Data | @Data | ||||
public class ServiceHallRegisterLocationBatchReqDTO { | |||||
public class ServiceHallRegisterLocationBatchReqDTO extends AbstractStaffBizRequestDTO { | |||||
@NotBlank(message = "excel文件地址不能为空") | @NotBlank(message = "excel文件地址不能为空") | ||||
@ApiModelProperty(value = "excel文件地址") | @ApiModelProperty(value = "excel文件地址") |
.doWrite(errors); | .doWrite(errors); | ||||
path = minioUtil.fileUploadHttp(upFile, BucketFileBus.SERVICEHALL); | path = minioUtil.fileUploadHttp(upFile, BucketFileBus.SERVICEHALL); | ||||
} | } | ||||
//删除临时文件 | |||||
FileUtil.del(tempFile); | |||||
return path; | return path; | ||||
} | } | ||||
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis' | implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis' | ||||
implementation group: 'com.alibaba', name: 'easyexcel', version: '3.2.1' | implementation group: 'com.alibaba', name: 'easyexcel', version: '3.2.1' | ||||
implementation 'io.minio:minio:8.4.1' | implementation 'io.minio:minio:8.4.1' | ||||
implementation 'com.squareup.okhttp3:okhttp:4.9.3' | |||||
implementation group: 'com.alipay.sdk', name: 'alipay-sdk-java', version: '4.39.79.ALL' | implementation group: 'com.alipay.sdk', name: 'alipay-sdk-java', version: '4.39.79.ALL' | ||||
implementation group: 'cn.jpush.api', name: 'jpush-client', version: '3.6.6' | implementation group: 'cn.jpush.api', name: 'jpush-client', version: '3.6.6' | ||||
//定时器相关 | //定时器相关 | ||||
// 添加 MapStruct 注解处理器依赖 | // 添加 MapStruct 注解处理器依赖 | ||||
annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final' | annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final' | ||||
implementation 'com.squareup.okhttp3:okhttp:3.14.9' | |||||
} | } | ||||
bootJar { | bootJar { |