Commit b6808b8e authored by 李健华's avatar 李健华

Merge branch 'feature/deregister-2022-03-12' into 'master'

Feature/deregister 2022 03 12

See merge request !49
parents 4146c7a9 b644e77c
...@@ -17,6 +17,7 @@ import cn.quantgroup.xyqb.model.*; ...@@ -17,6 +17,7 @@ import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.service.api.IUserApiService; import cn.quantgroup.xyqb.service.api.IUserApiService;
import cn.quantgroup.xyqb.service.auth.IIdCardService; import cn.quantgroup.xyqb.service.auth.IIdCardService;
import cn.quantgroup.xyqb.service.merchant.IMerchantService; import cn.quantgroup.xyqb.service.merchant.IMerchantService;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService; import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService; import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService; import cn.quantgroup.xyqb.service.sms.ISmsService;
...@@ -52,6 +53,7 @@ import javax.validation.constraints.Min; ...@@ -52,6 +53,7 @@ import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -106,6 +108,9 @@ public class InnerController implements IBaseController { ...@@ -106,6 +108,9 @@ public class InnerController implements IBaseController {
@Autowired @Autowired
private IOauthLoginInfoService iOauthLoginInfoService; private IOauthLoginInfoService iOauthLoginInfoService;
@Autowired
private IUserDeregisterService userDeregisterService;
private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b"; private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b";
private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!"; private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!";
...@@ -1617,4 +1622,15 @@ public class InnerController implements IBaseController { ...@@ -1617,4 +1622,15 @@ public class InnerController implements IBaseController {
log.info("用户id[{}], 销户成功", userId); log.info("用户id[{}], 销户成功", userId);
return JsonResult.buildSuccessResult("用户销户成功", true); return JsonResult.buildSuccessResult("用户销户成功", true);
} }
/**
* 测试定时删除注销记录
* @return
*/
@PostMapping("/user/deleteDeregister")
public JsonResult<?> deleteDeregister() {
userDeregisterService.executeTask();
return JsonResult.buildSuccessResult("用户销户成功1231" , true);
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserAttached; import cn.quantgroup.xyqb.entity.UserAttached;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
...@@ -12,4 +13,8 @@ public interface IUserAttachedRepository extends JpaRepository<UserAttached, Lon ...@@ -12,4 +13,8 @@ public interface IUserAttachedRepository extends JpaRepository<UserAttached, Lon
UserAttached findByUserId(Long userId); UserAttached findByUserId(Long userId);
List<UserAttached> findByUserIdIn(List<Long> userId); List<UserAttached> findByUserIdIn(List<Long> userId);
@Transactional
void deleteByUserId(Long userId);
} }
...@@ -3,9 +3,12 @@ package cn.quantgroup.xyqb.repository; ...@@ -3,9 +3,12 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserBtRegister; import cn.quantgroup.xyqb.entity.UserBtRegister;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.transaction.annotation.Transactional;
/** /**
* Created by Administrator on 2017/5/16. * Created by Administrator on 2017/5/16.
*/ */
public interface IUserBtRegisterRepository extends JpaRepository<UserBtRegister, Long>, JpaSpecificationExecutor<UserBtRegister> { public interface IUserBtRegisterRepository extends JpaRepository<UserBtRegister, Long>, JpaSpecificationExecutor<UserBtRegister> {
@Transactional
void deleteByUserId(Long userId);
} }
...@@ -2,7 +2,9 @@ package cn.quantgroup.xyqb.repository; ...@@ -2,7 +2,9 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord; import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -20,4 +22,10 @@ public interface IUserDeregisterRecordRepository extends JpaRepository<UserDereg ...@@ -20,4 +22,10 @@ public interface IUserDeregisterRecordRepository extends JpaRepository<UserDereg
* @return List<UserDeregisterRecord> * @return List<UserDeregisterRecord>
*/ */
List<UserDeregisterRecord> findByPhoneNo(String phoneNo); List<UserDeregisterRecord> findByPhoneNo(String phoneNo);
/**
* 删除注销时间大于90天数据
*/
@Transactional
void deleteByDeregisterTimeIsBefore(Date dt);
} }
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserHashMapping; import cn.quantgroup.xyqb.entity.UserHashMapping;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
...@@ -15,4 +16,7 @@ public interface IUserHashMappingRepository extends JpaRepository<UserHashMappin ...@@ -15,4 +16,7 @@ public interface IUserHashMappingRepository extends JpaRepository<UserHashMappin
UserHashMapping findByUserId(Long userId); UserHashMapping findByUserId(Long userId);
@Transactional
void deleteByUserId(Long userId);
} }
...@@ -2,10 +2,14 @@ package cn.quantgroup.xyqb.repository; ...@@ -2,10 +2,14 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserHashPhoneNoIdNoMapping; import cn.quantgroup.xyqb.entity.UserHashPhoneNoIdNoMapping;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
public interface IUserHashPhoneNoIdNoMappingRepository extends JpaRepository<UserHashPhoneNoIdNoMapping, Long> { public interface IUserHashPhoneNoIdNoMappingRepository extends JpaRepository<UserHashPhoneNoIdNoMapping, Long> {
UserHashPhoneNoIdNoMapping findFirstByPhoneNoIdNoMd5(String phoneNoIdNoMd5); UserHashPhoneNoIdNoMapping findFirstByPhoneNoIdNoMd5(String phoneNoIdNoMd5);
UserHashPhoneNoIdNoMapping findByUserId(Long userId); UserHashPhoneNoIdNoMapping findByUserId(Long userId);
@Transactional
void deleteByUserId(Long userId);
} }
...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository; ...@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UuidPhoneMapping; import cn.quantgroup.xyqb.entity.UuidPhoneMapping;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
/** /**
* Created by Miraculous on 15/10/29. * Created by Miraculous on 15/10/29.
...@@ -10,4 +11,7 @@ public interface IUuidPhoneMappingRepository extends JpaRepository<UuidPhoneMapp ...@@ -10,4 +11,7 @@ public interface IUuidPhoneMappingRepository extends JpaRepository<UuidPhoneMapp
UuidPhoneMapping findByUuid(String uuid); UuidPhoneMapping findByUuid(String uuid);
@Transactional
void deleteByUuid(String uuid);
} }
...@@ -85,4 +85,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon ...@@ -85,4 +85,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
@Modifying @Modifying
@Query(value = "update wechat_userinfo set union_id=?3 where user_id=?1 and app_name=?2", nativeQuery = true) @Query(value = "update wechat_userinfo set union_id=?3 where user_id=?1 and app_name=?2", nativeQuery = true)
int updateUserUnionId(Long userId, String appName, String unionId); int updateUserUnionId(Long userId, String appName, String unionId);
@Transactional
void deleteByUserId(Long userId);
} }
...@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.service.register; ...@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.service.register;
import cn.quantgroup.xyqb.entity.User; import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord; import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -27,4 +28,6 @@ public interface IUserDeregisterService { ...@@ -27,4 +28,6 @@ public interface IUserDeregisterService {
* @param user 用户 * @param user 用户
*/ */
void save(User user); void save(User user);
void executeTask();
} }
...@@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor; ...@@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -34,14 +35,25 @@ public class IUserDeregisterServiceImpl implements IUserDeregisterService { ...@@ -34,14 +35,25 @@ public class IUserDeregisterServiceImpl implements IUserDeregisterService {
public void save(User user) { public void save(User user) {
UserDeregisterRecord build = UserDeregisterRecord.builder() UserDeregisterRecord build = UserDeregisterRecord.builder()
.userId(user.getId())
.deregisterTime(new Date()) .deregisterTime(new Date())
.password(user.getPassword())
.registeredFrom(user.getRegisteredFrom())
.uuid(user.getUuid())
.phoneNo(Md5Util.build(user.getPhoneNo())) .phoneNo(Md5Util.build(user.getPhoneNo()))
.build(); .build();
userDeregisterRecordRepository.save(build); userDeregisterRecordRepository.save(build);
} }
@Override
public void executeTask() {
try {
Date dt = new Date();
Calendar c = Calendar.getInstance();
c.setTime(dt);
c.add(Calendar.DATE, -90);
dt = c.getTime();
log.info("执行删除超过90天注销记录--{}", dt);
userDeregisterRecordRepository.deleteByDeregisterTimeIsBefore(dt);
} catch (Exception e) {
log.error("执行删除超过90天注销记录失败--{}", e.getMessage());
}
}
} }
...@@ -185,7 +185,7 @@ public class UserRegisterServiceImpl implements IUserRegisterService { ...@@ -185,7 +185,7 @@ public class UserRegisterServiceImpl implements IUserRegisterService {
@Override @Override
public User register(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId, String dimension) { public User register(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId, String dimension) {
deregisterCheck(phoneNo); // deregisterCheck(phoneNo);
UserRegisterParam userRegisterParam = UserRegisterParam.builder() UserRegisterParam userRegisterParam = UserRegisterParam.builder()
.registerFrom(registerFrom) .registerFrom(registerFrom)
......
...@@ -14,9 +14,7 @@ import cn.quantgroup.xyqb.exception.DataException; ...@@ -14,9 +14,7 @@ import cn.quantgroup.xyqb.exception.DataException;
import cn.quantgroup.xyqb.exception.UserNotExistException; import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.exception.UserRegisterLoginException; import cn.quantgroup.xyqb.exception.UserRegisterLoginException;
import cn.quantgroup.xyqb.model.*; import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.repository.IUserHashMappingRepository; import cn.quantgroup.xyqb.repository.*;
import cn.quantgroup.xyqb.repository.IUserHashPhoneNoIdNoMappingRepository;
import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService; import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService; import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService; import cn.quantgroup.xyqb.service.session.ISessionService;
...@@ -96,6 +94,18 @@ public class UserServiceImpl implements IUserService, IBaseController { ...@@ -96,6 +94,18 @@ public class UserServiceImpl implements IUserService, IBaseController {
@Autowired @Autowired
private IUserDeregisterService userDeregisterService; private IUserDeregisterService userDeregisterService;
@Autowired
private IUserAttachedRepository userAttachedRepository;
@Autowired
private IUserBtRegisterRepository userBtRegisterRepository;
@Autowired
private IUuidPhoneMappingRepository uuidPhoneMappingRepository;
@Resource
private IWeChatUserRepository weChatUserRepository;
@Override @Override
// @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager") // @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
public User findByPhoneInDb(String phone) { public User findByPhoneInDb(String phone) {
...@@ -550,11 +560,24 @@ public class UserServiceImpl implements IUserService, IBaseController { ...@@ -550,11 +560,24 @@ public class UserServiceImpl implements IUserService, IBaseController {
userDeregisterService.save(user); userDeregisterService.save(user);
/* 删除用户 */ /* 删除用户 */
userRepository.deleteById(userId); userRepository.deleteById(userId);
/* 删除用户附加信息 */
userAttachedRepository.deleteByUserId(userId);
/* 删除 user_bt_register 信息 */
userBtRegisterRepository.deleteByUserId(userId);
/* 删除用户身份证和手机的hashMapping */
userHashMappingRepository.deleteByUserId(userId);
/* 删除用户手机号加身份证hashMapping */
userHashPhoneNoIdNoMappingRepository.deleteByUserId(userId);
/* 删除用户uuid和手机号mapping */
uuidPhoneMappingRepository.deleteByUuid(user.getUuid());
/* 清空session */ /* 清空session */
sessionService.deleteByUserId(user.getId()); sessionService.deleteByUserId(user.getId());
/* 清空缓存 */ /* 清空缓存 */
sessionService.deleteUserCatch(user); sessionService.deleteUserCatch(user);
/* 禁用微信 */ /* 禁用微信 Or 删除?*/
wechatService.forbiddenXyqbAndWuxiUserByUserId(user.getId()); // wechatService.forbiddenXyqbAndWuxiUserByUserId(user.getId());
weChatUserRepository.deleteByUserId(userId);
} }
} }
package cn.quantgroup.xyqb.xxlJob;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.wechat.IWechatFollowService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 删除注销时间大于90的注销记录
*/
@Component
@JobHandler(value = "DeregisterTimeJobHandler")
public class DeregisterTimeJobHandler extends IJobHandler {
@Autowired
private IUserDeregisterService userDeregisterService;
@Override
public ReturnT<String> execute(String s) throws Exception {
userDeregisterService.executeTask();
return SUCCESS;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment