oauth
This commit is contained in:
parent
133848976f
commit
875016d3e5
|
|
@ -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();
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue