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.*;
import cn.quantgroup.xyqb.service.api.IUserApiService;
import cn.quantgroup.xyqb.service.auth.IIdCardService;
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.session.ISessionService;
import cn.quantgroup.xyqb.service.sms.ISmsService;
......@@ -52,6 +53,7 @@ import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -106,6 +108,9 @@ public class InnerController implements IBaseController {
@Autowired
private IOauthLoginInfoService iOauthLoginInfoService;
@Autowired
private IUserDeregisterService userDeregisterService;
private static final String RESET_PWD_TOKEN = "ecf75c1f-2ccb-4661-8e4b-2874c0f45a2b";
private static final String MODIFY_CONTACT_TOKEN = "@qwsdedad131323213w!";
......@@ -1617,4 +1622,15 @@ public class InnerController implements IBaseController {
log.info("用户id[{}], 销户成功", userId);
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;
import cn.quantgroup.xyqb.entity.UserAttached;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -12,4 +13,8 @@ public interface IUserAttachedRepository extends JpaRepository<UserAttached, Lon
UserAttached findByUserId(Long userId);
List<UserAttached> findByUserIdIn(List<Long> userId);
@Transactional
void deleteByUserId(Long userId);
}
......@@ -3,9 +3,12 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserBtRegister;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by Administrator on 2017/5/16.
*/
public interface IUserBtRegisterRepository extends JpaRepository<UserBtRegister, Long>, JpaSpecificationExecutor<UserBtRegister> {
@Transactional
void deleteByUserId(Long userId);
}
......@@ -2,7 +2,9 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
......@@ -20,4 +22,10 @@ public interface IUserDeregisterRecordRepository extends JpaRepository<UserDereg
* @return List<UserDeregisterRecord>
*/
List<UserDeregisterRecord> findByPhoneNo(String phoneNo);
/**
* 删除注销时间大于90天数据
*/
@Transactional
void deleteByDeregisterTimeIsBefore(Date dt);
}
......@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserHashMapping;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
......@@ -15,4 +16,7 @@ public interface IUserHashMappingRepository extends JpaRepository<UserHashMappin
UserHashMapping findByUserId(Long userId);
@Transactional
void deleteByUserId(Long userId);
}
......@@ -2,10 +2,14 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UserHashPhoneNoIdNoMapping;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
public interface IUserHashPhoneNoIdNoMappingRepository extends JpaRepository<UserHashPhoneNoIdNoMapping, Long> {
UserHashPhoneNoIdNoMapping findFirstByPhoneNoIdNoMd5(String phoneNoIdNoMd5);
UserHashPhoneNoIdNoMapping findByUserId(Long userId);
@Transactional
void deleteByUserId(Long userId);
}
......@@ -2,6 +2,7 @@ package cn.quantgroup.xyqb.repository;
import cn.quantgroup.xyqb.entity.UuidPhoneMapping;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by Miraculous on 15/10/29.
......@@ -10,4 +11,7 @@ public interface IUuidPhoneMappingRepository extends JpaRepository<UuidPhoneMapp
UuidPhoneMapping findByUuid(String uuid);
@Transactional
void deleteByUuid(String uuid);
}
......@@ -85,4 +85,7 @@ public interface IWeChatUserRepository extends JpaRepository<WechatUserInfo, Lon
@Modifying
@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);
@Transactional
void deleteByUserId(Long userId);
}
......@@ -3,6 +3,7 @@ package cn.quantgroup.xyqb.service.register;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import java.util.Date;
import java.util.List;
/**
......@@ -27,4 +28,6 @@ public interface IUserDeregisterService {
* @param user 用户
*/
void save(User user);
void executeTask();
}
......@@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
......@@ -34,14 +35,25 @@ public class IUserDeregisterServiceImpl implements IUserDeregisterService {
public void save(User user) {
UserDeregisterRecord build = UserDeregisterRecord.builder()
.userId(user.getId())
.deregisterTime(new Date())
.password(user.getPassword())
.registeredFrom(user.getRegisteredFrom())
.uuid(user.getUuid())
.phoneNo(Md5Util.build(user.getPhoneNo()))
.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 {
@Override
public User register(String phoneNo, Long channelId, Long registerFrom, String appChannel, Long btRegisterChannelId, String dimension) {
deregisterCheck(phoneNo);
// deregisterCheck(phoneNo);
UserRegisterParam userRegisterParam = UserRegisterParam.builder()
.registerFrom(registerFrom)
......
......@@ -14,9 +14,7 @@ import cn.quantgroup.xyqb.exception.DataException;
import cn.quantgroup.xyqb.exception.UserNotExistException;
import cn.quantgroup.xyqb.exception.UserRegisterLoginException;
import cn.quantgroup.xyqb.model.*;
import cn.quantgroup.xyqb.repository.IUserHashMappingRepository;
import cn.quantgroup.xyqb.repository.IUserHashPhoneNoIdNoMappingRepository;
import cn.quantgroup.xyqb.repository.IUserRepository;
import cn.quantgroup.xyqb.repository.*;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService;
......@@ -96,6 +94,18 @@ public class UserServiceImpl implements IUserService, IBaseController {
@Autowired
private IUserDeregisterService userDeregisterService;
@Autowired
private IUserAttachedRepository userAttachedRepository;
@Autowired
private IUserBtRegisterRepository userBtRegisterRepository;
@Autowired
private IUuidPhoneMappingRepository uuidPhoneMappingRepository;
@Resource
private IWeChatUserRepository weChatUserRepository;
@Override
// @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
public User findByPhoneInDb(String phone) {
......@@ -550,11 +560,24 @@ public class UserServiceImpl implements IUserService, IBaseController {
userDeregisterService.save(user);
/* 删除用户 */
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 */
sessionService.deleteByUserId(user.getId());
/* 清空缓存 */
sessionService.deleteUserCatch(user);
/* 禁用微信 */
wechatService.forbiddenXyqbAndWuxiUserByUserId(user.getId());
/* 禁用微信 Or 删除?*/
// 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