Eric 1 год назад
Родитель
Сommit
2880a92488

+ 20 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/tenant/controller/StudentController.java

@@ -2,14 +2,18 @@ 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.google.common.collect.Lists;
 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;
@@ -42,8 +46,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 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.Optional;
@@ -65,6 +69,11 @@ public class StudentController extends BaseController {
     @Autowired
     private TenantActivationCodeService tenantActivationCodeService;
 
+    @Autowired
+    private TeacherService teacherService;
+    @Autowired
+    private ImUserFriendService imUserFriendService;
+
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     public HttpResponseResult<StudentVo> detail(@PathVariable("id") Long id) {
@@ -151,6 +160,16 @@ 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();
     }
 

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/TeacherSubmitReq.java

@@ -59,6 +59,9 @@ public class TeacherSubmitReq implements Serializable {
     @ApiModelProperty("邀请码验证码")
     private String code;
 
+    @ApiModelProperty("老师头像")
+    private String avatar;
+
     public Long getUserId() {
         return userId;
     }

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

@@ -544,6 +544,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
 
     @Override
     public TenantAlbumWrapper.TenantAlbum tenantDetailAlbum(String albumId) {
+        Integer size = 0;
         Long tenantAlbumId;
         if (StringUtils.isEmpty(albumId)){
             //如果没传专辑id  则查询对应机构的专辑详情
@@ -587,8 +588,12 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         //机构专辑曲目数
         List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId)
                 .eq(TenantAlbumMusic::getDelFlag,false).list();
-        List<Long> MusicSheetIds = tenantAlbumMusiclist.stream().map(TenantAlbumMusic::getMusicSheetId).collect(Collectors.toList());
-        int size = MusicSheetIds.size();
+        List<Long> MusicSheetIds = tenantAlbumMusiclist.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
+        //计算符合条件的个数
+        if (CollectionUtils.isNotEmpty(MusicSheetIds)){
+            size = musicSheetService.lambdaQuery().in(MusicSheet::getId, MusicSheetIds).eq(MusicSheet::getState, true)
+                    .eq(MusicSheet::getDelFlag, false).count();
+        }
 
         //Integer musicNum = tenantAlbum.getMusicNum();
         //机构专辑简介

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

@@ -1690,8 +1690,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 if (Objects.isNull(album)) {
                     throw new BizException("无效的专辑信息");
                 }
-
-                userOrderDetail.setMerchId(0L);
                 userOrderDetail.setBizId(album.getId());
                 userOrderDetail.setOriginalPrice(BigDecimal.valueOf(album.getAlbumPrice()));
                 userOrderDetail.setExpectPrice(BigDecimal.valueOf(album.getAlbumPrice()));

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

@@ -40,7 +40,24 @@ import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumRefMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindHistoryMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindRecordMapper;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
-import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.service.ImGroupMemberService;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.service.ImUserFriendService;
+import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.SmsCodeService;
+import com.yonge.cooleshow.biz.dal.service.StudentService;
+import com.yonge.cooleshow.biz.dal.service.StudentStarService;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.service.TeacherAuthEntryRecordService;
+import com.yonge.cooleshow.biz.dal.service.TeacherAuthMusicianRecordService;
+import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.service.TeacherStyleVideoService;
+import com.yonge.cooleshow.biz.dal.service.TeacherTotalService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.UserAccountService;
+import com.yonge.cooleshow.biz.dal.service.UserFirstTimeService;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
 import com.yonge.cooleshow.biz.dal.vo.HotTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetUploadCountVo;
@@ -84,6 +101,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -416,7 +434,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);
     }
 
@@ -500,7 +529,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                         .eq(Teacher::getUserId, teacher.getUserId())
                 );
             }
-
+            // 老师头像
+            teacher.setAvatar(Optional.ofNullable(teacherSubmitReq.getAvatar()).orElse(teacher.getAvatar()));
             baseMapper.updateById(teacher);
         }
 
@@ -567,6 +597,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         teacher.setIsTestUser(teacherSubmitReq.getIsTestUser());
         teacher.setSettlementFrom(teacherSubmitReq.getSettlementFrom());
         teacher.setTenantId(teacherSubmitReq.getTenantId() == null ? -1L : teacherSubmitReq.getTenantId());
+        teacher.setAvatar(Optional.ofNullable(teacherSubmitReq.getAvatar()).orElse(teacher.getAvatar()));
         if (teacher.getTenantId() == -1L) {
             teacher.setSettlementFrom(ESettlementFrom.TEACHER);
         } else if (teacherSubmitReq.getIsSettlement() != null) {

+ 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);
+                        }
+                    });
+
+                }
+            }
+
         });
 
 

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

@@ -531,6 +531,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
                 // 填充商品基础信息,校验参数合法以性
                 orderGoodsCreate.get(item.getGoodType()).accept(item);
                 UserOrderDetail userOrderDetail = item.getUserOrderDetail();
+                userOrderDetail.setMerchId(orderReq.getRecomUserId());
                 orderDetails.add(userOrderDetail);
                 // 根据优惠券计算实际优惠金额
                 // 计算优惠券金额
@@ -964,7 +965,7 @@ public class UserPaymentCoreServiceImpl implements UserPaymentCoreService {
             resp.setPaymentVersion(EPaymentVersion.V2);
         }
         //检查曲目数量
-        if(payTypeReq.getGoodType() == GoodTypeEnum.MUSIC){
+        if(payTypeReq.getGoodType() == GoodTypeEnum.TENANT_ALBUM){
             //机构专辑曲目数
             List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getTenantAlbumId, payTypeReq.getBizId())
                     .eq(TenantAlbumMusic::getDelFlag,false).list();

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

@@ -248,6 +248,7 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
     @Override
     public TenantAlbumWrapper.TenantAlbum detailAlbum(String albumId) {
 
+        Integer size = 0;
         TenantAlbumWrapper.TenantAlbum album = new TenantAlbumWrapper.TenantAlbum();
 
         //如果没传专辑id  则查询对应机构的专辑详情
@@ -335,7 +336,11 @@ public class UserTenantAlbumRecordServiceImpl extends ServiceImpl<UserTenantAlbu
         //机构专辑曲目数
         List<TenantAlbumMusic> tenantAlbumMusiclist = tenantAlbumMusicService.lambdaQuery().eq(TenantAlbumMusic::getTenantAlbumId, tenantAlbumId).eq(TenantAlbumMusic::getDelFlag,false).list();
         List<Long> MusicSheetIds = tenantAlbumMusiclist.stream().map(TenantAlbumMusic::getMusicSheetId).distinct().collect(Collectors.toList());
-        int size = MusicSheetIds.size();
+       //计算符合条件的个数
+        if (CollectionUtils.isNotEmpty(MusicSheetIds)){
+             size = musicSheetService.lambdaQuery().in(MusicSheet::getId, MusicSheetIds).eq(MusicSheet::getState, true)
+                    .eq(MusicSheet::getDelFlag, false).count();
+        }
         //Integer musicNum = tenantAlbum.getMusicNum();
 
         //获取合奏曲目数量

+ 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);
             }

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

@@ -345,7 +345,7 @@
         <collection property="background" ofType="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
             <id column="accompanimentId" jdbcType="BIGINT" property="id"/>
             <result column="accompanimentMusicSheetId" jdbcType="BIGINT" property="musicSheetId"/>
-            <result column="accompanimentMusicSubject" jdbcType="VARCHAR" property="musicSubject"/>
+            <result column="accompanimentMusicSubject" jdbcType="VARCHAR" property="musicSubjectId"/>
             <result column="accompanimentAudioFileUrl" jdbcType="VARCHAR" property="audioFileUrl"/>
             <result column="accompanimentSortNumber" jdbcType="TINYINT" property="sortNumber"/>
             <result column="accompanimentCreateTime" jdbcType="TIMESTAMP" property="createTime"/>

+ 22 - 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,13 +56,18 @@ import java.util.stream.Collectors;
 @RequestMapping("/student")
 @Api(value = "学生表", tags = "学生表")
 public class StudentController extends BaseController {
+
     @Autowired
     private StudentService studentService;
 
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private TeacherService teacherService;
 
     @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private ImUserFriendService imUserFriendService;
+    @Autowired
     private TenantInfoService tenantInfoService;
 
     @Autowired
@@ -149,6 +159,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();
     }