(1)评分以10分制,当有记录时,评分求平均值并取整;否则为7。关键代码如下:
~~~
if (list.isEmpty()) {
return AjaxResult.success(7);
} else {
long sum =
list.stream().mapToLong(UserRank::getScore).sum();
return AjaxResult.success(sum / list.size());
}
~~~
(2)提交评分时,当评分已存在时,更新。代码如下:
~~~
...
UserRank one = iUserRankService.getOne(objectLambdaQueryWrapper);
if (Objects.nonNull(one)) {
userRank.setId(one.getId());
return toAjax(iUserRankService.updateById(userRank) ? 1 : 0);
}
...
return toAjax(iUserRankService.save(userRank) ? 1 : 0);
~~~
(2)前台基于element-ui的评分组件,关键代码如下:
~~~
<div class="album-score">
<div>
<h3>歌单评分:</h3>
<div>
<el-rate v-model="value5" disabled></el-rate>
</div>
</div>
<span>{{value5 * 2}}</span>
<div>
<h3>评价:</h3>
<div @click="pushValue()">
<el-rate v-model="value3" show-text allow-half></el-rate>
</div>
</div>
</div>
~~~
(3)实现效果,如图所示:
![](https://img.kancloud.cn/da/20/da20d5ac805cb8e372999a053969357b_465x85.png)