|
|
@@ -122,78 +122,149 @@ public class StoreMembershipCardJob {
|
|
|
@XxlJob("cancellationOfBusinessJob")
|
|
|
public void cancellationOfBusinessJob() {
|
|
|
log.info("删除已申请注销超过7天的商家与用户: " + new Date());
|
|
|
+ int successCount = 0;
|
|
|
+ int failCount = 0;
|
|
|
|
|
|
- // 获取全部申请注销的商家
|
|
|
+ // 获取全部申请注销的商家用户
|
|
|
List<StoreUser> storeUsers = storeUserMapper.selectList(new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getLogoutFlag, LOGOUT_FLAY));
|
|
|
for (StoreUser storeUser : storeUsers) {
|
|
|
- if (null != storeUser.getLogoutTime()) {
|
|
|
- // 获取申请注销时间
|
|
|
- Date logoutTime = storeUser.getLogoutTime();
|
|
|
- // 获取申请注销 8 天后的时间
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(logoutTime);
|
|
|
- calendar.add(Calendar.DAY_OF_YEAR, 8);
|
|
|
- Date sevenDay = calendar.getTime();
|
|
|
- // 获取当前时间
|
|
|
- Date date = new Date();
|
|
|
- if (date.compareTo(sevenDay) >= 0) {
|
|
|
- // 删除已过注销时间的商家
|
|
|
- storeUserMapper.deleteById(storeUser.getId());
|
|
|
- alienStoreFeign.delMer(Boolean.TRUE, storeUser.getId().toString());
|
|
|
- //删除用户redis中的token
|
|
|
- baseRedisService.delete("store_" + storeUser.getPhone());
|
|
|
+ try {
|
|
|
+ if (null != storeUser.getLogoutTime()) {
|
|
|
+ // 获取申请注销时间
|
|
|
+ Date logoutTime = storeUser.getLogoutTime();
|
|
|
+ // 获取申请注销 7 天后的时间(与通知一致)
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(logoutTime);
|
|
|
+ calendar.add(Calendar.DAY_OF_YEAR, 7);
|
|
|
+ Date sevenDay = calendar.getTime();
|
|
|
+ // 获取当前时间
|
|
|
+ Date date = new Date();
|
|
|
+ if (date.compareTo(sevenDay) >= 0) {
|
|
|
+ // 删除已过注销时间的商家用户
|
|
|
+ log.info("删除已注销超过7天的商家用户: userId={}, phone={}, logoutTime={}",
|
|
|
+ storeUser.getId(), storeUser.getPhone(), logoutTime);
|
|
|
+ storeUserMapper.deleteById(storeUser.getId());
|
|
|
+ alienStoreFeign.delMer(Boolean.TRUE, storeUser.getId().toString());
|
|
|
+ //删除用户redis中的token
|
|
|
+ baseRedisService.delete("store_" + storeUser.getPhone());
|
|
|
+ successCount++;
|
|
|
+ }
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ failCount++;
|
|
|
+ log.error("删除商家用户失败: userId={}, phone={}, error={}",
|
|
|
+ storeUser.getId(), storeUser.getPhone(), e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 获取全部申请注销的店铺
|
|
|
List<StoreInfo> storeInfos = storeInfoMapper.selectList(new LambdaQueryWrapper<StoreInfo>().eq(StoreInfo::getLogoutFlag, LOGOUT_FLAY));
|
|
|
for (StoreInfo storeInfo : storeInfos) {
|
|
|
- if (null != storeInfo.getLogoutTime()) {
|
|
|
- // 获取申请注销时间
|
|
|
- Date logoutTime = storeInfo.getLogoutTime();
|
|
|
- // 获取申请注销 8 天后的时间
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(logoutTime);
|
|
|
- calendar.add(Calendar.DAY_OF_YEAR, 8);
|
|
|
- Date sevenDay = calendar.getTime();
|
|
|
- // 获取当前时间
|
|
|
- Date date = new Date();
|
|
|
- if (date.compareTo(sevenDay) >= 0) {
|
|
|
- //删除该账号的店铺
|
|
|
- storeInfoMapper.deleteById(storeInfo.getId());
|
|
|
- StoreUser storeUser = storeUserMapper.selectOne(new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getStoreId, storeInfo.getId()));
|
|
|
- if (storeUser != null) {
|
|
|
- storeUser.setStoreId(null);
|
|
|
- storeUserMapper.updateById(storeUser);
|
|
|
- LambdaQueryWrapper<LifeFans> queryWrapper = new LambdaQueryWrapper<LifeFans>().eq(LifeFans::getFollowedId, "store_" + storeUser.getPhone())
|
|
|
- .or().eq(LifeFans::getFansId, "store_" + storeUser.getPhone());
|
|
|
- lifeFansMapper.delete(queryWrapper);
|
|
|
+ try {
|
|
|
+ if (null != storeInfo.getLogoutTime()) {
|
|
|
+ // 获取申请注销时间
|
|
|
+ Date logoutTime = storeInfo.getLogoutTime();
|
|
|
+ // 获取申请注销 7 天后的时间(与通知一致)
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(logoutTime);
|
|
|
+ calendar.add(Calendar.DAY_OF_YEAR, 7);
|
|
|
+ Date sevenDay = calendar.getTime();
|
|
|
+ // 获取当前时间
|
|
|
+ Date date = new Date();
|
|
|
+ if (date.compareTo(sevenDay) >= 0) {
|
|
|
+ log.info("开始删除已注销超过7天的店铺: storeId={}, storeName={}, logoutTime={}",
|
|
|
+ storeInfo.getId(), storeInfo.getStoreName(), logoutTime);
|
|
|
+
|
|
|
+ // 先清理关联的商户用户注销状态,确保可以重新入驻
|
|
|
+ List<StoreUser> relatedStoreUsers = storeUserMapper.selectList(
|
|
|
+ new LambdaQueryWrapper<StoreUser>().eq(StoreUser::getStoreId, storeInfo.getId()));
|
|
|
+ int deletedUsers = 0;
|
|
|
+ int deletedFans = 0;
|
|
|
+
|
|
|
+ for (StoreUser storeUser : relatedStoreUsers) {
|
|
|
+ try {
|
|
|
+ // 清理注销标记和时间,允许重新入驻
|
|
|
+ storeUser.setLogoutFlag(0);
|
|
|
+ storeUser.setLogoutTime(null);
|
|
|
+ storeUser.setStoreId(null); // 解除店铺绑定
|
|
|
+ storeUserMapper.updateById(storeUser);
|
|
|
+ deletedUsers++;
|
|
|
+ log.info("清理商户用户注销状态: userId={}, phone={}", storeUser.getId(), storeUser.getPhone());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("清理商户用户注销状态失败: userId={}, phone={}, error={}",
|
|
|
+ storeUser.getId(), storeUser.getPhone(), e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清理粉丝关系
|
|
|
+ for (StoreUser storeUser : relatedStoreUsers) {
|
|
|
+ try {
|
|
|
+ if (storeUser.getPhone() != null) {
|
|
|
+ LambdaQueryWrapper<LifeFans> queryWrapper = new LambdaQueryWrapper<LifeFans>()
|
|
|
+ .eq(LifeFans::getFollowedId, "store_" + storeUser.getPhone())
|
|
|
+ .or().eq(LifeFans::getFansId, "store_" + storeUser.getPhone());
|
|
|
+ int deleted = lifeFansMapper.delete(queryWrapper);
|
|
|
+ deletedFans += deleted;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("清理粉丝关系失败: userId={}, phone={}, error={}",
|
|
|
+ storeUser.getId(), storeUser.getPhone(), e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清理Redis地理位置(通过Feign调用)
|
|
|
+ try {
|
|
|
+ alienStoreFeign.delMer(Boolean.TRUE, storeInfo.getId().toString());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("清理Redis地理位置失败: storeId={}, error={}", storeInfo.getId(), e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 最后删除店铺记录
|
|
|
+ storeInfoMapper.deleteById(storeInfo.getId());
|
|
|
+ successCount++;
|
|
|
+ log.info("店铺删除完成: storeId={}, deletedUsers={}, deletedFans={}",
|
|
|
+ storeInfo.getId(), deletedUsers, deletedFans);
|
|
|
}
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ failCount++;
|
|
|
+ log.error("删除店铺失败: storeId={}, storeName={}, error={}",
|
|
|
+ storeInfo.getId(), storeInfo.getStoreName(), e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 获取全部申请注销的用户
|
|
|
List<LifeUser> lifeUsers = lifeUserMapper.selectList(new LambdaQueryWrapper<LifeUser>().eq(LifeUser::getLogoutFlag, LOGOUT_FLAY));
|
|
|
for (LifeUser lifeUser : lifeUsers) {
|
|
|
- if (null != lifeUser.getLogoutTime()) {
|
|
|
- // 获取申请注销时间
|
|
|
- Date logoutTime = lifeUser.getLogoutTime();
|
|
|
- // 获取申请注销 7 天后的时间
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(logoutTime);
|
|
|
- calendar.add(Calendar.DAY_OF_YEAR, 7);
|
|
|
- Date sevenDay = calendar.getTime();
|
|
|
- // 获取当前时间
|
|
|
- Date date = new Date();
|
|
|
- if (date.compareTo(sevenDay) >= 0) {
|
|
|
- // 删除已过注销时间的用户
|
|
|
- lifeUserMapper.deleteById(lifeUser.getId());
|
|
|
- // 清理粉丝
|
|
|
- LambdaQueryWrapper<LifeFans> queryWrapper = new LambdaQueryWrapper<LifeFans>().eq(LifeFans::getFollowedId, "user_" + lifeUser.getUserPhone())
|
|
|
- .or().eq(LifeFans::getFansId, "user_" + lifeUser.getUserPhone());
|
|
|
- lifeFansMapper.delete(queryWrapper);
|
|
|
+ try {
|
|
|
+ if (null != lifeUser.getLogoutTime()) {
|
|
|
+ // 获取申请注销时间
|
|
|
+ Date logoutTime = lifeUser.getLogoutTime();
|
|
|
+ // 获取申请注销 7 天后的时间
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(logoutTime);
|
|
|
+ calendar.add(Calendar.DAY_OF_YEAR, 7);
|
|
|
+ Date sevenDay = calendar.getTime();
|
|
|
+ // 获取当前时间
|
|
|
+ Date date = new Date();
|
|
|
+ if (date.compareTo(sevenDay) >= 0) {
|
|
|
+ // 删除已过注销时间的用户
|
|
|
+ lifeUserMapper.deleteById(lifeUser.getId());
|
|
|
+ // 清理粉丝
|
|
|
+ LambdaQueryWrapper<LifeFans> queryWrapper = new LambdaQueryWrapper<LifeFans>()
|
|
|
+ .eq(LifeFans::getFollowedId, "user_" + lifeUser.getUserPhone())
|
|
|
+ .or().eq(LifeFans::getFansId, "user_" + lifeUser.getUserPhone());
|
|
|
+ lifeFansMapper.delete(queryWrapper);
|
|
|
+ successCount++;
|
|
|
+ }
|
|
|
}
|
|
|
+ } catch (Exception e) {
|
|
|
+ failCount++;
|
|
|
+ log.error("删除用户失败: userId={}, phone={}, error={}",
|
|
|
+ lifeUser.getId(), lifeUser.getUserPhone(), e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ log.info("定时任务执行完成: 成功={}, 失败={}", successCount, failCount);
|
|
|
}
|
|
|
}
|