haonan 1 년 전
부모
커밋
adbd2d71ce

+ 13 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
@@ -490,7 +491,18 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             updateSysUser(teacherSubmitReq);
         }
         //新增修改老师表
-        insertOrUpdateTeacher(teacherSubmitReq);
+        Teacher teacher = insertOrUpdateTeacher(teacherSubmitReq);
+
+        // 机构老师与学生互加好友关系
+        if (Optional.ofNullable(teacher.getTenantId()).orElse(-1L) > 0) {
+            // 自动与机构老师成为好友
+            Set<Long> collect = studentService.lambdaQuery()
+                    .eq(Student::getTenantId, teacher.getTenantId()).list().stream()
+                    .map(Student::getUserId).collect(Collectors.toSet());
+
+            imUserFriendService.saveUserFriend(teacher.getUserId(), collect);
+        }
+
         return HttpResponseResult.succeed(true);
     }
 

+ 28 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumMusicServiceImpl.java

@@ -3,6 +3,8 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.biz.dal.dao.MusicFavoriteDao;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
@@ -12,6 +14,7 @@ import com.yonge.toolset.base.exception.BizException;
 import jodd.util.StringUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
@@ -55,6 +58,12 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
     private TenantAlbumMusicService tenantAlbumMusicService;
 
 
+    @Autowired
+    private MusicFavoriteService musicFavoriteService;
+
+    @Autowired
+    private  SysUserFeignService sysUserFeignService;
+
     /**
      * 查询详情
      * @param id 详情ID
@@ -74,6 +83,8 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
      */
     @Override
     public IPage<TenantAlbumMusicWrapper.StudentTenantAlbumMusic> selectPage(IPage<TenantAlbumMusicWrapper.StudentTenantAlbumMusic> page, TenantAlbumMusicWrapper.StudentTenantAlbumMusicQuery query) {
+        com.yonge.cooleshow.auth.api.entity.SysUser user = sysUserFeignService.queryUserInfo();
+        Long sysUserId = user.getId();
 
         String albumId = query.getAlbumId();
         if (StringUtil.isEmpty(albumId)){
@@ -105,6 +116,7 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
         musicSheetQuery.setKeyword(query.getKeyword());
 
         List<TenantAlbumMusicWrapper.StudentTenantAlbumMusic> musicSheets = tenantAlbumMusicMapper.selectPage(page, musicSheetQuery);
+
         musicSheets.stream().forEach(m->{
             Long userId = m.getUserId();
             String musicSubject = m.getMusicSubject();
@@ -121,6 +133,22 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
                 Subject subject1 = subject.get(0);
                 m.setMusicSubjectName(subject1.getName());
             }
+
+            //是否收藏
+            Long id = m.getId();
+            List<MusicFavorite> list = musicFavoriteService.lambdaQuery().eq(MusicFavorite::getMusicSheetId, id).list();
+            if (CollectionUtils.isNotEmpty(list)){
+                List<Long> collect = list.stream().map(MusicFavorite::getUserId).collect(Collectors.toList());
+                if (CollectionUtils.isNotEmpty(collect)){
+                    collect.stream().forEach(c->{
+                        if (c.equals(sysUserId) ){
+                            m.setFavorite(true);
+                        }
+                    });
+
+                }
+            }
+
         });
 
 

+ 10 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumMusicWrapper.java

@@ -163,6 +163,10 @@ public class TenantAlbumMusicWrapper {
         @ApiModelProperty("机构id")
         private Long tenantId;
 
+
+
+
+
         public String getKeyword() {
             return Optional.ofNullable(keyword).filter(StringUtils::isNotBlank).orElse(null);
         }
@@ -210,6 +214,12 @@ public class TenantAlbumMusicWrapper {
             @ApiModelProperty(value = "上传人")
             private String userName;
 
+            @ApiModelProperty("曲目收藏数")
+            private Integer musicSheetLikeCounts;
+
+            @ApiModelProperty("1:收藏 0:未收藏")
+            private boolean favorite;
+
             public String jsonString() {
                 return JSON.toJSONString(this);
             }

+ 21 - 1
cooleshow-user/user-tenant/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -2,13 +2,17 @@ package com.yonge.cooleshow.tenant.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.ImmutableList;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.entity.Student;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.entity.TenantActivationCode;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.cooleshow.biz.dal.service.TenantActivationCodeService;
 import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
@@ -43,6 +47,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -51,12 +56,16 @@ import java.util.stream.Collectors;
 @RequestMapping("/student")
 @Api(value = "学生表", tags = "学生表")
 public class StudentController extends BaseController {
+
     @Autowired
     private StudentService studentService;
+    @Autowired
+    private TeacherService teacherService;
 
     @Autowired
     private SysUserFeignService sysUserFeignService;
-
+    @Autowired
+    private ImUserFriendService imUserFriendService;
     @Autowired
     private TenantInfoService tenantInfoService;
 
@@ -149,6 +158,17 @@ public class StudentController extends BaseController {
         }
 
         studentService.save(studentInfo);
+
+        // 加好友
+        if (studentInfo.getId() == null) {
+            SysUser sysUser = sysUserFeignService.queryUserByMobile(student.getPhone());
+            // 自动与机构老师成为好友
+            List<Teacher> teacherList = teacherService.lambdaQuery()
+                    .eq(Teacher::getTenantId, studentInfo.getTenantId()).list();
+            teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
+                    new HashSet<>(ImmutableList.of(sysUser.getId()))));
+        }
+
         return succeed();
     }