Bläddra i källkod

1.机构管理需求新增

yuanliang 1 år sedan
förälder
incheckning
83c05b346f

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/UserTenantBindRecordMapper.java

@@ -25,4 +25,5 @@ public interface UserTenantBindRecordMapper extends BaseMapper<UserTenantBindRec
     List<UserTenantBindRecordWrapper.UserTenantBindRecord> selectPage(@Param("page") IPage<UserTenantBindRecordWrapper.UserTenantBindRecord> page,
                                                                       @Param("param") UserTenantBindRecordWrapper.UserTenantBindRecordQuery param);
 
+    void add(@Param("record") UserTenantBindRecord record);
 }

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

@@ -25,6 +25,7 @@ import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumRefMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
+import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
 import com.yonge.cooleshow.biz.dal.vo.MyFollow;
@@ -125,6 +126,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
     @Autowired
     private TenantGroupMapper tenantGroupMapper;
 
+    @Autowired
+    private UserTenantBindRecordMapper userTenantBindRecordMapper;
     @Override
     public StudentVo detail(Long userId) {
         return baseMapper.detail(userId);
@@ -582,6 +585,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 //             删除好友
             imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),
                     ClientEnum.STUDENT.getCode());
+            addBindUnBindRecord(student.getUserId(),student.getTenantId(),false);
         }
         if (toTenantId != null && toTenantId != -1L) {
             // 加好友
@@ -593,6 +597,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 studentIds.add(student.getUserId());
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds);
             }
+            addBindUnBindRecord(student.getUserId(),student.getTenantId(),true);
         }
         this.lambdaUpdate().set(Student::getTenantId, toTenantId)
                 .set(Student::getTenantGroupId, -1L)
@@ -672,6 +677,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             imUserFriendService.delTeacherFriendByTenantId(student.getTenantId(), student.getUserId(),
                     ClientEnum.STUDENT.getCode());
 
+            addBindUnBindRecord(student.getUserId(),student.getTenantId(),false);
+
             // 加好友
             QueryWrapper<Teacher> query = new QueryWrapper<>();
             query.lambda().eq(Teacher::getTenantId, newTenantId);
@@ -682,6 +689,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds);
             }
 
+            addBindUnBindRecord(student.getUserId(),studentInfo.getTenantId(),true);
             sendStudentTenantChange(student,newTenantId);
         }
 
@@ -837,6 +845,8 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             List<Teacher> teacherList = teacherDao.selectList(queryWrapper);
             teacherList.forEach(next -> imUserFriendService.saveUserFriend(next.getUserId(),
                     new HashSet<>(ImmutableList.of(sysUser.getId()))));
+
+            addBindUnBindRecord(student.getUserId(), student.getTenantId(), true);
         }
 
         //  与随机一个客服建立好友
@@ -938,4 +948,14 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
         }
     }
 
+    private void addBindUnBindRecord(Long studentId, Long tenantId, Boolean bind) {
+        UserTenantBindRecord bindRecord = new UserTenantBindRecord();
+        bindRecord.setUserId(studentId);
+        bindRecord.setUserType("STUDENT");
+        bindRecord.setTenantId(tenantId);
+        bindRecord.setBindStatus(bind);
+        bindRecord.setBindTime(new Date());
+        userTenantBindRecordMapper.add(bindRecord);
+    }
+
 }

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

@@ -26,6 +26,7 @@ import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTagEnum;
 import com.yonge.cooleshow.biz.dal.enums.TeacherTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
+import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper;
 import com.yonge.cooleshow.biz.dal.queryInfo.TeacherQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ImGroupService;
 import com.yonge.cooleshow.biz.dal.service.StudentService;
@@ -203,6 +204,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
     @Autowired
     private TenantGroupMapper tenantGroupMapper;
 
+    @Autowired
+    private UserTenantBindRecordMapper userTenantBindRecordMapper;
+
 
     @Override
     public TeacherDao getDao() {
@@ -500,6 +504,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                     .map(Student::getUserId).collect(Collectors.toSet());
 
             imUserFriendService.saveUserFriend(teacher.getUserId(), collect);
+
+            // 机构老师添加机构绑定记录
+            addBindUnBindRecord(teacher.getUserId(),teacher.getTenantId(),true);
         }
         //  与客服建立好友
         String customerService = customerServiceConfig.getCustomerService();
@@ -1096,20 +1103,20 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             }
             // 删除好友关系
             imUserFriendService.delStudentFriendByTenantId(teacher.getTenantId(), teacher.getUserId(),ClientEnum.TEACHER.getCode());
+            addBindUnBindRecord(teacher.getUserId(),teacher.getTenantId(),false);
 
         }
 
-        if (updateTenant.getTenantId().equals(-1L)) {
+        long tenantId = Optional.ofNullable(updateTenant.getTenantId()).orElse(-1L);
+        if (tenantId == -1L) {
             // 平台老师处理流程
             if (ESettlementFrom.TENANT.equals(teacher.getSettlementFrom())) {
                 // 解绑后,结算方式如果是机构,默认调整为老师
                 teacher.setSettlementFrom(ESettlementFrom.TEACHER);
                 teacher.setIsSettlement(true);
             }
-        }
-
-        // 机构老师与学生互加好友关系
-        if (Optional.ofNullable(updateTenant.getTenantId()).orElse(-1L) > 0) {
+        }else {
+            // 机构老师与学生互加好友关系
             // 自动与机构学生成为好友
             Set<Long> collect = studentService.lambdaQuery()
                     .eq(Student::getTenantId, updateTenant.getTenantId()).list().stream()
@@ -1119,6 +1126,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             if (!collect.isEmpty()) {
                 imUserFriendService.saveUserFriend(teacher.getUserId(), collect);
             }
+            addBindUnBindRecord(teacher.getUserId(),updateTenant.getTenantId(),true);
         }
 
         teacher.setTenantId(updateTenant.getTenantId());
@@ -1199,4 +1207,14 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
         return teachers.stream().collect(Collectors.toMap(Teacher::getUserId, o -> o, (o, n) -> n));
     }
+
+    private void addBindUnBindRecord(Long teacherId, Long tenantId, Boolean bind) {
+        UserTenantBindRecord bindRecord = new UserTenantBindRecord();
+        bindRecord.setUserId(teacherId);
+        bindRecord.setUserType("TEACHER");
+        bindRecord.setTenantId(tenantId);
+        bindRecord.setBindStatus(bind);
+        bindRecord.setBindTime(new Date());
+        userTenantBindRecordMapper.add(bindRecord);
+    }
 }

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

@@ -19,6 +19,7 @@ import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysAreaMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantGroupMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindRecordMapper;
+import com.yonge.cooleshow.biz.dal.mapper.UserTenantBindRecordMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindRecordWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
@@ -93,6 +94,9 @@ public class TenantUnbindRecordServiceImpl extends ServiceImpl<TenantUnbindRecor
     @Autowired
     private ImGroupMemberService imGroupMemberService;
 
+    @Autowired
+    private UserTenantBindRecordMapper userTenantBindRecordMapper;
+
     /**
      * @param id 详情ID
      * @return TenantUnbindRecord
@@ -270,6 +274,14 @@ public class TenantUnbindRecordServiceImpl extends ServiceImpl<TenantUnbindRecor
                     .set(ESettlementFrom.TENANT.equals(teacher.getSettlementFrom()), Teacher::getSettlementFrom,
                             ESettlementFrom.TEACHER)
                     .set(Teacher::getTenantId, -1L));
+
+            UserTenantBindRecord bindRecord = new UserTenantBindRecord();
+            bindRecord.setUserId(unbindRecord.getUserId());
+            bindRecord.setUserType("TEACHER");
+            bindRecord.setTenantId(tenantId);
+            bindRecord.setBindStatus(false);
+            bindRecord.setBindTime(new Date());
+            userTenantBindRecordMapper.add(bindRecord);
         }
 
         // 添加历史记录

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

@@ -81,8 +81,16 @@
                 AND st.subject_id_ = #{param.subjectId}
             </if>
         </where>
-        group by t.user_id_
+        <if test="param.userType == 'TEACHER'">
+            group by t.user_id_
+        </if>
         order by t.bind_time_ desc
     </select>
 
+    <insert id="add">
+        INSERT INTO user_tenant_bind_record(user_id_, user_type_, tenant_id_, bind_status_, bind_time_)
+        VALUES (#{record.userId}, #{record.userType}, #{record.tenantId}, #{record.bindStatus}, #{record.bindTime})
+        ON DUPLICATE KEY UPDATE bind_status_ = VALUES(bind_status_),
+                                bind_time_   = VALUES(bind_time_)
+    </insert>
 </mapper>