Commit 091899c6 by zhiwj

计算门店分数

parent 9fe6d0a1
......@@ -145,4 +145,13 @@ public interface EvaluateManageApiService {
* @throws
*/
ServiceResponse<Integer> countEvaluate(EvaluateQO evaluateQO);
/**
* @Title: computeStoreScore
* @Description:
* @author zhiwj
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Integer>
* @throws
*/
ServiceResponse<Integer> computeStoreScoreEvaluate();
}
......@@ -4,8 +4,10 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.evaluate.constant.Constants;
import com.gic.evaluate.constant.ReplyEnum;
import com.gic.evaluate.constant.ReplyerTypeEnum;
......@@ -13,9 +15,14 @@ import com.gic.evaluate.dto.EvaluateDTO;
import com.gic.evaluate.dto.EvaluateQuickDTO;
import com.gic.evaluate.dto.EvaluateReplyDTO;
import com.gic.evaluate.dto.UserReplyDTO;
import com.gic.evaluate.entity.*;
import com.gic.evaluate.entity.TabEvaluate;
import com.gic.evaluate.entity.TabEvaluateImg;
import com.gic.evaluate.entity.TabEvaluateQuick;
import com.gic.evaluate.entity.TabEvaluateReply;
import com.gic.evaluate.qo.EvaluateQO;
import com.gic.evaluate.qo.StoreScoreQO;
import com.gic.evaluate.service.*;
import com.gic.store.service.StoreApiService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -41,6 +48,10 @@ public class EvaluateManageApiServiceImpl implements EvaluateManageApiService {
private EvaluateQuickService evaluateQuickService;
@Autowired
private EvaluateImgService evaluateImgService;
@Autowired
private EnterpriseApiService enterpriseApiService;
@Autowired
private StoreApiService storeApiService;
@Override
public ServiceResponse<Page<EvaluateDTO>> listEvaluateForManage(EvaluateQO evaluateQO) {
......@@ -189,4 +200,39 @@ public class EvaluateManageApiServiceImpl implements EvaluateManageApiService {
return EnterpriseServiceResponse.success(count);
}
@Override
public ServiceResponse<Integer> computeStoreScoreEvaluate() {
List<EnterpriseDTO> enterpriseList = enterpriseApiService.listEnterpriseByName(null).getResult();
List<Integer> enterpriseIds = Optional.ofNullable(enterpriseList).orElse(Collections.emptyList()).stream().map(EnterpriseDTO::getEnterpriseId).collect(Collectors.toList());
for (Integer enterpriseId : enterpriseIds) {
StoreScoreQO storeScoreQO = new StoreScoreQO();
storeScoreQO.setEnterpriseId(enterpriseId);
storeScoreQO.setCurrentPage(1);
storeScoreQO.setPageSize(Integer.MAX_VALUE);
List<Map<String, Object>> list = this.evaluateService.listStoreScore(storeScoreQO);
for (Map<String, Object> stringObjectMap : list) {
Object goodsScore = stringObjectMap.get("goodsScore");
Object storeScore = stringObjectMap.get("storeScore");
Object serviceScore = stringObjectMap.get("serviceScore").toString();
int count = 0;
double sum = 0;
if (goodsScore != null) {
count++;
sum += Double.valueOf(goodsScore.toString());
}
if (storeScore != null) {
count++;
sum += Double.valueOf(storeScore.toString());
}
if (serviceScore != null) {
count++;
sum += Double.valueOf(serviceScore.toString());
}
storeApiService.updateScore(Integer.valueOf(stringObjectMap.get("enterpriseId").toString()), Integer.valueOf(stringObjectMap.get("storeId").toString()), sum / count);
}
}
return EnterpriseServiceResponse.success();
}
}
......@@ -86,6 +86,7 @@ public class EvaluateOutApiServiceImpl implements EvaluateOutApiService {
List<OrderGoodsDTO> dtoList = EntityUtil.changeEntityListByJSON(OrderGoodsDTO.class, orderListDetailDTO.getOrderItemList());
evaluateDTO.setGoodsInfo(JSON.toJSONString(dtoList));
StoreDTO storeDTO = storeApiService.getStoreById(evaluateDTO.getEnterpriseId(), Integer.valueOf(orderListDetailDTO.getOrderDTO().getStoreIdOffline())).getResult();
evaluateDTO.setStoreId(storeDTO.getStoreId());
evaluateDTO.setStoreName(storeDTO.getStoreName());
evaluateDTO.setStoreCode(storeDTO.getStoreCode());
evaluateDTO.setStoreGroupId(storeDTO.getStoreGroupId());
......
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