我的加盟商管理
This commit is contained in:
@@ -8,6 +8,7 @@ import com.cool.store.enums.WorkflowSubStageStatusEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.LineInfoMapper;
|
||||
import com.cool.store.request.LineListRequest;
|
||||
import com.cool.store.request.PartnerRequest;
|
||||
import com.cool.store.request.PublicLineListRequest;
|
||||
import com.cool.store.vo.PublicLineListVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -93,6 +94,11 @@ public class LineInfoDAO {
|
||||
return lineInfo;
|
||||
}
|
||||
|
||||
public List<LineInfoDO> partnerList(PartnerRequest partnerRequest,String wantShopAreaName, String userId, List<Long> wantShopAreaIds) {
|
||||
List<LineInfoDO> lineInfo = lineInfoMapper.partnerList(partnerRequest,wantShopAreaName,userId,wantShopAreaIds);
|
||||
return lineInfo;
|
||||
}
|
||||
|
||||
public List<LineInfoDO> publicLineList(PublicLineListRequest publicLineListRequest) {
|
||||
List<LineInfoDO> lineInfo = lineInfoMapper.publicLineList(publicLineListRequest);
|
||||
return lineInfo;
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.cool.store.request.IntentAgreementSubmitRequest;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface IntentAgreementMapper {
|
||||
|
||||
@@ -19,4 +21,11 @@ public interface IntentAgreementMapper {
|
||||
* @return
|
||||
*/
|
||||
SigningBaseInfoDO judge(@Param("request") IntentAgreementSubmitRequest request);
|
||||
|
||||
/**
|
||||
* 查询签约信息
|
||||
* @param lineIds
|
||||
* @return
|
||||
*/
|
||||
List<SigningBaseInfoDO> selectByLineIds(List<Long> lineIds);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.cool.store.mapper;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.enums.WorkflowSubStageStatusEnum;
|
||||
import com.cool.store.request.LineListRequest;
|
||||
import com.cool.store.request.PartnerRequest;
|
||||
import com.cool.store.request.PublicLineListRequest;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
@@ -30,10 +31,15 @@ public interface LineInfoMapper extends Mapper<LineInfoDO> {
|
||||
@Param("userId") String userId,
|
||||
@Param("wantShopAreaIds") List<Long> wantShopAreaIds);
|
||||
|
||||
List<LineInfoDO> partnerList(@Param("request") PartnerRequest partnerRequest,
|
||||
@Param("wantShopAreaName") String wantShopAreaName,
|
||||
@Param("userId") String userId,
|
||||
@Param("wantShopAreaIds") List<Long> wantShopAreaIds);
|
||||
|
||||
|
||||
/**
|
||||
* 公海线索列表
|
||||
* @param publicLineListVO
|
||||
* @param publicLineListRequest
|
||||
* @return
|
||||
*/
|
||||
List<LineInfoDO> publicLineList(@Param("request") PublicLineListRequest publicLineListRequest);
|
||||
|
||||
@@ -105,5 +105,16 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectByLineIds" resultType="com.cool.store.entity.SigningBaseInfoDO">
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from xfsg_signing_base_info
|
||||
where deleted = 0
|
||||
<if test="lineIds !=null and lineIds.size>0">
|
||||
<foreach collection="lineIds" item="lineId" open="and line_id in (" close=")" separator=",">
|
||||
#{lineId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -311,6 +311,9 @@
|
||||
<if test="request.userName != null and request.username!=''">
|
||||
and username = #{request.userName}
|
||||
</if>
|
||||
<if test="request.keyword != null and request.keyword!=''">
|
||||
and (a.username like #{request.userName} or a.mobile like #{request.mobile})
|
||||
</if>
|
||||
<if test="request.mobile != null and request.mobile!=''">
|
||||
and mobile = #{request.mobile}
|
||||
</if>
|
||||
@@ -334,6 +337,36 @@
|
||||
</select>
|
||||
|
||||
|
||||
<select id="partnerList" resultMap="BaseResultMap">
|
||||
select * from xfsg_line_info a
|
||||
left join xfsg_open_area_info b on a.want_shop_area_id = b.id
|
||||
where a.deleted = 0 and a.line_status = 1 and a.join_status in (1,2)
|
||||
<if test="userId != null and userId != ''">
|
||||
and a.investment_manager = #{userId}
|
||||
</if>
|
||||
<if test="request.keyword != null and request.keyword!=''">
|
||||
and (a.username like #{request.userName} or a.mobile like #{request.mobile})
|
||||
</if>
|
||||
<if test="wantShopAreaName != null">
|
||||
and b.area_path like concat('%',#{wantShopAreaName},'%')
|
||||
</if>
|
||||
<if test="request.queryUserId!=null and request.queryUserId!=''">
|
||||
<if test="request.queryType != null and request.queryType == '1' ">
|
||||
and a.investment_manager = #{request.queryUserId}
|
||||
</if>
|
||||
<if test="request.queryType != null and request.queryType == '2' ">
|
||||
and a.development_manager = #{request.queryUserId}
|
||||
</if>
|
||||
</if>
|
||||
<if test="wantShopAreaIds !=null and wantShopAreaIds.size>0">
|
||||
<foreach collection="wantShopAreaIds" item="wantShopAreaId" open="and a.want_shop_area_id in (" close=")" separator=",">
|
||||
#{wantShopAreaId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
<select id="publicLineList" resultMap="BaseResultMap">
|
||||
select * from xfsg_line_info
|
||||
where deleted = 0 and line_status = 0 and join_status = 0
|
||||
@@ -343,6 +376,9 @@
|
||||
<if test="request.mobile != null and request.mobile!=''">
|
||||
and mobile = #{request.mobile}
|
||||
</if>
|
||||
<if test="request.keyword != null and request.keyword!=''">
|
||||
and (a.username like #{request.userName} or a.mobile like #{request.mobile})
|
||||
</if>
|
||||
<if test="request.lineSource != null">
|
||||
and line_source = #{request.lineSource}
|
||||
</if>
|
||||
|
||||
@@ -66,6 +66,9 @@ public class LineInfoDO {
|
||||
@Column(name = "workflow_sub_stage_status")
|
||||
private Integer workflowSubStageStatus;
|
||||
|
||||
|
||||
@Column(name = "want_shop_num")
|
||||
private Integer wantShopNum;
|
||||
/**
|
||||
* 待选址铺位
|
||||
*/
|
||||
|
||||
@@ -18,6 +18,8 @@ public class LineListRequest extends PageBasicInfo {
|
||||
private String userName;
|
||||
@ApiModelProperty("线索手机号")
|
||||
private String mobile;
|
||||
@ApiModelProperty("关键字")
|
||||
private String keyword;
|
||||
@ApiModelProperty("线索子阶段")
|
||||
private Integer workflowSubStage;
|
||||
@ApiModelProperty("线索创建时间_开始")
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import com.cool.store.common.PageBasicInfo;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2024/4/1 11:21
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class PartnerRequest extends PageBasicInfo {
|
||||
|
||||
@ApiModelProperty("加盟上姓名或者手机号")
|
||||
private String keyword;
|
||||
@ApiModelProperty("线索子阶段")
|
||||
private Integer workflowSubStage;
|
||||
@ApiModelProperty("意向区域ID")
|
||||
private Long wantShopAreaId;
|
||||
@ApiModelProperty("招商经理-1 扩展经理-2")
|
||||
private Integer queryType;
|
||||
@ApiModelProperty("招商经理ID")
|
||||
private String queryUserId;
|
||||
|
||||
}
|
||||
@@ -16,6 +16,8 @@ public class PublicLineListRequest extends PageBasicInfo {
|
||||
private String userName;
|
||||
@ApiModelProperty("线索手机号")
|
||||
private String mobile;
|
||||
@ApiModelProperty("关键字")
|
||||
private String keyword;
|
||||
@ApiModelProperty("线索创建时间_开始")
|
||||
private String createTimeStart;
|
||||
@ApiModelProperty("线索创建时间_结束")
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.cool.store.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2024/4/1 11:30
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class PartnerListVO extends BaseInfoVO{
|
||||
|
||||
@ApiModelProperty("招商经理名称")
|
||||
private String investmentManagerUserName;
|
||||
|
||||
@ApiModelProperty("线索来源名称")
|
||||
private String lineSourceName;
|
||||
|
||||
@ApiModelProperty("1-蓄水池 2-加盟商")
|
||||
private Integer joinStatus;
|
||||
|
||||
@ApiModelProperty("扩展经理名称")
|
||||
private String developmentManagerUserName;
|
||||
|
||||
@ApiModelProperty("加盟时间")
|
||||
private String joinTime;
|
||||
|
||||
@ApiModelProperty("更新时间")
|
||||
private String updateTime;
|
||||
|
||||
@ApiModelProperty("更新人名称")
|
||||
private String updateUserName;
|
||||
|
||||
private Integer wantShopNum;
|
||||
|
||||
public PartnerListVO(){}
|
||||
|
||||
public PartnerListVO(BaseInfoVO baseInfoVO) {
|
||||
super(baseInfoVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,12 +1,10 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.context.LoginUserInfo;
|
||||
import com.cool.store.request.AddTagsRequest;
|
||||
import com.cool.store.request.ChangeInvestmentRequest;
|
||||
import com.cool.store.request.LineListRequest;
|
||||
import com.cool.store.request.PublicLineListRequest;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.vo.LineInfoVO;
|
||||
import com.cool.store.vo.LineListVO;
|
||||
import com.cool.store.vo.PartnerListVO;
|
||||
import com.cool.store.vo.PublicLineListVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
@@ -43,6 +41,16 @@ public interface LineService {
|
||||
*/
|
||||
PageInfo<PublicLineListVO> getPublicLineList(PublicLineListRequest publicLineListRequest, LoginUserInfo loginUserInfo);
|
||||
|
||||
|
||||
/**
|
||||
* 我负责的加盟商 or 团队负责的加盟商
|
||||
* @param partnerRequest
|
||||
* @param loginUserInfo
|
||||
* @param teamFlag
|
||||
* @return
|
||||
*/
|
||||
PageInfo<PartnerListVO> getPartnerList(PartnerRequest partnerRequest, LoginUserInfo loginUserInfo, Boolean teamFlag);
|
||||
|
||||
/**
|
||||
* 添加标签
|
||||
* @param userInfo
|
||||
|
||||
@@ -8,19 +8,14 @@ import com.cool.store.dao.*;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mapper.IntentAgreementMapper;
|
||||
import com.cool.store.mapper.RegionMapper;
|
||||
import com.cool.store.request.AddTagsRequest;
|
||||
import com.cool.store.request.ChangeInvestmentRequest;
|
||||
import com.cool.store.request.LineListRequest;
|
||||
import com.cool.store.request.PublicLineListRequest;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.utils.poi.DateUtils;
|
||||
import com.cool.store.vo.BaseInfoVO;
|
||||
import com.cool.store.vo.LineInfoVO;
|
||||
import com.cool.store.vo.LineListVO;
|
||||
import com.cool.store.vo.PublicLineListVO;
|
||||
import com.cool.store.vo.*;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -59,6 +54,8 @@ public class LineServiceImpl implements LineService {
|
||||
UserAuthMappingService userAuthMappingService;
|
||||
@Resource
|
||||
TransferLogService transferLogService;
|
||||
@Resource
|
||||
IntentAgreementMapper intentAgreementMapper;
|
||||
|
||||
@Override
|
||||
public LineInfoVO getLineInfo(Long lineId) {
|
||||
@@ -167,6 +164,67 @@ public class LineServiceImpl implements LineService {
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageInfo<PartnerListVO> getPartnerList(PartnerRequest partnerRequest, LoginUserInfo loginUserInfo, Boolean teamFlag) {
|
||||
|
||||
List<Long> wantShopAreaIds = new ArrayList<>();
|
||||
String userId = null;
|
||||
if(!teamFlag){
|
||||
userId = loginUserInfo.getUserId();
|
||||
}
|
||||
if (teamFlag && !sysRoleService.checkIsAdmin(loginUserInfo.getUserId())){
|
||||
List<Long> list = userAuthMappingService.listWantShopAreaIdByUserId(loginUserInfo.getUserId());
|
||||
if (CollectionUtils.isNotEmpty(list)){
|
||||
wantShopAreaIds = list;
|
||||
}else {
|
||||
userId = loginUserInfo.getUserId();
|
||||
}
|
||||
}
|
||||
String areaName = null;
|
||||
if (partnerRequest.getWantShopAreaId() != null){
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(partnerRequest.getWantShopAreaId());
|
||||
areaName = hyOpenAreaInfoDO.getAreaName();
|
||||
}
|
||||
PageHelper.startPage(partnerRequest.getPageNum(), partnerRequest.getPageSize());
|
||||
List<LineInfoDO> lineInfoDOS = lineInfoDAO.partnerList(partnerRequest,areaName, userId, wantShopAreaIds);
|
||||
PageInfo page = new PageInfo(lineInfoDOS);
|
||||
Map<Long, HyPartnerLabelDO> userPortraitMap = deskService.getUserPortraitMap(lineInfoDOS);
|
||||
List<Long> wantShopAreaIdList = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getWantShopAreaId() != null).map(LineInfoDO::getWantShopAreaId).collect(Collectors.toList());
|
||||
Map<Long, String> wantShopAreaMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaIdList);
|
||||
List<Integer> lineSourceIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getLineSource() != null).map(LineInfoDO::getLineSource).collect(Collectors.toList());
|
||||
Map<Integer, String> channelMapByIds = hyPartnerUserChannelDAO.getChannelMapByIds(lineSourceIds);
|
||||
|
||||
List<String> userIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getInvestmentManager() != null).map(LineInfoDO::getInvestmentManager).collect(Collectors.toList());
|
||||
userIds.addAll(lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getDevelopmentManager() != null).map(LineInfoDO::getDevelopmentManager).collect(Collectors.toList()));
|
||||
userIds.addAll(lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getUpdateUserId() != null).map(LineInfoDO::getUpdateUserId).collect(Collectors.toList()));
|
||||
Map<String, String> userNameMap = enterpriseUserDAO.getUserNameMap(userIds);
|
||||
|
||||
|
||||
List<Long> lineIds = lineInfoDOS.stream().filter(lineInfoDO -> lineInfoDO.getId() != null).map(LineInfoDO::getId).collect(Collectors.toList());
|
||||
List<SigningBaseInfoDO> signingBaseInfoDOS = intentAgreementMapper.selectByLineIds(lineIds);
|
||||
Map<Long, Date> dateMap = signingBaseInfoDOS.stream().collect(Collectors.toMap(SigningBaseInfoDO::getId, SigningBaseInfoDO::getCreateTime));
|
||||
|
||||
List<PartnerListVO> result = new ArrayList<>();
|
||||
lineInfoDOS.forEach(x->{
|
||||
BaseInfoVO baseInfoVO = deskService.convertToBaseInfoVO(x, userPortraitMap, wantShopAreaMap);
|
||||
PartnerListVO partnerListVO = new PartnerListVO(baseInfoVO);
|
||||
Date date = dateMap.get(x.getId());
|
||||
if (date != null){
|
||||
partnerListVO.setJoinTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, date));
|
||||
}
|
||||
partnerListVO.setUpdateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, x.getUpdateTime()));
|
||||
partnerListVO.setLineSourceName(channelMapByIds.get(x.getLineSource()));
|
||||
partnerListVO.setJoinStatus(x.getJoinStatus());
|
||||
partnerListVO.setInvestmentManagerUserName(userNameMap.get(x.getInvestmentManager()));
|
||||
partnerListVO.setUpdateUserName(userNameMap.get(x.getUpdateUserId()));
|
||||
partnerListVO.setDevelopmentManagerUserName(userNameMap.get(x.getDevelopmentManager()));
|
||||
partnerListVO.setWantShopNum(x.getWantShopNum());
|
||||
result.add(partnerListVO);
|
||||
});
|
||||
page.setList(result);
|
||||
return page;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addTags(LoginUserInfo user, AddTagsRequest addTagsRequest) {
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(addTagsRequest.getLineId());
|
||||
|
||||
@@ -3,18 +3,12 @@ package com.cool.store.controller.webb;
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.context.LoginUserInfo;
|
||||
import com.cool.store.dto.TransferLogDTO;
|
||||
import com.cool.store.request.AddTagsRequest;
|
||||
import com.cool.store.request.ChangeInvestmentRequest;
|
||||
import com.cool.store.request.LineListRequest;
|
||||
import com.cool.store.request.PublicLineListRequest;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.LinePayService;
|
||||
import com.cool.store.service.LineService;
|
||||
import com.cool.store.service.TransferLogService;
|
||||
import com.cool.store.vo.LineInfoVO;
|
||||
import com.cool.store.vo.LineListVO;
|
||||
import com.cool.store.vo.LinePayVO;
|
||||
import com.cool.store.vo.PublicLineListVO;
|
||||
import com.cool.store.vo.*;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
@@ -77,6 +71,22 @@ public class LineInfoController {
|
||||
return ResponseResult.success(lineService.getPublicLineList(publicLineListRequest,user));
|
||||
}
|
||||
|
||||
@ApiOperation("我负责的加盟商")
|
||||
@PostMapping("/getPartnerList")
|
||||
public ResponseResult<PageInfo<PartnerListVO>> getPartnerList(@RequestBody PartnerRequest partnerRequest) {
|
||||
LoginUserInfo user = CurrentUserHolder.getUser();
|
||||
user.setUserId("055740241221153440");
|
||||
return ResponseResult.success(lineService.getPartnerList(partnerRequest,user,Boolean.FALSE));
|
||||
}
|
||||
|
||||
@ApiOperation("团队的加盟商")
|
||||
@PostMapping("/getTeamPartnerList")
|
||||
public ResponseResult<PageInfo<PartnerListVO>> getTeamPartnerList(@RequestBody PartnerRequest partnerRequest) {
|
||||
LoginUserInfo user = CurrentUserHolder.getUser();
|
||||
user.setUserId("055740241221153440");
|
||||
return ResponseResult.success(lineService.getPartnerList(partnerRequest,user,Boolean.TRUE));
|
||||
}
|
||||
|
||||
@PostMapping(path = "/addTags")
|
||||
@ApiOperation("添加标签接口")
|
||||
public ResponseResult<Boolean> addTags(@RequestBody AddTagsRequest addTagsRequest){
|
||||
|
||||
Reference in New Issue
Block a user