Merge branch 'cc_20230520_partner' of http://gitlab.coolcollege.cn/hangzhou/java/coolstore-partner-manage into cc_20230520_partner

This commit is contained in:
俞扬
2023-06-14 10:42:02 +08:00
27 changed files with 467 additions and 31 deletions

View File

@@ -52,6 +52,8 @@ public enum ErrorCodeEnum {
LINE_ID_IS_NOT_EXIST(500001, "线索ID不存在", null),
WORK_FLOW_STAGE_PASS_ERROR(500002, "通过错误,非对应阶段!", null),
PARTNER_USER_NOT_EXIST(500002, "加盟商用户信息不存在!", null),
INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null),
;

View File

@@ -1,5 +1,7 @@
package com.cool.store.enums;
import java.util.HashMap;
/**
* @Author suzhuhong
* @Date 2023/6/9 16:17
@@ -21,6 +23,18 @@ public enum WorkflowStageEnum {
this.message = message;
}
/**
* 每个大节点对应的子节点最后一个流程
* @return
*/
public static final HashMap<String,String> getWorkflowStageMap(){
HashMap<String, String> result = new HashMap<>();
result.put(INTENT.getCode(),WorkflowStatusEnum.INTENT_3.getCode());
result.put(RESERVATION.getCode(),WorkflowStatusEnum.RESERVATION_6.getCode());
result.put(INTERVIEW.getCode(),WorkflowStatusEnum.INTERVIEW_6.getCode());
return result;
}
public String getCode() {
return code;

View File

@@ -1,5 +1,7 @@
package com.cool.store.utils;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
@@ -32,4 +34,22 @@ public class CoolDateUtils {
now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
return now.getTime();
}
/**
* n天后 的最大时间 20230613 2天后最大时间---->2023-06-15 23:59:59
* @param day
* @return
*/
public static Date getDateFormatDay(int day){
LocalDate today = LocalDate.now();
LocalDate thirdDay = today.plusDays(day);
LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MAX);
ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
}

View File

@@ -28,11 +28,11 @@ public class HyOpenAreaInfoDAO {
return hyOpenAreaInfoMapper.queryKeyOpenArea();
}
public List<HyOpenAreaInfoDO> queryByKeyword(String keyword){
public List<HyOpenAreaInfoDO> queryByKeyword(String keyword,Boolean filterData){
if (StringUtils.isEmpty(keyword)){
return new ArrayList<>();
}
return hyOpenAreaInfoMapper.queryByKeyword(keyword);
return hyOpenAreaInfoMapper.queryByKeyword(keyword,filterData);
}
public List<HyOpenAreaInfoDO> queryFirstLevel(){

View File

@@ -0,0 +1,41 @@
package com.cool.store.dao;
import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.mapper.HyPartnerBaseInfoMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
/**
* @Author suzhuhong
* @Date 2023/6/13 20:25
* @Version 1.0
*/
@Repository
public class HyPartnerBaseInfoDAO {
@Resource
HyPartnerBaseInfoMapper hyPartnerBaseInfoMapper;
public int insertSelective( HyPartnerBaseInfoDO record){
return hyPartnerBaseInfoMapper.insertSelective(record);
}
/**
*
* 默认更新方法根据主键更新不会把null值更新到数据库避免覆盖之前有值的
* dateTime:2023-05-29 03:51
*/
public int updateByPrimaryKeySelective(HyPartnerBaseInfoDO record){
return hyPartnerBaseInfoMapper.updateByPrimaryKeySelective(record);
}
public int updateByPartnerId(String userName,String mobile,String partnerId){
return hyPartnerBaseInfoMapper.updateByPartnerId(userName,mobile,partnerId);
}
}

View File

@@ -125,4 +125,7 @@ public class HyPartnerLineInfoDAO {
return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason);
}
}

View File

@@ -24,6 +24,11 @@ public class HyPartnerUserInfoDAO {
HyPartnerUserInfoMapper hyPartnerUserInfoMapper;
public int updateByPrimaryKeySelective(HyPartnerUserInfoDO hyPartnerUserInfoDO){
return hyPartnerUserInfoMapper.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
}
/**
* 根据PartnerId查询用户
* @param partnerId

View File

@@ -39,7 +39,7 @@ public interface HyOpenAreaInfoMapper {
* 查询所有
* @return
*/
List<HyOpenAreaInfoDO> queryByKeyword(@Param("keyword") String keyword);
List<HyOpenAreaInfoDO> queryByKeyword(@Param("keyword") String keyword, @Param("filterData") Boolean filterData);
/**
* 查询所有一级城市 (所有省份+直辖市)

View File

@@ -22,4 +22,15 @@ public interface HyPartnerBaseInfoMapper {
* dateTime:2023-05-29 03:51
*/
int updateByPrimaryKeySelective(@Param("record") HyPartnerBaseInfoDO record);
/**
* 根据加盟商ID修改用户名称与手机号
* @param userName
* @param mobile
* @param partnerId
* @return
*/
int updateByPartnerId(@Param("userName") String userName,
@Param("mobile") String mobile,
@Param("partnerId") String partnerId);
}

View File

@@ -133,6 +133,9 @@
select * from
hy_open_area_info
where area_path like concat('%',#{keyword},'%')
<if test="filterData!=null and filterData==true">
and province_city_flag = 1
</if>
</select>

View File

@@ -202,4 +202,18 @@
</set>
where id = #{record.id}
</update>
<update id="updateByPartnerId">
update hy_partner_base_info
<set>
<if test="userName != null and userName!=''">
username = #{record.username},
</if>
<if test="mobile != null and mobile!=''">
mobile = #{record.mobile},
</if>
where partner_id = #{partnerId}
</set>
</update>
</mapper>

View File

@@ -295,7 +295,8 @@
a.workflow_status as workflowStatus,
a.partner_id as partnerUserId,
a.investment_manager as investmentManager,
b.user_portrait as user_portrait
b.user_portrait as user_portrait,
b.id as partnerBaseInfoId
from hy_partner_line_info a inner join hy_partner_base_info b
on a.id = b.partner_line_id
<where>

View File

@@ -13,6 +13,9 @@ public class PartnerLineInfoAndBaseInfoDTO {
@ApiModelProperty("线索ID")
private Long id;
@ApiModelProperty("加盟申请基本信息 添加tags使用该ID")
private Long partnerBaseInfoId;
@ApiModelProperty("hy_partner_user_info.partner_id")
private String partnerId;

View File

@@ -15,8 +15,8 @@ import java.util.List;
@ApiModel
public class AddTagsRequest {
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("加盟申请基本信息ID")
private Long partnerBaseInfoId;
@ApiModelProperty("标签列表")
private List<String> Tags;
}

View File

@@ -13,8 +13,8 @@ import lombok.Data;
@ApiModel
public class BaseUserInfoRequest {
@ApiModelProperty("ID")
private Long id;
@ApiModelProperty("partnerId")
private String partnerId;
@ApiModelProperty("手机号")
private String mobile;
@@ -25,11 +25,11 @@ public class BaseUserInfoRequest {
@ApiModelProperty("常驻区域")
private String liveArea;
@ApiModelProperty("意向开店区域")
@ApiModelProperty("意向开店区域ID")
private String wantShopArea;
@ApiModelProperty("意向开店区域ID")
private Long wantShopAreaId;
@ApiModelProperty("意向开店区域Name")
private Long wantShopAreaName;
@ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂")
private Integer acceptAdjustType;

View File

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/5/31 11:01
@@ -21,7 +23,7 @@ public class CloseFollowRequest {
@ApiModelProperty("真实拒绝原因")
private String rejectRealReason;
@ApiModelProperty("证明文件与凭证")
private String certifyFile;
private List<String> certifyFile;
@ApiModelProperty("通过原因")
private String passReason;
@ApiModelProperty("通过-pass 拒绝-reject")

View File

@@ -18,6 +18,8 @@ public class PartnerLineInfoAndBaseInfoVO {
@ApiModelProperty("线索ID")
private Long id;
private Long partnerBaseInfoId;
@ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同")
private String workflowStage;

View File

@@ -0,0 +1,19 @@
package com.cool.store.Service;
import com.cool.store.request.AddTagsRequest;
/**
* @Author suzhuhong
* @Date 2023/6/13 21:37
* @Version 1.0
*/
public interface HyPartnerBaseInfoService {
/**
* 添加标签
* @param addTagsRequest
* @return
*/
Boolean addTags(AddTagsRequest addTagsRequest);
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.Service;
import com.cool.store.request.BaseUserInfoRequest;
import com.cool.store.vo.PartnerIntentApplyInfoVO;
import com.github.pagehelper.PageInfo;
@@ -28,4 +29,11 @@ public interface HyPartnerIntentInfoService {
*/
PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId);
/**
* 员工端 修改加盟商意向信息
* @param baseUserInfoRequest
* @return
*/
Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest);
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.Service;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
import com.cool.store.vo.BlackListVO;
import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO;
@@ -90,5 +91,13 @@ public interface HyPartnerLineInfoService {
*/
Boolean removeBlackList( Long lineId, Integer status, String removeReason);
/**
* 结束或者通过线索
* @param userId
* @param closeFollowRequest
* @return
*/
Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest);
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.Service;
import com.cool.store.vo.OpenAreaTreeVO;
import com.cool.store.vo.OpenAreaVO;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/6/13 22:11
* @Version 1.0
*/
public interface OpenAreaService {
/**
* 根据关键字搜索
* @param keyword
* @return
*/
List<OpenAreaTreeVO> queryByKeyword(String keyword);
/**
* 查询字列表
* @param type
* @param parentId
* @return
*/
List<OpenAreaVO> getChildrenList(String type, Long parentId);
}

View File

@@ -0,0 +1,33 @@
package com.cool.store.Service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.Service.HyPartnerBaseInfoService;
import com.cool.store.dao.HyPartnerBaseInfoDAO;
import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.request.AddTagsRequest;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collection;
/**
* @Author suzhuhong
* @Date 2023/6/13 21:37
* @Version 1.0
*/
@Service
public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
@Resource
HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Override
public Boolean addTags(AddTagsRequest addTagsRequest) {
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO();
hyPartnerBaseInfoDO.setId(addTagsRequest.getPartnerBaseInfoId());
hyPartnerBaseInfoDO.setUserPortrait(CollectionUtils.isNotEmpty(addTagsRequest.getTags())? JSONObject.toJSONString(addTagsRequest.getTags()):"");
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO);
return Boolean.TRUE;
}
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.Service.impl;
import com.cool.store.Service.HyPartnerIntentInfoService;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.HyPartnerBaseInfoDAO;
import com.cool.store.dao.HyPartnerIntentInfoDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
@@ -13,6 +14,8 @@ import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.HyPartnerBaseInfoMapper;
import com.cool.store.request.BaseUserInfoRequest;
import com.cool.store.vo.PartnerIntentApplyInfoVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -39,6 +42,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
HyPartnerUserInfoDAO hyPartnerUserInfoDAO;
@Resource
HyPartnerLineInfoDAO hyPartnerLineInfoDAO;
@Resource
HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO;
@Override
public PageInfo<PartnerIntentApplyInfoVO> getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) {
@@ -82,6 +87,24 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
return partnerIntentApplyInfoVO;
}
@Override
public Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest) {
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(baseUserInfoRequest.getPartnerId()));
if (hyPartnerUserInfoDO==null){
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
}
hyPartnerUserInfoDO.setUsername(baseUserInfoRequest.getUsername());
hyPartnerUserInfoDO.setMobile(baseUserInfoRequest.getMobile());
hyPartnerUserInfoDO.setLiveArea(baseUserInfoRequest.getLiveArea());
hyPartnerUserInfoDO.setWantShopArea(baseUserInfoRequest.getWantShopArea());
hyPartnerUserInfoDO.setAcceptAdjustType(baseUserInfoRequest.getAcceptAdjustType());
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
//修改意向申请信息中的加盟商名称与手机号
hyPartnerBaseInfoDAO.updateByPartnerId(baseUserInfoRequest.getUsername(),baseUserInfoRequest.getMobile(),baseUserInfoRequest.getPartnerId());
return Boolean.TRUE;
}
/**
* partnerIntentApplyInfoDTOToVo
* @param partnerIntentApplyInfoDTO

View File

@@ -1,6 +1,8 @@
package com.cool.store.Service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONPObject;
import com.cool.store.Service.HyPartnerLineInfoService;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
@@ -14,6 +16,7 @@ import com.cool.store.enums.LineStatusEnum;
import com.cool.store.enums.WorkflowStageEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.StringUtil;
@@ -23,11 +26,16 @@ import com.cool.store.vo.PartnerLineInfoVO;
import com.cool.store.vo.StageCountVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.gson.JsonObject;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
@@ -188,7 +196,44 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
return Boolean.TRUE;
}
@Override
public Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId());
if (hyPartnerLineInfoDO==null){
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if (WorkflowStageEnum.INTENT.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage())){
throw new ServiceException(ErrorCodeEnum.WORK_FLOW_STAGE_PASS_ERROR);
}
//通过
if ("pass".equals(closeFollowRequest.getType())){
hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.RESERVATION_0.getCode());
hyPartnerLineInfoDO.setDeadline(CoolDateUtils.getDateFormatDay(2));
hyPartnerLineInfoDO.setPassReason(closeFollowRequest.getPassReason());
if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){
hyPartnerLineInfoDO.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile()));
}
}
//拒绝
if ("reject".equals(closeFollowRequest.getType())){
//当前节点 拒绝的子状态
String workflowStatus = WorkflowStageEnum.getWorkflowStageMap().get(hyPartnerLineInfoDO.getWorkflowStage());
hyPartnerLineInfoDO.setWorkflowStatus(workflowStatus);
//15天 冷静期
// TODO: 2023/6/13 冷静期
hyPartnerLineInfoDO.setDeadline(CoolDateUtils.getDateBefore(new Date(),15));
hyPartnerLineInfoDO.setRejectPublicReason(closeFollowRequest.getRejectPublicReason());
hyPartnerLineInfoDO.setRejectRealReason(closeFollowRequest.getRejectRealReason());
if (CollectionUtils.isNotEmpty(closeFollowRequest.getCertifyFile())){
hyPartnerLineInfoDO.setCertifyFile(JSONObject.toJSONString(closeFollowRequest.getCertifyFile()));
}
hyPartnerLineInfoDO.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode());
}
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
return Boolean.TRUE;
}
/**
* convertPartnerBlackListDTOToVo
* @param partnerBlackListDTO
@@ -221,6 +266,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
partnerLineInfoAndBaseInfoVO.setPartnerUserId(partnerLineInfoAndBaseInfoDTO.getPartnerId());
partnerLineInfoAndBaseInfoVO.setInvestmentManager(partnerLineInfoAndBaseInfoDTO.getInvestmentManager());
partnerLineInfoAndBaseInfoVO.setUserPortrait(partnerLineInfoAndBaseInfoDTO.getUserPortrait());
partnerLineInfoAndBaseInfoVO.setPartnerBaseInfoId(partnerLineInfoAndBaseInfoDTO.getPartnerBaseInfoId());
partnerLineInfoAndBaseInfoVO.setWorkflowStage(partnerLineInfoAndBaseInfoDTO.getWorkflowStage());
partnerLineInfoAndBaseInfoVO.setWorkflowStatus(partnerLineInfoAndBaseInfoDTO.getWorkflowStatus());
return partnerLineInfoAndBaseInfoVO;

View File

@@ -0,0 +1,137 @@
package com.cool.store.Service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.Service.OpenAreaService;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.vo.OpenAreaTreeVO;
import com.cool.store.vo.OpenAreaVO;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2023/6/13 22:11
* @Version 1.0
*/
@Service
public class OpenAreaServiceImpl implements OpenAreaService {
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Override
public List<OpenAreaTreeVO> queryByKeyword(String keyword) {
//先查出所有的一级菜单
List<HyOpenAreaInfoDO> openArea = hyOpenAreaInfoDAO.queryFirstLevel();
Map<Long, HyOpenAreaInfoDO> longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x));
//查询关键字下所有的数据 原始的数据
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.TRUE);
Set<Long> longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet());
hyOpenAreaInfoDOS.stream().forEach(x->{
Long parentId = x.getParentId();
if (parentId!=null&&!longSet.contains(parentId)){
//添加到集合中
longSet.add(x.getParentId());
HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId);
hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO);
}
});
JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" );
List<OpenAreaTreeVO> openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class);
return openAreaTreeVOS;
}
@Override
public List<OpenAreaVO> getChildrenList(String type, Long parentId) {
List<HyOpenAreaInfoDO> childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId);
List<OpenAreaVO> result = new ArrayList<>();
childrenList.stream().forEach(x->{
OpenAreaVO openAreaVO = convertDoToVo(x);
result.add(openAreaVO);
});
return result;
}
private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){
OpenAreaVO openAreaVO = new OpenAreaVO();
openAreaVO.setId(hyOpenAreaInfoDO.getId());
openAreaVO.setAreaName(hyOpenAreaInfoDO.getAreaName());
openAreaVO.setParentId(hyOpenAreaInfoDO.getParentId());
openAreaVO.setAreaPath(hyOpenAreaInfoDO.getAreaPath());
openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus());
openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner());
openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner());
return openAreaVO;
}
/**
* 构建树
* @param arr
* @param id
* @param pid
* @param child
* @return
*/
public static JSONArray buildTree(JSONArray arr, String id, String pid, String child) {
//新建一个JSONArray来接收组装成树形结构的返回值
JSONArray jsonArray = new JSONArray();
//新建一个JSONObject对象
JSONObject hash = new JSONObject();
//将数组转换为object格式
for (int i = 0; i < arr.size(); i++) {
//获取当前的JSON对象
JSONObject json = (JSONObject) arr.get(i);
//把当前id作为键当前JSON对象作为值 put回hash这个Object对象中
//这里的put方法类似于map的put方法
hash.put(json.getString(id), json);
}
//遍历结果集
for (int j = 0; j < arr.size(); j++) {
//单条记录
JSONObject aVal = (JSONObject) arr.get(j);
//在hash中取出key为单条记录中pid的值
String pidStr = "";
//如果父级id不等于null
if (aVal.get(pid) != null) {
pidStr = aVal.get(pid).toString();
}
//从hash这个对象中获取父级对象 parent
JSONObject hashParent = (JSONObject) hash.get(pidStr);
//如果记录的pid存在则说明它有父节点将她添加到孩子节点的集合中
if (hashParent != null) {
//检查是否有child属性
if (hashParent.get(child) != null) {
//有子节点 则先将子节点取出
JSONArray children = (JSONArray) hashParent.get(child);
//然后把当前这个对象放进子节点之中
children.add(aVal);
//最后把子节点在放回父节点之中
hashParent.put(child, children);
} else {
//无子节点 则新建一个子节点
JSONArray children = new JSONArray();
//然后再把当前对象放进去
children.add(aVal);
//最后在放回父节点之中
hashParent.put(child, children);
}
} else {
jsonArray.add(aVal);
}
}
return jsonArray;
}
}

View File

@@ -1,9 +1,6 @@
package com.cool.store.controller;
import com.cool.store.Service.DeskService;
import com.cool.store.Service.HyPartnerIntentInfoService;
import com.cool.store.Service.HyPartnerInterviewPlanService;
import com.cool.store.Service.HyPartnerLineInfoService;
import com.cool.store.Service.*;
import com.cool.store.enums.LineStatusEnum;
import com.cool.store.request.*;
import com.cool.store.response.ResponseResult;
@@ -36,6 +33,10 @@ public class DeskController {
HyPartnerInterviewPlanService hyPartnerInterviewPlanService;
@Resource
HyPartnerLineInfoService hyPartnerLineInfoService;
@Resource
HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource
OpenAreaService openAreaService;
@GetMapping(path = "/interviewSchedule")
@@ -222,25 +223,23 @@ public class DeskController {
@PostMapping(path = "/closeOrPassFollow")
@ApiOperation("意向申请审核 结束跟进/通过流程")
public ResponseResult<Boolean> closeFollow(@RequestBody CloseFollowRequest closeFollowRequest){
public ResponseResult<Boolean> closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){
return ResponseResult.success();
String userId = "";
return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(userId,closeFollowRequest));
}
@PostMapping(path = "/changeIntentInfo")
@ApiOperation("员工端变更C端用户意向信息")
public ResponseResult<Boolean> changeIntentInfo( @RequestBody BaseUserInfoRequest baseUserInfoRequest){
return ResponseResult.success();
return ResponseResult.success(hyPartnerIntentInfoService.updatePartnerIntentInfo(baseUserInfoRequest));
}
@PostMapping(path = "/addTags")
@ApiOperation("添加标签接口")
public ResponseResult<Boolean> addTags(@RequestBody AddTagsRequest addTagsRequest){
return ResponseResult.success();
return ResponseResult.success(hyPartnerBaseInfoService.addTags(addTagsRequest));
}
@@ -258,16 +257,25 @@ public class DeskController {
@GetMapping(path = "/getOpenAreaTree")
@ApiOperation("开放城市树")
@ApiOperation("开放城市树-搜索城市")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentId", value = "父区域名称", required = false),
@ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false),
@ApiImplicitParam(name = "keyWord", value = "搜索关键字", required = false)
})
public ResponseResult<List<OpenAreaVO>> getOpenAreaTree(@RequestParam(value = "parentId",required = false)Long parentId,
@RequestParam(value = "type",required = false)String type,
@RequestParam(value = "keyWord",required = false)String keyWord){
return ResponseResult.success();
public ResponseResult<List<OpenAreaTreeVO>> getOpenAreaTree(@RequestParam(value = "keyWord",required = false)String keyWord){
return ResponseResult.success(openAreaService.queryByKeyword(keyWord));
}
@GetMapping(path = "/getOpenAreaList")
@ApiOperation("开放城市树-子列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "parentId", value = "父区域名称", required = false),
@ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false)
})
public ResponseResult<List<OpenAreaVO>> getOpenAreaList(@RequestParam(value = "parentId",required = false)Long parentId,
@RequestParam(value = "type",required = false)String type){
return ResponseResult.success(openAreaService.getChildrenList(type,parentId));
}

View File

@@ -74,7 +74,7 @@ public class OpenAreaServiceImpl implements OpenAreaService {
Map<Long, HyOpenAreaInfoDO> longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x));
//查询关键字下所有的数据 原始的数据
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword);
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.FALSE);
Map<Long, HyOpenAreaInfoDO> hyMap = hyOpenAreaInfoDOS.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x));