|
@@ -1,42 +1,45 @@
|
|
|
package com.citu.module.menduner.system.service.enterprise;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
-import cn.hutool.core.collection.ListUtil;
|
|
|
import com.citu.framework.common.pojo.PageParam;
|
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
|
import com.citu.framework.common.util.object.BeanUtils;
|
|
|
import com.citu.framework.datapermission.core.annotation.DataPermission;
|
|
|
+import com.citu.framework.es.core.filter.ESFieldFilter;
|
|
|
+import com.citu.framework.es.core.util.ESUtils;
|
|
|
import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseListReqVO;
|
|
|
import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterprisePageReqVO;
|
|
|
import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseSaveReqVO;
|
|
|
import com.citu.module.menduner.system.controller.app.appbase.AppCommonRespVO;
|
|
|
-import com.citu.module.menduner.system.controller.app.enterprise.vo.*;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseClickReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseDetailRespVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSearchPageReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.enterprise.vo.AppEnterpriseSimpleRespVO;
|
|
|
import com.citu.module.menduner.system.convert.EnterpriseConvert;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAddressDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseBusinessDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
-import com.citu.module.menduner.system.dal.es.EsEnterpriseMergeDO;
|
|
|
-import com.citu.module.menduner.system.dal.es.enterprise.ESEnterpriseDO;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseAddressMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseBusinessMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
import com.citu.module.menduner.system.dal.redis.RedisKeyConstants;
|
|
|
-import com.citu.module.menduner.system.dal.repository.ESEnterpriseDORepository;
|
|
|
import com.citu.module.menduner.system.enums.visits.MdeVisitsEnum;
|
|
|
import com.citu.module.menduner.system.mq.producer.MdeVisitsProducer;
|
|
|
-import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
|
-import org.elasticsearch.index.query.QueryBuilders;
|
|
|
+import com.citu.module.menduner.system.util.EsQueryBuildUtils;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.data.domain.PageRequest;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
-import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
|
|
|
import org.springframework.data.elasticsearch.core.SearchHits;
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static com.citu.framework.common.util.collection.CollectionUtils.convertSet;
|
|
@@ -47,6 +50,7 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.MDE_ENTER
|
|
|
*
|
|
|
* @author rayson
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
@Validated
|
|
|
public class EnterpriseServiceImpl implements EnterpriseService {
|
|
@@ -58,10 +62,10 @@ public class EnterpriseServiceImpl implements EnterpriseService {
|
|
|
private MdeVisitsProducer producer;
|
|
|
|
|
|
@Resource
|
|
|
- private ESEnterpriseDORepository repository;
|
|
|
+ private EnterpriseBusinessMapper enterpriseBusinessMapper;
|
|
|
|
|
|
@Resource
|
|
|
- private ElasticsearchRestTemplate elasticsearchTemplate;
|
|
|
+ private EnterpriseAddressMapper enterpriseAddressMapper;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -147,140 +151,24 @@ public class EnterpriseServiceImpl implements EnterpriseService {
|
|
|
|
|
|
@Override
|
|
|
public AppEnterpriseDetailRespVO getEnterpriseDetail(Long id) {
|
|
|
+
|
|
|
AppEnterpriseDetailRespVO respVO = new AppEnterpriseDetailRespVO();
|
|
|
|
|
|
- AppEnterpriseRespVO enterprise = new AppEnterpriseRespVO();
|
|
|
- enterprise.setId(id);
|
|
|
- enterprise.setName("xx门墩儿信息科技有限公司");
|
|
|
- enterprise.setAnotherName("门墩儿科技");
|
|
|
- enterprise.setIntroduce("广州珠光物业管理有限公司是珠光集团属下从事高级住宅小区、商业、办公楼等物业管理的专业大型公司。目前,公司在管\n面积300余万平方米,遍及广州、北京、惠州、梅州、海南、新疆等城市。\n为更好地开展与服务关联的各项工作,公司于2014年分别成立广州御家清洁服务有限公司、广州御茵园林工程有限公司、广州御科机电科技有限公司、广州御安置业有限公司四家专业公司。\n" +
|
|
|
- "\n" +
|
|
|
- "一直以来,珠光物业默默地深耕物业服务行业,怀揣着“社区是个大家庭家”的理念,致力于将传统院落的文化内涵与社区管理相融合,营造“大家”爱“小家”的良好氛围,\n将亲情融入到物业服务的点点滴滴,倡导融洽和睦的家庭观念、亲仁善邻的道德态度与醇厚善邻的邻里关系");
|
|
|
- enterprise.setLogoUrl("https://www.menduner.com/static/img/loginlogo2.7924c12.png");
|
|
|
- enterprise.setIndustryId(2L);
|
|
|
- enterprise.setFinancingStatus("2");
|
|
|
- enterprise.setScale("3");
|
|
|
- enterprise.setWelfareList(ListUtil.of("五险一金", "交通补助", "餐补", "话补", "补贴", "住房补贴", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠", "住房优惠"));
|
|
|
- enterprise.setAlbumList(ListUtil.of(
|
|
|
- "https://zhipin-company-1251955568.file.myqcloud.com/zhipin-company/99/20231021/fpf81b1cdecd7a27dca3eeb40f661f1a3e_1a3cd48c41c942d0aa084b3dd0262681-OSS11.aac.s44100.stereo.1080x1920.b2000000.libx264.mp4?sign=d840267a7fb629df0a70cbc85702303e&t=1715917059",
|
|
|
- "https://img.bosszhipin.com/beijin/upload/com/img/20210113/9721a38a2ee987949634e03ebcbeeb768c9fa67a7309bcd3394445118f39eee3.jpg?x-oss-process=image/auto-orient,1/watermark,size_18,t_50,color_FFFFFF,text_QOacrOWbvueUseivpeWFrOWPuOazqOWGjOeUqOaIt-S4iuS8oA==,type_ZHJvaWRzYW5zZmFsbGJhY2s,image/resize,p_50",
|
|
|
- "https://zhipin-company-1251955568.file.myqcloud.com/zhipin-company/99/20231021/fp3692be34c52d0ad19616e3b18f94cf83_3f6de97ce4f7480c9b9b921159a0c077-OSS11.aac.s44100.stereo.1080x606.b2000000.libx264.mp4?sign=b463389d85d317d95084aee80e52ff12&t=1715836781",
|
|
|
- "https://img.bosszhipin.com/beijin/upload/com/img/20210113/753ff7a19883590a242e1e3ff779e5f48c9fa67a7309bcd3394445118f39eee3.jpg?x-oss-process=image/auto-orient,1/watermark,size_18,t_50,color_FFFFFF,text_QOacrOWbvueUseivpeWFrOWPuOazqOWGjOeUqOaIt-S4iuS8oA==,type_ZHJvaWRzYW5zZmFsbGJhY2s,image/resize,p_50"
|
|
|
- ));
|
|
|
- enterprise.setWorkTime("上午09:00 - 下午06:00");
|
|
|
- enterprise.setDevelopHistory("2019-2021 成立xxx \n 2021-2023 建立分公司");
|
|
|
- enterprise.setReceivedHonors("拿了很多奖");
|
|
|
- enterprise.setStatus("0");
|
|
|
- enterprise.setCreateTime(LocalDateTime.now());
|
|
|
- respVO.setEnterprise(enterprise);
|
|
|
+ EnterpriseDO enterprise = enterpriseMapper.selectById(id);
|
|
|
+ respVO.setEnterprise(EnterpriseConvert.INSTANCE.convert3(enterprise));
|
|
|
|
|
|
- AppEnterpriseBusinessRespVO business = new AppEnterpriseBusinessRespVO();
|
|
|
- business.setId(1L);
|
|
|
- business.setEnterpriseId(id);
|
|
|
- business.setName("xx门墩儿信息科技有限公司");
|
|
|
- business.setAddress("广东省广州市天河区天河路");
|
|
|
- business.setArea("广东省");
|
|
|
- business.setEstablishmentTime(LocalDateTime.now());
|
|
|
- business.setBusinessScope("物业管理;非居住房地产租赁;建筑物清洁服务;停车场服务;专业保洁、清洗、消毒服务;健身休闲活动;台球活动;棋牌室服务;家用电器安装服务;餐饮管理;酒店管理;日用品销售;住房租赁;广告设计、代理;房地产咨询;企业管理咨询;园林绿化工程施工;对外承包工程;安全技术防范系统设计施工服务;厨具卫具及日用杂品零售;五金产品零售;文具用品零售;体育用品及器材零售;日用家电零售;五金产品批发;文具用品批发;日用品批发;移动通信设备销售;会议及展览服务;商务代理代办服务;票务代理服务;城市公园管理;仓储设备租赁服务;金属门窗工程施工;农业园艺服务;家具安装和维修服务;家具零配件销售;家具销售;机构养老服务;养老服务;翻译服务;护理机构服务(不含医疗服务);信息系统集成服务;信息系统运行维护服务;市政设施管理;礼仪服务;城乡市容管理;建筑装饰材料销售;办公设备耗材销售;办公服务;通用设备修理;旅客票务代理;日用百货销售;婚姻介绍服务;礼品花卉销售;家政服务;居民日常生活服务;咨询策划服务;机械设备租赁;白蚁防治服务;环保咨询服务;环境卫生公共设施安装服务;城市绿化管理;办公设备租赁服务;");
|
|
|
- business.setBusinessTerm("1998-03-13至-");
|
|
|
- business.setApprovalTime("1998-03-13");
|
|
|
- business.setRegistrationAuthority("广州市工商行政管理局");
|
|
|
- business.setCode("91440105708269224U");
|
|
|
- business.setBusinessStatus("在营");
|
|
|
- business.setType("有限责任公司");
|
|
|
- business.setRegisteredCapital("1000万");
|
|
|
- respVO.setBusiness(business);
|
|
|
+ EnterpriseBusinessDO business = enterpriseBusinessMapper.selectByEnterpriseId(id);
|
|
|
+ respVO.setBusiness(EnterpriseConvert.INSTANCE.convert4(business));
|
|
|
|
|
|
- List<AppEnterpriseAddressRespVO> addressList = new ArrayList<>();
|
|
|
- for (int i = 0; i < 3; i++) {
|
|
|
- AppEnterpriseAddressRespVO address = new AppEnterpriseAddressRespVO();
|
|
|
- address.setId(i + 1L);
|
|
|
- address.setEnterpriseId(id);
|
|
|
- address.setAddress("广东省广州市天河区天河路" + i + "号");
|
|
|
- address.setAreaId(2L);
|
|
|
- address.setLongitude("113.265");
|
|
|
- address.setLatitude("23.132");
|
|
|
- address.setCreateTime(LocalDateTime.now());
|
|
|
- addressList.add(address);
|
|
|
- }
|
|
|
- respVO.setAddressList(addressList);
|
|
|
+ List<EnterpriseAddressDO> addresseList = enterpriseAddressMapper.selectByEnterpriseId(id);
|
|
|
+ respVO.setAddressList(EnterpriseConvert.INSTANCE.convertList(addresseList));
|
|
|
|
|
|
- respVO.setJobAdvertisedCount(67);
|
|
|
return respVO;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public PageResult<AppEnterpriseSimpleRespVO> search(AppEnterpriseSearchPageReqVO reqVO) {
|
|
|
- PageResult<AppEnterpriseSimpleRespVO> result = new PageResult<>();
|
|
|
- List<AppEnterpriseSimpleRespVO> list = new ArrayList<>();
|
|
|
- AppEnterpriseSimpleRespVO respVO = new AppEnterpriseSimpleRespVO();
|
|
|
- respVO.setId(1L);
|
|
|
- respVO.setAnotherName("门墩儿科技");
|
|
|
- respVO.setIndustryId(1L);
|
|
|
- respVO.setScale("0");
|
|
|
- respVO.setFinancingStatus("0");
|
|
|
- respVO.setLogoUrl("https://www.menduner.com/static/img/loginlogo2.7924c12.png");
|
|
|
-
|
|
|
- AppEnterpriseSimpleRespVO respVO2 = new AppEnterpriseSimpleRespVO();
|
|
|
- respVO2.setId(2L);
|
|
|
- respVO2.setAnotherName("门墩儿科技222");
|
|
|
- respVO2.setIndustryId(2L);
|
|
|
- respVO2.setScale("1");
|
|
|
- respVO2.setFinancingStatus("1");
|
|
|
- respVO2.setLogoUrl("https://www.menduner.com/static/img/loginlogo2.7924c12.png");
|
|
|
- list.add(respVO);
|
|
|
- list.add(respVO2);
|
|
|
-
|
|
|
- result.setList(list);
|
|
|
- result.setTotal(2L);
|
|
|
-
|
|
|
- //分页
|
|
|
- BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
|
|
|
-
|
|
|
- // 添加关键词查询条件
|
|
|
- if (StringUtils.hasText(reqVO.getName())) {
|
|
|
- boolQuery.must(QueryBuilders.matchQuery("name", reqVO.getName()));
|
|
|
- boolQuery.must(QueryBuilders.matchQuery("anotherName", reqVO.getName()));
|
|
|
- }
|
|
|
- if (null!= reqVO.getAreaIds() ) {
|
|
|
- boolQuery.should(QueryBuilders.termsQuery("areaIds", reqVO.getAreaIds()));
|
|
|
- }
|
|
|
- if (null!= reqVO.getIndustryIds()) {
|
|
|
- boolQuery.should(QueryBuilders.termsQuery("industryIds", reqVO.getIndustryIds()));
|
|
|
- }
|
|
|
- // 添加范围查询条件
|
|
|
- if (StringUtils.hasText(reqVO.getScale())) {
|
|
|
- boolQuery.must(QueryBuilders.termQuery("scale", reqVO.getScale()));
|
|
|
- }
|
|
|
- if (StringUtils.hasText(reqVO.getFinancingStatus())) {
|
|
|
- boolQuery.must(QueryBuilders.termQuery("financingStatus", reqVO.getFinancingStatus()));
|
|
|
- }
|
|
|
-
|
|
|
- // 构建分页
|
|
|
- Pageable pageable = PageRequest.of(reqVO.getPageNo()-1, reqVO.getPageSize());
|
|
|
-
|
|
|
- // 构建高亮
|
|
|
- HighlightBuilder highlightBuilder = new HighlightBuilder();
|
|
|
- highlightBuilder.field("name").preTags("<span style='color:red'>").postTags("</span>");
|
|
|
- highlightBuilder.field("anotherName").preTags("<span style='color:red'>").postTags("</span>");
|
|
|
-
|
|
|
-// // 构建排序
|
|
|
-// Sort sort = Sort.by(Sort.Order.asc("name"));
|
|
|
-
|
|
|
- NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
|
|
|
- .withQuery(boolQuery)
|
|
|
- .withHighlightFields( new HighlightBuilder
|
|
|
- .Field("*")
|
|
|
- .preTags("<span style='color:red'>")
|
|
|
- .postTags("</span>").requireFieldMatch(false))
|
|
|
-// .withHighlightBuilder(new HighlightBuilder().preTags("<span style='color:red'>").postTags("</span>"))
|
|
|
- .withPageable(pageable)
|
|
|
-// .withSort(sort)
|
|
|
- .build();
|
|
|
-
|
|
|
- SearchHits<EsEnterpriseMergeDO> searchHits = elasticsearchTemplate.search(searchQuery, EsEnterpriseMergeDO.class);
|
|
|
- System.out.println(searchHits);
|
|
|
- return result;
|
|
|
+ return enterpriseMapper.selectPage(reqVO);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -302,29 +190,4 @@ public class EnterpriseServiceImpl implements EnterpriseService {
|
|
|
return enterpriseMapper.searchByName(name);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void test() {
|
|
|
- EnterpriseDO enterprise = enterpriseMapper.selectById(1L);
|
|
|
- if (null == enterprise) {
|
|
|
- throw exception(MDE_ENTERPRISE_NOT_EXISTS);
|
|
|
- }
|
|
|
-
|
|
|
- EsEnterpriseMergeDO esEnterprise = EnterpriseConvert.INSTANCE.convert2(enterprise);
|
|
|
- ESEnterpriseDO entity = repository.save(esEnterprise);
|
|
|
- System.out.println(entity);
|
|
|
-
|
|
|
- Optional<EsEnterpriseMergeDO> query = repository.findById(1L);
|
|
|
- if (query.isPresent()) {
|
|
|
- EsEnterpriseMergeDO esEnterpriseDO = query.get();
|
|
|
- System.out.println(esEnterpriseDO);
|
|
|
-
|
|
|
- if (null != esEnterpriseDO.getWelfareList()
|
|
|
- && esEnterpriseDO.getWelfareList().size() < 8) {
|
|
|
- esEnterpriseDO.getWelfareList().add("我是测试");
|
|
|
- entity = repository.save(esEnterpriseDO);
|
|
|
- System.out.println(entity);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
}
|