Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -104,4 +104,8 @@ public class HyOpenAreaInfoDAO {
|
||||
}
|
||||
return hyOpenAreaInfoMapper.selectById(id);
|
||||
}
|
||||
|
||||
public List<HyOpenAreaInfoDO> getAllOpenArea(){
|
||||
return hyOpenAreaInfoMapper.getAllOpenArea();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,5 +105,11 @@ public interface HyOpenAreaInfoMapper {
|
||||
|
||||
HyOpenAreaInfoDO selectById(@Param("id") Long id);
|
||||
|
||||
/**
|
||||
* 获取所有的区域
|
||||
* @return
|
||||
*/
|
||||
List<HyOpenAreaInfoDO> getAllOpenArea();
|
||||
|
||||
|
||||
}
|
||||
@@ -281,4 +281,8 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="getAllOpenArea" resultMap="BaseResultMap">
|
||||
select <include refid="Base_Column_List"/> from hy_open_area_info
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -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<OpenAreaTreeVO> childNode;
|
||||
private List<OpenAreaTreeVO> childNode;
|
||||
|
||||
|
||||
public static List<OpenAreaTreeVO> convertTree(List<HyOpenAreaInfoDO> allOpenArea, String keyword){
|
||||
List<HyOpenAreaInfoDO> firstArea = allOpenArea.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
||||
Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap = allOpenArea.stream().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||
List<OpenAreaTreeVO> allTree = new ArrayList<>();
|
||||
for (HyOpenAreaInfoDO openAreaInfo : firstArea) {
|
||||
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
||||
List<OpenAreaTreeVO> childList = dealChild(openAreaInfo, openAreaParentMap);
|
||||
node.setChildNode(childList);
|
||||
allTree.add(node);
|
||||
}
|
||||
Map<Long, List<OpenAreaTreeVO>> childMap = allTree.stream().collect(Collectors.toMap(k -> k.getId(), v -> v.getChildNode()));
|
||||
List<HyOpenAreaInfoDO> filterList = allOpenArea.stream().filter(o -> o.getAreaPath().contains(keyword)).collect(Collectors.toList());
|
||||
Map<Long, HyOpenAreaInfoDO> openAreaMap = allOpenArea.stream().collect(Collectors.toMap(k -> k.getId(), Function.identity()));
|
||||
List<HyOpenAreaInfoDO> 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<OpenAreaTreeVO> resultList = new ArrayList<>();
|
||||
List<HyOpenAreaInfoDO> filterFirstArea = list.stream().filter(o -> Objects.isNull(o.getParentId())).distinct().collect(Collectors.toList());
|
||||
Map<Long, List<HyOpenAreaInfoDO>> 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<OpenAreaTreeVO> childList = dealChild(openAreaInfo, filterOpenAreaParentMap);
|
||||
if(CollectionUtils.isEmpty(childList)){
|
||||
childList = childMap.get(node.getId());
|
||||
}
|
||||
node.setChildNode(childList);
|
||||
resultList.add(node);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
public static List<OpenAreaTreeVO> dealChild(HyOpenAreaInfoDO areaInfo, Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap){
|
||||
List<HyOpenAreaInfoDO> childList = openAreaParentMap.get(areaInfo.getId());
|
||||
if(CollectionUtils.isEmpty(childList)){
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
List<OpenAreaTreeVO> 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@ public interface OpenAreaService {
|
||||
List<OpenAreaTreeVO> queryAllOpenAreaByKeyword(String keyword,Boolean applyFlag,Boolean flag);
|
||||
|
||||
|
||||
List<OpenAreaTreeVO> searchOpenArea(String keyword,Boolean applyFlag,Boolean flag);
|
||||
|
||||
|
||||
/**
|
||||
* 查询字列表
|
||||
* @param type
|
||||
|
||||
@@ -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<OpenAreaTreeVO> searchOpenArea(String keyword,Boolean applyFlag, Boolean flag) {
|
||||
//先查出所有的一级菜单
|
||||
List<HyOpenAreaInfoDO> allOpenArea = hyOpenAreaInfoDAO.getAllOpenArea();
|
||||
return OpenAreaTreeVO.convertTree(allOpenArea, keyword);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OpenAreaVO> getChildrenList(String type, Long parentId) {
|
||||
List<HyOpenAreaInfoDO> childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId);
|
||||
|
||||
@@ -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<Boolean> get(@RequestBody List<TestRequest> 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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user