liujunchi 3 rokov pred
rodič
commit
ff2e74541f

+ 18 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TeacherController.java

@@ -5,6 +5,7 @@ import com.yonge.cooleshow.admin.io.request.TeacherBindingUserVo;
 import com.yonge.cooleshow.admin.io.request.coupon.CouponIssueVo;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherBindingUserQueryInfo;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.UserBindingTeacherService;
 import com.yonge.cooleshow.biz.dal.vo.userBindingTeacher.UserBindingCourseWrapper;
 import com.yonge.cooleshow.biz.dal.vo.userBindingTeacher.UserBindingTeacherWrapper;
@@ -37,6 +38,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -91,6 +93,9 @@ public class TeacherController extends BaseController {
     @Autowired
     private UserBindingTeacherService userBindingTeacherService;
 
+    @Autowired
+    private ImGroupService imGroupService;
+
     /**
      * 查询单条
      */
@@ -333,4 +338,17 @@ public class TeacherController extends BaseController {
 
         return succeed(PageUtil.getPageInfo(pages, responses));
     }
+
+
+    /**
+     * 老师粉丝信息查询
+     * @return HttpResponseResult<PageInfo<MyFens>>
+     */
+    @ApiOperation(value = "旧数据创建粉丝群接口")
+    @PutMapping(value = "/createFansImGroup")
+    public HttpResponseResult createFansImGroup() throws Exception {
+
+        imGroupService.setTeacherFansGroup();
+        return succeed();
+    }
 }

+ 5 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupService.java

@@ -79,5 +79,10 @@ public interface ImGroupService extends IService<ImGroup> {
      * @return ImGroup
      */
     ImGroup findGroupInfoById(String groupId, Long userId);
+    /**
+     * 旧数据创建粉丝群
+     */
+    void setTeacherFansGroup() throws Exception;
+
 }
 

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

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.yonge.cooleshow.auth.config.AppGlobalServiceConfig;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.config.RongCloudConfig;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
@@ -17,10 +19,17 @@ import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.entity.StudentStar;
+import com.yonge.cooleshow.biz.dal.entity.Teacher;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
+import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 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.StudentStarService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
 import com.yonge.toolset.base.exception.BizException;
@@ -44,6 +53,7 @@ import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import java.util.UUID;
+import java.util.stream.Collectors;
 
 /**
  * 即时通讯群组(ImGroup)表服务实现类
@@ -75,6 +85,12 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     @Autowired
     private AppGlobalServiceConfig appGlobalServiceConfig;
 
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private StudentStarService studentStarService;
+
     @Override
     public ImGroupDao getDao() {
         return this.baseMapper;
@@ -276,5 +292,64 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
 
         return group;
     }
+    @Override
+    public void setTeacherFansGroup() throws Exception {
+        // 查询所有认证老师
+        List<Teacher> teacherList = teacherService.lambdaQuery().eq(Teacher::getEntryFlag, 1).list();
+
+        // 遍历给老师创建粉丝群
+
+        for (Teacher teacher : teacherList) {
+
+            // 已经有群的不操作
+            Integer count = this.lambdaQuery()
+                                .eq(ImGroup::getCreateBy, teacher.getUserId())
+                                .eq(ImGroup::getAutoPassFlag, true)
+                                .eq(ImGroup::getType, ImGroupType.FAN)
+                                .count();
+            if (count > 0) {
+                continue;
+            }
+
+            // 老师用户信息
+            SysUser sysUser = sysUserFeignService.queryUserById(teacher.getUserId());
+            if (sysUser == null) {
+                continue;
+            }
+
+
+            // 查询老师的粉丝,添加到群
+            List<StudentStar> list = studentStarService.lambdaQuery()
+                                                       .eq(StudentStar::getTeacherId, teacher.getUserId())
+                                                       .list();
+            Set<Long> studentIdList = list.stream().map(StudentStar::getStudentId).collect(Collectors.toSet());
+
+
+            //创建群聊
+            ImGroup imGroup = new ImGroup();
+            imGroup.setCreateBy(teacher.getUserId());
+            imGroup.setAutoPassFlag(true);
+            imGroup.setMemberNum(studentIdList.size() + 1);
+            imGroup.setName(sysUser.getUsername() + "的粉丝群");
+            imGroup.setType(ImGroupType.FAN);
+            imGroup.setCreateTime(new Date());
+            imGroup.setUpdateTime(new Date());
+            imGroup.setCreateBy(teacher.getUserId());
+            String imGroupId = UUID.randomUUID() + imGroup.getType().getCode();
+            imGroup.setId(imGroupId);
+            this.baseMapper.insert(imGroup);
+            List<GroupMember> groupMembers = imGroupMemberService.initGroupMember(imGroupId, imGroup.getCreateBy(), true, ImGroupMemberRoleType.TEACHER);
+            if (!CollectionUtils.isEmpty(studentIdList)) {
+                groupMembers.addAll(imGroupMemberService.initGroupMembers(imGroupId, studentIdList, ImGroupMemberRoleType.STUDENT));
+            }
+            //创建融云群
+            this.rtcCreate(sysUser.getId(), imGroupId, imGroup.getName());
+            //加入融云群
+            imGroupMemberService.join(groupMembers, imGroupId);
+
+        }
+
+    }
+
 }