解绑分机号

master
wujingtao 3 years ago
parent 9bf8ec8475
commit 4d861a919f

@ -7,6 +7,8 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* @author wujingtao * @author wujingtao
* @date 2022/02/14 * @date 2022/02/14
@ -21,7 +23,7 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
* @return * @return
*/ */
@Query(value = "SELECT number FROM tb_extension_number WHERE status = ?1 AND company_id = ?2 LIMIT 0, 1", nativeQuery = true) @Query(value = "SELECT number FROM tb_extension_number WHERE status = ?1 AND company_id = ?2 LIMIT 0, 1", nativeQuery = true)
Integer findIdByStatusAndCompanyId(Integer status,Long companyId); Integer findIdByStatusAndCompanyId(Integer status, Long companyId);
@Modifying @Modifying
@Query(value = "update ExtensionNumber c set c.status =?1 where c.number = ?2") @Query(value = "update ExtensionNumber c set c.status =?1 where c.number = ?2")
@ -29,4 +31,8 @@ public interface ExtensionNumberRepository extends JpaRepository<ExtensionNumber
@Query(value = "select n.* from tb_extension_number n left join tb_extension_user u on n.number = u.number where u.member_id = ?1", nativeQuery = true) @Query(value = "select n.* from tb_extension_number n left join tb_extension_user u on n.number = u.number where u.member_id = ?1", nativeQuery = true)
ExtensionNumber selectByMemberId(Long memberId); ExtensionNumber selectByMemberId(Long memberId);
@Modifying
@Query(value = "update ExtensionNumber c set c.status =?1 where c.number in ?2")
void updateByNumber(Integer status, List<Integer> number);
} }

@ -6,6 +6,8 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query; import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* @author wujingtao * @author wujingtao
* @date 2022/02/14 * @date 2022/02/14
@ -17,4 +19,6 @@ public interface ExtensionUserRepository extends JpaRepository<ExtensionUser, Lo
Integer findNumberByMemberId(Long memberId); Integer findNumberByMemberId(Long memberId);
void deleteByOrganizeId(Long organizeId); void deleteByOrganizeId(Long organizeId);
List<ExtensionUser> findByAndOrganizeId(Long organizationId);
} }

@ -9,9 +9,21 @@ import com.baiye.modules.telemarkting.entity.ExtensionNumber;
* @date 2022/02/14 * @date 2022/02/14
*/ */
public interface ExtensionNumberService { public interface ExtensionNumberService {
void addNumbers(Integer minNumber, Integer maxNumber, Long display,Long companyId); void addNumbers(Integer minNumber, Integer maxNumber, Long display, Long companyId);
ExtensionNumber getExtension(Long memberId); ExtensionNumber getExtension(Long memberId);
/**
*
* @param organizeId
* @param memberId
* @return
*/
CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId); CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId);
/**
*
* @param organizeId
*/
void unbindExtension(Long organizeId);
} }

@ -1,10 +1,9 @@
package com.baiye.modules.telemarkting.service.impl; package com.baiye.modules.telemarkting.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.DefaultNumberConstants;
import com.baiye.exception.BadRequestException; import com.baiye.exception.BadRequestException;
import com.baiye.http.CommonResponse; import com.baiye.http.CommonResponse;
import com.baiye.modules.system.domain.Organize;
import com.baiye.modules.system.repository.OrganizeRepository;
import com.baiye.modules.telemarkting.dao.ExtensionNumberRepository; import com.baiye.modules.telemarkting.dao.ExtensionNumberRepository;
import com.baiye.modules.telemarkting.dao.ExtensionUserRepository; import com.baiye.modules.telemarkting.dao.ExtensionUserRepository;
import com.baiye.modules.telemarkting.entity.ExtensionNumber; import com.baiye.modules.telemarkting.entity.ExtensionNumber;
@ -18,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @author wujingtao * @author wujingtao
@ -28,9 +28,6 @@ import java.util.List;
public class ExtensionNumberServiceImpl implements ExtensionNumberService { public class ExtensionNumberServiceImpl implements ExtensionNumberService {
@Resource @Resource
private ExtensionNumberRepository extensionNumberRepository; private ExtensionNumberRepository extensionNumberRepository;
@Resource
private OrganizeRepository organizeRepository;
@Resource @Resource
private ExtensionUserRepository extensionUserRepository; private ExtensionUserRepository extensionUserRepository;
@ -50,29 +47,41 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId) { public CommonResponse<Object> assignExtensionNum(Long organizeId, Long memberId) {
//查询组 //查询组
Integer numberByMemberId = extensionUserRepository.findNumberByMemberId(memberId); Integer numberByMemberId = extensionUserRepository.findNumberByMemberId(memberId);
if (numberByMemberId != null) { if (numberByMemberId != null) {
log.info("用户 {},已经分配分机号", memberId); log.info("用户 {},已经分配分机号", memberId);
throw new BadRequestException("用户已经分配分机号,用户id" + memberId); throw new BadRequestException("用户已经分配分机号,用户id" + memberId);
} }
//所属公司 //所属公司
Long companyId = SecurityUtils.getCompanyId(); Long companyId = SecurityUtils.getCompanyId();
//查一个分机号 //查一个分机号
Integer idByStatus = extensionNumberRepository.findIdByStatusAndCompanyId(DefaultNumberConstants.ZERO_NUMBER, companyId); Integer idByStatus = extensionNumberRepository.findIdByStatusAndCompanyId(DefaultNumberConstants.ZERO_NUMBER, companyId);
ExtensionUser extensionUser = new ExtensionUser(); ExtensionUser extensionUser = new ExtensionUser();
extensionUser.setMemberId(memberId); extensionUser.setMemberId(memberId);
extensionUser.setNumber(idByStatus); extensionUser.setNumber(idByStatus);
extensionUser.setOrganizeId(organizeId); extensionUser.setOrganizeId(organizeId);
try { try {
extensionUserRepository.save(extensionUser); extensionUserRepository.save(extensionUser);
extensionNumberRepository.updateStatusById(DefaultNumberConstants.ONE_NUMBER, idByStatus); extensionNumberRepository.updateStatusById(DefaultNumberConstants.ONE_NUMBER, idByStatus);
} catch (Exception e) { } catch (Exception e) {
log.error("分机号分配失败 memberId{}", memberId); log.error("分机号分配失败 memberId{}", memberId);
throw new BadRequestException("分机号分配失败,用户id为" + memberId); throw new BadRequestException("分机号分配失败,用户id为" + memberId);
} }
return CommonResponse.createBySuccess(); return CommonResponse.createBySuccess();
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void unbindExtension(Long organizeId) {
List<ExtensionUser> byAndOrganizeId = extensionUserRepository.findByAndOrganizeId(organizeId);
if (CollUtil.isNotEmpty(byAndOrganizeId)) {
List<Integer> numbers = byAndOrganizeId.stream().map(ExtensionUser::getNumber).collect(Collectors.toList());
extensionNumberRepository.updateByNumber(DefaultNumberConstants.ZERO_NUMBER, numbers);
extensionUserRepository.deleteByOrganizeId(organizeId);
}
}
private List<ExtensionNumber> getNumbers(Integer minNumber, Integer maxNumber, Long display, Long companyId) { private List<ExtensionNumber> getNumbers(Integer minNumber, Integer maxNumber, Long display, Long companyId) {
List<ExtensionNumber> list = new ArrayList<>(); List<ExtensionNumber> list = new ArrayList<>();
for (int i = minNumber; i <= maxNumber; i++) { for (int i = minNumber; i <= maxNumber; i++) {

Loading…
Cancel
Save