Merge #40 into master from cc_20251208_visit
fix:新老加盟商判断逻辑修复;统计接口新增筛选条件
* cc_20251208_visit: (25 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:新老加盟商判断逻辑修复;统计接口新增筛选条件
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/40
This commit is contained in:
@@ -208,6 +208,13 @@ public class LineInfoDAO {
|
||||
return lineInfoMapper.getLinesByKeyword(keyword);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询已分配招商经理的所有线索
|
||||
*/
|
||||
public List<LineVO> getLinesAssignInvestManager(String keyword) {
|
||||
return lineInfoMapper.getLinesAssignInvestManager(keyword);
|
||||
}
|
||||
|
||||
public List<LineInfoDO> getByLineIds(List<Long> lineIds){
|
||||
if (CollectionUtils.isEmpty(lineIds)){
|
||||
return Lists.newArrayList();
|
||||
|
||||
@@ -135,4 +135,8 @@ public interface LineInfoMapper extends Mapper<LineInfoDO> {
|
||||
|
||||
List<LineVO> getLinesByKeyword(@Param("keyword") String keyword);
|
||||
|
||||
/**
|
||||
* 查询已分配招商经理的所有线索
|
||||
*/
|
||||
List<LineVO> getLinesAssignInvestManager(@Param("keyword") String keyword);
|
||||
}
|
||||
@@ -650,6 +650,21 @@
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
<select id="getLinesAssignInvestManager" resultType="com.cool.store.vo.LineVO">
|
||||
select
|
||||
id as lineId,
|
||||
username,
|
||||
mobile
|
||||
from xfsg_line_info
|
||||
<where>
|
||||
<if test="keyword != null and keyword != ''">
|
||||
and (mobile like CONCAT('%', #{keyword} ,'%')
|
||||
or username like CONCAT('%', #{keyword} ,'%'))
|
||||
</if>
|
||||
</where>
|
||||
order by id desc
|
||||
</select>
|
||||
|
||||
|
||||
<update id="batchUpdateInvestmentManager">
|
||||
update xfsg_line_info set line_status = #{status} , investment_manager = #{investmentManager} ,region_id = #{regionId},invest_region_id = #{investRegionId} where id in
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<select id="getVisitRecordList" resultType="com.cool.store.vo.visit.VisitRecordListVO">
|
||||
SELECT a.id, a.line_id, a.visit_no, a.visit_date, a.sign_in_address, a.desire, a.desire_city,
|
||||
a.desire_district, a.existing_shop_point, a.photos, a.status,
|
||||
b.username name, b.mobile,a.user_id as visitUserId
|
||||
b.username name, b.mobile,a.user_id as visitUserId, b.invest_region_id, b.investment_manager
|
||||
FROM zxjp_visit_record a
|
||||
INNER JOIN xfsg_line_info b ON a.line_id = b.id AND b.deleted = 0
|
||||
<where>
|
||||
@@ -90,6 +90,12 @@
|
||||
<if test="request.userId != null">
|
||||
AND a.user_id = #{request.userId}
|
||||
</if>
|
||||
<if test="request.desire != null and request.desire != ''">
|
||||
AND a.desire = #{request.desire}
|
||||
</if>
|
||||
<if test="request.investRegionId != null">
|
||||
AND b.invest_region_id = #{request.investRegionId}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY a.create_time DESC
|
||||
</select>
|
||||
@@ -165,6 +171,12 @@
|
||||
<if test="request.userId != null">
|
||||
AND a.user_id = #{request.userId}
|
||||
</if>
|
||||
<if test="request.desire != null and request.desire != ''">
|
||||
AND a.desire = #{request.desire}
|
||||
</if>
|
||||
<if test="request.investRegionId != null">
|
||||
AND b.invest_region_id = #{request.investRegionId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -36,6 +36,12 @@ public class VisitRecordQueryRequest extends PageBasicInfo {
|
||||
|
||||
@ApiModelProperty("拜访状态,0待签到 1待签退 2已完成 3已失效")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("开新店意愿")
|
||||
private String desire;
|
||||
|
||||
@ApiModelProperty("招商所属大区ID")
|
||||
private Long investRegionId;
|
||||
|
||||
@ApiModelProperty(value = "拜访人id", hidden = true)
|
||||
private String userId;
|
||||
|
||||
@@ -33,4 +33,10 @@ public class VisitPartnerListVO {
|
||||
|
||||
@ApiModelProperty("新老加盟商,0新 1老")
|
||||
private Integer isVeteran;
|
||||
|
||||
@ApiModelProperty("招商所属大区名称")
|
||||
private String investRegionName;
|
||||
|
||||
@ApiModelProperty("招商经理名称")
|
||||
private String investmentManagerName;
|
||||
}
|
||||
|
||||
@@ -93,6 +93,12 @@ public class VisitRecordDetailVO {
|
||||
@ApiModelProperty("拜访人名称")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty("招商所属大区名称")
|
||||
private String investRegionName;
|
||||
|
||||
@ApiModelProperty("招商经理名称")
|
||||
private String investmentManagerName;
|
||||
|
||||
public String getStatusName() {
|
||||
return VisitStatusEnum.getDescByStatus(status);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.vo.visit;
|
||||
|
||||
import com.cool.store.annotation.DictField;
|
||||
import com.cool.store.enums.visit.VisitStatusEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -40,6 +41,10 @@ public class VisitRecordListVO {
|
||||
@ApiModelProperty("开新店意愿")
|
||||
private String desire;
|
||||
|
||||
@ApiModelProperty("开新店意愿名称")
|
||||
@DictField
|
||||
private String desireName;
|
||||
|
||||
@ApiModelProperty("意向开店城市")
|
||||
private String desireCity;
|
||||
|
||||
@@ -73,6 +78,18 @@ public class VisitRecordListVO {
|
||||
@ApiModelProperty("拜访人")
|
||||
private String visitUserName;
|
||||
|
||||
@ApiModelProperty("招商所属大区ID")
|
||||
private Long investRegionId;
|
||||
|
||||
@ApiModelProperty("招商所属大区名称")
|
||||
private String investRegionName;
|
||||
|
||||
@ApiModelProperty("招商经理")
|
||||
public String investmentManager;
|
||||
|
||||
@ApiModelProperty("招商经理名称")
|
||||
private String investmentManagerName;
|
||||
|
||||
public String getStatusName() {
|
||||
return VisitStatusEnum.getDescByStatus(status);
|
||||
}
|
||||
|
||||
@@ -101,6 +101,11 @@ public interface LineService {
|
||||
|
||||
//增加查询资质审核的意向加盟商或正式加盟商搜索范围为全部
|
||||
PageInfo<LineVO> getLines(LinesRequest request);
|
||||
|
||||
/**
|
||||
* 查询已分配招商经理的所有线索
|
||||
*/
|
||||
PageInfo<LineVO> getLinesAssignInvestManager(LinesRequest request);
|
||||
|
||||
/**
|
||||
* @Auther: wangshuo
|
||||
|
||||
@@ -647,6 +647,13 @@ public class LineServiceImpl implements LineService {
|
||||
return pageInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<LineVO> getLinesAssignInvestManager(LinesRequest request) {
|
||||
PageHelper.startPage(request.getPageNum(), request.getPageSize());
|
||||
List<LineVO> lines = lineInfoDAO.getLinesAssignInvestManager(request.getKeyword());
|
||||
return new PageInfo<>(lines);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updatePartnerName(String username, Long lineId) {
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.cool.store.dao.visit.VisitRecordDAO;
|
||||
import com.cool.store.dto.region.BigRegionDTO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.QualificationsInfoDO;
|
||||
import com.cool.store.entity.RegionDO;
|
||||
import com.cool.store.entity.StoreDO;
|
||||
import com.cool.store.entity.store.StoreMasterSignerInfoDO;
|
||||
import com.cool.store.entity.visit.VisitRecordDO;
|
||||
@@ -59,6 +60,7 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
private final SimpleMessageService simpleMessageService;
|
||||
private final AdDistrictDAO adDistrictDAO;
|
||||
private final EnterpriseUserDAO enterpriseUserDAO;
|
||||
private final RegionDao regionDao;
|
||||
|
||||
@Override
|
||||
public String signIn(VisitSignInRequest request) {
|
||||
@@ -129,6 +131,11 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
List<LineInfoDO> lineList = lineInfoDAO.getByLineIds(lineIds);
|
||||
Map<Long, LineInfoDO> lineMap = CollStreamUtil.toMap(lineList, LineInfoDO::getId, v -> v);
|
||||
Map<Long, Integer> storeNumMap = getStoreNumMap(lineIds);
|
||||
Set<String> investmentManagerIds = CollStreamUtil.toSet(lineList, LineInfoDO::getInvestmentManager);
|
||||
Set<Long> investRegionIds = CollStreamUtil.toSet(lineList, LineInfoDO::getInvestRegionId);
|
||||
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(investmentManagerIds));
|
||||
Map<Long, String> regionNameMap = regionDao.getRegionNameMap(new ArrayList<>(investRegionIds));
|
||||
|
||||
list.forEach(v -> {
|
||||
v.setOpenNum(storeNumMap.getOrDefault(v.getLineId(), 0));
|
||||
v.setIsVeteran(v.getOpenNum() > 0 ? 1 : 0);
|
||||
@@ -136,6 +143,8 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
if (Objects.nonNull(lineInfoDO)) {
|
||||
v.setName(lineInfoDO.getUsername());
|
||||
v.setMobile(lineInfoDO.getMobile());
|
||||
v.setInvestmentManagerName(userNameMap.get(lineInfoDO.getInvestmentManager()));
|
||||
v.setInvestRegionName(regionNameMap.get(lineInfoDO.getInvestRegionId()));
|
||||
}
|
||||
});
|
||||
return result;
|
||||
@@ -157,6 +166,7 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
storeNumMap.compute(signerInfoDO.getSigner2IdCardNo(), (k, v) -> Objects.isNull(v) ? 1 : v + 1);
|
||||
}
|
||||
}
|
||||
storeNumMap.remove(null);
|
||||
return CollStreamUtil.toMap(lineIds, v -> v, v -> storeNumMap.getOrDefault(idCardMap.get(v), 0));
|
||||
}
|
||||
|
||||
@@ -198,6 +208,11 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
if (Objects.nonNull(lineInfo)) {
|
||||
vo.setName(lineInfo.getUsername());
|
||||
vo.setMobile(lineInfo.getMobile());
|
||||
vo.setInvestmentManagerName(enterpriseUserDAO.getUserName(lineInfo.getInvestmentManager()));
|
||||
RegionDO investRegion = regionDao.getRegionById(lineInfo.getInvestRegionId());
|
||||
if (Objects.nonNull(investRegion)) {
|
||||
vo.setInvestRegionName(investRegion.getName());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(record.getUserId())){
|
||||
String userName = enterpriseUserDAO.getUserName(record.getUserId());
|
||||
@@ -230,24 +245,27 @@ public class VisitRecordServiceImpl implements VisitRecordService {
|
||||
List<VisitRecordListVO> list = visitRecordDAO.getVisitRecordList(request);
|
||||
PageInfo<VisitRecordListVO> page = new PageInfo<>(list);
|
||||
Set<Long> lineIds = CollStreamUtil.toSet(list, VisitRecordListVO::getLineId);
|
||||
Set<String> userIdList = CollStreamUtil.toSet(list, VisitRecordListVO::getVisitUserId);
|
||||
Map<String, String> userNameMap = new HashMap<>();
|
||||
if (CollectionUtils.isNotEmpty(userIdList)){
|
||||
userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIdList));
|
||||
}
|
||||
Set<String> userIdList = list.stream()
|
||||
.flatMap(v -> Stream.of(v.getVisitUserId(), v.getInvestmentManager()))
|
||||
.collect(Collectors.toSet());
|
||||
Set<Long> regionIds = CollStreamUtil.toSet(list, VisitRecordListVO::getInvestRegionId);
|
||||
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIdList));
|
||||
Map<Long, String> regionNameMap = regionDao.getRegionNameMap(new ArrayList<>(regionIds));
|
||||
List<String> adCodes = list.stream()
|
||||
.flatMap(v -> Stream.of(v.getDesireCity(), v.getDesireDistrict()))
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
Map<String, String> adNameMap = adDistrictDAO.getNameByCodes(adCodes);
|
||||
Map<Long, Integer> storeNumMap = getStoreNumMap(new ArrayList<>(lineIds));
|
||||
Map<String, String> finalUserNameMap = userNameMap;
|
||||
list.forEach(v -> {
|
||||
v.setIsVeteran(storeNumMap.getOrDefault(v.getLineId(), 0) > 0 ? 1 : 0);
|
||||
v.setDesireCityName(adNameMap.get(v.getDesireCity()));
|
||||
v.setDesireDistrictName(adNameMap.get(v.getDesireDistrict()));
|
||||
v.setVisitUserName(finalUserNameMap.get(v.getVisitUserId()));
|
||||
v.setVisitUserName(userNameMap.get(v.getVisitUserId()));
|
||||
v.setInvestRegionName(regionNameMap.get(v.getInvestRegionId()));
|
||||
v.setInvestmentManagerName(userNameMap.get(v.getInvestmentManager()));
|
||||
});
|
||||
dictService.fillDictField(list);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
@@ -180,6 +180,12 @@ public class LineInfoController {
|
||||
return ResponseResult.success(lineService.getLines(request));
|
||||
}
|
||||
|
||||
@ApiOperation("查询已分配招商经理的所有线索")
|
||||
@PostMapping("/getLinesAssignInvest")
|
||||
public ResponseResult<PageInfo<LineVO>> getLinesAssignInvestManager(@RequestBody LinesRequest request) {
|
||||
return ResponseResult.success(lineService.getLinesAssignInvestManager(request));
|
||||
}
|
||||
|
||||
@ApiOperation("修改所属大区/分公司")
|
||||
@GetMapping("/updateLineRegion")
|
||||
public ResponseResult<Integer> updateLineRegion(@RequestParam("regionId")Long regionId,
|
||||
|
||||
Reference in New Issue
Block a user