diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java index 0d6c6b500..f88325be3 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyOpenAreaInfoDAO.java @@ -104,4 +104,8 @@ public class HyOpenAreaInfoDAO { } return hyOpenAreaInfoMapper.selectById(id); } + + public List getAllOpenArea(){ + return hyOpenAreaInfoMapper.getAllOpenArea(); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java index 4d90a6146..d85690aba 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyOpenAreaInfoMapper.java @@ -105,5 +105,11 @@ public interface HyOpenAreaInfoMapper { HyOpenAreaInfoDO selectById(@Param("id") Long id); + /** + * 获取所有的区域 + * @return + */ + List getAllOpenArea(); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml index 1ca989adc..a67cf9950 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml @@ -281,4 +281,8 @@ + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index ad7094ddd..e9a28a598 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -307,10 +307,12 @@ b.interviewer as interviewer, b.create_time as createTime, b.room_id as roomId, - b.id as id + b.id as id, + hpci.intention_contract_no as intentionContractNo from hy_partner_line_info hpli left join hy_partner_interview a on hpli.id = a.partner_line_id left join hy_partner_interview_plan b on a.interview_plan_id = b.id + left join hy_partner_certification_info hpci on hpci.partner_interview_id = a.id and hpli.deleted = 0 and hpli.line_status!=3 diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerInterviewInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerInterviewInfoDTO.java index 43c933dd9..878979fab 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerInterviewInfoDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PartnerInterviewInfoDTO.java @@ -38,7 +38,7 @@ public class PartnerInterviewInfoDTO { private Date approveTime; @ApiModelProperty("意向合同号") - private String authCode; + private String intentionContractNo; @ApiModelProperty("面试开始时间") private Date startTime; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAreaTreeVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAreaTreeVO.java index 905ad97d3..3c47d8bcd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAreaTreeVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/OpenAreaTreeVO.java @@ -1,10 +1,18 @@ package com.cool.store.vo; +import com.cool.store.entity.HyOpenAreaInfoDO; +import com.google.common.collect.Lists; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.commons.collections4.CollectionUtils; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; /** * @Author suzhuhong @@ -36,5 +44,77 @@ public class OpenAreaTreeVO { private String detailBanner; @ApiModelProperty("子区域") - List childNode; + private List childNode; + + + public static List convertTree(List allOpenArea, String keyword){ + List firstArea = allOpenArea.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList()); + Map> openAreaParentMap = allOpenArea.stream().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId())); + List allTree = new ArrayList<>(); + for (HyOpenAreaInfoDO openAreaInfo : firstArea) { + OpenAreaTreeVO node = copyProperties(openAreaInfo); + List childList = dealChild(openAreaInfo, openAreaParentMap); + node.setChildNode(childList); + allTree.add(node); + } + Map> childMap = allTree.stream().collect(Collectors.toMap(k -> k.getId(), v -> v.getChildNode())); + List filterList = allOpenArea.stream().filter(o -> o.getAreaPath().contains(keyword)).collect(Collectors.toList()); + Map openAreaMap = allOpenArea.stream().collect(Collectors.toMap(k -> k.getId(), Function.identity())); + List list = new ArrayList<>(); + //向上处理节点 + for (HyOpenAreaInfoDO openAreaInfo : filterList) { + list.add(openAreaInfo); + while (Objects.nonNull(openAreaInfo) && Objects.nonNull(openAreaInfo.getParentId())){ + openAreaInfo = openAreaMap.get(openAreaInfo.getParentId()); + if(Objects.isNull(openAreaInfo)){ + continue; + } + list.add(openAreaInfo); + } + } + List resultList = new ArrayList<>(); + List filterFirstArea = list.stream().filter(o -> Objects.isNull(o.getParentId())).distinct().collect(Collectors.toList()); + Map> filterOpenAreaParentMap = list.stream().filter(Objects::nonNull).filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId())); + for (HyOpenAreaInfoDO openAreaInfo : filterFirstArea) { + OpenAreaTreeVO node = copyProperties(openAreaInfo); + List childList = dealChild(openAreaInfo, filterOpenAreaParentMap); + if(CollectionUtils.isEmpty(childList)){ + childList = childMap.get(node.getId()); + } + node.setChildNode(childList); + resultList.add(node); + } + return resultList; + } + + public static List dealChild(HyOpenAreaInfoDO areaInfo, Map> openAreaParentMap){ + List childList = openAreaParentMap.get(areaInfo.getId()); + if(CollectionUtils.isEmpty(childList)){ + return Lists.newArrayList(); + } + List resultList = new ArrayList<>(); + for (HyOpenAreaInfoDO hyOpenAreaInfo : childList) { + OpenAreaTreeVO openAreaTree = copyProperties(hyOpenAreaInfo); + openAreaTree.setChildNode(dealChild(hyOpenAreaInfo, openAreaParentMap)); + resultList.add(openAreaTree); + } + return resultList; + } + + /** + * 属性处理 + * @param area + * @return + */ + public static OpenAreaTreeVO copyProperties(HyOpenAreaInfoDO area){ + OpenAreaTreeVO result = new OpenAreaTreeVO(); + result.setId(area.getId()); + result.setParentId(area.getParentId()); + result.setAreaName(area.getAreaName()); + result.setAreaPath(area.getAreaPath()); + result.setAreaStatus(area.getAreaStatus()); + result.setBackgroundBanner(area.getBackgroundBanner()); + result.setDetailBanner(area.getDetailBanner()); + return result; + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java index f59e37b15..0f3179ee5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java @@ -33,6 +33,9 @@ public interface OpenAreaService { List queryAllOpenAreaByKeyword(String keyword,Boolean applyFlag,Boolean flag); + List searchOpenArea(String keyword,Boolean applyFlag,Boolean flag); + + /** * 查询字列表 * @param type diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 26d4a5015..8caac2ed0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -276,7 +276,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan partnerInterviewInfoVO.setDeadline(DateUtil.format(partnerInterviewInfoDTO.getDeadline(),CoolDateUtils.DATE_FORMAT_SEC_2)); partnerInterviewInfoVO.setStartTime(DateUtil.format(partnerInterviewInfoDTO.getStartTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); partnerInterviewInfoVO.setStatus(partnerInterviewInfoDTO.getStatus()); - partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getAuthCode()); + partnerInterviewInfoVO.setAuthCode(partnerInterviewInfoDTO.getIntentionContractNo()); partnerInterviewInfoVO.setEndTime(DateUtil.format(partnerInterviewInfoDTO.getEndTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); partnerInterviewInfoVO.setApproveTime(DateUtil.format(partnerInterviewInfoDTO.getApproveTime(),CoolDateUtils.DATE_FORMAT_SEC_2)); return partnerInterviewInfoVO; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java index ba4c0a0c9..39daf718d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java @@ -2,6 +2,7 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyOpenAreaInfoDAO; import com.cool.store.dto.partner.ApplyReservationProvinceDTO; import com.cool.store.entity.HyOpenAreaInfoDO; @@ -13,10 +14,12 @@ import com.cool.store.vo.OpenProvinceVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -106,6 +109,13 @@ public class OpenAreaServiceImpl implements OpenAreaService { return openAreaTreeVOS; } + @Override + public List searchOpenArea(String keyword,Boolean applyFlag, Boolean flag) { + //先查出所有的一级菜单 + List allOpenArea = hyOpenAreaInfoDAO.getAllOpenArea(); + return OpenAreaTreeVO.convertTree(allOpenArea, keyword); + } + @Override public List getChildrenList(String type, Long parentId) { List childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 8b8bf2ce5..dc6be9f2e 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -2,10 +2,12 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dao.HyPartnerTaskInfoLogDAO; import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; import com.cool.store.dto.calendar.UserCalendarsEventDTO; +import com.cool.store.dto.log.LineLogInfo; import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.response.ResultDTO; import com.cool.store.entity.HyOpenAreaInfoDO; @@ -23,6 +25,7 @@ import com.cool.store.response.ResponseResult; import com.cool.store.service.AliyunService; import com.cool.store.service.EnterpriseSyncService; import com.cool.store.service.EnterpriseUserService; +import com.cool.store.service.OpenAreaService; import com.cool.store.vo.cuser.IdentityCardInfoVO; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -56,6 +59,10 @@ public class TestController { private EnterpriseUserDAO enterpriseUserDAO; @Resource private AliyunService aliyunService; + @Resource + private HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO; + @Resource + private OpenAreaService openAreaService; @PostMapping("/post") public ResponseResult get(@RequestBody List testRequestList){ @@ -239,4 +246,9 @@ public class TestController { return ResponseResult.success(enterpriseUserService.getDevelopmentByZoneId(zoneId)); } + @GetMapping("/searchOpenArea") + public ResponseResult searchOpenArea(@RequestParam(value = "keyword",required = false)String keyword){ + return ResponseResult.success(openAreaService.searchOpenArea(keyword,null,Boolean.FALSE)); + } + }