Browse Source

Merge branch 'feature/0812_opt' of http://git.dayaedu.com/yonge/cooleshow into feature/0812_opt

liujc 8 months ago
parent
commit
300bf4c523
16 changed files with 122 additions and 107 deletions
  1. 11 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java
  2. 13 0
      cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java
  3. 8 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java
  4. 0 4
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/ImController.java
  5. 11 13
      cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java
  6. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/EmployeeService.java
  7. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java
  8. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  9. 31 16
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/EmployeeServiceImpl.java
  10. 15 38
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java
  11. 4 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java
  12. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/PaymentDivMemberRecordServiceImpl.java
  13. 7 7
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/StudentServiceImpl.java
  14. 13 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TeacherServiceImpl.java
  15. 0 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java
  16. 0 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

+ 11 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -217,4 +217,15 @@ public interface AdminFeignService {
 
     @PostMapping("/sysUser/logoffQuitImGroup")
     HttpResponseResult<Boolean> logoffQuitImGroup(@RequestParam(value = "phone") String phone);
+
+    /**
+     * 清除客服绑定关系
+     * @param userId 用户ID
+     * @param sysUserType 用户类型
+     *
+     * @return HttpResponseResult<Boolean>
+     */
+    @GetMapping("/employee/clearCustomerService")
+    HttpResponseResult<Boolean> clearCustomerService(@RequestParam(value = "userId") Long userId,
+                                                     @RequestParam("sysUserType") String sysUserType);
 }

+ 13 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -215,4 +215,17 @@ public class AdminFeignServiceFallback implements AdminFeignService {
     public HttpResponseResult<Boolean> logoffQuitImGroup(String phone) {
         return null;
     }
+
+    /**
+     * 清除客服绑定关系
+     *
+     * @param userId      用户ID
+     * @param sysUserType 用户类型
+     *
+     * @return HttpResponseResult<Boolean>
+     */
+    @Override
+    public HttpResponseResult<Boolean> clearCustomerService(Long userId, String sysUserType) {
+        return null;
+    }
 }

+ 8 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/EmployeeController.java

@@ -34,6 +34,7 @@ import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
@@ -163,4 +164,11 @@ public class EmployeeController extends BaseController {
         return failed("获取用户信息失败");
     }
 
+    @ApiOperation(value = "员工客服绑定关系清除")
+    @GetMapping("/clearCustomerService")
+    public HttpResponseResult<Boolean> clearCustomerService(@RequestParam("userId") Long userId,
+                                                            @RequestParam("sysUserType") String sysUserType) {
+        // 清除客服绑定关系
+        return succeed(employeeService.clearCustomerService(userId, sysUserType));
+    }
 }

+ 0 - 4
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/open/ImController.java

@@ -2,7 +2,6 @@ package com.yonge.cooleshow.admin.controller.open;
 
 import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Lists;
-import com.microsvc.toolkit.middleware.im.properties.ImConfigProperties;
 import com.microsvc.toolkit.middleware.live.LivePluginContext;
 import com.microsvc.toolkit.middleware.live.LivePluginService;
 import com.microsvc.toolkit.middleware.live.impl.TencentCloudLivePlugin;
@@ -71,9 +70,6 @@ public class ImController extends BaseController {
     @Autowired
     private ImGroupService imGroupService;
 
-    @Autowired
-    private ImConfigProperties imConfig;
-
 
     @ApiOperation("新用户添加客服")
     @PostMapping(value = "/im/customerService")

+ 11 - 13
cooleshow-auth/auth-server/src/main/java/com/yonge/cooleshow/auth/service/impl/SysUserServiceImpl.java

@@ -1,10 +1,6 @@
 package com.yonge.cooleshow.auth.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.google.common.collect.Lists;
 import com.yonge.cooleshow.api.feign.AdminFeignService;
-import com.yonge.cooleshow.api.feign.TeacherFeignService;
-import com.yonge.cooleshow.api.feign.dto.UserFriendInfoVO;
 import com.yonge.cooleshow.auth.api.dto.QRLoginDto;
 import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.dto.SysUserInfo;
@@ -12,7 +8,6 @@ import com.yonge.cooleshow.auth.api.dto.SysUserQueryInfo;
 import com.yonge.cooleshow.auth.api.dto.UserSetReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.api.vo.UserSetVo;
-import com.yonge.cooleshow.auth.config.CustomerServiceConfig;
 import com.yonge.cooleshow.auth.config.RongCloudConfig;
 import com.yonge.cooleshow.auth.core.service.CustomTokenServices;
 import com.yonge.cooleshow.auth.dal.dao.SysUserDao;
@@ -27,8 +22,8 @@ import com.yonge.cooleshow.common.entity.ImUserModel;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
 import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.cooleshow.common.enums.UserFirstTimeTypeEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.base.util.ThreadPool;
 import com.yonge.toolset.mybatis.dal.BaseDAO;
 import com.yonge.toolset.mybatis.service.impl.BaseServiceImpl;
 import io.rong.models.response.TokenResult;
@@ -44,12 +39,9 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.text.MessageFormat;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.Random;
-import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -68,8 +60,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
     private RedissonClient redissonClient;
     @Resource
     private AdminFeignService adminFeignService;
-    @Autowired
-    private CustomerServiceConfig customerServiceConfig;
+
     @Resource
     private CustomTokenServices tokenService;
 
@@ -215,7 +206,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
      */
     public void sendSysCustomerServiceFriendMessage(SysUser sysUser, String clientType) {
 
-        try {
+        /*try {
 
             ThreadPool.getExecutor().submit(() -> {
 
@@ -234,7 +225,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
 
         } catch (Exception e) {
             log.error("sendSysCustomerServiceFriendMessage userId={}", sysUser.getId(), e);
-        }
+        }*/
 
     }
 
@@ -359,9 +350,16 @@ public class SysUserServiceImpl extends BaseServiceImpl<Long, SysUser> implement
         sysUserDao.logoffById(id, maxVersion);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public void updateLockStatus(Long userId, Integer lockFlag, String sysUserType) {
         sysUserDao.updateLockStatus(userId, lockFlag, sysUserType);
+
+        // 系统员工锁定,清除客服绑定关系
+        if (lockFlag == YesOrNoEnum.YES.getCode().intValue() && SysUserType.SYSTEM.getCode().equals(sysUserType)) {
+            // 清除客服绑定关系
+            adminFeignService.clearCustomerService(userId, sysUserType);
+        }
     }
 
     /**

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/EmployeeService.java

@@ -58,4 +58,11 @@ public interface EmployeeService extends BaseService<Long, Employee> {
 
     int insertSysRole(SysRole sysRole);
 
+    /**
+     * 清除客服绑定关系
+     * @param userId 用户ID
+     * @param sysUserType 用户类型
+     * @return Boolean
+     */
+    Boolean clearCustomerService(Long userId, String sysUserType);
 }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImUserFriendService.java

@@ -8,7 +8,6 @@ import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 import com.yonge.cooleshow.biz.dal.vo.im.ImUserFriendVO;
 import com.yonge.cooleshow.biz.dal.wrapper.im.CustomerService;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImUserWrapper;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;

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

@@ -1202,7 +1202,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         studentIds.add(studentId);
         try {
             imUserFriendService.saveUserFriend(teacherId, studentIds, EImUserFriendSourceForm.TEACHER);
-            imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+            //imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             log.info("保存用户通讯录成功,teacherId:{},studentIds:{}", teacherId, studentIds);
         } catch (Exception e) {
             log.error("保存用户通讯录失败,teacherId:{},studentIds:{},e:{}", teacherId, studentIds, e);

+ 31 - 16
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/EmployeeServiceImpl.java

@@ -149,22 +149,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Long, Employee> impleme
                 || sysUser.getLockFlag().equals(YesOrNoEnum.YES.getCode())
                 || employee.getLockFlag() == UserLockFlag.LOCKED) {
 
-                String imCustomerServiceId = imGroupCoreService.getImUserId(String.valueOf(param.getUserId()),
-                    ClientEnum.SYSTEM.getCode());
-
-                // 更新老师表的客服ID
-                teacherService.lambdaUpdate()
-                    .eq(Teacher::getImCustomerId, imCustomerServiceId)
-                    .set(Teacher::getCustomerId, null)
-                    .set(Teacher::getImCustomerId, "")
-                    .update();
-
-                // 更新学生表的客服ID
-                studentService.lambdaUpdate()
-                    .eq(Student::getImCustomerId, imCustomerServiceId)
-                    .set(Student::getCustomerId, null)
-                    .set(Student::getImCustomerId, "")
-                    .update();
+                // 清除客服绑定关系
+                clearCustomerService(param.getUserId(), SysUserType.SYSTEM.getCode());
             }
         }
         return HttpResponseResult.succeed(param);
@@ -202,4 +188,33 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Long, Employee> impleme
         return employeeDao.insertSysRole(sysRole);
     }
 
+    /**
+     * 清除客服绑定关系
+     *
+     * @param userId      用户ID
+     * @param sysUserType 用户类型
+     * @return Boolean
+     */
+    @Override
+    public Boolean clearCustomerService(Long userId, String sysUserType) {
+        // 清除客服绑定关系
+        String imCustomerServiceId = imGroupCoreService.getImUserId(String.valueOf(userId), sysUserType);
+
+        // 更新老师表的客服ID
+        teacherService.lambdaUpdate()
+            .eq(Teacher::getImCustomerId, imCustomerServiceId)
+            .set(Teacher::getCustomerId, null)
+            .set(Teacher::getImCustomerId, "")
+            .update();
+
+        // 更新学生表的客服ID
+        studentService.lambdaUpdate()
+            .eq(Student::getImCustomerId, imCustomerServiceId)
+            .set(Student::getCustomerId, null)
+            .set(Student::getImCustomerId, "")
+            .update();
+
+        return true;
+    }
+
 }

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

@@ -2,8 +2,6 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -24,39 +22,35 @@ import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.auth.config.AppGlobalServiceConfig;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
-import com.yonge.cooleshow.biz.dal.dao.ImGroupMemberAuditDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
 import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupResultDto;
 import com.yonge.cooleshow.biz.dal.dto.ImGroupSearchDto;
-import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.dto.search.StudentSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.TeacherSearch;
-import com.yonge.cooleshow.biz.dal.entity.*;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
-import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
-import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
-import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
-import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
-import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
 import com.yonge.cooleshow.biz.dal.entity.ImHistoryMessage;
 import com.yonge.cooleshow.biz.dal.entity.StudentStar;
+import com.yonge.cooleshow.biz.dal.entity.SysConfig;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.enums.ImGroupType;
+import com.yonge.cooleshow.biz.dal.enums.RoleEnum;
+import com.yonge.cooleshow.biz.dal.enums.im.EImUserFriendSourceForm;
 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.StudentService;
 import com.yonge.cooleshow.biz.dal.service.StudentStarService;
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherService;
-import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
+import com.yonge.cooleshow.biz.dal.service.UploadFileService;
 import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
 import com.yonge.cooleshow.biz.dal.support.IMHelper;
 import com.yonge.cooleshow.biz.dal.vo.StudentVo;
@@ -67,18 +61,14 @@ import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.UploadReturnBean;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.ThreadPool;
-import com.yonge.toolset.payment.util.DistributedLock;
-import com.yonge.toolset.utils.date.DateUtil;
-import io.rong.RongCloud;
-import io.rong.methods.message.history.History;
 import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.toolset.payment.util.DistributedLock;
 import io.rong.RongCloud;
 import io.rong.methods.message.history.History;
 import io.rong.models.Result;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.redisson.api.RBucket;
 import org.redisson.api.RedissonClient;
@@ -86,19 +76,15 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.io.*;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
 import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
-import java.io.*;
 import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -106,11 +92,10 @@ import java.io.InputStreamReader;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
 import java.text.MessageFormat;
-import java.util.*;
-import java.util.stream.Collectors;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Base64;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -118,6 +103,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
+import java.util.Random;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
@@ -125,10 +111,6 @@ import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipInputStream;
-import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
 
 /**
  * 即时通讯群组(ImGroup)表服务实现类
@@ -147,8 +129,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     private ImUserFriendService imUserFriendService;
     @Resource
     private ImGroupMemberService imGroupMemberService;
-    @Resource
-    private ImGroupMemberAuditDao imGroupMemberAuditDao;
+
     @Resource
     private SysUserService sysUserService;
     @Autowired
@@ -174,10 +155,6 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
     private String appSecret;
 
     @Autowired
-    private CustomerServiceBatchSendingService customerServiceBatchSendingService;
-
-
-    @Autowired
     private ImPluginContext imPluginContext;
 
     @Autowired
@@ -395,7 +372,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
                     teacherList.forEach(teacher ->
                             {
                                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIdList, EImUserFriendSourceForm.TEACHER);
-                                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIdList), ClientEnum.STUDENT);
+                                //imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIdList), ClientEnum.STUDENT);
                             }
                     );
                 }
@@ -428,7 +405,7 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         Long teacherId = courseGroup.getTeacherId();
         //保存老师学员关联的通讯录xz
         imUserFriendService.saveUserFriend(teacherId, Sets.newHashSet(studentIds),EImUserFriendSourceForm.TEACHER);
-        imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+        //imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
 
 
         // 直播课、琴房课校验群成员人数限制

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

@@ -291,6 +291,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
 
         // 不在加客服好友
         if (true) {
+            // TODO: 忽略后续流程不执行
             return 0;
         }
 
@@ -329,7 +330,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                 saveUserFriend(teacherId, Sets.newHashSet(userId), sourceForm);
                 studentDao.update(null, new UpdateWrapper<Student>().lambda().eq(Student::getUserId, userId).set(Student::getCustomerId, teacherId));
             } else if (ClientEnum.TEACHER == clientType) {
-                saveUserTeacherFriend(teacherId, Sets.newHashSet(userId), sourceForm);
+                //saveUserTeacherFriend(teacherId, Sets.newHashSet(userId), sourceForm);
                 teacherDao.update(null, new UpdateWrapper<Teacher>().lambda().eq(Teacher::getUserId, userId).set(Teacher::getCustomerId, teacherId));
             }
 
@@ -638,7 +639,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
     @Override
     public void refreshCustomer(Long userId, ClientEnum userClientType, List<Long> friendIds, ClientEnum friendClientType) {
 
-        this.lambdaUpdate()
+        /*this.lambdaUpdate()
                 .set(ImUserFriend::getSourceForm, EImUserFriendSourceForm.TEACHER)
                 .eq(ImUserFriend::getUserId, userId)
                 .eq(ImUserFriend::getClientType, userClientType)
@@ -652,7 +653,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                 .eq(ImUserFriend::getClientType, friendClientType)
                 .eq(ImUserFriend::getFriendId, userId)
                 .eq(ImUserFriend::getFriendType, userClientType)
-                .update();
+                .update();*/
     }
 }
 

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

@@ -465,7 +465,7 @@ public class PaymentDivMemberRecordServiceImpl extends ServiceImpl<PaymentDivMem
         studentIds.add(studentId);
         try {
             imUserFriendService.saveUserFriend(teacherId, studentIds, EImUserFriendSourceForm.TEACHER);
-            imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+            //imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             log.info("保存用户通讯录成功,teacherId:{},studentIds:{}", teacherId, studentIds);
         } catch (Exception e) {
             log.error("保存用户通讯录失败,teacherId:{},studentIds:{},e:{}", teacherId, studentIds, e);

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

@@ -34,7 +34,6 @@ import com.yonge.cooleshow.biz.dal.vo.TeacherVo;
 import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.VipCardRecordWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupWrapper;
-import com.yonge.cooleshow.biz.dal.wrapper.teacher.TeacherWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.CacheNameEnum;
@@ -402,7 +401,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             studentIds.add(studentVo.getUserId());
             imUserFriendService.saveUserFriend(userId, studentIds, EImUserFriendSourceForm.TEACHER);
         }
-        imUserFriendService.refreshCustomer(userId, ClientEnum.TEACHER, Collections.singletonList(studentVo.getUserId()), ClientEnum.STUDENT);
+        //imUserFriendService.refreshCustomer(userId, ClientEnum.TEACHER, Collections.singletonList(studentVo.getUserId()), ClientEnum.STUDENT);
 //        }
         resMap.put("now", detail);
         return HttpResponseResult.succeed(resMap);
@@ -665,7 +664,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 HashSet<Long> studentIds = new HashSet<>();
                 studentIds.add(student.getUserId());
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds, EImUserFriendSourceForm.TEACHER);
-                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+                //imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             }
             addBindUnBindRecord(student.getUserId(),student.getTenantId(),true);
         }
@@ -757,7 +756,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
                 HashSet<Long> studentIds = new HashSet<>();
                 studentIds.add(student.getUserId());
                 imUserFriendService.saveUserFriend(teacher.getUserId(), studentIds,EImUserFriendSourceForm.TEACHER);
-                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
+                //imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
             }
 
             addBindUnBindRecord(student.getUserId(),studentInfo.getTenantId(),true);
@@ -907,12 +906,13 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
 
         save(student);
         //  与好友数量最少的客服建立好友关系
-        List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = teacherDao.getCustomerServiceFriendNums();
+        /*List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = teacherDao.getCustomerServiceFriendNums();
         if (!customerServiceFriendNums.isEmpty()) {
             Long teacherId = customerServiceFriendNums.get(0).getTeacherId();
             imUserFriendService.registerUserBindCustomerService(student.getUserId(),
                     Collections.singletonList(teacherId), ClientEnum.STUDENT);
-        }
+        }*/
+
         try {
             // 注册IM
             imGroupCoreService.register(String.valueOf(student.getUserId()),ClientEnum.STUDENT.getCode(), sysUser.getUsername(), avatar);
@@ -929,7 +929,7 @@ public class StudentServiceImpl extends ServiceImpl<StudentDao, Student> impleme
             teacherList.forEach(next ->
                     {
                         imUserFriendService.saveUserFriend(next.getUserId(), new HashSet<>(ImmutableList.of(sysUser.getId())), EImUserFriendSourceForm.TEACHER);
-                        imUserFriendService.refreshCustomer(next.getUserId(), ClientEnum.TEACHER, Collections.singletonList(sysUser.getId()), ClientEnum.STUDENT);
+                        //imUserFriendService.refreshCustomer(next.getUserId(), ClientEnum.TEACHER, Collections.singletonList(sysUser.getId()), ClientEnum.STUDENT);
                     }
             );
 

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

@@ -250,6 +250,10 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
         // 系统客服数量
         detail.setCustomerServiceNum(baseMapper.selectCustomerServiceV2().size());
+        if (Optional.ofNullable(detail.getCustomerService()).orElse(false)) {
+            // 老师本身是客服,不显示客服入口;重置客服数量为0
+            detail.setCustomerServiceNum(0);
+        }
 
         return detail;
     }
@@ -346,8 +350,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
         if (tenantId != null && tenantId > 0 && Boolean.TRUE.equals(customerService)) {
             throw new BizException("客服不能有机构老师身份");
         }
-        // todo 暂时不上客服相关
-//        teacherSubmitReq.setCustomerService(null);
+
         if (null == teacherSubmitReq.getUserId()) {
 
             if (StringUtils.isNoneBlank(teacherSubmitReq.getPhone(), teacherSubmitReq.getCode())) {
@@ -643,14 +646,14 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
             sendBindUnBindSMS(teacher.getUserId(), teacherSubmitReq.getPhone(), MessageTypeEnum.TEACHER_BIND_TENANT, teacher.getTenantId());
 
             //  与客服建立好友
-            if (!Boolean.TRUE.equals(teacher.getCustomerService())) {
+            /*if (!Boolean.TRUE.equals(teacher.getCustomerService())) {
                 List<TeacherWrapper.TeacherFriend> customerServiceFriendNums = this.getBaseMapper().getCustomerServiceFriendNums();
                 if (!customerServiceFriendNums.isEmpty()) {
                     Long teacherId = customerServiceFriendNums.get(0).getTeacherId();
                     imUserFriendService.registerUserBindCustomerService(teacher.getUserId(),
                             Collections.singletonList(teacherId), ClientEnum.TEACHER);
                 }
-            }
+            }*/
         } else {
             // 客服状态变更,移交好友信息
             Boolean customerService = teacher.getCustomerService();
@@ -736,7 +739,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                 .set(Student::getCustomerId, null));
     }
 
-    private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriendV2(Long userId, boolean saveGroupFriend){
+    /*private List<TeacherWrapper.CustomerServiceSendMsg2User> transferFriendV2(Long userId, boolean saveGroupFriend){
         List<TeacherWrapper.CustomerServiceSendMsg2User> result = new ArrayList<>();
         // 所有的好友
         List<ImUserFriend> userFriendList = imUserFriendService.lambdaQuery()
@@ -862,9 +865,9 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 //            imUserFriendService.sendCustomerServiceAddFriendMessage(teacherId, customerTitle, customerMessage, new ArrayList<>(studentIds), ClientEnum.STUDENT);
         });
         return result;
-    }
+    }*/
 
-    private List<Long> getSameTenant(Long teacherId, Set<Long> userIds, ClientEnum clientEnum) {
+    /*private List<Long> getSameTenant(Long teacherId, Set<Long> userIds, ClientEnum clientEnum) {
         Teacher teacher = this.getById(teacherId);
         Long tenantId = teacher.getTenantId();
         if (tenantId == null || tenantId <= 0) {
@@ -881,7 +884,8 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
                     .map(Teacher::getUserId).collect(Collectors.toList());
         }
         return new ArrayList<>();
-    }
+    }*/
+
     /***
      * 封装用户信息
      * @author liweifan
@@ -1378,7 +1382,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherDao, Teacher> impleme
 
             if (!collect.isEmpty()) {
                 imUserFriendService.saveUserFriend(teacher.getUserId(), collect, EImUserFriendSourceForm.TEACHER);
-                imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(collect), ClientEnum.STUDENT);
+                //imUserFriendService.refreshCustomer(teacher.getUserId(), ClientEnum.TEACHER, new ArrayList<>(collect), ClientEnum.STUDENT);
             }
             addBindUnBindRecord(teacher.getUserId(),updateTenant.getTenantId(),true);
             SysUser sysUser = sysUserMapper.getByUserId(teacher.getUserId());

+ 0 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherHomeVo.java

@@ -103,9 +103,6 @@ public class TeacherHomeVo extends Teacher implements Serializable {
     @ApiModelProperty(value = "imToken")
     private String imToken;
 
-    @ApiModelProperty("是否是客服")
-    private Boolean customerService;
-
     @ApiModelProperty("客服数量")
     private Integer customerServiceNum;
 
@@ -386,14 +383,6 @@ public class TeacherHomeVo extends Teacher implements Serializable {
         this.tenantAlbumStatus = tenantAlbumStatus;
     }
 
-    public Boolean getCustomerService() {
-        return customerService;
-    }
-
-    public void setCustomerService(Boolean customerService) {
-        this.customerService = customerService;
-    }
-
     public Integer getCustomerServiceNum() {
         return customerServiceNum;
     }

+ 0 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherVo.java

@@ -122,9 +122,6 @@ public class TeacherVo extends Teacher {
     @ApiModelProperty("svip结束时间")
     private Date perSvipEndTime;
 
-    @ApiModelProperty("是否客服")
-    private Boolean customerService;
-
     @ApiModelProperty(value = "会员结束时间字符传")
     private String membershipEndTimeStr;