Merge #44 into master from cc_20251208_visit

fix:我的铺位导出

* cc_20251208_visit: (39 commits squashed)

  - feat:拜访记录

  - fix:拜访详情接口新增字段

  - fix:新增状态转义字段

  - fix:惩处单查询提供惩处待处理、惩处已处理状态筛选

  - fix

  - fix:管理员能查看所有加盟商

  - fix:去掉部分字段非空校验

  - fix:空校验

  - Merge branch 'master' into cc_20251208_visit
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
    #	coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreMasterSignerInfoDAO.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java

  - fix

  - fix:拜访记录失效延时消息

  - fix:拜访记录统计

  - fix:拜访记录统计新增筛选条件

  - fix:字段转义

  - feat:拜访调整

  - feat:拜访调整_过滤我的

  - feat:拜访调整_过滤我的

  - feat:拜访字段调整

  - feat:拜访字段调整

  - Merge branch 'master' into cc_20251208_visit

  - fix:拜访我的加盟商取消管辖权限过滤

  - Merge branch 'master' into cc_20251208_visit

  - fix:新增已分配招商经理的线索查询接口;拜访记录列表接口新增字段

  - fix:新增字段

  - fix:新老加盟商判断逻辑修复;统计接口新增筛选条件

  - fix:过滤未分配招商经理的线索

  - Merge branch 'master' into cc_20251208_visit
    
    # Conflicts:
    #	coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml

  - Merge branch 'master' into cc_20251208_visit

  - Merge branch 'master' into cc_20251208_visit

  - fix:拜访记录导出

  - fix:拜访记录导出限制

  - fix:拜访记录导出限制

  - fix:铺位导出

  - fix:铺位及拜访记录导出加锁时机修改

  - fix:铺位导出新增字段

  - fix:铺位导出新增字段

  - fix

  - fix:我的铺位导出

  - Merge branch 'master' into cc_20251208_visit
    
    # Conflicts:
    #	coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
    #	coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportRealizeServiceImpl.java
    #	coolstore-partner-service/src/main/java/com/cool/store/service/impl/ExportServiceImpl.java
    #	coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ExportController.java

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/44
This commit is contained in:
王非凡
2026-02-11 06:39:46 +00:00
committed by 正新
parent 9b734c66df
commit 17239536b4
12 changed files with 185 additions and 6 deletions

View File

@@ -7,6 +7,7 @@ import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.PointInfoDO;
import com.cool.store.request.AllPointPageRequest;
import com.cool.store.request.FranchiseReportRequest;
import com.cool.store.request.PointPageRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.response.BranchShopResponse;
import com.cool.store.response.FranchiseReportResponse;
@@ -42,4 +43,6 @@ public interface ExportRealizeService {
void exportVisitRecord(VisitRecordQueryRequest request, ImportTaskDO importTaskDO);
void exportPoint(AllPointPageRequest request, ImportTaskDO importTaskDO);
void myExportPoint(PointPageRequest request, String userId, ImportTaskDO importTaskDO);
}

View File

@@ -60,4 +60,12 @@ public interface ExportService {
* @return 记录总数
*/
Long pointExport(AllPointPageRequest request, LoginUserInfo user);
/**
* 我的铺位导出
* @param request 查询Request
* @param user 当前用户
* @return 记录总数
*/
Long myPointExport(PointPageRequest request, LoginUserInfo user);
}

View File

@@ -162,6 +162,13 @@ public interface PointService {
*/
PageInfo<PointPageVO> getMyPointPage(PointPageRequest request, String userId);
/**
* 获取我的铺位数量
* @param request
* @return
*/
Long getMyPointCount(PointPageRequest request, String userId);
/**
* 获取团队铺位
* @param request

View File

@@ -14,6 +14,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.*;
import com.cool.store.request.AllPointPageRequest;
import com.cool.store.request.FranchiseReportRequest;
import com.cool.store.request.PointPageRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.response.BranchShopResponse;
import com.cool.store.response.FranchiseReportResponse;
@@ -767,11 +768,7 @@ public class ExportRealizeServiceImpl implements ExportRealizeService {
request.setPageNum(pageNum);
request.setPageSize(pageSize);
List<PointPageVO> list = pointService.getTeamPointPage(request).getList();
List<Long> pointIds = CollStreamUtil.toList(list, PointPageVO::getPointId);
Map<Long, PointFinancialDataDO> pointMap = pointFinancialDataDAO.getMapByPointIds(pointIds);
List<PointExportVO> result = BeanUtil.toList(list, PointExportVO.class);
result.forEach(v -> BeanUtil.copyPropertiesIgnoreId(pointMap.get(v.getPointId()), v));
return result;
return convertAndFillPointExport(list);
},
FileTypeEnum.POINT_EXPORT.getDesc(),
FileTypeEnum.POINT_EXPORT.getDesc());
@@ -786,6 +783,39 @@ public class ExportRealizeServiceImpl implements ExportRealizeService {
}
}
@Override
@Async("generalThreadPool")
public void myExportPoint(PointPageRequest request, String userId, ImportTaskDO importTaskDO) {
String url = "";
try {
url = easyExcelUtil.exportExcelInBatches(PointExportVO.class,
(pageNum, pageSize) -> {
request.setPageNum(pageNum);
request.setPageSize(pageSize);
List<PointPageVO> list = pointService.getMyPointPage(request, userId).getList();
return convertAndFillPointExport(list);
},
FileTypeEnum.MY_POINT_EXPORT.getDesc(),
FileTypeEnum.MY_POINT_EXPORT.getDesc());
importTaskDO.setStatus(ImportStatusEnum.success.getCode());
} catch (Exception e) {
log.error("拜访记录导出失败", e);
importTaskDO.setStatus(ImportStatusEnum.fail.getCode());
} finally {
importTaskDO.setFileUrl(url);
importTaskMapper.update(eid, importTaskDO);
redisUtilPool.delKey(RedisConstant.MY_POINT_EXPORT_LOCK);
}
}
private List<PointExportVO> convertAndFillPointExport(List<PointPageVO> list) {
List<Long> pointIds = CollStreamUtil.toList(list, PointPageVO::getPointId);
Map<Long, PointFinancialDataDO> pointMap = pointFinancialDataDAO.getMapByPointIds(pointIds);
List<PointExportVO> result = BeanUtil.toList(list, PointExportVO.class);
result.forEach(v -> BeanUtil.copyPropertiesIgnoreId(pointMap.get(v.getPointId()), v));
return result;
}
private String toString(Object o) {
if (o == null) {
return "";

View File

@@ -267,5 +267,32 @@ public class ExportServiceImpl implements ExportService {
return count;
}
@Override
public Long myPointExport(PointPageRequest request, LoginUserInfo user) {
Long count = pointService.getMyPointCount(request, user.getUserId());
if (count.intValue() > CommonConstants.MAX_EXPORT_SIZE_PRO) {
throw new ServiceException(ErrorCodeEnum.EXPORT_LIMIT_100000);
}
if (Long.valueOf(0).equals(count)) {
log.error("导出数据为空");
return 0L;
}
boolean lock = redisUtilPool.setNxExpire(RedisConstant.MY_POINT_EXPORT_LOCK, RedisConstant.MY_POINT_EXPORT_LOCK, 30 * 60 * 1000);
if (!lock) {
throw new ServiceException(ErrorCodeEnum.EXPORT_TASK_LIMIT);
}
ImportTaskDO importTaskDO = new ImportTaskDO();
importTaskDO.setStatus(ImportStatusEnum.Ongoing.getCode());
importTaskDO.setFileName(FileTypeEnum.MY_POINT_EXPORT.getDesc() + DateUtils.parseDateToStr(DateUtils.SPECIAL_DATE_START_1, new Date()));
importTaskDO.setIsImport(Boolean.FALSE);
importTaskDO.setFileType(FileTypeEnum.MY_POINT_EXPORT.getFileType());
importTaskDO.setCreateUserId(user.getUserId());
importTaskDO.setCreateTime(new Date().getTime());
importTaskDO.setCreateName(user.getName());
importTaskMapper.insert(eid, importTaskDO);
exportRealizeService.myExportPoint(request, user.getUserId(), importTaskDO);
return count;
}
}

View File

@@ -657,7 +657,7 @@ public class PointServiceImpl implements PointService {
Boolean isAdmin = sysRoleService.checkIsAdmin(userId);
List<SysRoleDO> sysRoleDOList = sysRoleMapper.listRoleByUserId(userId);
//如果不是管理员 招商经理 大区经理 返回空
if (!isAdmin && !sysRoleDOList.stream().anyMatch(x -> x.getId().equals(UserRoleEnum.INVESTMENT_MANGER.getCode()) || x.getRoleEnum().equals(UserRoleEnum.REGION_MANAGER.getDesc()))) {
if (!isAdmin && !sysRoleDOList.stream().anyMatch(x -> x.getId().equals(UserRoleEnum.INVESTMENT_MANGER.getCode()) || x.getId().equals(UserRoleEnum.REGION_MANAGER.getCode()))) {
return new PageInfo();
}
if (!isAdmin) {
@@ -684,6 +684,27 @@ public class PointServiceImpl implements PointService {
return resultPage;
}
@Override
public Long getMyPointCount(PointPageRequest request, String userId) {
Boolean isAdmin = sysRoleService.checkIsAdmin(userId);
List<SysRoleDO> sysRoleDOList = sysRoleMapper.listRoleByUserId(userId);
//如果不是管理员 招商经理 大区经理 返回空
if (!isAdmin && !sysRoleDOList.stream().anyMatch(x -> x.getId().equals(UserRoleEnum.INVESTMENT_MANGER.getCode()) || x.getRoleEnum().equals(UserRoleEnum.REGION_MANAGER.getDesc()))) {
return 0L;
}
if (!isAdmin) {
request.setAuthRegionIds(userAuthMappingService.getAuthRegionIdByUserId(userId,Boolean.TRUE));
}
if (CollectionUtils.isNotEmpty(request.getRegionIds())) {
if (request.getRegionIds().contains(CommonConstants.ROOT_DEPT_ID_STR)) {
request.setRegionIds(null);
} else {
request.setRegionIds(regionService.getSubRegionIdsByRegionIds(request.getRegionIds()));
}
}
return pointInfoDAO.getMyPointCount(enterpriseId, request);
}
@Override
public PageInfo<PointPageVO> getTeamPointPage(AllPointPageRequest request) {
if (!sysRoleService.checkIsAdmin(request.getCurUserId())) {