|
@@ -6,8 +6,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.chelvc.cloud.user.client.EmployeeClient;
|
|
|
import com.chelvc.cloud.user.client.UserClient;
|
|
|
+import com.chelvc.cloud.user.client.dto.EmployeeDTO;
|
|
|
+import com.chelvc.cloud.user.client.dto.EmployeeDetailDTO;
|
|
|
import com.chelvc.cloud.user.client.dto.UserDTO;
|
|
|
+import com.chelvc.cloud.vehicle.client.dto.AssessMessageDto;
|
|
|
import com.chelvc.cloud.vehicle.client.dto.AssessRecoverDto;
|
|
|
import com.chelvc.cloud.vehicle.client.dto.GoodsAssessDto;
|
|
|
import com.chelvc.cloud.vehicle.client.param.AssessModifyParam;
|
|
@@ -52,6 +56,7 @@ import java.util.stream.Collectors;
|
|
|
public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAssess> implements AssessService {
|
|
|
|
|
|
private final UserClient userService;
|
|
|
+ private final EmployeeClient employeeClient;
|
|
|
|
|
|
private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
@@ -72,12 +77,51 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<GoodsAssessDto> query(AssessQueryParam param) {
|
|
|
+ public AssessMessageDto query(AssessQueryParam param) {
|
|
|
+ return AssessMessageDto.builder().assessMessages(queryAssessMessages(param))
|
|
|
+ .total(queryAssessCount(param, null))
|
|
|
+ .fiveLevelCount(queryAssessCount(param, "5"))
|
|
|
+ .fourLevelCount(queryAssessCount(param, "4"))
|
|
|
+ .threeLevelCount(queryAssessCount(param, "3"))
|
|
|
+ .twoLevelCount(queryAssessCount(param, "2"))
|
|
|
+ .oneLevelCount(queryAssessCount(param, "1"))
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+
|
|
|
+ private Long queryAssessCount(AssessQueryParam param, String level) {
|
|
|
QueryWrapper<GoodsAssess> wrapper = new QueryWrapper<>();
|
|
|
- //查询评价内容详情 单条查询时 增加点击数
|
|
|
- if (param.getId() != null) {
|
|
|
- wrapper.eq("id", param.getId());
|
|
|
+ switch (level) {
|
|
|
+ case "1":
|
|
|
+ wrapper.ge("score", 0);
|
|
|
+ wrapper.lt("score", 2);
|
|
|
+ break;
|
|
|
+ case "2":
|
|
|
+ wrapper.ge("score", 2);
|
|
|
+ wrapper.lt("score", 3);
|
|
|
+ break;
|
|
|
+ case "3":
|
|
|
+ wrapper.ge("score", 3);
|
|
|
+ wrapper.lt("score", 4);
|
|
|
+ break;
|
|
|
+ case "4":
|
|
|
+ wrapper.ge("score", 4);
|
|
|
+ wrapper.lt("score", 5);
|
|
|
+ break;
|
|
|
+ case "5":
|
|
|
+ wrapper.eq("score", 5);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //过滤是否回复
|
|
|
+ if (param.getIsRecover() != null) {
|
|
|
+ wrapper.eq("is_recover", param.getIsRecover());
|
|
|
}
|
|
|
+ return (long) this.count(wrapper);
|
|
|
+ }
|
|
|
+ private List<GoodsAssessDto> queryAssessMessages(AssessQueryParam param){
|
|
|
+ QueryWrapper<GoodsAssess> wrapper = new QueryWrapper<>();
|
|
|
+
|
|
|
//查询商品所有评价内容
|
|
|
if (param.getGoodsId() != null) {
|
|
|
wrapper.eq("goods_id", param.getGoodsId());
|
|
@@ -111,7 +155,6 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
//过滤是否回复
|
|
|
if (param.getIsRecover() != null) {
|
|
@@ -134,9 +177,15 @@ 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());
|
|
|
+ if(null == user) {
|
|
|
+ EmployeeDTO employee = baseMapper.queryEmployeeInfo(item.getCreator());
|
|
|
+ if (null == employee) return;
|
|
|
+ item.setCreatorAvatar(null);
|
|
|
+ item.setCreatorNickName(employee.getUsername());
|
|
|
+ }else{
|
|
|
+ item.setCreatorAvatar(user.getAvatar());
|
|
|
+ item.setCreatorNickName(user.getNickname());
|
|
|
+ }
|
|
|
item.setCreatorTimeFormat(SDF.format(item.getCreateTime()));
|
|
|
AssessRecover assessRecover = assessRecoverMapper.selectOne(new QueryWrapper<AssessRecover>().eq(
|
|
|
"assess_id", item.getId()));
|
|
@@ -145,12 +194,6 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
assessRecoverDto.setRecoverTimeFormat(SDF.format(assessRecoverDto.getRecoverTime()));
|
|
|
item.setAssessRecoverDto(assessRecoverDto);
|
|
|
}
|
|
|
- if (param.getId() != null) {
|
|
|
- GoodsAssess updateAssess = this.getById(item.getId());
|
|
|
- updateAssess.setHits(item.getHits() + 1);
|
|
|
- this.updateById(updateAssess);
|
|
|
- }
|
|
|
-
|
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
@@ -288,4 +331,35 @@ public class AssessServiceImpl extends ServiceImpl<GoodsAssessMapper, GoodsAsses
|
|
|
List<GoodsAssess> list = this.list(wrapper);
|
|
|
return GoodsAssessCopier.INSTANCE.copying(list);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public GoodsAssessDto getDetail(Long assessId) {
|
|
|
+ GoodsAssess goodsAssess = getById(assessId);
|
|
|
+ GoodsAssessDto goodsAssessDto = GoodsAssessCopier.INSTANCE.copying(goodsAssess);
|
|
|
+ //个人信息获取
|
|
|
+ UserDTO user = userService.getUser(goodsAssessDto.getCreator());
|
|
|
+ if(null == user) {
|
|
|
+ EmployeeDTO employee = baseMapper.queryEmployeeInfo(goodsAssessDto.getCreator());
|
|
|
+ if (null != employee){
|
|
|
+ goodsAssessDto.setCreatorAvatar(null);
|
|
|
+ goodsAssessDto.setCreatorNickName(employee.getUsername());
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ goodsAssessDto.setCreatorAvatar(user.getAvatar());
|
|
|
+ goodsAssessDto.setCreatorNickName(user.getNickname());
|
|
|
+ goodsAssessDto.setCreatorTimeFormat(SDF.format(goodsAssessDto.getCreateTime()));
|
|
|
+ }
|
|
|
+
|
|
|
+ AssessRecover assessRecover = assessRecoverMapper.selectOne(new QueryWrapper<AssessRecover>().eq(
|
|
|
+ "assess_id", assessId));
|
|
|
+ if (assessRecover != null) {
|
|
|
+ AssessRecoverDto assessRecoverDto = AssessRecoverCopier.INSTANCE.copying(assessRecover);
|
|
|
+ assessRecoverDto.setRecoverTimeFormat(SDF.format(assessRecoverDto.getRecoverTime()));
|
|
|
+ goodsAssessDto.setAssessRecoverDto(assessRecoverDto);
|
|
|
+ }
|
|
|
+ GoodsAssess updateAssess = this.getById(goodsAssessDto.getId());
|
|
|
+ updateAssess.setHits(goodsAssessDto.getHits() + 1);
|
|
|
+ this.updateById(updateAssess);
|
|
|
+ return goodsAssessDto;
|
|
|
+ }
|
|
|
}
|