Bladeren bron

Merge branch 'feature/1020-tencent-im' into test

Eric 1 jaar geleden
bovenliggende
commit
71e23050aa
27 gewijzigde bestanden met toevoegingen van 309 en 107 verwijderingen
  1. 63 60
      .idea/httpRequests/http-requests-log.http
  2. 2 0
      mec-application/src/main/java/com/ym/mec/AppServerApplication.java
  3. 1 1
      mec-application/src/main/java/com/ym/mec/config/ResourceServerConfig.java
  4. 17 0
      mec-application/src/main/java/com/ym/mec/web/controller/ImHistoryMessageController.java
  5. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/EmployeeDao.java
  6. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  7. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  8. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolStaffMapper.java
  9. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java
  10. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SchoolStaffService.java
  11. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java
  12. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  13. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/im/impl/ImGroupCoreServiceImpl.java
  14. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  15. 27 27
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java
  16. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolStaffServiceImpl.java
  17. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  18. 21 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  19. 9 0
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  20. 17 0
      mec-biz/src/main/resources/config/mybatis/SchoolStaffMapper.xml
  21. 12 0
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  22. 14 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  23. 4 0
      mec-common/audit-log/src/main/java/com/yonge/log/dal/model/HistoryMessageTencent.java
  24. 4 0
      mec-common/audit-log/src/main/java/com/yonge/log/service/HistoryMessageTenantService.java
  25. 34 7
      mec-common/audit-log/src/main/java/com/yonge/log/service/impl/HistoryMessageTenantServiceImpl.java
  26. 1 9
      mec-common/audit-log/src/main/java/com/yonge/log/wrapper/HistoryMessageTencentWrapper.java
  27. 2 1
      mec-im/src/main/java/com/ym/controller/PrivateController.java

+ 63 - 60
.idea/httpRequests/http-requests-log.http

@@ -1,6 +1,69 @@
 POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
 Authorization: bearer f63411e7-63e0-48e4-bbfa-40413b97b744
 Content-Type: application/json
+Content-Length: 55
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "page": 1,
+  "rows": 10,
+  "keyword": "AAA课程"
+}
+
+<> 2023-10-23T172204.200.json
+
+###
+
+POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
+Authorization: bearer f63411e7-63e0-48e4-bbfa-40413b97b744
+Content-Type: application/json
+Content-Length: 46
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "page": 1,
+  "rows": 10,
+  "keyword": ""
+}
+
+<> 2023-10-23T172149.200.json
+
+###
+
+POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
+Authorization: bearer f63411e7-63e0-48e4-bbfa-40413b97b744
+Content-Type: application/json
+Content-Length: 46
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "page": 1,
+  "rows": 10,
+  "keyword": ""
+}
+
+<> 2023-10-23T172106.200.json
+
+###
+
+POST http://127.0.0.1:8805/api-web/imHistoryMessage/initMsgBodyJson
+Authorization: bearer f63411e7-63e0-48e4-bbfa-40413b97b744
+Content-Length: 0
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+###
+
+POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
+Authorization: bearer f63411e7-63e0-48e4-bbfa-40413b97b744
+Content-Type: application/json
 Content-Length: 48
 Connection: Keep-Alive
 User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
@@ -829,63 +892,3 @@ Accept-Encoding: br,deflate,gzip,x-gzip
 
 ###
 
-POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
-Authorization: bearer 3526591a-a4e9-488c-82f1-4a1e56a0c6a4
-Content-Type: application/json
-Content-Length: 29
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "page": 1,
-  "rows": 10
-}
-
-<> 2023-10-23T112353.200.json
-
-###
-
-POST http://127.0.0.1:8805/api-web/imHistoryMessage/imToTencent
-Authorization: bearer 3526591a-a4e9-488c-82f1-4a1e56a0c6a4
-Content-Length: 0
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-###
-
-POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
-Authorization: bearer 3526591a-a4e9-488c-82f1-4a1e56a0c6a4
-Content-Type: application/json
-Content-Length: 29
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "page": 1,
-  "rows": 10
-}
-
-<> 2023-10-23T111620.200.json
-
-###
-
-POST http://127.0.0.1:8805/api-web/imHistoryMessage/historyMessage
-Authorization: bearer 3526591a-a4e9-488c-82f1-4a1e56a0c6a4
-Content-Type: application/json
-Content-Length: 29
-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{
-  "page": 1,
-  "rows": 10
-}
-
-<> 2023-10-23T111115.200.json
-
-###
-

+ 2 - 0
mec-application/src/main/java/com/ym/mec/AppServerApplication.java

@@ -1,5 +1,6 @@
 package com.ym.mec;
 
+import com.spring4all.swagger.EnableSwagger2Doc;
 import com.ym.mec.config.AppBeanNameGenerator;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -15,6 +16,7 @@ import org.springframework.context.annotation.Configuration;
 @ComponentScan(basePackages = {"com.ym.mec", "org.snaker.engine", "com.yonge.log", "com.mec.redisson"})
 @MapperScan(basePackages = {"com.ym.mec.biz.**.dao", "com.yonge.datasource.dao", "com.ym.mec.biz.dal.mapper"})
 @Configuration
+@EnableSwagger2Doc
 public class AppServerApplication {
     public static void main(String[] args) {
         new SpringApplicationBuilder(AppServerApplication.class)

+ 1 - 1
mec-application/src/main/java/com/ym/mec/config/ResourceServerConfig.java

@@ -32,7 +32,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .authorizeRequests()
                 .antMatchers("/api-web/task/**")
                 .hasIpAddress("0.0.0.0/0")
-                .antMatchers(
+                .antMatchers("/v2/api-docs",
                 //common
                         "/*/v2/api-docs", "/*/code/*",
 

+ 17 - 0
mec-application/src/main/java/com/ym/mec/web/controller/ImHistoryMessageController.java

@@ -99,6 +99,23 @@ public class ImHistoryMessageController extends BaseController {
         }
     }
 
+    @ApiOperation("初始化消息体")
+    @PostMapping(value = "/initMsgBodyJson")
+    public void initMsgBodyJson() throws Exception {
+        //计算总数据量
+        int count = historyMessageTenantService.initMsgBodyJsonCount();
+        log.info("总数据量:"+count);
+        //计算调用次数
+        int num = (int) Math.ceil(count / 100);
+        for (int i = 0; i <=num ; i++) {
+            int size =100;
+            //获取融云消息
+            //List<ImGroup> list = imGroupService.lambdaQuery().last("limit "+(page-1)*size+","+size).list();
+            historyMessageTenantService.initMsgBodyJson(1,size);
+            log.info("已转换:"+(i+1)*size);
+        }
+    }
+
     @ApiOperation("历史聊天记录查询")
     @PostMapping(value = "/historyMessage")
     public HttpResponseResult<PageInfo<HistoryMessageTencentWrapper.HistoryMessageTencent>> historyMessage(@RequestBody  HistoryMessageTencentWrapper.HistoryMessageTencentQuery query) throws Exception {

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/EmployeeDao.java

@@ -233,4 +233,8 @@ public interface EmployeeDao extends BaseDAO<Integer, Employee> {
     int countEmployeeBasicInfo(Map<String, Object> params);
 
     List<SysUserDto> queryEmployeeBasicInfo(Map<String, Object> params);
+
+    List<Employee> queryBaseInfoByPage(Map<String, Object> params);
+
+    int queryBaseInfoByCount(Map<String, Object> params);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -380,4 +380,7 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
     int countMusicGroupStudents(Map<String, Object> paramMap);
 
     List<Student> listByIds(@Param("studentIds") List<Long> studentIds);
+    List<Student> queryBaseInfoByPage(Map<String, Object> params);
+
+    int queryBaseInfoCount(Map<String, Object> params);
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -547,4 +547,8 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     * @date 2023/5/8 11:59
     */
     List<BasicUserDto> queryUserByPhones(@Param("phones") List<String> phones);
+
+    List<Teacher> queryBaseInfoByPage(Map<String, Object> params);
+
+    int queryBaseInfoByCount(Map<String, Object> params);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/mapper/SchoolStaffMapper.java

@@ -44,4 +44,7 @@ public interface SchoolStaffMapper extends BaseMapper<SchoolStaff> {
     void delUser(@Param("userId") Long userId);
 
     List<SchoolStaff> getByCoopIdAndType(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("staffType") ESchoolStaffType staffType);
+
+	List<SchoolStaffWrapper.SchoolStaff> selectBaseInfoByPage(@Param("page") IPage<SchoolStaffWrapper.SchoolStaff> page,
+															  @Param("param") SchoolStaffWrapper.SchoolStaffQuery query);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.biz.dal.page.UserBasicQueryInfo;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import java.util.HashMap;
 import java.util.List;
@@ -87,4 +88,6 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
     PageInfo<SysUserDto> queryEmployeeBasicInfo(UserBasicQueryInfo queryInfo);
 
     void resetPassword(Integer userId);
+
+    PageInfo<Employee> queryBaseInfoByPage(QueryInfo queryInfo);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SchoolStaffService.java

@@ -98,4 +98,7 @@ public interface SchoolStaffService extends IService<SchoolStaff>  {
      * @param schoolStaffUpdate SchoolStaffWrapper.SchoolStaffUpdate
      */
     void updateAccount(SchoolStaffWrapper.SchoolStaffUpdate schoolStaffUpdate);
+
+    IPage<SchoolStaffWrapper.SchoolStaff> selectBaseInfoByPage(IPage<SchoolStaffWrapper.SchoolStaff> page,
+                                                               SchoolStaffWrapper.SchoolStaffQuery query);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -16,6 +16,7 @@ import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.dal.wrapper.StudentWrapper;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -248,4 +249,6 @@ public interface StudentService extends BaseService<Integer, Student> {
     * @date 2023/5/17 11:25
     */
     void updateStudentMember(Integer userId, Date endTime,String memo,Integer operatorId);
+
+    PageInfo<Student> queryBaseInfoByPage(QueryInfo queryInfo);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -256,4 +256,6 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
     PageInfo<TeacherMusicStudentOverViewDto> queryTeacherMusicStudentOverViewV2(TeacherServeQueryInfo queryInfo);
 
     Map<Integer,Teacher> getMapByIds(List<Integer> teacherIds);
+
+    PageInfo<Teacher> queryBaseInfoByPage(QueryInfo queryInfo);
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/im/impl/ImGroupCoreServiceImpl.java

@@ -136,11 +136,11 @@ public class ImGroupCoreServiceImpl implements ImGroupCoreService {
     @Transactional
     public String groupCreate(ImGroupMemberWrapper.ImGroupMember userInfo, ImGroupWrapper.ImGroup imGroup) throws Exception {
 
-        long id = Optional.ofNullable(imGroup.getId()).orElse(IdWorker.getId());
+        String id = Optional.ofNullable(imGroup.getId()).orElse(String.valueOf(IdWorker.getId()));
         // 生成群组ID
         imGroup.id(id)
                 .type(Optional.ofNullable(imGroup.getType()).orElse("CLASS"))
-                .groupId(String.valueOf(id));
+                .groupId(id);
 
         ImGroupPlus group = JSON.parseObject(imGroup.jsonString(), ImGroupPlus.class);
         group.setId(imGroup.getGroupId());

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -25,6 +25,7 @@ import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.enums.im.ClientEnum;
 import com.ym.mec.biz.dal.wrapper.ImGroupMemberWrapper;
 import com.ym.mec.biz.service.im.ImGroupCoreService;
+import com.ym.mec.common.page.QueryInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
@@ -772,4 +773,25 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
         StringBuffer gym = new StringBuffer("gym").append(user.getPhone().substring(7));
         employeeDao.updatePassword(userId, new BCryptPasswordEncoder().encode(gym.toString()));
     }
+
+    @Override
+    public PageInfo<Employee> queryBaseInfoByPage(QueryInfo queryInfo) {
+        PageInfo<Employee> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<Employee> dataList = new ArrayList<>();
+        int count = queryBaseInfoByCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = employeeDao.queryBaseInfoByPage(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    private int queryBaseInfoByCount(Map<String, Object> params) {
+        return employeeDao.queryBaseInfoByCount(params);
+    }
 }

+ 27 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -23,15 +23,7 @@ import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.ImGroupDto;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.dto.NameDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.ImGroup;
-import com.ym.mec.biz.dal.entity.ImGroupMember;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.SchoolStaff;
-import com.ym.mec.biz.dal.entity.Student;
-import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.EFriendRoleType;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.im.ClientEnum;
@@ -944,7 +936,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                 importGroup.setApplyJoinOption("FreeAccess");
                 importGroup.setCreateTime(imGroup.getCreateTime().getTime() / 1000);
                 if (admin != null) {
-                    register(admin.getUserId().toString(), getClientType(admin.getRoleType()));
+                    register(admin.getUserId().toString(), getClientType(admin.getRoleType()),"");
                 }
                 imPluginContext.getPluginService().importGroup(importGroup);
 
@@ -955,7 +947,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
                     continue;
                 }
                 for (ImGroupMember member : groupMembers) {
-                    register(member.getUserId().toString(), getClientType(member.getRoleType()));
+                    register(member.getUserId().toString(), getClientType(member.getRoleType()),"");
                 }
                 MessageWrapper.ImportGroupMember importGroupMember = new MessageWrapper.ImportGroupMember();
                 importGroupMember.setGroupId(imGroup.getId());
@@ -984,11 +976,13 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         }
     }
 
-    private void register(String userId, String clientType) {
+    private void register(String userId, String clientType,String avatar) {
         SysUser user = sysUserService.queryUserById(Integer.valueOf(userId));
-        String avatar = user.getAvatar();
+        if (user == null) {
+            return;
+        }
         if (StringUtils.isEmpty(avatar)) {
-            avatar = "https://daya.ks3-cn-beijing.ksyun.com/202203/T1WgJaE.png";
+            avatar = user.getAvatar();
         }
         try {
             String username = user.getUsername();
@@ -1032,9 +1026,10 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
         log.info("------------------------------- import user student ---------------------------");
         List<String[]> student = getStudent(page, rows);
+        SysConfig studentAvatar = sysConfigService.findByParamName(SysConfigService.STUDENT_DEFAULT_AVATAR);
         while (!student.isEmpty()) {
             for (String[] next : student) {
-                register(next[0], next[1]);
+                register(next[0], next[1],studentAvatar.getParanValue());
             }
             count += student.size();
             log.info("import im student success count:{}", count);
@@ -1043,12 +1038,14 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         }
 
         log.info("------------------------------- import user staff ---------------------------");
+        // USER_DEFAULT_AVATAR
         count = 0;
         page = 1;
+        SysConfig staffAvatar = sysConfigService.findByParamName(SysConfigService.USER_DEFAULT_AVATAR);
         List<String[]> staff = getStaff(page, rows);
         while (!staff.isEmpty()) {
             for (String[] next : staff) {
-                register(next[0], next[1]);
+                register(next[0], next[1],staffAvatar.getParanValue());
             }
             count += staff.size();
             log.info("import im staff success count:{}", count);
@@ -1057,12 +1054,14 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         }
 
         log.info("------------------------------- import user emps ---------------------------");
+        // TEACHER_DEFAULT_AVATAR
         count = 0;
         page = 1;
+        SysConfig empAvatar = sysConfigService.findByParamName(SysConfigService.TEACHER_DEFAULT_AVATAR);
         List<String[]> emps = getEmp(page, rows);
         while (!emps.isEmpty()) {
             for (String[] next : emps) {
-                register(next[0], next[1]);
+                register(next[0], next[1],empAvatar.getParanValue());
             }
             count += emps.size();
             log.info("import im emps success count:{}", count);
@@ -1073,10 +1072,11 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         log.info("------------------------------- import user teacher ---------------------------");
         count = 0;
         page = 1;
+        SysConfig teacherAvatar = sysConfigService.findByParamName(SysConfigService.TEACHER_DEFAULT_AVATAR);
         List<String[]> teachers = getTeachers(page, rows);
         while (!teachers.isEmpty()) {
             for (String[] next : teachers) {
-                register(next[0], next[1]);
+                register(next[0], next[1], teacherAvatar.getParanValue());
             }
             count += teachers.size();
             log.info("import im teacher success count:{}", count);
@@ -1097,22 +1097,22 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         QueryInfo queryInfo = new QueryInfo();
         queryInfo.setPage(page);
         queryInfo.setRows(rows);
-        PageInfo<Employee> employeePageInfo = employeeService.queryPage(queryInfo);
+        PageInfo<Employee> employeePageInfo = employeeService.queryBaseInfoByPage(queryInfo);
         return employeePageInfo.getRows().stream().map(next -> {
             String[] strList = new String[2];
-            strList[0] = next.getId().toString();
-            strList[1] = "EMPLOYEE";
+            strList[0] = next.getUserId().toString();
+            strList[1] = "SYSTEM";
             return strList;
         }).collect(Collectors.toList());
     }
 
     private List<String[]> getStaff(int page, int rows) {
-        Page<SchoolStaffWrapper.SchoolStaff> staffPage = PageUtil.getPage(page, rows);
-        IPage<SchoolStaffWrapper.SchoolStaff> iPage = schoolStaffService.selectPage(staffPage,
+        IPage<SchoolStaffWrapper.SchoolStaff> staffPage = PageUtil.getPage(page, rows);
+        IPage<SchoolStaffWrapper.SchoolStaff> iPage = schoolStaffService.selectBaseInfoByPage(staffPage,
                 new SchoolStaffWrapper.SchoolStaffQuery());
         return iPage.getRecords().stream().map(next -> {
             String[] strList = new String[2];
-            strList[0] = next.getId().toString();
+            strList[0] = next.getUserId().toString();
             strList[1] = "SCHOOL";
             return strList;
         }).collect(Collectors.toList());
@@ -1122,10 +1122,10 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         QueryInfo queryInfo = new QueryInfo();
         queryInfo.setPage(page);
         queryInfo.setRows(rows);
-        PageInfo<Student> studentPageInfo = studentService.queryPage(queryInfo);
+        PageInfo<Student> studentPageInfo = studentService.queryBaseInfoByPage(queryInfo);
         return studentPageInfo.getRows().stream().map(next -> {
             String[] strList = new String[2];
-            strList[0] = next.getId().toString();
+            strList[0] = next.getUserId().toString();
             strList[1] = "STUDENT";
             return strList;
         }).collect(Collectors.toList());
@@ -1135,7 +1135,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
         QueryInfo queryInfo = new QueryInfo();
         queryInfo.setPage(page);
         queryInfo.setRows(rows);
-        PageInfo<Teacher> teacherPageInfo = teacherService.queryPage(queryInfo);
+        PageInfo<Teacher> teacherPageInfo = teacherService.queryBaseInfoByPage(queryInfo);
         return teacherPageInfo.getRows().stream().map(next -> {
             String[] strList = new String[2];
             strList[0] = next.getId().toString();

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolStaffServiceImpl.java

@@ -797,4 +797,12 @@ public class SchoolStaffServiceImpl extends ServiceImpl<SchoolStaffMapper, Schoo
         sysUserFeignService.exitByPhone("education", sysUser.getPhone());
         return super.updateById(entity);
     }
+
+
+    @Override
+    public IPage<SchoolStaffWrapper.SchoolStaff> selectBaseInfoByPage(IPage<SchoolStaffWrapper.SchoolStaff> page,
+                                                                      SchoolStaffWrapper.SchoolStaffQuery query) {
+        List<SchoolStaffWrapper.SchoolStaff> schoolStaffs = baseMapper.selectBaseInfoByPage(page, query);
+        return page.setRecords(schoolStaffs);
+    }
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -23,6 +23,7 @@ import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
@@ -30,6 +31,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -1671,4 +1673,26 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         student.setIsNewUser(true);
         studentDao.insert(student);
     }
+
+
+    @Override
+    public PageInfo<Student> queryBaseInfoByPage(QueryInfo queryInfo) {
+        PageInfo<Student> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<Student> dataList = new ArrayList<>();
+        int count = queryBaseInfoCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentDao.queryBaseInfoByPage(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    private int queryBaseInfoCount(Map<String, Object> params) {
+        return studentDao.queryBaseInfoCount(params);
+    }
 }

+ 21 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -817,4 +817,25 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher> implem
         return teacherDao.queryOrganList(userId);
     }
 
+    @Override
+    public PageInfo<Teacher> queryBaseInfoByPage(QueryInfo queryInfo) {
+        PageInfo<Teacher> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<Teacher> dataList = new ArrayList<>();
+        int count = queryBaseInfoByCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = teacherDao.queryBaseInfoByPage(params);
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    private int queryBaseInfoByCount(Map<String, Object> params) {
+        return teacherDao.queryBaseInfoByCount(params);
+    }
+
 }

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -453,4 +453,13 @@
             </if>
         </where>
     </sql>
+
+    <select id="queryBaseInfoByPage" resultMap="Employee" parameterType="map">
+        SELECT * FROM employee
+        <include refid="global.limit"/>
+    </select>
+
+    <select id="queryBaseInfoByCount" resultType="int">
+        SELECT COUNT(*) FROM employee
+    </select>
 </mapper>

+ 17 - 0
mec-biz/src/main/resources/config/mybatis/SchoolStaffMapper.xml

@@ -87,6 +87,23 @@
         </where>
 
     </select>
+
+    <select id="selectBaseInfoByPage" resultType="com.ym.mec.biz.dal.wrapper.SchoolStaffWrapper$SchoolStaff">
+        SELECT t1.id_
+        , t1.organ_id_list_                   as organId
+        , t1.school_id_
+        , t1.user_id_
+        , t1.user_type_
+        , t1.tenant_id_
+        , t1.organ_id_list_
+        , t2.username_ AS username
+        , t2.avatar_
+        , t2.phone_                           AS mobile
+        , t1.status_
+        , t1.create_time_
+        FROM school_staff t1
+        JOIN sys_user t2 ON (t1.user_id_ = t2.id_)
+    </select>
     <!--学校员工身份数统计-->
 
 </mapper>

+ 12 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -1421,4 +1421,16 @@
         </foreach>
 
     </select>
+
+    <select id="queryBaseInfoByPage" resultMap="Student" parameterType="map">
+        SELECT s.*,su.username_,su.phone_ FROM student s
+        LEFT JOIN sys_user su ON  su.id_ = s.user_id_
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryBaseInfoCount" resultType="int">
+        SELECT COUNT(s.user_id_) FROM student s
+        LEFT JOIN sys_user su ON  su.id_ = s.user_id_
+    </select>
 </mapper>

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -1575,4 +1575,18 @@
         WHERE id_ = #{userId} LIMIT 1
     </select>
 
+    <select id="queryBaseInfoByPage" resultMap="Teacher" parameterType="map">
+        SELECT t.id_,su.real_name_,su.lock_flag_,t.subject_id_,su.phone_,t.organ_id_
+        teacher_organ_id_,t.organ_id_,t.is_support_extra_practice_lesson_,t.dept_id_,t.dept_ids_,t.post_dept_ids_,
+        t.job_nature_,t.demission_date_,t.formal_staff_date_,t.is_probation_period_,t.memo_,su.del_flag_,t.is_settlement_salary_
+        FROM teacher t
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        ORDER BY t.id_ DESC
+        <include refid="global.limit"/>
+    </select>
+
+    <select id="queryBaseInfoByCount" resultType="int">
+        SELECT COUNT(DISTINCT t.id_)
+        FROM teacher t LEFT JOIN sys_user su ON t.id_ = su.id_
+    </select>
 </mapper>

+ 4 - 0
mec-common/audit-log/src/main/java/com/yonge/log/dal/model/HistoryMessageTencent.java

@@ -67,4 +67,8 @@ public class HistoryMessageTencent implements Serializable {
 
     @Field("msg_body_json")
     private JSONArray msgBodyJson;
+
+
+    @Field("json_flag")
+    private Integer jsonFlag;
 }

+ 4 - 0
mec-common/audit-log/src/main/java/com/yonge/log/service/HistoryMessageTenantService.java

@@ -19,4 +19,8 @@ public interface HistoryMessageTenantService extends BaseServiceWithMongo<String
     PageInfo<HistoryMessageTencentWrapper.HistoryMessageTencent> historyMessage(HistoryMessageTencentWrapper.HistoryMessageTencentQuery query);
 
     void deleteOld();
+
+    int initMsgBodyJsonCount();
+
+    void initMsgBodyJson(int page, int size);
 }

+ 34 - 7
mec-common/audit-log/src/main/java/com/yonge/log/service/impl/HistoryMessageTenantServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yonge.log.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.yonge.log.dal.dao.HistoryMessageTenantDao;
 import com.yonge.log.dal.dao.OperationLogDao;
 import com.yonge.log.dal.model.HistoryMessage;
@@ -74,6 +75,32 @@ public class HistoryMessageTenantServiceImpl extends BaseServiceImplWithMongo<St
         mongoTemplate.remove(query,HistoryMessageTencent.class);
     }
 
+    @Override
+    public int initMsgBodyJsonCount() {
+        Query query = new Query();
+        Criteria criteria = Criteria.where("msg_body_json").is(null).orOperator(Criteria.where("json_flag").is(0),Criteria.where("syncFlag").is(null));
+        query.addCriteria(criteria);
+        return Long.valueOf(mongoTemplate.count(query,HistoryMessageTencent.class)).intValue();
+    }
+
+    @Override
+    public void initMsgBodyJson(int page, int size) {
+        Query query = new Query();
+        Criteria criteria = Criteria.where("msg_body_json").is(null).orOperator(Criteria.where("json_flag").is(0),Criteria.where("syncFlag").is(null));
+        query.addCriteria(criteria);
+        query.skip(page).limit(size);
+        List<HistoryMessageTencent> historyMessageTencents = mongoTemplate.find(query, HistoryMessageTencent.class);
+        for (HistoryMessageTencent historyMessageTencent : historyMessageTencents) {
+            historyMessageTencent.setJsonFlag(1);
+            try {
+                historyMessageTencent.setMsgBodyJson(JSON.parseArray(historyMessageTencent.getMsgBody()));
+            } catch (Exception e) {
+                historyMessageTencent.setMsgBodyJson(new JSONArray());
+            }
+            mongoTemplate.save(historyMessageTencent);
+        }
+    }
+
     private static Query getQuery(HistoryMessageTencentWrapper.HistoryMessageTencentQuery param) {
         Query query = new Query();
         Criteria criteria = new Criteria();
@@ -105,16 +132,16 @@ public class HistoryMessageTenantServiceImpl extends BaseServiceImplWithMongo<St
         if (StringUtils.isNotBlank(param.getAppService())) {
             criteria.and("app_service").is(param.getAppService());
         }
+        Pattern pattern = Pattern.compile(".*", Pattern.CASE_INSENSITIVE);
         if (StringUtils.isNotBlank(param.getKeyword())) {
+            pattern = Pattern.compile(".*" + param.getKeyword() + ".*", Pattern.CASE_INSENSITIVE);
+        }
 
-// 创建正则表达式模式,以匹配 Text 字段中包含搜索关键词的部分
-            Pattern pattern = Pattern.compile(".*" + param.getKeyword() + ".*", Pattern.CASE_INSENSITIVE);
+        criteria.and("msg_body_json").elemMatch(
+            Criteria.where("MsgContent.Text").regex(pattern)
+                .and("MsgType").is("TIMTextElem")
+        );
 
-            criteria.and("msg_body_json").elemMatch(
-                Criteria.where("MsgContent.Text").regex(pattern)
-                    .and("MsgType").is("TIMTextElem")
-            );
-        }
         query.addCriteria(criteria);
         query.with(Sort.by(Sort.Order.asc("msg_timestamp"))); // 以升序方式按字段排序
 

+ 1 - 9
mec-common/audit-log/src/main/java/com/yonge/log/wrapper/HistoryMessageTencentWrapper.java

@@ -64,7 +64,7 @@ public class HistoryMessageTencentWrapper {
     public static class HistoryMessageTencent implements Serializable {
 
 
-        @ApiModelProperty("发送日期")
+        @ApiModelProperty(value = "发送日期")
         private Long msgTime;
 
         @ApiModelProperty("类型C2C:单聊,GROUP:群聊")
@@ -73,11 +73,9 @@ public class HistoryMessageTencentWrapper {
         @ApiModelProperty("客户端IP")
         private String clientIp;
 
-        @JSONField(name = "CloudCustomData")
         @ApiModelProperty("自定义数据")
         private String cloudCustomData;
 
-        @JSONField(name = "From_Account")
         @ApiModelProperty("发送人")
         private String fromAccount;
 
@@ -88,27 +86,21 @@ public class HistoryMessageTencentWrapper {
         private String msgFromPlatform;
 
         @ApiModelProperty("消息随机数")
-        @JSONField(name = "MsgRandom")
         private Long msgRandom;
 
         @ApiModelProperty("消息序列号")
-        @JSONField(name = "MsgSeq")
         private Long msgSeq;
 
         @ApiModelProperty("消息时间戳")
-        @JSONField(name = "MsgTimeStamp")
         private Long msgTimestamp;
 
         @ApiModelProperty("接收人")
-        @JSONField(name = "To_Account")
         private String toAccount;
 
         @ApiModelProperty("群ID")
-        @JSONField(name = "GroupId")
         private String groupId;
 
         @ApiModelProperty("消息内容")
-        @JSONField(name = "MsgBody")
         private String msgBody;
 
     }

+ 2 - 1
mec-im/src/main/java/com/ym/controller/PrivateController.java

@@ -1,5 +1,6 @@
 package com.ym.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.middleware.common.http.ImageUtil;
 import com.microsvc.toolkit.middleware.im.ImPluginContext;
@@ -106,7 +107,7 @@ public class PrivateController {
             }
         }
         Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build);
-        log.info("privateMessage send ret:{}", ret);
+        log.info("privateMessage send ret:{}, service={}, content={}", ret, imPluginContext.defaultService(), JSON.toJSONString(build));
 
         return true;
     }