|
@@ -20,6 +20,7 @@ import com.chelvc.cloud.vehicle.server.dao.AssessScoreMapper;
|
|
|
import com.chelvc.cloud.vehicle.server.dao.GoodsAssessMapper;
|
|
|
import com.chelvc.cloud.vehicle.server.entity.AssessRecover;
|
|
|
import com.chelvc.cloud.vehicle.server.entity.AssessScore;
|
|
|
+import com.chelvc.cloud.vehicle.server.entity.Goods;
|
|
|
import com.chelvc.cloud.vehicle.server.entity.GoodsAssess;
|
|
|
import com.chelvc.cloud.vehicle.server.service.AssessService;
|
|
|
import com.chelvc.framework.base.context.Session;
|
|
@@ -27,6 +28,7 @@ import com.chelvc.framework.base.context.SessionContextHolder;
|
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
|
import com.chelvc.framework.common.model.Paging;
|
|
|
import com.chelvc.framework.common.util.AssertUtils;
|
|
|
+import com.chelvc.framework.common.util.ObjectUtils;
|
|
|
import com.chelvc.framework.database.context.DatabaseContextHolder;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -37,10 +39,7 @@ import org.springframework.stereotype.Service;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -135,6 +134,7 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
return goodsAssesseDtos.stream().peek(item -> {
|
|
|
//个人信息获取
|
|
|
UserDTO user = userService.getUser(item.getCreator());
|
|
|
+ if(null == user) return;
|
|
|
item.setCreatorAvatar(user.getAvatar());
|
|
|
item.setCreatorNickName(user.getNickname());
|
|
|
item.setCreatorTimeFormat(SDF.format(item.getCreateTime()));
|
|
@@ -182,17 +182,22 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
List<Long> goodsIds = this.baseMapper.getAllGoodsIds();
|
|
|
if (goodsIds == null) return;
|
|
|
goodsIds.forEach(goodsId -> {
|
|
|
- List<GoodsAssess> goodsAssessList = this.list(new QueryWrapper<GoodsAssess>().eq("goods_id", goodsId));
|
|
|
- if (goodsAssessList.isEmpty()) return;
|
|
|
- BigDecimal goodsAvgScore = this.baseMapper.getAvgScore(goodsId).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ Map<String, Object> goodsScores = this.baseMapper.getAllGoodsScore(goodsId);
|
|
|
+ Double avgScore = (Double) goodsScores.get("avg_score");
|
|
|
+ Double yearScore = (Double) goodsScores.get("year_score");
|
|
|
+ Double halfYearScore = (Double) goodsScores.get("half_year_score");
|
|
|
+ Double quarterScore = (Double) goodsScores.get("quarter_score");
|
|
|
+ Double monthScore = (Double) goodsScores.get("month_score");
|
|
|
+ Double weekScore = (Double) goodsScores.get("week_score");
|
|
|
+ BigDecimal goodsAvgScore = BigDecimal.valueOf(avgScore).setScale(2, RoundingMode.HALF_UP);
|
|
|
this.baseMapper.updateGoodsAvgScore(goodsAvgScore, goodsId);
|
|
|
|
|
|
- BigDecimal goodsYearScore = this.baseMapper.getGoodsScore(365, goodsId).setScale(2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal goodsHalfYearScore = this.baseMapper.getGoodsScore(180, goodsId).setScale(2,
|
|
|
+ BigDecimal goodsYearScore = BigDecimal.valueOf(yearScore).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsHalfYearScore = BigDecimal.valueOf(halfYearScore).setScale(2,
|
|
|
RoundingMode.HALF_UP);
|
|
|
- BigDecimal goodsQuarterScore = this.baseMapper.getGoodsScore(90, goodsId).setScale(2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal goodsMonthScore = this.baseMapper.getGoodsScore(30, goodsId).setScale(2, RoundingMode.HALF_UP);
|
|
|
- BigDecimal goodsWeekScore = this.baseMapper.getGoodsScore(7, goodsId).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsQuarterScore = BigDecimal.valueOf(quarterScore).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsMonthScore = BigDecimal.valueOf(monthScore).setScale(2, RoundingMode.HALF_UP);
|
|
|
+ BigDecimal goodsWeekScore = BigDecimal.valueOf(weekScore).setScale(2, RoundingMode.HALF_UP);
|
|
|
AssessScore assessScore = new AssessScore();
|
|
|
assessScore.setGoodsId(goodsId);
|
|
|
assessScore.setYearScore(goodsYearScore);
|
|
@@ -272,4 +277,15 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
wrapper.eq(GoodsAssess::getCreator, userId);
|
|
|
return baseMapper.selectCount(wrapper) > 0 ? 1 : 0;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<GoodsAssessDto> merchantQuery(AssessQueryParam param) {
|
|
|
+ AssertUtils.nonnull(param.getMerchantId(), "query merchant assess merchantId must not be null");
|
|
|
+ QueryWrapper<GoodsAssess> wrapper = new QueryWrapper<>();
|
|
|
+ wrapper.eq("merchant_id", param.getMerchantId());
|
|
|
+ if (null != param.getGoodsId()) wrapper.eq("goods_id", param.getGoodsId());
|
|
|
+ wrapper.orderByDesc("create_time");
|
|
|
+ List<GoodsAssess> list = this.list(wrapper);
|
|
|
+ return GoodsAssessCopier.INSTANCE.copying(list);
|
|
|
+ }
|
|
|
}
|