This commit is contained in:
sxu 2025-03-13 21:07:25 +08:00
parent 133848976f
commit 875016d3e5
4 changed files with 439 additions and 181 deletions

View File

@ -0,0 +1,250 @@
package com.bonus.canteen.core.auth.api;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import javax.annotation.Resource;
import com.bonus.canteen.core.auth.user.entity.MgrUser;
import com.bonus.canteen.core.auth.user.entity.MgrUserInSystem;
import com.bonus.canteen.core.auth.user.mapper.MgrUserInSystemMapper;
import com.bonus.canteen.core.auth.user.mapper.MgrUserMapper;
import com.bonus.canteen.core.auth.user.mapper.MgrUserRoleMapper;
import com.bonus.canteen.core.auth.user.service.MgrUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.lang.invoke.SerializedLambda;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class MgrUserApi {
private static final Logger log = LoggerFactory.getLogger(MgrUserApi.class);
@Autowired
MgrUserInSystemMapper mgrUserInSystemMapper;
// @Autowired
// @Lazy
// private MgrUserRoleMapper mgrUserRoleMapper;
// @Resource
// private MgrUserMapper mgrUserMapper;
// @Autowired
// @Lazy
// private CustInfoApi custInfoApi;
@Autowired
@Lazy
private MgrUserService mgrUserService;
// public void addMgrUserInfo(MgrUserAdminAddDTO mgrUserAdminAddDTO) {
// this.mgrUserService.addMgrUserInfo(mgrUserAdminAddDTO);
// }
//
// public void blockMgrUser(long merchantId) {
// this.mgrUserInSystemMapper.update((Object)null, (Wrapper)((LambdaUpdateWrapper)(new UpdateWrapper()).lambda().eq(MgrUserInSystem::getTenantId, merchantId)).set(MgrUserInSystem::getLockFlag, 1));
// }
//
// public MgrUserIdNameVO getUserIdAndRealName(String username) {
// return this.mgrUserMapper.selectIdAndRealNameByWrapper((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUser.class).eq(MgrUser::getRealName, SM4EncryptUtils.sm4Encryptbyconfig(username))).eq(MgrUser::getDelFlag, DelFlagEnum.DEL_FALSE.key()));
// }
public String getPhoneByUserId(Long userId) {
MgrUser mgrUser = (MgrUser)this.mgrUserService.getOne((Wrapper)Wrappers.lambdaQuery(MgrUser.class).select(MgrUser::getPhone).eq(MgrUser::getUserId, userId));
return ObjectUtil.isNotNull(mgrUser) ? mgrUser.getPhone() : "";
}
// public AuthEleScaleVO getEleScaleUserInfo(Long userId) {
// MgrUser mgrUser = (MgrUser)this.mgrUserService.getOne((Wrapper)Wrappers.lambdaQuery(MgrUser.class).eq(MgrUser::getUserId, userId));
// return ObjectUtil.isNotNull(mgrUser) ? new AuthEleScaleVO(mgrUser) : new AuthEleScaleVO();
// }
//
// public EffPermissionVO filterCanteenDataPermission(Long canteenIdDTO, Long shopstallIdDTO, Long effId) {
// EffPermissionVO result = new EffPermissionVO();
// result.setCanteenId(canteenIdDTO);
// result.setShopstallId(shopstallIdDTO);
// result.setCheckSql(true);
// if (effId == -1L) {
// return result;
// } else {
// Integer effExist = this.mgrUserMapper.selectExistFromMktEffectiveByWrapper((Wrapper)((QueryWrapper)((QueryWrapper)((QueryWrapper)Wrappers.query().eq("eff_id", effId)).eq("del_flag", DelFlagEnum.DEL_FALSE.key())).eq("eff_type", 2)).last("limit 1"));
// List<EffCanteenVO> canteenList = null;
// if (ObjectUtil.isNotNull(effExist)) {
// canteenList = this.mgrUserMapper.selectCanteenByWrapper((Wrapper)Wrappers.query().eq("eff_id", effId));
// }
//
// if (!CollUtil.isEmpty(canteenList)) {
// List<EffCanteenVO> resultCanteenList = CollUtil.newArrayList(new EffCanteenVO[0]);
// resultCanteenList.addAll(canteenList);
// Iterator var8 = canteenList.iterator();
//
// while(var8.hasNext()) {
// EffCanteenVO canteenVO = (EffCanteenVO)var8.next();
// if (canteenVO.getShopstallId() == -1L) {
// List<EffCanteenVO> shopstallList = this.mgrUserMapper.selectShopstallByWrapper((Wrapper)((QueryWrapper)Wrappers.query().eq("dining_id", canteenVO.getCanteenId())).eq("del_flag", DelFlagEnum.DEL_FALSE.key()));
// if (CollUtil.isNotEmpty(shopstallList)) {
// resultCanteenList.addAll(shopstallList);
// }
// }
// }
//
// if (!ObjectUtil.isNull(canteenIdDTO) && canteenIdDTO != -1L) {
// if (!ObjectUtil.isNull(shopstallIdDTO) && shopstallIdDTO != -1L) {
// EffCanteenVO canteenDTO = new EffCanteenVO();
// canteenDTO.setCanteenId(canteenIdDTO);
// canteenDTO.setShopstallId(shopstallIdDTO);
// if (!canteenList.contains(canteenDTO)) {
// result.setCheckSql(false);
// return result;
// } else {
// result.setCanteenId(canteenIdDTO);
// result.setShopstallId(shopstallIdDTO);
// result.setCanteenList((List)null);
// return result;
// }
// } else {
// List<EffCanteenVO> shopstallList = this.mgrUserMapper.selectShopstallByWrapper((Wrapper)((QueryWrapper)Wrappers.query().eq("dining_id", canteenIdDTO)).eq("del_flag", DelFlagEnum.DEL_FALSE.key()));
// if (CollUtil.isEmpty(shopstallList)) {
// if (resultCanteenList.stream().map(EffCanteenVO::getCanteenId).toList().contains(canteenIdDTO)) {
// result.setCanteenId(canteenIdDTO);
// } else {
// result.setCheckSql(false);
// }
//
// return result;
// } else {
// List<EffCanteenVO> resultCanteenList = (List)shopstallList.stream().filter((s) -> {
// List var10000 = resultCanteenList.stream().map((r) -> {
// Long var10000 = r.getCanteenId();
// return "" + var10000 + "&" + r.getShopstallId();
// }).toList();
// Long var10001 = s.getCanteenId();
// return var10000.contains("" + var10001 + "&" + s.getShopstallId());
// }).collect(Collectors.toList());
// result.setCanteenId((Long)null);
// result.setShopstallId((Long)null);
// result.setCanteenList(resultCanteenList);
// return result;
// }
// }
// } else {
// result.setCanteenId((Long)null);
// result.setShopstallId((Long)null);
// result.setCanteenList(resultCanteenList);
// return result;
// }
// } else {
// if ((!ObjectUtil.isNotNull(canteenIdDTO) || canteenIdDTO == -1L) && (!ObjectUtil.isNotNull(shopstallIdDTO) || shopstallIdDTO == -1L)) {
// result.setCanteenId(-1L);
// result.setShopstallId(-1L);
// } else {
// result.setCheckSql(false);
// }
//
// return result;
// }
// }
// }
//
// public List<MgrUserIdNameVO> listUserByIdAndRole(Long userId, String roleName) {
// return this.mgrUserMapper.listUserByIdAndRole(userId, roleName, DelFlagEnum.DEL_FALSE.key());
// }
//
// public MgrUser selectMgrUserByUserId(Long userId) {
// return (MgrUser)this.mgrUserMapper.selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUser.class).eq(MgrUser::getUserId, userId)).eq(MgrUser::getDelFlag, DelFlagEnum.DEL_FALSE.key()));
// }
//
// public List<MgrUser> selectMgrUserByUserIds(List<Long> userIds) {
// return this.mgrUserMapper.selectList((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUser.class).in(MgrUser::getUserId, userIds)).eq(MgrUser::getDelFlag, DelFlagEnum.DEL_FALSE.key()));
// }
//
// public void removeByCustId(Long custId) {
// this.mgrUserService.removeByCustId(custId);
// }
//
// public Set<String> listRoles(Long userId) {
// return this.mgrUserRoleMapper.listRoles(userId);
// }
//
// public void checkUserByMobile(String mobile, Long merchantId) {
// MgrUserInSystem mgrUser;
// if (ObjectUtil.isNull(merchantId)) {
// mgrUser = (MgrUserInSystem)Executors.readInSystem(() -> {
// return (MgrUserInSystem)this.mgrUserInSystemMapper.selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUserInSystem.class).and((item) -> {
// ((LambdaQueryWrapper)((LambdaQueryWrapper)item.eq(MgrUserInSystem::getPhone, mobile)).or()).eq(MgrUserInSystem::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(mobile));
// })).eq(MgrUserInSystem::getDelFlag, DelFlagEnum.DEL_FALSE.key()));
// });
// if (ObjectUtil.isNull(mgrUser)) {
// throw new LeException(I18n.getMessage("notice_verify_sms_code_exception", new Object[0]));
// } else {
// TenantContextHolder.setTenantId(mgrUser.getTenantId());
// }
// } else {
// mgrUser = (MgrUserInSystem)Executors.readInSystem(() -> {
// return (MgrUserInSystem)this.mgrUserInSystemMapper.selectOne((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUserInSystem.class).and((item) -> {
// ((LambdaQueryWrapper)((LambdaQueryWrapper)item.eq(MgrUserInSystem::getPhone, mobile)).or()).eq(MgrUserInSystem::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(mobile));
// })).eq(MgrUserInSystem::getDelFlag, DelFlagEnum.DEL_FALSE.key()));
// });
// if (ObjectUtil.isNull(mgrUser)) {
// TenantContextHolder.setTenantId(merchantId);
// CustInfo custInfo = this.custInfoApi.getCustInfoByMobileOrCustNum(mobile, (String)null);
// if (ObjectUtil.isNull(custInfo)) {
// throw new LeException(I18n.getMessage("notice_verify_sms_code_exception", new Object[0]));
// }
// }
//
// }
// }
//
// public boolean checkUserNameOrMobile(String userName) {
// return (Boolean)Executors.readInSystem(() -> {
// return this.mgrUserInSystemMapper.exists((Wrapper)((LambdaQueryWrapper)Wrappers.lambdaQuery(MgrUserInSystem.class).eq(MgrUserInSystem::getDelFlag, DelFlagEnum.DEL_FALSE.key())).and((wrapper) -> {
// ((LambdaQueryWrapper)((LambdaQueryWrapper)wrapper.eq(MgrUserInSystem::getUsername, userName)).or()).and((item) -> {
// ((LambdaQueryWrapper)((LambdaQueryWrapper)item.eq(MgrUserInSystem::getPhone, userName)).or()).eq(MgrUserInSystem::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(userName));
// });
// }));
// });
// }
//
// public void editUserNameAndMobile(String userName, String oldUserName, Long tenantId) {
// Executors.doInSystem(() -> {
// return this.mgrUserInSystemMapper.update((Object)null, (Wrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)Wrappers.lambdaUpdate(MgrUserInSystem.class).set(MgrUserInSystem::getUsername, userName)).set(MgrUserInSystem::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(userName))).eq(MgrUserInSystem::getUsername, oldUserName)).eq(MgrUserInSystem::getTenantId, tenantId));
// });
// Executors.doInTenant(tenantId, () -> {
// return this.mgrUserMapper.update((Object)null, (Wrapper)((LambdaUpdateWrapper)((LambdaUpdateWrapper)Wrappers.lambdaUpdate(MgrUser.class).set(MgrUser::getUsername, userName)).set(MgrUser::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(userName))).eq(MgrUser::getUsername, oldUserName));
// });
// }
//
// public void checkExistsMobile(String mobile) {
// Boolean flag = (Boolean)Executors.readInSystem(() -> {
// return this.mgrUserInSystemMapper.exists((Wrapper)Wrappers.lambdaQuery(MgrUserInSystem.class).and((item) -> {
// ((LambdaQueryWrapper)((LambdaQueryWrapper)item.eq(MgrUserInSystem::getPhone, SM4EncryptUtils.sm4Encryptbyconfig(mobile))).or()).eq(MgrUserInSystem::getPhone, mobile);
// }));
// });
// if (Boolean.TRUE.equals(flag)) {
// throw new LeException(I18n.getMessage("auth_same_phone", new Object[0]));
// }
// }
//
// public List<MgrRoleUserVO> getAllUserByRoleCode(MgrRoleUserListDTO content) {
// return this.mgrUserService.getAllUserByRoleCode(content);
// }
//
// public List<String> getUserNameOrRoleName(List<String> userInfo) {
// return this.mgrUserService.getUserNameOrRoleName(userInfo);
// }
//
// public String getUserNameByMobile(String mobile) {
// MgrUserInSystem mgrUser = this.mgrUserService.getUserAndCheckMobile(mobile, false);
// return mgrUser.getUsername();
// }
}

View File

@ -0,0 +1,17 @@
package com.bonus.canteen.core.notice.hawkeye.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bonus.canteen.core.notice.hawkeye.model.AllocLogRecord;
import com.bonus.canteen.core.notice.hawkeye.param.AllocLogRecordParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface AllocLogRecordMapper extends BaseMapper<AllocLogRecord> {
Page<AllocLogRecord> pageLogRecord(@Param("page") Page<AllocLogRecord> page, @Param("param") AllocLogRecordParam param);
List<AllocLogRecord> listLogRecord(@Param("param") AllocLogRecordParam param);
}

View File

@ -6,13 +6,13 @@ import com.bonus.canteen.core.notice.hawkeye.model.AllocLogRecord;
import com.bonus.canteen.core.notice.hawkeye.param.AllocLogRecordParam;
public interface AllocLogRecordService extends IService<AllocLogRecord> {
Page<AllocLogRecord> pageLogRecord(AllocLogRecordParam param);
void saveLogRecord(AllocLogRecord logRecord);
// Page<AllocLogRecord> pageLogRecord(AllocLogRecordParam param);
//
// void saveLogRecord(AllocLogRecord logRecord);
void saveLogRecordForCustom(AllocLogRecord logRecord);
void genLogRecordExcelFile(AllocLogRecordParam param);
String getExcelFileUrl();
// void genLogRecordExcelFile(AllocLogRecordParam param);
//
// String getExcelFileUrl();
}

View File

@ -9,28 +9,19 @@ import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bonus.canteen.core.auth.api.MgrUserApi;
import com.bonus.canteen.core.notice.hawkeye.mapper.AllocLogRecordMapper;
import com.bonus.common.houqin.utils.id.Id;
import com.google.common.collect.Lists;
import com.pig4cloud.pigx.common.core.exception.LeException;
import com.pig4cloud.pigx.common.core.util.LeBeanUtil;
import com.pig4cloud.pigx.common.oss.OssProperties;
import com.pig4cloud.pigx.common.oss.service.OssTemplate;
import jakarta.servlet.http.HttpServletRequest;
import net.xnzn.core.auth.api.MgrUserApi;
import net.xnzn.core.common.constant.FileConstants;
import net.xnzn.core.common.encrypt.SM4EncryptUtils;
import net.xnzn.core.common.enums.FileUploadSourceEnum;
import net.xnzn.core.common.redis.RedisUtil;
import net.xnzn.core.common.utils.AesEncryptUtil;
import net.xnzn.core.common.utils.SysUtil;
import net.xnzn.core.notice.hawkeye.mapper.AllocLogRecordMapper;
import net.xnzn.core.notice.hawkeye.model.AllocLogRecord;
import net.xnzn.core.notice.hawkeye.param.AllocLogRecordParam;
import net.xnzn.core.notice.hawkeye.service.AllocLogRecordService;
import net.xnzn.framework.config.i18n.I18n;
import net.xnzn.framework.data.dataset.Executors;
import net.xnzn.framework.data.tenant.TenantContextHolder;
import net.xnzn.framework.id.Id;
import net.xnzn.framework.secure.SecureManager;
import javax.servlet.http.HttpServletRequest;
import com.bonus.canteen.core.common.encrypt.SM4EncryptUtils;
import com.bonus.canteen.core.common.enums.FileUploadSourceEnum;
import com.bonus.canteen.core.common.redis.RedisUtil;
import com.bonus.canteen.core.common.utils.AesEncryptUtil;
import com.bonus.canteen.core.common.utils.SysUtil;
import com.bonus.canteen.core.notice.hawkeye.model.AllocLogRecord;
import com.bonus.canteen.core.notice.hawkeye.param.AllocLogRecordParam;
import com.bonus.canteen.core.notice.hawkeye.service.AllocLogRecordService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -53,25 +44,25 @@ public class AllocLogRecordServiceImpl extends ServiceImpl<AllocLogRecordMapper,
@Autowired
@Lazy
private MgrUserApi mgrUserApi;
@Autowired
private OssProperties ossProperties;
@Autowired
private OssTemplate ossTemplate;
@Autowired
private AesEncryptUtil aesEncryptUtil;
// @Autowired
// private OssProperties ossProperties;
// @Autowired
// private OssTemplate ossTemplate;
// @Autowired
// private AesEncryptUtil aesEncryptUtil;
private static final String GEN_LOG_EXCEL_KEY = "yst:merchantId:userId:gen:allocLog:excel";
private static final String DOWNLOAD_LOG_EXCEL_URL_KEY = "yst:merchantId:userId:download:allocLog:excel:url";
private static final String USER_ID = "user_id";
public Page<AllocLogRecord> pageLogRecord(AllocLogRecordParam param) {
param.setLoginUserName(LeBeanUtil.fieldLikeHandle(param.getLoginUserName()));
Page<AllocLogRecord> page = new Page(param.getCurrent(), param.getSize());
Page<AllocLogRecord> recordPage = ((AllocLogRecordMapper)this.baseMapper).pageLogRecord(page, param);
recordPage.getRecords().forEach((allocLogRecord) -> {
allocLogRecord.setLoginUserPhone(SM4EncryptUtils.desensitizedByConfig(allocLogRecord.getLoginUserPhone(), DesensitizedType.MOBILE_PHONE));
});
return recordPage;
}
// public Page<AllocLogRecord> pageLogRecord(AllocLogRecordParam param) {
// param.setLoginUserName(LeBeanUtil.fieldLikeHandle(param.getLoginUserName()));
// Page<AllocLogRecord> page = new Page(param.getCurrent(), param.getSize());
// Page<AllocLogRecord> recordPage = ((AllocLogRecordMapper)this.baseMapper).pageLogRecord(page, param);
// recordPage.getRecords().forEach((allocLogRecord) -> {
// allocLogRecord.setLoginUserPhone(SM4EncryptUtils.desensitizedByConfig(allocLogRecord.getLoginUserPhone(), DesensitizedType.MOBILE_PHONE));
// });
// return recordPage;
// }
public void saveLogRecord(AllocLogRecord logRecord) {
if (!"admin".equals(logRecord.getLoginUserName())) {
@ -89,148 +80,148 @@ public class AllocLogRecordServiceImpl extends ServiceImpl<AllocLogRecordMapper,
public void saveLogRecordForCustom(AllocLogRecord logRecord) {
HttpServletRequest request = ((ServletRequestAttributes)Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
logRecord.setLoginIp(JakartaServletUtil.getClientIP(request, new String[0]));
//logRecord.setLoginIp(JakartaServletUtil.getClientIP(request, new String[0]));
logRecord.setCrby(logRecord.getLoginUserName());
logRecord.setCrtime(LocalDateTime.now());
this.saveLogRecord(logRecord);
}
public void genLogRecordExcelFile(AllocLogRecordParam param) {
Long userId = (Long)SecureManager.getSubjectId().get();
Long merchantId = TenantContextHolder.getTenantId();
String key = "yst:merchantId:userId:gen:allocLog:excel".replace("merchantId", merchantId.toString()).replace("user_id", userId.toString());
String downLoadKey = "yst:merchantId:userId:download:allocLog:excel:url".replace("merchantId", merchantId.toString()).replace("user_id", userId.toString());
if (ObjectUtil.isNotEmpty(RedisUtil.getString(key))) {
throw new LeException(I18n.getMessage("notice_alloc_log_record_gen_excel_file_wait_exception", new Object[0]));
} else if (ObjectUtil.isNotEmpty(RedisUtil.getString(downLoadKey))) {
throw new LeException(I18n.getMessage("notice_alloc_log_record_gen_excel_file_done_exception", new Object[0]));
} else {
RedisUtil.setString(key, "user_id");
Executors.doInTenant(merchantId, (status) -> {
int maxSize = 10000;
ExcelWriter excelWriter = null;
try {
param.setLoginUserName(LeBeanUtil.fieldLikeHandle(param.getLoginUserName()));
List<AllocLogRecord> records = ((AllocLogRecordMapper)this.baseMapper).listLogRecord(param);
if (!ObjectUtil.isEmpty(records)) {
List<List<AllocLogRecord>> lists = Lists.partition(records, maxSize);
String fileName = this.getFileNameByParam(param);
String var10000 = FileConstants.tempPath;
String filePath = var10000 + TenantContextHolder.getTenantId() + File.separator + "logExcel";
File path = new File(filePath);
if (!path.exists()) {
path.mkdirs();
}
String fullFileName = filePath + File.separator + fileName;
log.info("本地excel文件路径{}", fullFileName);
File excelFile = FileUtil.file(fullFileName);
OutputStream os = FileUtil.getOutputStream(excelFile);
try {
excelWriter = EasyExcel.write(os, AllocLogRecord.class).build();
int i = 0;
while(true) {
if (i >= lists.size()) {
excelWriter.finish();
break;
}
WriteSheet writeSheet = EasyExcel.writerSheet(i, "日志明细" + (i + 1)).build();
List<AllocLogRecord> data = (List)lists.get(i);
excelWriter.write(data, writeSheet);
++i;
}
} catch (Throwable var29) {
if (os != null) {
try {
os.close();
} catch (Throwable var27) {
var29.addSuppressed(var27);
}
}
throw var29;
}
if (os != null) {
os.close();
}
Long var34 = TenantContextHolder.getTenantId();
String objectName = "" + var34 + "/" + FileUploadSourceEnum.CUST.key() + "/" + fileName;
String bucketName = this.ossProperties.getBucketName();
InputStream inputStream = FileUtil.getInputStream(excelFile);
try {
this.ossTemplate.putObject(bucketName, objectName, inputStream);
} catch (Throwable var28) {
if (inputStream != null) {
try {
inputStream.close();
} catch (Throwable var26) {
var28.addSuppressed(var26);
}
}
throw var28;
}
if (inputStream != null) {
inputStream.close();
}
FileUtil.del(excelFile);
RedisUtil.setObj(downLoadKey, SysUtil.getCutFileUrl("/" + bucketName + "/" + objectName));
log.info("系统日志导出生成结束");
return;
}
} catch (Exception var30) {
log.info("生成日志导出文件错误:{}", var30.getMessage(), var30);
return;
} finally {
RedisUtil.delete(key);
}
});
}
}
private String getFileNameByParam(AllocLogRecordParam param) {
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
StringBuilder sb = new StringBuilder("日志明细");
if (ObjectUtil.isNotEmpty(param.getLoginUserName())) {
sb.append("_").append(param.getLoginUserName());
}
if (ObjectUtil.isNotEmpty(param.getLoginUserPhone())) {
sb.append("_").append(param.getLoginUserPhone());
}
if (ObjectUtil.isNotEmpty(param.getCrtimeStart())) {
sb.append("_").append(param.getCrtimeStart().format(df));
}
if (ObjectUtil.isNotEmpty(param.getCrtimeEnd())) {
sb.append("_").append(param.getCrtimeEnd().format(df));
}
sb.append("_").append(LocalDateTime.now().format(df));
sb.append(".xlsx");
return sb.toString();
}
public String getExcelFileUrl() {
Long userId = (Long)SecureManager.getSubjectId().get();
String key = "yst:merchantId:userId:download:allocLog:excel:url".replace("merchantId", TenantContextHolder.getTenantId().toString()).replace("user_id", userId.toString());
Object fileUrl = RedisUtil.getObj(key);
if (ObjectUtil.isEmpty(fileUrl)) {
throw new LeException(I18n.getMessage("notice_alloc_log_record_get_excel_empty_url_exception", new Object[0]));
} else {
RedisUtil.delete(key);
return (String)fileUrl;
}
}
// public void genLogRecordExcelFile(AllocLogRecordParam param) {
// Long userId = (Long)SecureManager.getSubjectId().get();
// Long merchantId = TenantContextHolder.getTenantId();
// String key = "yst:merchantId:userId:gen:allocLog:excel".replace("merchantId", merchantId.toString()).replace("user_id", userId.toString());
// String downLoadKey = "yst:merchantId:userId:download:allocLog:excel:url".replace("merchantId", merchantId.toString()).replace("user_id", userId.toString());
// if (ObjectUtil.isNotEmpty(RedisUtil.getString(key))) {
// throw new LeException(I18n.getMessage("notice_alloc_log_record_gen_excel_file_wait_exception", new Object[0]));
// } else if (ObjectUtil.isNotEmpty(RedisUtil.getString(downLoadKey))) {
// throw new LeException(I18n.getMessage("notice_alloc_log_record_gen_excel_file_done_exception", new Object[0]));
// } else {
// RedisUtil.setString(key, "user_id");
// Executors.doInTenant(merchantId, (status) -> {
// int maxSize = 10000;
// ExcelWriter excelWriter = null;
//
// try {
// param.setLoginUserName(LeBeanUtil.fieldLikeHandle(param.getLoginUserName()));
// List<AllocLogRecord> records = ((AllocLogRecordMapper)this.baseMapper).listLogRecord(param);
// if (!ObjectUtil.isEmpty(records)) {
// List<List<AllocLogRecord>> lists = Lists.partition(records, maxSize);
// String fileName = this.getFileNameByParam(param);
// String var10000 = FileConstants.tempPath;
// String filePath = var10000 + TenantContextHolder.getTenantId() + File.separator + "logExcel";
// File path = new File(filePath);
// if (!path.exists()) {
// path.mkdirs();
// }
//
// String fullFileName = filePath + File.separator + fileName;
// log.info("本地excel文件路径{}", fullFileName);
// File excelFile = FileUtil.file(fullFileName);
// OutputStream os = FileUtil.getOutputStream(excelFile);
//
// try {
// excelWriter = EasyExcel.write(os, AllocLogRecord.class).build();
// int i = 0;
//
// while(true) {
// if (i >= lists.size()) {
// excelWriter.finish();
// break;
// }
//
// WriteSheet writeSheet = EasyExcel.writerSheet(i, "日志明细" + (i + 1)).build();
// List<AllocLogRecord> data = (List)lists.get(i);
// excelWriter.write(data, writeSheet);
// ++i;
// }
// } catch (Throwable var29) {
// if (os != null) {
// try {
// os.close();
// } catch (Throwable var27) {
// var29.addSuppressed(var27);
// }
// }
//
// throw var29;
// }
//
// if (os != null) {
// os.close();
// }
//
// Long var34 = TenantContextHolder.getTenantId();
// String objectName = "" + var34 + "/" + FileUploadSourceEnum.CUST.key() + "/" + fileName;
// String bucketName = this.ossProperties.getBucketName();
// InputStream inputStream = FileUtil.getInputStream(excelFile);
//
// try {
// this.ossTemplate.putObject(bucketName, objectName, inputStream);
// } catch (Throwable var28) {
// if (inputStream != null) {
// try {
// inputStream.close();
// } catch (Throwable var26) {
// var28.addSuppressed(var26);
// }
// }
//
// throw var28;
// }
//
// if (inputStream != null) {
// inputStream.close();
// }
//
// FileUtil.del(excelFile);
// RedisUtil.setObj(downLoadKey, SysUtil.getCutFileUrl("/" + bucketName + "/" + objectName));
// log.info("系统日志导出生成结束");
// return;
// }
// } catch (Exception var30) {
// log.info("生成日志导出文件错误:{}", var30.getMessage(), var30);
// return;
// } finally {
// RedisUtil.delete(key);
// }
//
// });
// }
// }
//
// private String getFileNameByParam(AllocLogRecordParam param) {
// DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
// StringBuilder sb = new StringBuilder("日志明细");
// if (ObjectUtil.isNotEmpty(param.getLoginUserName())) {
// sb.append("_").append(param.getLoginUserName());
// }
//
// if (ObjectUtil.isNotEmpty(param.getLoginUserPhone())) {
// sb.append("_").append(param.getLoginUserPhone());
// }
//
// if (ObjectUtil.isNotEmpty(param.getCrtimeStart())) {
// sb.append("_").append(param.getCrtimeStart().format(df));
// }
//
// if (ObjectUtil.isNotEmpty(param.getCrtimeEnd())) {
// sb.append("_").append(param.getCrtimeEnd().format(df));
// }
//
// sb.append("_").append(LocalDateTime.now().format(df));
// sb.append(".xlsx");
// return sb.toString();
// }
//
// public String getExcelFileUrl() {
// Long userId = (Long)SecureManager.getSubjectId().get();
// String key = "yst:merchantId:userId:download:allocLog:excel:url".replace("merchantId", TenantContextHolder.getTenantId().toString()).replace("user_id", userId.toString());
// Object fileUrl = RedisUtil.getObj(key);
// if (ObjectUtil.isEmpty(fileUrl)) {
// throw new LeException(I18n.getMessage("notice_alloc_log_record_get_excel_empty_url_exception", new Object[0]));
// } else {
// RedisUtil.delete(key);
// return (String)fileUrl;
// }
// }
}