Commit a29887b4 authored by killer's avatar killer

销户

parent 89edbf40
......@@ -49,6 +49,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.*;
......@@ -1597,4 +1598,23 @@ public class InnerController implements IBaseController {
cleanDataService.cleanData();
return JsonResult.buildSuccessResult("已经开始清洗");
}
/**
* 注销用户
*
* @param userId 用户id
* @return 销户结果
*/
@ApiOperation(value = "注销用户", httpMethod = "GET", notes="注销用户")
@GetMapping("/user/delete/{userId}")
public JsonResult<?> deregister(@NotNull @PathVariable("userId") Long userId) {
log.info("用户id[{}], 销户开始", userId);
/* 执行销户 */
userService.deregister(userId);
log.info("用户id[{}], 销户成功", userId);
return JsonResult.buildSuccessResult("用户销户成功", true);
}
}
\ No newline at end of file
package cn.quantgroup.xyqb.service.register;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import java.util.List;
......@@ -20,4 +21,10 @@ public interface IUserDeregisterService {
*/
List<UserDeregisterRecord> queryByPhoneNo(String phoneNo);
/**
* 保存用户销户记录
*
* @param user 用户
*/
void save(User user);
}
package cn.quantgroup.xyqb.service.register.impl;
import cn.quantgroup.xyqb.entity.User;
import cn.quantgroup.xyqb.entity.UserDeregisterRecord;
import cn.quantgroup.xyqb.repository.IUserDeregisterRecordRepository;
import cn.quantgroup.xyqb.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.util.encrypt.Md5Util;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
......@@ -26,4 +29,19 @@ public class IUserDeregisterServiceImpl implements IUserDeregisterService {
public List<UserDeregisterRecord> queryByPhoneNo(String phoneNo) {
return userDeregisterRecordRepository.findByPhoneNo(phoneNo);
}
@Override
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);
}
}
......@@ -105,9 +105,9 @@ public interface IUserService {
void logout(String token);
/**
* 通过userId删除用户记录
* 通过userId销户
*
* @param userId 用户id
*/
void deleteByUserId(Long userId);
void deregister(Long userId);
}
......@@ -12,10 +12,12 @@ import cn.quantgroup.xyqb.entity.*;
import cn.quantgroup.xyqb.event.PhoneNoUpdateEvent;
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.service.register.IUserDeregisterService;
import cn.quantgroup.xyqb.service.register.IUserRegisterService;
import cn.quantgroup.xyqb.service.session.ISessionService;
import cn.quantgroup.xyqb.service.user.*;
......@@ -91,6 +93,9 @@ public class UserServiceImpl implements IUserService, IBaseController {
@Autowired
private ITenantService tenantService;
@Autowired
private IUserDeregisterService userDeregisterService;
@Override
// @Cacheable(value = "usercache", key = "'xyqbuser' + #phone", unless = "#result == null", cacheManager = "cacheManager")
public User findByPhoneInDb(String phone) {
......@@ -115,7 +120,7 @@ public class UserServiceImpl implements IUserService, IBaseController {
//校验租户ID
if (!tenantId.equals(tenantId)) {
users = tenantService.selectUsersByTenantId(users, tenantId);
}else {
} else {
users = tenantService.validationTentIdByTentId(users, tenantId);
}
users.forEach(user -> userIdAndPhoneMap.put(user.getId(), user.getPhoneNo()));
......@@ -356,28 +361,28 @@ public class UserServiceImpl implements IUserService, IBaseController {
return JsonResult.buildErrorStateResult("登录时微信关联失败", null);
}
try {
String scDeviceId=request.getHeader("scDeviceId");
if(!StringUtils.isEmpty(scDeviceId)){
iSensorsAnalytics.trackSignUp( user.getUuid(),scDeviceId);
}
String terminal=request.getHeader("terminal");
String channel=request.getHeader("channel");
log.info("--------手机号{}-------scDeviceId{},terminal{},channel{},是否注册{}",phoneNo,scDeviceId,terminal,channel,register);
if(!StringUtils.isEmpty(terminal)&&"APP".equals(terminal)||!StringUtils.isEmpty(channel)&&("214".equals(channel)||"217".equals(channel))){
if(register){
String scDeviceId = request.getHeader("scDeviceId");
if (!StringUtils.isEmpty(scDeviceId)) {
iSensorsAnalytics.trackSignUp(user.getUuid(), scDeviceId);
}
String terminal = request.getHeader("terminal");
String channel = request.getHeader("channel");
log.info("--------手机号{}-------scDeviceId{},terminal{},channel{},是否注册{}", phoneNo, scDeviceId, terminal, channel, register);
if (!StringUtils.isEmpty(terminal) && "APP".equals(terminal) || !StringUtils.isEmpty(channel) && ("214".equals(channel) || "217".equals(channel))) {
if (register) {
EventRecord userRecord = EventRecord.builder().setDistinctId(user.getUuid()).isLoginId(Boolean.TRUE)
.setEventName("App_RegisterEvent")
.build();
iSensorsAnalytics.track(userRecord);
}else {
} else {
EventRecord userRecord = EventRecord.builder().setDistinctId(user.getUuid()).isLoginId(Boolean.TRUE)
.setEventName("App_LoginEvent")
.build();
iSensorsAnalytics.track(userRecord);
}
iSensorsAnalytics.flush();
}else {
log.info("老神策埋点{},{}------------",user.getRegisteredFrom(),user.getUuid());
} else {
log.info("老神策埋点{},{}------------", user.getRegisteredFrom(), user.getUuid());
EventRecord userRecord = EventRecord.builder().setDistinctId(user.getUuid()).isLoginId(Boolean.TRUE)
.setEventName("PD_WUXIEC_UserLoginVccorCash")
.addProperty("son_channel_id", user.getRegisteredFrom())
......@@ -506,14 +511,14 @@ public class UserServiceImpl implements IUserService, IBaseController {
List<User> users = userRepository.findByIdIn(collect);
if (!tenantId.equals(TenantUtil.TENANT_DEFAULT)) {
return tenantService.selectUsersByTenantId(users, tenantId);
}else {
} else {
return tenantService.validationTentIdByTentId(users, tenantId);
}
} else { //不是1 就是 uuids
List<User> users = userRepository.findByUuidIn(vals);
if (!tenantId.equals(TenantUtil.TENANT_DEFAULT)) {
return tenantService.selectUsersByTenantId(users, tenantId);
}else {
} else {
return tenantService.validationTentIdByTentId(users, tenantId);
}
}
......@@ -525,8 +530,25 @@ public class UserServiceImpl implements IUserService, IBaseController {
sessionService.deleteSession(token);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void deleteByUserId(Long userId) {
public void deregister(Long userId) {
User user = userRepository.findById(userId);
if (Objects.isNull(user)) {
throw new UserRegisterLoginException("用户不存在");
}
/* 保存用户销户记录 */
userDeregisterService.save(user);
/* 删除用户 */
userRepository.deleteById(userId);
/* 清空session */
sessionService.deleteByUserId(user.getId());
/* 清空缓存 */
sessionService.deleteUserCatch(user);
/* 禁用微信 */
wechatService.forbiddenUserWeChat(user.getId());
}
}
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