Commit 447cf109 by 田超

Merge branch 'feature/1003275' into 'master'

feat: [1003275] 群筛选方案优化

See merge request rays/pcloud-book!825
parents 67c43053 858e806a
...@@ -2,7 +2,6 @@ package com.pcloud.book.es.biz.impl; ...@@ -2,7 +2,6 @@ package com.pcloud.book.es.biz.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.IterUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pcloud.book.book.constant.BookConstant; import com.pcloud.book.book.constant.BookConstant;
...@@ -35,6 +34,7 @@ import org.elasticsearch.index.query.QueryBuilders; ...@@ -35,6 +34,7 @@ import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate; import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -200,9 +200,13 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz { ...@@ -200,9 +200,13 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz {
ESGroupBookQrcodeDTO qrcodeDTO = qrcodeDTOMap.get(qrcode.getWeixinGroupId()); ESGroupBookQrcodeDTO qrcodeDTO = qrcodeDTOMap.get(qrcode.getWeixinGroupId());
if (qrcodeDTO != null) { if (qrcodeDTO != null) {
qrcode.setCityTags(qrcodeDTO.getCityTags()); qrcode.setCityTags(qrcodeDTO.getCityTags());
qrcode.setMaleCount(qrcodeDTO.getMaleCount()); int male = qrcodeDTO.getMaleCount() == null ? 0 : qrcodeDTO.getMaleCount();
qrcode.setFemaleCount(qrcodeDTO.getFemaleCount()); int female = qrcodeDTO.getFemaleCount() == null ? 0 : qrcodeDTO.getFemaleCount();
qrcode.setUnknownCount(qrcodeDTO.getUnknownCount()); int unknown = qrcodeDTO.getUnknownCount() == null ? 0 : qrcodeDTO.getUnknownCount();
qrcode.setMaleCount(male);
qrcode.setFemaleCount(female);
qrcode.setUnknownCount(unknown);
qrcode.setGroupMemberCount(male + female + unknown);
} }
} }
...@@ -263,18 +267,21 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz { ...@@ -263,18 +267,21 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz {
@Override @Override
public PageBeanNew<GroupQrcodeSearchDTO> search(String text, Integer pageSize, Integer pageNum) { public PageBeanNew<GroupQrcodeSearchDTO> search(String text, Integer pageSize, Integer pageNum) {
QueryBuilder queryBuilder; QueryBuilder queryBuilder;
PageRequest pageRequest;
if (StrUtil.isEmpty(text)) { if (StrUtil.isEmpty(text)) {
queryBuilder = QueryBuilders.boolQuery(); queryBuilder = QueryBuilders.boolQuery();
pageRequest = new PageRequest(pageNum, pageSize, new Sort(Sort.Direction.DESC, "groupMemberCount", "userNumber"));
} else { } else {
pageRequest = new PageRequest(pageNum, pageSize);
queryBuilder = QueryBuilders.multiMatchQuery(text, "pressTags", "cityTags", "groupNameTags", "pressTags", "bookNameTags", "groupName", "qrcodeBookName"); queryBuilder = QueryBuilders.multiMatchQuery(text, "pressTags", "cityTags", "groupNameTags", "pressTags", "bookNameTags", "groupName", "qrcodeBookName");
} }
Page<ESBookGroupQrcode> page = bookGroupQrcodeRepository.search(queryBuilder, new PageRequest(pageNum, pageSize)); Page<ESBookGroupQrcode> page = bookGroupQrcodeRepository.search(queryBuilder, pageRequest);
List<GroupQrcodeSearchDTO> list = convert(page.getContent()); List<GroupQrcodeSearchDTO> list = convert(page.getContent());
if (CollUtil.isEmpty(list)){ if (CollUtil.isEmpty(list)) {
return new PageBeanNew<>(pageNum,pageSize,null); return new PageBeanNew<>(pageNum, pageSize, null);
} }
return new PageBeanNew<>(pageNum,pageSize,(int)page.getTotalElements(),list); return new PageBeanNew<>(pageNum, pageSize, (int) page.getTotalElements(), list);
} }
private List<GroupQrcodeSearchDTO> convert(List<ESBookGroupQrcode> content) { private List<GroupQrcodeSearchDTO> convert(List<ESBookGroupQrcode> content) {
...@@ -287,11 +294,7 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz { ...@@ -287,11 +294,7 @@ public class ESBookGroupQrcodeBizImpl implements ESBookGroupQrcodeBiz {
GroupQrcodeSearchDTO groupQrcodeSearchDTO = new GroupQrcodeSearchDTO(); GroupQrcodeSearchDTO groupQrcodeSearchDTO = new GroupQrcodeSearchDTO();
if (CollUtil.isNotEmpty(content)){ if (CollUtil.isNotEmpty(content)){
BeanUtil.copyProperties(esBookGroupQrcode,groupQrcodeSearchDTO); BeanUtil.copyProperties(esBookGroupQrcode,groupQrcodeSearchDTO);
int male = esBookGroupQrcode.getMaleCount()==null?0: esBookGroupQrcode.getMaleCount(); groupQrcodeSearchDTO.setPayMemberCount(esBookGroupQrcode.getAmountActuallyPaid() == null ? 0 : Math.toIntExact(esBookGroupQrcode.getAmountActuallyPaid()));
int female = esBookGroupQrcode.getFemaleCount()==null?0: esBookGroupQrcode.getFemaleCount();
int unknown = esBookGroupQrcode.getUnknownCount()==null?0: esBookGroupQrcode.getUnknownCount();
groupQrcodeSearchDTO.setGroupMemberCount(male+female+unknown);
groupQrcodeSearchDTO.setPayMemberCount(esBookGroupQrcode.getFemaleCount());
if (StrUtil.isEmpty(esBookGroupQrcode.getPurchaseAmount())){ if (StrUtil.isEmpty(esBookGroupQrcode.getPurchaseAmount())){
groupQrcodeSearchDTO.setPurchaseAmount(BigDecimal.ZERO); groupQrcodeSearchDTO.setPurchaseAmount(BigDecimal.ZERO);
}else { }else {
......
...@@ -175,5 +175,9 @@ public class ESBookGroupQrcode { ...@@ -175,5 +175,9 @@ public class ESBookGroupQrcode {
@Field(type = FieldType.String,index = FieldIndex.not_analyzed) @Field(type = FieldType.String,index = FieldIndex.not_analyzed)
private String isbn; private String isbn;
/**
* 成员总人数
*/
private Integer groupMemberCount;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment