添加删除逻辑

master
wujingtao 2 years ago
parent 6eb0312c35
commit 2da134e5e3

@ -10,6 +10,7 @@ import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* @author jt
@ -18,6 +19,7 @@ import java.util.List;
public interface TaskImeiRepository extends JpaRepository<TaskImei, Long>, JpaSpecificationExecutor<TaskImei> {
/**
* id
*
* @param taskId
* @return
*/
@ -25,6 +27,7 @@ public interface TaskImeiRepository extends JpaRepository<TaskImei, Long>, JpaSp
/**
*
*
* @param num
* @return
*/
@ -59,11 +62,21 @@ public interface TaskImeiRepository extends JpaRepository<TaskImei, Long>, JpaSp
/**
*
*
* @param userId
* @param num
* @return
*/
@Query(value = "select count(1) from tb_task_imei where" +
" to_days(create_time) = to_days(now()) and user_id = ?1 and status = ?2", nativeQuery = true)
Integer countByUserId( Long userId, Integer num);
Integer countByUserId(Long userId, Integer num);
/**
* imei
*
* @param taskIds id
*/
@Modifying
@Query(value = "delete from tb_task_imei where task_id in ?1", nativeQuery = true)
void deleteByTaskIds(Set<Long> taskIds);
}

@ -3,9 +3,12 @@ package com.baiye.modules.platform.repository;
import com.baiye.modules.platform.domain.TaskTag;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author jt
@ -22,8 +25,18 @@ public interface TaskTagRepository extends JpaRepository<TaskTag, Long>, JpaSpec
/**
* idtag
*
* @param taskId
* @return
*/
TaskTag findTaskTagByTaskId(Long taskId);
/**
* imei
*
* @param taskIds id
*/
@Modifying
@Query(value = "delete from tb_task_tag where task_id in ?1", nativeQuery = true)
void deleteByTaskIds(Set<Long> taskIds);
}

@ -4,6 +4,7 @@ import com.baiye.modules.platform.domain.TaskImei;
import com.baiye.modules.platform.service.dto.PlatformTransmitDTO;
import java.util.List;
import java.util.Set;
/**
* @author Enzo
@ -60,4 +61,10 @@ public interface TaskImeiService {
* @return
*/
Integer countByUserIdAndDate(Long userId, Integer num);
/**
* Imei()
* @param taskIds
*/
void deleteTaskImei(Set<Long> taskIds);
}

@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Set;
/**
* @author Enzo
@ -87,5 +88,10 @@ public class TaskImeiServiceImpl implements TaskImeiService {
return taskImeiRepository.countByUserId(userId, num);
}
@Override
public void deleteTaskImei(Set<Long> taskIds) {
taskImeiRepository.deleteByTaskIds(taskIds);
}
}

@ -3,6 +3,7 @@ package com.baiye.modules.report.dao;
import com.baiye.modules.report.entity.TaskReport;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@ -36,4 +37,7 @@ public interface TaskReportRepository extends JpaRepository<TaskReport, Long>, J
*/
@Query(value = "select * from tb_report_task where (create_time between ?1 and ?2) and company_id =?3", nativeQuery = true)
List<TaskReport> queryAllByTimeAndCompanyId(String beginTime, String endTime, Long companyId);
@Modifying
void deleteByCompanyId(Long companyId);
}

@ -3,6 +3,7 @@ package com.baiye.modules.report.dao;
import com.baiye.modules.report.entity.UserReport;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@ -36,4 +37,7 @@ public interface UserReportRepository extends JpaRepository<UserReport, Long>, J
*/
@Query(value = "select * from tb_report_user where (create_time between ?1 and ?2) and (coalesce (?3,null) is null or organize_id in (?3))", nativeQuery = true)
List<UserReport> queryAllByTimeAndTeamIds(String beginTime, String endTime, List<Long> ids);
@Modifying
void deleteByCompanyId(Long companyId);
}

@ -108,7 +108,12 @@ public interface QueryReportService {
*/
void downloadCallRecordDetails(HttpServletResponse response, Long clueId);
Map<Long, Map<String, Object>> findMemberIdByOrganizeIds(List<Long> organizeIds);
Map<Long, Map<String, Object>> findMemberIdByOrganizeIds(List<Long> organizeIds);
/**
*
*
* @param companyId
*/
void deleteReport(Long companyId);
}

@ -50,6 +50,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@ -922,4 +923,11 @@ public class QueryReportServiceImpl implements QueryReportService {
}
return map;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteReport(Long companyId) {
taskReportRepository.deleteByCompanyId(companyId);
userReportRepository.deleteByCompanyId(companyId);
}
}

@ -38,6 +38,7 @@ import com.baiye.modules.platform.domain.*;
import com.baiye.modules.platform.repository.*;
import com.baiye.modules.platform.service.*;
import com.baiye.modules.platform.service.dto.*;
import com.baiye.modules.report.service.QueryReportService;
import com.baiye.modules.system.mapstruct.UserMapper;
import com.baiye.modules.system.domain.Role;
import com.baiye.modules.system.domain.User;
@ -45,6 +46,7 @@ import com.baiye.modules.system.dto.UserQueryCriteria;
import com.baiye.modules.system.repository.RoleRepository;
import com.baiye.modules.system.repository.UserRepository;
import com.baiye.modules.system.service.UserService;
import com.baiye.modules.telemarkting.service.ExtensionNumberService;
import com.baiye.util.*;
import com.google.common.collect.ImmutableMap;
import lombok.RequiredArgsConstructor;
@ -111,7 +113,10 @@ public class UserServiceImpl implements UserService {
private final CallDeductService callDeductService;
private final LabelOrganizeService labelOrganizeService;
private final ExtensionNumberService extensionNumberService;
private final QueryReportService queryReportService;
private final TaskImeiService taskImeiService;
private final TaskTagRepository taskTagRepository;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean fileCreateUser(List<UserFavorOfExcel> excels, Long companyId, UserDto userDto) {
@ -550,7 +555,6 @@ public class UserServiceImpl implements UserService {
public void delete2(DelUserDTO delUserDTO) {
Long userId = delUserDTO.getUserId();
Long replaceUserId = delUserDTO.getReplaceUserId();
Boolean isDel = delUserDTO.getIsDel();
UserDto user = findById(userId);
Set<Long> roleIds = user.getRoles().stream().map(RoleSmallDto::getId).collect(Collectors.toSet());
Set<Long> replaceRoleIds = new HashSet<>();
@ -587,6 +591,13 @@ public class UserServiceImpl implements UserService {
if (response.getStatusCode().value() != DefaultNumberConstants.TWO_HUNDRED)
throw new BadRequestException("删除失败");
//TODO 删除逻辑待补充?
//11、删除分机号
extensionNumberService.deleteExtensionNumberByCompany(user.getCompanyId());
//12、删除统计信息
queryReportService.deleteReport(user.getCompanyId());
//13.删除imei和tag
taskImeiService.deleteTaskImei(taskIds);
taskTagRepository.deleteByTaskIds(taskIds);
return;
} else if (roleIds.contains(RoleNumberConstants.MINUS_NINE_NUMBER)) {
// 二: 删除或者替换组长
@ -595,25 +606,22 @@ public class UserServiceImpl implements UserService {
throw new BadRequestException("请选择组长角色的用户");
organizeUserRepository.updateUser(userId, replaceUserId);
organizeUserRepository.updateCreateBy(replaceUserId, userId);
this.sourceDel(isDel, userId, replaceUserId);
this.sourceDel(userId, replaceUserId);
} else if (roleIds.contains(RoleNumberConstants.MINUS_FIVE_NUMBER)) {
// 三: 删除或者替换业务员
if (isDel) organizeUserRepository.deleteByUserId(userId);
else {
if (replaceUserId == null) throw new BadRequestException("请选择替换人员");
if (CollUtil.isNotEmpty(replaceRoleIds) && !roleIds.contains(RoleNumberConstants.MINUS_FIVE_NUMBER))
throw new BadRequestException("请选择业务管理员角色的用户");
organizeUserRepository.updateUser(userId, replaceUserId);
}
this.sourceDel(isDel, userId, replaceUserId);
if (replaceUserId == null) organizeUserRepository.deleteByUserId(userId);
else organizeUserRepository.updateUser(userId, replaceUserId);
this.sourceDel(userId, replaceUserId);
}
//分机号
extensionNumberService.updateExtensionNumber(userId, replaceUserId);
// 清理缓存
delCaches(userId, user.getUsername());
userRepository.deleteById(userId);
}
private void sourceDel(Boolean isDel, Long userId, Long replaceUserId) {
if (isDel) {
private void sourceDel(Long userId, Long replaceUserId) {
if (replaceUserId == null) {
ResponseEntity<Map<Long, Integer>> response = sourceClueClient.delClueByUser(userId);
if (response.getStatusCode().value() != 200) throw new BadRequestException("删除失败");
//更新任务资源数量

@ -3,6 +3,7 @@ package com.baiye.modules.telemarkting.dao;
import com.baiye.modules.telemarkting.entity.ExtensionDisplay;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.stereotype.Repository;
@Repository
@ -15,4 +16,11 @@ public interface ExtensionDisplayRepository extends JpaRepository<ExtensionDispl
* @return
*/
ExtensionDisplay findExtensionDisplayByCompanyId(Long companyId);
/**
*
* @param companyId
*/
@Modifying
void deleteByCompanyId(Long companyId);
}

@ -18,7 +18,8 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
/**
* id
* @param status
*
* @param status
* @param companyId id
* @return
*/
@ -27,6 +28,7 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
/**
*
*
* @param status
* @param id
*/
@ -36,6 +38,7 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
/**
*
*
* @param memberId
* @return
*/
@ -57,4 +60,8 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
@Modifying
@Query(value = "delete from ExtensionNumber where companyId = ?1")
int deleteByCompanyId(Long companyId);
@Modifying
@Query(value = "update tb_extension_number c set c.status =?1 where c.number = (select number from tb_extension_user where member_id =?2", nativeQuery = true)
int updateExtensionNumber(Integer status, Long userId);
}

@ -33,7 +33,26 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
@Query(value = "delete from tb_extension_user where member_id in ?1", nativeQuery = true)
int deleteByMemberId(List<Long> userIds);
/**
* id
*
* @param userId
* @return
*/
@Modifying
@Query(value = "delete from tb_extension_user where member_id = ?1", nativeQuery = true)
int deleteByMemberId(Long userId);
@Modifying
@Query(value = "update ExtensionUser c set c.memberId =?2 where c.memberId = ?1")
void updateByNumber(Long userId, Long replaceUserId);
/**
*
*
* @param companyId
*/
@Modifying
@Query(value = "delete from tb_extension_user where number in (select number from tb_extension_number where company_id = ?1)", nativeQuery = true)
void deleteByCompanyId(Long companyId);
}

@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
*/
public interface ExtensionNumberService {
CommonResponse<String> addNumbers(MultipartFile file, Long display, Long dyDisplay, Long deliveryDisplay,Long tokerDisplay, Long companyId);
CommonResponse<String> addNumbers(MultipartFile file, Long display, Long dyDisplay, Long deliveryDisplay, Long tokerDisplay, Long companyId);
ExtensionNumber getExtension(Long memberId);
@ -39,4 +39,19 @@ public interface ExtensionNumberService {
* @return
*/
ExtensionDisplay queryExtensionDisplay(Long companyId);
/**
*
*
* @param companyId id
*/
void deleteExtensionNumberByCompany(Long companyId);
/**
*
*
* @param userId id
* @param replaceUserId id
*/
void updateExtensionNumber( Long userId, Long replaceUserId);
}

@ -159,4 +159,28 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
public ExtensionDisplay queryExtensionDisplay(Long companyId) {
return extensionDisplayRepository.findExtensionDisplayByCompanyId(companyId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteExtensionNumberByCompany(Long companyId) {
extensionUserRepository.deleteByCompanyId(companyId);
extensionNumberRepository.deleteByCompanyId(companyId);
extensionDisplayRepository.deleteByCompanyId(companyId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateExtensionNumber(Long userId, Long replaceUserId) {
if (replaceUserId == null) {
//删除组员
extensionNumberRepository.updateExtensionNumber(0, userId);
extensionUserRepository.deleteByMemberId(userId);
} else {
extensionUserRepository.updateByNumber(userId, replaceUserId);
int i = extensionNumberRepository.updateExtensionNumber(0, replaceUserId);
if (i > 0) {
extensionUserRepository.deleteByMemberId(replaceUserId);
}
}
}
}

@ -11,7 +11,4 @@ public class DelUserDTO {
@ApiModelProperty("替换人用户ID")
private Long replaceUserId;
@ApiModelProperty("是否删除资源")
private Boolean isDel;
}

@ -1,13 +1,14 @@
package com.baiye.module.dao;
import com.baiye.module.entity.ClueMiddle;
import com.baiye.module.entity.ReportToker;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
/**
* @author jt
@ -36,4 +37,8 @@ public interface ReportTokerRepository extends JpaRepository<ReportToker, Long>,
*/
@Query(value = "select * from tb_report_toker where (create_time between ?1 and ?2) and member_id in ?3", nativeQuery = true)
List<ReportToker> queryAllByTimeAndMemberIds(String beginTime, String endTime, List<Long> memberIds);
@Modifying
@Query(value = "delete from tb_report_toker where task_id in ?1", nativeQuery = true)
void deleteTokerReport(Set<Long> taskIds);
}

@ -66,7 +66,7 @@ public class ClueServiceImpl implements ClueService {
private final CompanyService companyService;
private final TurnCrmLogRepository turnCrmLogRepository;
private final ReportTokerRepository reportTokerRepository;
private final ClueBackupsTask clueBackupsTask;
private static final SimpleDateFormat timeOne = new SimpleDateFormat("yyyyMMddHHmmssSSS");
@ -509,6 +509,9 @@ public class ClueServiceImpl implements ClueService {
clueFailRecordRepository.deleteAllByRecordIdIn(clueRecordId);
//5、删除拓客或者DMP资源数据
clueTalkRepository.deleteByTaskIdIn(taskIds);
//6、删除拓客投流的统计
reportTokerRepository.deleteTokerReport(taskIds);
//7.
}
return true;
}
@ -530,7 +533,7 @@ public class ClueServiceImpl implements ClueService {
return clueMiddleRepository.findTaskIdCount(taskIds);
}
public void delete(List<ClueDto> clueAll, Set<Long> clueIds){
public void delete(List<ClueDto> clueAll, Set<Long> clueIds) {
//1、备份数据
clueBackupsTask.clueBackups(clueAll);
//2、删除资源数据

@ -24,7 +24,7 @@ public class CrmTurnoverSync {
/**
* 0
*/
// @Scheduled(cron = "0 0/5 * * * ? ")
// @Scheduled(cron = "0 0/5 * * * ? ")
@Scheduled(cron = "0 30 0 * * ? ")
public void dealTurnover() {
log.info("-------------------检测成交金额记录-------------");

Loading…
Cancel
Save