Explorar o código

官网专辑收藏数问题修改

liweifan %!s(int64=3) %!d(string=hai) anos
pai
achega
d78773dc9c

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

@@ -813,13 +813,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         musicSheetWebsiteDetailVo.setFavoriteNum(musicSheetFavoriteNum);
 
         // 老师信息
-        TeacherVo teacherVo = teacherService.detail(detail.getUserId());
+        TeacherHomeVo teacherVo = teacherService.queryUserInfo(detail.getUserId()).getData();
         TeacherMusicSheetListVo teacherMusicSheetListVo = new TeacherMusicSheetListVo();
-        teacherMusicSheetListVo.setUserAvatar(teacherVo.getAvatar());
+        teacherMusicSheetListVo.setUserAvatar(teacherVo.getHeardUrl());
         teacherMusicSheetListVo.setUserName(teacherVo.getUsername());
         teacherMusicSheetListVo.setUserId(teacherVo.getUserId());
         teacherMusicSheetListVo.setEntryFlag(teacherVo.getEntryFlag());
         teacherMusicSheetListVo.setMusicianFlag(teacherVo.getMusicianFlag());
+        teacherMusicSheetListVo.setFansNum(teacherVo.getFansNum());
 
         if (sysUser != null) {
             // 老师关注

+ 4 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherMusicSheetListVo.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 
 import java.util.List;
 
@@ -31,7 +32,7 @@ public class TeacherMusicSheetListVo {
     private YesOrNoEnum musicianFlag;
 
     @ApiModelProperty("粉丝数")
-    private Long fansNum;
+    private Integer fansNum;
 
     @ApiModelProperty("是否关注 0 : 否 1:是")
     private YesOrNoEnum star = YesOrNoEnum.NO;
@@ -87,11 +88,11 @@ public class TeacherMusicSheetListVo {
         this.musicianFlag = musicianFlag;
     }
 
-    public Long getFansNum() {
+    public Integer getFansNum() {
         return fansNum;
     }
 
-    public void setFansNum(Long fansNum) {
+    public void setFansNum(Integer fansNum) {
         this.fansNum = fansNum;
     }
 

+ 16 - 16
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -168,23 +168,23 @@
 
     <select id="selectMusicAlbumById" resultType="com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo">
         select <include refid="Base_Column_List"/>
-        ,(select group_concat(mt.name_) from music_tag mt
-        where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
-        ,(select group_concat(s.name_) from subject s
-        where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
-        , t1.num as musicSheetCount
-        ,t2.num as albumFavoriteCount
+            ,(select group_concat(mt.name_) from music_tag mt
+            where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0 and mt.state_ = 1) as musicTagNames
+            ,(select group_concat(s.name_) from subject s
+            where find_in_set(s.id_,t.subject_id_) and s.del_flag_ = 0 ) as subjectNames
+            , (
+                select count(1) as num from album_music_relate amr
+                join music_sheet ms on amr.music_sheet_id_ = ms.id_
+                left join sys_user su on su.id_ = ms.user_id_
+                where ms.del_flag_ = 0 and ms.state_ = 1 and ms.audit_status_ = 'PASS' and su.del_flag_ = 0
+                and amr.album_id_ = t.id_
+            ) as musicSheetCount
+            ,(
+                select count(1) as num from album_favorite af
+                left join sys_user su on af.user_id_ = su.id_
+                where su.del_flag_ = 0 and af.album_id_ = t.id_
+            ) as albumFavoriteCount
         from music_album t
-        left join (select count(1) as num,amr.album_id_
-            from album_music_relate amr
-            join music_sheet ms on amr.music_sheet_id_ = ms.id_
-            left join sys_user su on su.id_ = ms.user_id_
-            where ms.del_flag_ = 0 and ms.state_ = 1 and ms.audit_status_ = 'PASS' and su.del_flag_ = 0
-            group by amr.album_id_) t1 on t1.album_id_ = t.id_
-        left join (select count(1) as num,af.album_id_ from album_favorite af
-            left join sys_user su on af.user_id_ = su.id_
-            where su.del_flag_ = 0 group by af.album_id_
-        ) t2 on t2.album_id_ = t.id_
         where t.id_ = #{musicAlbumId}
     </select>
 

+ 4 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -124,9 +124,11 @@
     <select id="selectAlbumDetailPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
         select distinct <include refid="Base_Column_List"/>
         ,(select group_concat(mt.name_) from music_tag mt
-        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
+            where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0  and mt.state_ = 1) as musicTagNames
         ,(select group_concat(s.name_) from subject s
-        where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
+            where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
+        ,(select count(1) from music_favorite f w
+            here f.music_sheet_id_ = t.id_ and f.favorite_flag_ = 1) as favoriteCount
         from music_sheet t
         left join album_music_relate amr on t.id_ = amr.music_sheet_id_
         <where>

+ 23 - 0
cooleshow-user/user-website/src/main/java/com/yonge/cooleshow/website/controller/TeacherController.java

@@ -5,7 +5,9 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.TeacherDto;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.service.StudentStarService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.MyFens;
 import com.yonge.cooleshow.biz.dal.vo.TeacherHomeVo;
@@ -31,6 +33,8 @@ public class TeacherController extends BaseController {
     @Autowired
     private TeacherService teacherService;
     @Autowired
+    private StudentStarService studentStarService;
+    @Autowired
     private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "我的-查询教师基本信息")
@@ -121,4 +125,23 @@ public class TeacherController extends BaseController {
         IPage<MyFens> pages = teacherService.queryMyFans(PageUtil.getPage(query), sysUser.getId());
         return succeed(PageUtil.pageInfo(pages));
     }
+
+    @ApiOperation(value = "关注/取消关注")
+    @GetMapping("/starOrUnStar")
+    public HttpResponseResult<Boolean> starOrUnStar(@ApiParam(value = "老师ID", required = true) @RequestParam("userId") Long userId,
+                                                    @ApiParam(value = "状态 0 取消关注 1 关注", required = true) @RequestParam("starStatus") Integer starStatus) {
+        if (null == userId) {
+            return failed("缺少老师ID");
+        }
+        YesOrNoEnum starStatusEnum = YesOrNoEnum.valueOf(starStatus);
+        if (null == starStatusEnum) {
+            return failed("缺少关注状态");
+        }
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return studentStarService.starOrUnStar(user.getId(), userId, starStatusEnum);
+    }
+
 }