yonge 3 éve
szülő
commit
03f5e14540

+ 14 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityEvaluationRecordDao.java

@@ -4,9 +4,12 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
 import org.apache.ibatis.annotations.Param;
+
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
 
 
@@ -35,4 +38,15 @@ public interface ActivityEvaluationRecordDao extends BaseMapper<ActivityEvaluati
 	 * @return
 	 */
     List<Long> getJoinEvaluationIdList(@Param("activityId") Long activityId, @Param("userId") Long userId);
+	
+	/**
+	 * 查询指定活动指定曲目的排行榜
+	 * @param activityPlanId 指定活动
+	 * @param activityEvaluationId 指定曲目
+	 * @param limit 获奖人数
+	 * @return
+	 */
+	List<ActivityRankingVo> queryRankingList(@Param("activityPlanId") Long activityPlanId, @Param("activityEvaluationId") Long activityEvaluationId, @Param("limit") int limit);
+	
+	ActivityRankingVo queryUserRanking(@Param("activityPlanId") Long activityPlanId, @Param("activityEvaluationId") Long activityEvaluationId, @Param("userId") Long userId);
 }

+ 19 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityEvaluationRecordService.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
 import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
 
@@ -47,4 +48,22 @@ public interface ActivityEvaluationRecordService extends IService<ActivityEvalua
 	 * @param score 分数
 	 */
     void saveRecord(Long evaluationId, Long userId, BigDecimal score);
+	
+	/**
+	 * 查询指定活动指定曲目的排行榜
+	 * @param activityPlanId 指定活动
+	 * @param activityEvaluationId 指定曲目
+	 * @param limit 获奖人数
+	 * @return
+	 */
+	List<ActivityRankingVo> queryRankingList(Long activityPlanId, Long activityEvaluationId, int limit);
+	
+	/**
+	 * 查询指定用户的排名
+	 * @param activityPlanId
+	 * @param activityEvaluationId
+	 * @param userId
+	 * @return
+	 */
+	ActivityRankingVo queryUserRanking(Long activityPlanId, Long activityEvaluationId, Long userId);
 }

+ 25 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityEvaluationRecordServiceImpl.java

@@ -1,25 +1,25 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.biz.dal.dao.ActivityEvaluationRecordDao;
+import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
-import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
-import com.yonge.toolset.base.exception.BizException;
-import org.apache.commons.collections.CollectionUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
-import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
-import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationRecordSearch;
-import com.yonge.cooleshow.biz.dal.dao.ActivityEvaluationRecordDao;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
+import com.yonge.cooleshow.biz.dal.vo.ActivityEvaluationRecordVo;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
+import com.yonge.toolset.base.exception.BizException;
 
 
 @Service
@@ -62,4 +62,14 @@ public class ActivityEvaluationRecordServiceImpl extends ServiceImpl<ActivityEva
         save(activityEvaluationRecord);
     }
 
+	@Override
+	public List<ActivityRankingVo> queryRankingList(Long activityPlanId, Long activityEvaluationId, int limit) {
+		return baseMapper.queryRankingList(activityPlanId, activityEvaluationId, limit);
+	}
+
+	@Override
+	public ActivityRankingVo queryUserRanking(Long activityPlanId, Long activityEvaluationId, Long userId) {
+		return baseMapper.queryUserRanking(activityPlanId, activityEvaluationId, userId);
+	}
+
 }

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityEvaluationServiceImpl.java

@@ -80,7 +80,7 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
     @Override
     public List<ActivityMusicVo> getActivityMusic(Long activityPlanId, Long userId) {
         List<ActivityMusicVo> result = baseMapper.selectActivityMusic(activityPlanId, userId);
-        List<ActivityMusicVo> activityMusicVoList = baseMapper.selectActivityUser(activityPlanId);
+        /*List<ActivityMusicVo> activityMusicVoList = baseMapper.selectActivityUser(activityPlanId);
         Map<Long, List<ActivityMusicVo>> collect = activityMusicVoList.stream()
                 .collect(Collectors.groupingBy(
                         ActivityMusicVo::getEvaluationId));
@@ -93,7 +93,7 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
                 activityMusicVo.setUsername(activityUserList.get(0).getUsername());
                 activityMusicVo.setUserId(activityUserList.get(0).getUserId());
             }
-        }
+        }*/
         return result;
     }
 

+ 74 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ActivityRankingVo.java

@@ -0,0 +1,74 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class ActivityRankingVo {
+
+	@ApiModelProperty("最高分")
+    private double score;
+
+    @ApiModelProperty("最高分的用户id")
+    private Long userId;
+
+    @ApiModelProperty("最高分用户头像")
+    private String userAvatar;
+
+    @ApiModelProperty("最高分用户名")
+    private String username;
+
+    @ApiModelProperty("最高分用户声部")
+    private String userSubject;
+    
+    @ApiModelProperty("参加时间")
+    private Date joinDate;
+
+	public double getScore() {
+		return score;
+	}
+
+	public void setScore(double score) {
+		this.score = score;
+	}
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
+	public String getUserAvatar() {
+		return userAvatar;
+	}
+
+	public void setUserAvatar(String userAvatar) {
+		this.userAvatar = userAvatar;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getUserSubject() {
+		return userSubject;
+	}
+
+	public void setUserSubject(String userSubject) {
+		this.userSubject = userSubject;
+	}
+
+	public Date getJoinDate() {
+		return joinDate;
+	}
+
+	public void setJoinDate(Date joinDate) {
+		this.joinDate = joinDate;
+	}
+}

+ 18 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityEvaluationRecordMapper.xml

@@ -38,4 +38,22 @@
         from activity_evaluation_record
         where activity_id_ = #{activityId} and user_id_ = #{userId}
     </select>
+
+    <select id="queryRankingList" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo">
+		select aer.score_ socre,aer.user_id_ userId,u.avatar_ userAvatar,u.username_ username, aer.create_time_ joinDate,s.name_ userSubject
+		from activity_evaluation_record aer left join sys_user u on aer.user_id_ = u.id_
+        left join student stu on stu.user_id_ = aer.user_id_
+        left join subject s on s.id_ = stu.subject_id_
+		where aer.activity_id_ = #{activityPlanId} and aer.evaluation_id_ = #{activityEvaluationId}
+		order by aer.score_ desc,aer.create_time_ asc
+		limit #{limit}
+    </select>
+
+    <select id="queryUserRanking" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo">
+		select aer.score_ socre,aer.user_id_ userId,u.avatar_ userAvatar,u.username_ username, aer.create_time_ joinDate,s.name_ userSubject
+		from activity_evaluation_record aer left join sys_user u on aer.user_id_ = u.id_
+        left join student stu on stu.user_id_ = aer.user_id_
+        left join subject s on s.id_ = stu.subject_id_
+		where aer.activity_id_ = #{activityPlanId} and aer.evaluation_id_ = #{activityEvaluationId} and aer.user_id_ = #{userId}
+    </select>
 </mapper>

+ 52 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/open/ActivityEvaluationRecordController.java

@@ -0,0 +1,52 @@
+package com.yonge.cooleshow.student.controller.open;
+
+import io.swagger.annotations.Api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+
+@RestController
+@RequestMapping("/open/activityEvaluationRecord")
+@Api(value = "评测活动表", tags = "评测活动表")
+public class ActivityEvaluationRecordController extends BaseController {
+
+    @Autowired
+    private ActivityEvaluationRecordService activityEvaluationRecordService;
+	@Resource
+	private SysUserFeignService sysUserFeignService;
+
+    /**
+     * 查询活动排行榜
+     */
+    @GetMapping("/queryRankingList")
+	public HttpResponseResult<ModelMap> queryRankingList(Long activityPlanId, Long activityEvaluationId, int limit) {
+
+        ModelMap model = new ModelMap();
+        
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            ActivityRankingVo userActivityRankingVo = activityEvaluationRecordService.queryUserRanking(activityPlanId, activityEvaluationId, user.getId());
+            model.put("userActivityRankingVo", userActivityRankingVo);
+        }
+        
+    	List<ActivityRankingVo> rankingList =  activityEvaluationRecordService.queryRankingList(activityPlanId, activityEvaluationId, limit);
+    	model.put("rankingList", rankingList);
+    	
+        return succeed(model);
+	}
+
+}