Merge #37 into master from cc_20251208_visit

feat:拜访字段调整

* cc_20251208_visit: (19 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:拜访字段调整

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

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/37
This commit is contained in:
正新
2026-02-02 09:56:33 +00:00
parent 88e7d99f85
commit 83fcb84f9d
37 changed files with 1821 additions and 1 deletions

View File

@@ -6,7 +6,9 @@ import com.cool.store.mapper.store.StoreMasterSignerInfoMapper;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.entity.Example;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -41,4 +43,15 @@ public class StoreMasterSignerInfoDAO {
public StoreMasterSignerInfoDO getByStoreId(String storeId) {
return storeMasterSignerInfoMapper.selectOne(StoreMasterSignerInfoDO.builder().storeId(storeId).build());
}
public List<StoreMasterSignerInfoDO> getListByIdCard(Collection<String> idCards) {
if (CollectionUtils.isEmpty(idCards)) {
return Collections.emptyList();
}
Example example = new Example(StoreMasterSignerInfoDO.class);
example.createCriteria()
.orIn("signer1IdCardNo", idCards)
.orIn("signer2IdCardNo", idCards);
return storeMasterSignerInfoMapper.selectByExample(example);
}
}

View File

@@ -0,0 +1,126 @@
package com.cool.store.dao.visit;
import com.alibaba.excel.util.CollectionUtils;
import com.cool.store.entity.visit.VisitRecordDO;
import com.cool.store.enums.visit.VisitStatusEnum;
import com.cool.store.mapper.visit.VisitRecordMapper;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.vo.visit.VisitPartnerListVO;
import com.cool.store.vo.visit.VisitRecordListVO;
import com.cool.store.vo.visit.VisitRecordStatusStatisticsVO;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.entity.Example;
import java.util.Collections;
import java.util.Date;
import java.util.List;
/**
* <p>
* 拜访记录DAO
* </p>
*
* @author wangff
* @since 2025/12/8
*/
@Repository
@AllArgsConstructor
public class VisitRecordDAO {
private final VisitRecordMapper visitRecordMapper;
public Boolean insertSelective(VisitRecordDO visitRecordDO) {
return visitRecordMapper.insertSelective(visitRecordDO) > 0;
}
public Boolean updateSelective(VisitRecordDO visitRecordDO) {
return visitRecordMapper.updateByPrimaryKeySelective(visitRecordDO) > 0;
}
public VisitRecordDO getById(Long id) {
return visitRecordMapper.selectByPrimaryKey(id);
}
/**
* 查询拜访加盟商
* @param regionIds 加盟商所属大区id
* @param keyword 加盟商姓名或手机号
* @return 拜访加盟商列表VO
*/
public List<VisitPartnerListVO> getPartnerList(List<Long> regionIds, String keyword, String userId) {
return visitRecordMapper.getPartnerList(regionIds, keyword, userId);
}
/**
* 查询拜访加盟商线索id
* @param regionIds 加盟商所属大区id
* @param keyword 加盟商姓名或手机号
* @param userId 拜访用户id
* @return 线索id列表
*/
public List<Long> getPartnerLineId(List<Long> regionIds, String keyword, String userId) {
return visitRecordMapper.getPartnerLineId(regionIds, keyword, userId);
}
/**
* 根据线索id查询拜访记录列表
* @param lineIds 线索id
* @return 拜访记录列表VO列表
*/
public List<VisitPartnerListVO> getVisitRecordListByLineIds(List<Long> lineIds, String userId) {
if (CollectionUtils.isEmpty(lineIds)) {
return Collections.emptyList();
}
return visitRecordMapper.getVisitRecordListByLineIds(lineIds, userId);
}
/**
* 根据线索查询
* @param lineId 线索id
* @param startDate 开始日期
* @param endDate 结束日期
* @return 拜访记录列表
*/
public List<VisitRecordDO> getByLineId(Long lineId, Date startDate, Date endDate, String userId) {
Example example = new Example(VisitRecordDO.class);
Example.Criteria criteria = example.createCriteria().andEqualTo("lineId", lineId)
.andGreaterThanOrEqualTo("visitDate", startDate)
.andLessThanOrEqualTo("visitDate", endDate);
if (StringUtils.isNotBlank(userId)) {
criteria.andEqualTo("userId", userId);
}
example.setOrderByClause("create_time DESC");
return visitRecordMapper.selectByExample(example);
}
public Boolean deleteById(Long id) {
return visitRecordMapper.deleteByPrimaryKey(id) > 0;
}
/**
* 拜访记录列表
* @param request 拜访记录查询Request
* @return 拜访记录列表VO列表
*/
public List<VisitRecordListVO> getVisitRecordList(VisitRecordQueryRequest request) {
return visitRecordMapper.getVisitRecordList(request);
}
/**
* 根据线索id查询已完成拜访数量
* @param lineId 线索id
* @return 数量
*/
public Integer getCompleteVisitNum(Long lineId) {
return visitRecordMapper.selectCount(VisitRecordDO.builder().lineId(lineId).status(VisitStatusEnum.COMPLETE.getStatus()).build());
}
/**
* 统计
*/
public VisitRecordStatusStatisticsVO countStatusStatistics(VisitRecordQueryRequest request) {
return visitRecordMapper.countStatusStatistics(request);
}
}

View File

@@ -87,6 +87,8 @@ public interface RegionMapper {
List<String> getSubRegionIdsByRegionIds( @Param("regionIds")List<String> regionIds);
List<String> getSubRegionIdsExcludeStore(@Param("regionIds")List<String> regionIds);
List<Long> getSubRegionIdsByRegionIdList( @Param("regionIds")List<Long> regionIds);
List<String> getStoreIdsByRegionIds( @Param("regionIds")List<String> regionIds);

View File

@@ -0,0 +1,7 @@
package com.cool.store.mapper.oplog;
import com.cool.store.entity.oplog.SysLogDO;
import tk.mybatis.mapper.common.Mapper;
public interface SysLogMapper extends Mapper<SysLogDO> {
}

View File

@@ -0,0 +1,57 @@
package com.cool.store.mapper.visit;
import com.cool.store.entity.visit.VisitRecordDO;
import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.vo.visit.VisitPartnerListVO;
import com.cool.store.vo.visit.VisitRecordListVO;
import com.cool.store.vo.visit.VisitRecordStatusStatisticsVO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VisitRecordMapper extends Mapper<VisitRecordDO> {
/**
* 查询拜访加盟商
* @param regionIds 加盟商所属大区id
* @param keyword 加盟商姓名或手机号
* @return 拜访加盟商列表VO
*/
List<VisitPartnerListVO> getPartnerList(@Param("regionIds") List<Long> regionIds,
@Param("keyword") String keyword,
@Param("userId") String userId);
/**
* 拜访记录列表
* @param request 拜访记录查询Request
* @return 拜访记录列表VO列表
*/
List<VisitRecordListVO> getVisitRecordList(@Param("request") VisitRecordQueryRequest request);
/**
* 查询拜访加盟商线索id
* @param regionIds 加盟商所属大区id
* @param keyword 加盟商姓名或手机号
* @param userId 拜访用户id
* @return 线索id列表
*/
List<Long> getPartnerLineId(@Param("regionIds") List<Long> regionIds,
@Param("keyword") String keyword,
@Param("userId") String userId);
/**
* 根据线索id查询拜访记录列表
* @param lineIds 线索id
* @return 拜访记录列表VO列表
*/
List<VisitPartnerListVO> getVisitRecordListByLineIds(@Param("lineIds") List<Long> lineIds, @Param("userId") String userId);
/**
* 统计:本月已完成数量、全部已完成数量、全部未完成数量、全部已失效数量
* - 本月口径:按 visit_date 在本月范围内且 status=2
* - 全部口径:不限制月份
*/
VisitRecordStatusStatisticsVO countStatusStatistics(@Param("request") VisitRecordQueryRequest request);
}