Commit 417b1656 by zhiwj

平均分

parent 424e0558
......@@ -209,6 +209,7 @@ public class EvaluateDTO implements Serializable {
private String replyUserContent;
private List<String> imgList;
private Double orderMount;
private double avgScore;
public Integer getEvaluateId() {
return evaluateId;
......@@ -573,5 +574,13 @@ public class EvaluateDTO implements Serializable {
public Double getOrderMount() {
return orderMount;
}
public void setAvgScore(double avgScore) {
this.avgScore = avgScore;
}
public double getAvgScore() {
return avgScore;
}
}
......@@ -48,7 +48,7 @@ public interface EvaluateOutApiService {
* @return com.gic.api.base.commons.ServiceResponse<com.gic.api.base.commons.Page<com.gic.evaluate.dto.EvaluateDTO>>
* @throws
*/
ServiceResponse<List<EvaluateDTO>> listEvaluateByStore(Integer enterpriseId, Integer storeId);
ServiceResponse<Page<EvaluateDTO>> listEvaluateByStore(Integer enterpriseId, Integer storeId, Integer currentPage, Integer pageSize);
/**
* 查询第一条评价
......
......@@ -53,7 +53,7 @@ public class EvaluateServiceImpl implements EvaluateService {
@Override
public Page<TabEvaluate> listEvaluateNearByStore(EvaluateQO evaluateQO) {
PageHelper.startPage(1, Integer.MAX_VALUE);
PageHelper.startPage(evaluateQO.getCurrentPage(), evaluateQO.getPageSize());
// 按附近门店排序
evaluateQO.setOrderByField(3);
return tabEvaluateMapper.listEvaluate(evaluateQO);
......
......@@ -227,17 +227,19 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
}
@Override
public ServiceResponse<List<EvaluateDTO>> listEvaluateByStore(Integer enterpriseId, Integer storeId) {
public ServiceResponse<Page<EvaluateDTO>> listEvaluateByStore(Integer enterpriseId, Integer storeId, Integer currentPage, Integer pageSize) {
EvaluateQO evaluateQO = new EvaluateQO();
evaluateQO.setEnterpriseId(enterpriseId);
// evaluateQO.setMemberId(evaluateOutQO.getMemberId());
evaluateQO.setStoreIdList(Collections.singletonList(storeId));
evaluateQO.setShowStatus(Constants.OPEN);
evaluateQO.setMaliciousStatus(Constants.CLOSE);
evaluateQO.setCurrentPage(currentPage);
evaluateQO.setPageSize(pageSize);
// 查询置顶的
List<TabEvaluate> topHotEvaluate = evaluateService.listEvaluateNearByStore(evaluateQO);
com.github.pagehelper.Page<TabEvaluate> topHotEvaluate = evaluateService.listEvaluateNearByStore(evaluateQO);
if (CollectionUtils.isEmpty(topHotEvaluate)) {
topHotEvaluate = new ArrayList<>();
topHotEvaluate = new com.github.pagehelper.Page<>();
}
// // 查询非置顶的
// evaluateQO.setTopHotStatus();
......@@ -245,13 +247,18 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
// if (CollectionUtils.isNotEmpty(listEvaluate)) {
// topHotEvaluate.addAll(listEvaluate);
// }
List<EvaluateDTO> resultList = EntityUtil.changeEntityListByJSON(EvaluateDTO.class, topHotEvaluate);
TabEvaluateOrderConfig evaluateOrderConfig = this.evaluateOrderConfigService.getEvaluateOrderConfig(enterpriseId);
Page<EvaluateDTO> resultPage = PageHelperUtils.changePageHelperToCurrentPage(topHotEvaluate, EvaluateDTO.class);
List<EvaluateDTO> resultList = resultPage.getResult();
for (EvaluateDTO evaluateDTO : resultList) {
List<TabEvaluateImg> evaluateImgList = evaluateImgService.listImageByEvaluateId(evaluateDTO.getEvaluateId());
List<String> imgList = Optional.ofNullable(evaluateImgList).orElse(Collections.emptyList()).stream().map(TabEvaluateImg::getImgUrl).collect(Collectors.toList());
evaluateDTO.setImgList(imgList);
double avgScore = this.getAvgScore(evaluateOrderConfig, evaluateDTO.getGoodsScore(), evaluateDTO.getStoreScore(), evaluateDTO.getServiceScore());
evaluateDTO.setAvgScore(avgScore);
/* // 追评和回复
List<TabEvaluateReply> evaluateReplyList = this.evaluateReplyService.listEvaluateReply(evaluateDTO.getEnterpriseId(), evaluateDTO.getEvaluateId());
List<EvaluateReplyDTO> replyDTOList = EntityUtil.changeEntityListByJSON(EvaluateReplyDTO.class, evaluateReplyList);
......@@ -264,7 +271,7 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
evaluateDTO.setReplyList(replyDTOList);*/
}
return EnterpriseServiceResponse.success(resultList);
return EnterpriseServiceResponse.success(resultPage);
}
@Override
......@@ -275,17 +282,15 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
evaluateQO.setStoreIdList(Collections.singletonList(storeId));
evaluateQO.setShowStatus(Constants.OPEN);
evaluateQO.setMaliciousStatus(Constants.CLOSE);
evaluateQO.setCurrentPage(1);
evaluateQO.setPageSize(1);
// 查询置顶的
com.github.pagehelper.Page<TabEvaluate> topHotEvaluate = evaluateService.listEvaluateNearByStore(evaluateQO);
if (CollectionUtils.isEmpty(topHotEvaluate)) {
topHotEvaluate = new com.github.pagehelper.Page<>();
} else {
for (int i = topHotEvaluate.size() - 1; i >= 1; i--) {
topHotEvaluate.remove(i);
}
}
TabEvaluateOrderConfig evaluateOrderConfig = this.evaluateOrderConfigService.getEvaluateOrderConfig(enterpriseId);
Page<EvaluateDTO> resultPage = PageHelperUtils.changePageHelperToCurrentPage(topHotEvaluate, EvaluateDTO.class);
List<EvaluateDTO> resultList = resultPage.getResult();
for (EvaluateDTO evaluateDTO : resultList) {
......@@ -293,6 +298,10 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
List<TabEvaluateImg> evaluateImgList = evaluateImgService.listImageByEvaluateId(evaluateDTO.getEvaluateId());
List<String> imgList = Optional.ofNullable(evaluateImgList).orElse(Collections.emptyList()).stream().map(TabEvaluateImg::getImgUrl).collect(Collectors.toList());
evaluateDTO.setImgList(imgList);
double avgScore = this.getAvgScore(evaluateOrderConfig, evaluateDTO.getGoodsScore(), evaluateDTO.getStoreScore(), evaluateDTO.getServiceScore());
evaluateDTO.setAvgScore(avgScore);
/* // 追评和回复
List<TabEvaluateReply> evaluateReplyList = this.evaluateReplyService.listEvaluateReply(evaluateDTO.getEnterpriseId(), evaluateDTO.getEvaluateId());
List<EvaluateReplyDTO> replyDTOList = EntityUtil.changeEntityListByJSON(EvaluateReplyDTO.class, evaluateReplyList);
......@@ -499,6 +508,26 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
return Constants.CLOSE;
}
private double getAvgScore(TabEvaluateOrderConfig evaluateOrderConfig, Integer goodsScore, Integer storeScore, Integer serviceScore) {
// 开启的评价项
int count = 0;
// 评价总分
double sumScore = 0;
if (Constants.OPEN.equals(evaluateOrderConfig.getGoods())) {
count++;
sumScore += goodsScore;
}
if (Constants.OPEN.equals(evaluateOrderConfig.getStore())) {
count++;
sumScore += storeScore;
}
if (Constants.OPEN.equals(evaluateOrderConfig.getService())) {
count++;
sumScore += serviceScore;
}
return sumScore / count;
}
private boolean matchConfigValue(Integer computeType, Integer computeScore, Integer score) {
if (score == null) {
return true;
......
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