Browse Source

Merge remote-tracking branch 'origin/feature/0427-school' into feature/0427-school

zouxuan 1 year ago
parent
commit
c2588f63db
22 changed files with 258 additions and 178 deletions
  1. 68 51
      .idea/httpRequests/http-requests-log.http
  2. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java
  3. 8 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  4. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java
  5. 65 43
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java
  6. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java
  8. 7 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java
  9. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java
  10. 8 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  11. 52 43
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  12. 3 3
      mec-biz/src/main/resources/config/mybatis/CoursePatrolEvaluationMapper.xml
  13. 2 3
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  14. 4 3
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  15. 4 3
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  16. 14 0
      mec-student/src/main/java/com/ym/mec/student/controller/ActivityController.java
  17. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java
  18. 7 7
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  19. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  20. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java
  21. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduOrganizationController.java
  22. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EduRegisterController.java

+ 68 - 51
.idea/httpRequests/http-requests-log.http

@@ -1,3 +1,71 @@
+POST http://127.0.0.1:8005/open/school/staffSave
+Content-Type: application/json
+coopId: 19
+tenantId: 1
+Content-Length: 129
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "schoolId": 3,
+  "userType": "ORCHESTRA_LEADER",
+  "username": "测试113",
+  "mobile": "19900990114",
+  "smsCode" : 666666
+}
+
+<> 2023-05-29T183339.200.json
+
+###
+
+GET http://127.0.0.1:8005/imGroup/queryGroupMemberList?imGroupId=62
+Content-Type: application/json
+Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+<> 2023-05-29T182845.200.json
+
+###
+
+POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
+Authorization: bearer 9e3a8ca3-b369-485a-aae0-5cdf17d46e61
+Content-Type: application/json
+coopId: 12
+Content-Length: 58
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "startTime": "2023-01-01",
+  "endTime": "2024-04-04"
+}
+
+<> 2023-05-29T182738.200.json
+
+###
+
+POST http://127.0.0.1:8005/coursePatrolEvaluation/pageStat
+Authorization: bearer 703c9711-ca6d-45c3-9583-34d7b9d86705
+Content-Type: application/json
+coopId: 12
+Content-Length: 58
+Connection: Keep-Alive
+User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
+Accept-Encoding: br,deflate,gzip,x-gzip
+
+{
+  "startTime": "2023-01-01",
+  "endTime": "2024-04-04"
+}
+
+<> 2023-05-29T182713.200.json
+
+###
+
 GET http://127.0.0.1:8005/schoolStaff/cooperation
 Authorization: bearer 66862b1d-938b-467e-b7c9-65f77f0e7347
 tenantId: 1
@@ -561,54 +629,3 @@ Accept-Encoding: br,deflate,gzip,x-gzip
 
 ###
 
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T184412.200.json
-
-###
-
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T183529.200.json
-
-###
-
-POST http://127.0.0.1:8005/imLiveBroadcastRoomMember/queryRoomMember
-Content-Type: application/json
-Authorization: bearer 70c30cec-f77c-4871-beaa-ce4b5224bf3e
-Content-Length: 59
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-{"rows":10,"page":1,"roomUid":"LIVE-2248475-1683777517444"}
-
-<> 2023-05-12T183456.200.json
-
-###
-
-GET http://127.0.0.1:9001/open/liveBroadcastRoom/visitorRoomInfo?roomUid=LIVE-2248475-1683777517444&userId=10001
-Proxy-Connection: Keep-Alive
-User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.6)
-Accept-Encoding: br,deflate,gzip,x-gzip
-
-<> 2023-05-11T204659.200.json
-
-###
-

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java

@@ -129,6 +129,9 @@ public class VipGroupActivity{
 	@ApiModelProperty(value = "线下课是否参与梯度奖励")
 	private Integer offlineClassJoinGradientRewards = 0;
 
+	@ApiModelProperty(value = "是否固定课程数量")
+	private Boolean fixedCourseNumFlag = false;
+
 	@ApiModelProperty(value = "最少课程数量")
 	private Integer minCourseNum = -1;
 
@@ -180,5 +183,8 @@ public class VipGroupActivity{
 	@ApiModelProperty(value = "单价")
 	private BigDecimal singlePrice;
 
+	@ApiModelProperty(value = "活动价用于前端展示")
+	private BigDecimal displayPrice;
+
 	private Integer tenantId = TenantContextHolder.getTenantId();
 }

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

@@ -1303,7 +1303,7 @@ public class ExportServiceImpl implements ExportService {
     public void musicGroupRegister(HttpServletResponse response, ExportDto exportDto) throws IOException {
         String organIds = getParam(exportDto.getQueryInfo(), "organIds", String.class);
         SysUser sysUser = sysUserService.getUser();
-        organIds = organizationService.getEmployeeOrgan(sysUser.getId(), organIds, sysUser.getIsSuperAdmin());
+        organIds = organizationService.getEmployeeOrgan(sysUser.getId(), organIds, sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         List<MusicGroupStatusEnum> musicGroupStatusList = new ArrayList<>();
         musicGroupStatusList.add(MusicGroupStatusEnum.APPLY);
         musicGroupStatusList.add(MusicGroupStatusEnum.PAY);
@@ -1404,7 +1404,7 @@ public class ExportServiceImpl implements ExportService {
     public HttpResponseResult routeOrderList(Map<String, Object> info) {
         StudentPaymentOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), StudentPaymentOrderQueryInfo.class);
         SysUser sysUser = sysUserService.getUser();
-        queryInfo.setRoutingOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getRoutingOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setRoutingOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getRoutingOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         if (StringUtils.isNotBlank(queryInfo.getSearch())) {
             List<BasicUserDto> users = studentPaymentOrderService.getDao().getUsers(queryInfo.getSearch());
             List<Integer> userIds = users.stream().map(BasicUserDto::getUserId).collect(Collectors.toList());
@@ -1434,7 +1434,7 @@ public class ExportServiceImpl implements ExportService {
     public HttpResponseResult routeMallOrderList(Map<String, Object> info) {
         StudentPaymentOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), StudentPaymentOrderQueryInfo.class);
         SysUser sysUser = sysUserService.getUser();
-        queryInfo.setRoutingOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getRoutingOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setRoutingOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getRoutingOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         if (StringUtils.isNotBlank(queryInfo.getSearch())) {
             List<BasicUserDto> users = studentPaymentOrderService.getDao().getUsers(queryInfo.getSearch());
             List<Integer> userIds = users.stream().map(BasicUserDto::getUserId).collect(Collectors.toList());
@@ -1491,7 +1491,7 @@ public class ExportServiceImpl implements ExportService {
     @Override
     public HttpResponseResult exportVipStudentCourseManage(Map<String, Object> info) {
         SysUser sysUser = sysUserService.getUser();
-        String organId = organizationService.getEmployeeOrgan(sysUser.getId(), getParam(info, "organId", String.class), sysUser.getIsSuperAdmin());
+        String organId = organizationService.getEmployeeOrgan(sysUser.getId(), getParam(info, "organId", String.class), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         ManagerDownload managerDownload = saveManagerDownload(ExportTypeEnum.VIP_STUDENT_COURSE_MANAGE, sysUser.getId());
         Integer tenantId = TenantContextHolder.getTenantId();
         return this.asyncExport(() -> this.queryVipStudentCourseManage(organId, tenantId, managerDownload, ExportEnum.VIP_STUDENT_COURSE_MANAGE),
@@ -1501,7 +1501,7 @@ public class ExportServiceImpl implements ExportService {
     @Override
     public HttpResponseResult exportStudentSubCourse(Map<String, Object> info) {
         SysUser sysUser = sysUserService.getUser();
-        String organId = organizationService.getEmployeeOrgan(sysUser.getId(), getParam(info, "organId", String.class), sysUser.getIsSuperAdmin());
+        String organId = organizationService.getEmployeeOrgan(sysUser.getId(), getParam(info, "organId", String.class), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         Integer tenantId = TenantContextHolder.getTenantId();
         List<ExportStudentSubCourse> rows = activityUserMapperService.exportStudentSubCourse(organId, tenantId);
         this.checkRows(rows);
@@ -1667,7 +1667,7 @@ public class ExportServiceImpl implements ExportService {
     public HttpResponseResult orderList(Map<String, Object> info) {
         StudentPaymentOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), StudentPaymentOrderQueryInfo.class);
         SysUser sysUser = sysUserService.getUser();
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         if (StringUtils.isNotBlank(queryInfo.getSearch())) {
             List<BasicUserDto> users = studentPaymentOrderService.getDao().getUsers(queryInfo.getSearch());
             List<Integer> userIds = users.stream().map(BasicUserDto::getUserId).collect(Collectors.toList());
@@ -1695,7 +1695,7 @@ public class ExportServiceImpl implements ExportService {
     public HttpResponseResult mallOrderList(Map<String, Object> info) {
         StudentPaymentOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), StudentPaymentOrderQueryInfo.class);
         SysUser sysUser = sysUserService.getUser();
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         if (StringUtils.isNotBlank(queryInfo.getSearch())) {
             List<BasicUserDto> users = studentPaymentOrderService.getDao().getUsers(queryInfo.getSearch());
             List<Integer> userIds = users.stream().map(BasicUserDto::getUserId).collect(Collectors.toList());
@@ -1724,7 +1724,7 @@ public class ExportServiceImpl implements ExportService {
     public HttpResponseResult orderListSum(Map<String, Object> info) {
         StudentPaymentOrderQueryInfo queryInfo = JSONObject.parseObject(JSONObject.toJSONString(info), StudentPaymentOrderQueryInfo.class);
         SysUser sysUser = sysUserService.getUser();
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         if (StringUtils.isNotBlank(queryInfo.getSearch())) {
             List<BasicUserDto> users = studentPaymentOrderService.getDao().getUsers(queryInfo.getSearch());
             List<Integer> userIds = users.stream().map(BasicUserDto::getUserId).collect(Collectors.toList());

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

@@ -187,6 +187,7 @@ public class ImGroupServiceImpl extends BaseServiceImpl<String, ImGroup> impleme
 
         for (ImGroupMemberDto imGroupMemberDto : imGroupMemberDtos) {
             imGroupMemberDto.setType(EFriendRoleType.getByName(imGroupMemberDto.getRoleType()).name());
+            imGroupMemberDto.getUser().setUsername(imGroupMemberDto.getGroupNickname());
         }
         return imGroupMemberDtos;
     }

+ 65 - 43
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImUserFriendServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.EFriendRoleType;
@@ -195,6 +196,17 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         });
 
 
+        if(imUserFriends.size() > 0){
+            batchInsert(imUserFriends);
+        }
+        //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
+        imUserFriendDao.updateNullNickName();
+//		},executor);
+//		executor.shutdown();
+    }
+
+    private SchoolStaff getSchoolOrchestraLeaderByMusicGroupId(String musicGroupId){
+
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         // 更新学校端乐团主管的群好友列表
         if (musicGroup != null && musicGroup.getCooperationOrganId() != null) {
@@ -202,50 +214,10 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             List<SchoolStaff> schoolStaffs = schoolStaffMapper.getByCoopIdAndType(musicGroup.getCooperationOrganId(), ESchoolStaffType.ORCHESTRA_LEADER);
 
             if (CollectionUtils.isNotEmpty(schoolStaffs)) {
-                SchoolStaff schoolStaff = schoolStaffs.get(0);
-                // 群组ID集合
-                List<String> imGroupIds = new ArrayList<>();
-//                imGroupIds.add(musicGroupId);
-                if (CollectionUtils.isNotEmpty(classGroups)) {
-                    imGroupIds.addAll(classGroups.stream().map(o -> o.getId().toString()).collect(Collectors.toList()));
-
-                    // 获取乐团群的人员列表
-                    List<ImGroupMember> memberList = imGroupMemberDao.getByGroupId(imGroupIds);
-                    if (CollectionUtils.isNotEmpty(memberList)) {
-                        Long staffUserId = schoolStaff.getUserId();
-                        // 设置角色
-                        memberList = memberList.stream().map(o -> {
-                            if (StringUtils.isBlank(o.getRoleType())) {
-                                o.setRoleType(EFriendRoleType.STUDENT.name());
-                            } else {
-                                o.setRoleType(EFriendRoleType.getByName(o.getRoleType()).name());
-                            }
-                            return o;
-                        }).collect(Collectors.toList());
-
-                        // ID toMap roleType
-                        Map<Integer, String> roleTypeMap = memberList.stream().collect(Collectors.toMap(ImGroupMember::getUserId, ImGroupMember::getRoleType, (k1, k2) -> k2));
-
-
-                        Set<Integer> userIds = memberList.stream().map(ImGroupMember::getUserId)
-                                .collect(Collectors.toSet());
-                        userFriends(imUserFriends, musicGroup, staffUserId, userIds, roleTypeMap);
-                    }
-                }
+                return schoolStaffs.get(0);
             }
-            // 更新学校端好友列表
-            imUserFriends.addAll(schoolStaffFriend(musicGroup.getCooperationOrganId()));
-
-        }
-
-
-        if(imUserFriends.size() > 0){
-            batchInsert(imUserFriends);
         }
-        //更新用户朋友昵称是空的历史数据(线上没有发现这种问题)
-        imUserFriendDao.updateNullNickName();
-//		},executor);
-//		executor.shutdown();
+        return null;
     }
 
     @Override
@@ -273,18 +245,23 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
     public List<ImUserFriend> saveImUserFriends(Set<Integer> studentIds,Set<Integer> teacherIds,GroupType groupType,String musicGroupId){
         List<ImUserFriend> imUserFriends = new ArrayList<>();
         Set<Integer> educationIds = new HashSet<>();
+        Set<Integer> schoolStaffIds = new HashSet<>();
+        SchoolStaff schoolStaff = null;
         Integer repairUserId = null;
         String repairUserName = null;
+        Integer musicGroupLeader = null;
         MusicGroup musicGroup = new MusicGroup();
         //获取当前学员声部
         Map<Integer,String> studentSubjectName = new HashMap<>();
         Map<Integer, String> teacherSubjectNameMap = new HashMap<>();
+        Map<Integer, String> schoolStaffRealNameMap = new HashMap<>();
         if(teacherIds.size() > 0){
             teacherSubjectNameMap = MapUtil.convertIntegerMap(teacherDao.querySubjectNameByIdList(new ArrayList<>(teacherIds)));
         }
         if(groupType == MUSIC){
             //学员关联乐团管理人员通讯录
             musicGroup = musicGroupDao.get(musicGroupId);
+            musicGroupLeader= musicGroup.getDirectorUserId();
             educationIds.add(musicGroup.getDirectorUserId());
             educationIds.add(musicGroup.getEducationalTeacherId());
             educationIds.add(musicGroup.getTeamTeacherId());
@@ -295,6 +272,12 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             if(studentIds.size() > 0){
                 studentSubjectName = MapUtil.convertMybatisMap(studentRegistrationDao.getStudentSubjectNameByStuIds(musicGroup.getId(),studentIds));
             }
+
+            //学校乐团领队关联 乐团管理人员、教务、学员
+            schoolStaff = getSchoolOrchestraLeaderByMusicGroupId(musicGroupId);
+            if (schoolStaff != null) {
+                schoolStaffIds.add(schoolStaff.getUserId().intValue());
+            }
         }else if(groupType == VIP){
             VipGroup vipGroup = vipGroupDao.get(Long.parseLong(musicGroupId));
             educationIds.add(vipGroup.getEducationalTeacherId());
@@ -317,12 +300,18 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
         if(educationIds.size() > 0){
             educationRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(educationIds)));
         }
+        if (schoolStaffIds.size() > 0) {
+             schoolStaffRealNameMap = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(schoolStaffIds)));
+
+        }
         //老师关联教务、学员
         for (Integer teacherId : teacherIds) {
             //老师关联学员
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),teacherId,imUserFriends);
             //老师关联教务
             this.addImUserFriend(educationIds,null,educationRealNameMap,null,teacherId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,teacherId,imUserFriends);
         }
         //教务关联的老师、学员
         for (Integer educationId : educationIds) {
@@ -330,6 +319,8 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),educationId,imUserFriends);
             //教务关联老师
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),educationId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,educationId,imUserFriends);
         }
         //学员关联的老师、教务、维修技师
         for (Integer studentId : studentIds) {
@@ -337,9 +328,11 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
             this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName(),studentId,imUserFriends);
             //学员关联的教务
             this.addImUserFriend(educationIds,null,educationRealNameMap,null,studentId,imUserFriends);
+            //老师关联学校乐团领队
+            this.addImUserFriend(schoolStaffIds,null,schoolStaffRealNameMap,null,studentId,imUserFriends);
             //学员关联维修技师
             if(repairUserId != null){
-                if(repairUserId == studentId){
+                if(repairUserId.equals(studentId)){
                     continue;
                 }
                 ImUserFriend imUserFriend = new ImUserFriend();
@@ -351,6 +344,29 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
                 imUserFriends.add(imUserFriend);
             }
         }
+
+        if(schoolStaff != null){
+            //学校乐团领队关联乐团管理人员
+            this.addImUserFriend(teacherIds,teacherSubjectNameMap,teacherRealNameMap,musicGroup.getName()
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_TEACHER.name());
+            //学校乐团领队关联教务
+            this.addImUserFriend(Sets.newHashSet(musicGroupLeader),null,educationRealNameMap,null
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.ORCHESTRA_MANAGER.name());
+            //学校乐团领队关联学员
+            this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName()
+                    ,schoolStaff.getId().intValue(),imUserFriends,EFriendRoleType.STUDENT.name());
+            //学员关联维修技师
+            if(repairUserId != null){
+                ImUserFriend imUserFriend = new ImUserFriend();
+                imUserFriend.setUserId(schoolStaff.getUserId().intValue());
+                imUserFriend.setFriendId(repairUserId);
+                imUserFriend.setFriendNickname(repairUserName);
+                imUserFriend.setMemo(musicGroup.getName());
+                imUserFriend.setTags("维修技师");
+                imUserFriend.setRoleType(EFriendRoleType.MAINTENANCE_TECHNICIAN.name());
+                imUserFriends.add(imUserFriend);
+            }
+        }
         //维修技师关联学员
         if(repairUserId != null){
             this.addImUserFriend(studentIds,studentSubjectName,usernameMap,musicGroup.getName(),repairUserId,imUserFriends);
@@ -446,8 +462,13 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
 
     }
 
+
     public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
                                 Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends){
+        addImUserFriend(friendUserIds,tagsMap,nameMap,memo,userId,imUserFriends,"");
+    }
+    public void addImUserFriend(Set<Integer> friendUserIds,Map<Integer,String> tagsMap,
+                                Map<Integer,String> nameMap,String memo,Integer userId,List<ImUserFriend> imUserFriends,String roleType){
         if(friendUserIds != null && friendUserIds.size() > 0){
             for (Integer friendId : friendUserIds) {
                 if(userId == friendId){
@@ -458,6 +479,7 @@ public class ImUserFriendServiceImpl extends BaseServiceImpl<Long, ImUserFriend>
                 imUserFriend.setFriendId(friendId);
                 imUserFriend.setFriendNickname(nameMap.get(friendId));
                 imUserFriend.setMemo(memo);
+                imUserFriend.setRoleType(roleType);
                 if(tagsMap != null){
                     imUserFriend.setTags(tagsMap.get(friendId));
                 }

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

@@ -2287,13 +2287,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("申请失败,存在[申请中]的记录");
             }
         }
-        if(reqMusicGroupQuit.getStatus() != APPROVED){
+/*        if(reqMusicGroupQuit.getStatus() != APPROVED){
             //是否是特定的可以一键退团的乐团主管
             Boolean hasRole = employeePositionService.getDao().hasRole("一键退团",operatorId,reqMusicGroupQuit.getTenantId());
             if(hasRole){
                 reqMusicGroupQuit.setStatus(APPROVED);
             }
-        }
+        }*/
 
         musicGroupQuit = new MusicGroupQuit();
         musicGroupQuit.setCreateTime(new Date());

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java

@@ -165,7 +165,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	@Override
     public <T extends EducationBaseQueryInfo> T onlyEducation(T queryInfo) {
 		SysUser sysUser = sysUserService.getUser();
-		queryInfo.setOrganIds(this.getEmployeeOrgan(sysUser.getId(),queryInfo.getOrganIds(),sysUser.getIsSuperAdmin()));
+		queryInfo.setOrganIds(this.getEmployeeOrgan(sysUser.getId(),queryInfo.getOrganIds(),sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
 		Boolean onlyForRole = employeePositionService.onlyForRole(EDUCATION, sysUser.getId(), sysUser.getIsSuperAdmin());
 		//如果当前用户只有教务老师角色,那么只能看到他所管理的课程组的信息
 		if (onlyForRole) {

+ 7 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -3900,7 +3900,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         BigDecimal totalPrice = BigDecimal.ZERO;
         if (practice.getAllCourseNum() != null) {
             BigDecimal onlineClassNum = new BigDecimal(practice.getAllCourseNum());
-            totalPrice = practiceGroupSellPrice.getSingleClassMinutesPrice().multiply(onlineClassNum);
+            totalPrice = practiceGroupSellPrice.getSingleClassMinutesPrice().multiply(onlineClassNum).setScale(0, BigDecimal.ROUND_CEILING);
         }
 
         //课程购买费用计算
@@ -3914,7 +3914,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
             salarySettlement = vipGroupSalarySettlementDto.getPracticeSalarySettlement();
             givePracticeSalarySettlement = vipGroupSalarySettlementDto.getGivePracticeSalarySettlement();
-            totalPrice = totalPrice.multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, ROUND_DOWN);
+            if(vipGroupActivity.getFixedCourseNumFlag()){
+                totalPrice = vipGroupActivity.getMarketPrice();
+            }else {
+                totalPrice = totalPrice.multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, ROUND_DOWN).setScale(0, BigDecimal.ROUND_CEILING);
+            }
         }
         //教师课酬线上单课酬计算
         teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
@@ -3930,7 +3934,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
         }
 
-        results.put("totalPrice", totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
+        results.put("totalPrice", totalPrice);
         results.put("onlineTeacherSalary", teacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
         results.put("giveTeacherDefaultSalary", giveTeacherDefaultSalary.setScale(2, BigDecimal.ROUND_HALF_UP));
         return results;

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java

@@ -202,6 +202,7 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
             if(studentPaymentRouteOrder.getSchoolId() != null) {
                 studentPaymentOrder.setMusicGroupId(studentPaymentRouteOrder.getSchoolId() + "");
             }
+            studentPaymentOrder.setCalenderId(studentPaymentRouteOrder.getCalenderId());
             studentPaymentOrder.setType(studentPaymentRouteOrder.getType());
             studentPaymentOrder.setMerNos(studentPaymentRouteOrder.getMerNo());
             studentPaymentOrder.setOrderNo(studentPaymentRouteOrder.getOrderNo());

+ 8 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -608,9 +608,14 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 			}
 		}
 		//计算支付金额
-		BigDecimal actualAmount = this.getActivityPrice(vipGroupActivity,payParam.getOrganId(),new BigDecimal(1));
-		actualAmount = actualAmount.multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), 0, ROUND_UP);
-		actualAmount = actualAmount.multiply(new BigDecimal(payParam.getBuyNum()));
+		BigDecimal actualAmount;
+		if(vipGroupActivity.getFixedCourseNumFlag()){
+			actualAmount = vipGroupActivity.getMarketPrice();
+		}else {
+			actualAmount = this.getActivityPrice(vipGroupActivity,payParam.getOrganId(),new BigDecimal(1));
+			actualAmount = actualAmount.multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), 0, ROUND_UP);
+			actualAmount = actualAmount.multiply(new BigDecimal(payParam.getBuyNum()));
+		}
 		// 判断是否存在支付中的记录
 		List<StudentPaymentOrder> list = studentPaymentOrderService
 				.queryByCondition(GroupType.ACTIVITY,

+ 52 - 43
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -2,8 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
-import static java.math.BigDecimal.ROUND_DOWN;
-import static java.math.BigDecimal.ZERO;
+import static java.math.BigDecimal.*;
 
 import java.math.BigDecimal;
 import java.time.LocalDate;
@@ -1967,6 +1966,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement = null;
         VipGroupSalarySettlementTypeDto giveVipOfflineSalarySettlement = null;
         BigDecimal discount = new BigDecimal(100);
+        BigDecimal totalPrice = null;
         if (vipGroup.getVipGroupActivityId() != null) {
             VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId());
             discount = vipGroupActivity.getDiscount();
@@ -1976,7 +1976,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             }
             vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
             giveVipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
-
+            if(vipGroupActivity.getFixedCourseNumFlag()){
+                totalPrice = vipGroupActivity.getMarketPrice();
+                vipGroup.setTotalPrice(totalPrice);
+            }
             //是否是赠送课程
             ActivityUserMapper activityUserMapper = activityUserMapperService.findVipUserMapper(vipGroup.getId(), "VIP", null);
             if (activityUserMapper != null) {
@@ -1986,35 +1989,35 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                     vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
                 }
             }
-
         }
+        if(totalPrice == null){
+            BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
+            if (Objects.isNull(onlineClassesUnitPrice)) {
+                throw new BizException("课程单价异常");
+            }
+            BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
+            if (Objects.isNull(offlineClassesUnitPrice)) {
+                throw new BizException("课程单价异常");
+            }
+            BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
+            BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
+            BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 
-        BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
-        BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
-        BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
-        if (Objects.isNull(onlineClassesUnitPrice)) {
-            throw new BizException("课程单价异常");
-        }
-        BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
-
-        BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
-        if (Objects.isNull(offlineClassesUnitPrice)) {
-            throw new BizException("课程单价异常");
-        }
-        BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
-        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
-        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
+            BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 
-        //课程购买费用计算
-        BigDecimal totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
-        totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+            //课程购买费用计算
+            totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
+            totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 
-        results.put("totalPrice", totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
-        vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
+            vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
+        }
+        results.put("totalPrice", vipGroup.getTotalPrice());
 
         int normalStudentNum = classGroupStudentMapperDao.countGroupNormalStudentNum(VIP, vipGroup.getId().toString());
 
         //教师线下单课酬计算
+        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
+        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
         if (vipGroupCategory.getMusicTheory()) {
             teacherOfflineSalary = teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(new BigDecimal(normalStudentNum > 5 ? 5 : normalStudentNum)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
         } else {
@@ -2095,6 +2098,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement = null;
         VipGroupSalarySettlementTypeDto giveVipOfflineSalarySettlement = null;
         BigDecimal discount = new BigDecimal(100);
+        BigDecimal totalPrice = null;
         if (vipGroup.getVipGroupActivityId() != null) {
             VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId());
             discount = vipGroupActivity.getDiscount();
@@ -2104,32 +2108,37 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             }
             vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
             giveVipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
+            if(vipGroupActivity.getFixedCourseNumFlag()){
+                totalPrice = vipGroupActivity.getMarketPrice();
+                vipGroup.setTotalPrice(totalPrice);
+            }
         }
+        if(totalPrice == null){
+            BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
+            if (Objects.isNull(onlineClassesUnitPrice)) {
+                throw new BizException("课程单价异常");
+            }
+            BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
+            if (Objects.isNull(offlineClassesUnitPrice)) {
+                throw new BizException("课程单价异常");
+            }
+            BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
+            BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
+            BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 
-        BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
-        BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
-        BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
-        if (Objects.isNull(onlineClassesUnitPrice)) {
-            throw new BizException("课程单价异常");
-        }
-        BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
+            BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 
-        BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
-        if (Objects.isNull(offlineClassesUnitPrice)) {
-            throw new BizException("课程单价异常");
+            //课程购买费用计算
+            totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
+            totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+            vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
         }
-        BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
-        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
-        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
-
-        //课程购买费用计算
-        BigDecimal totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
-        totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 
-        results.put("totalPrice", totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
-        vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
+        results.put("totalPrice", vipGroup.getTotalPrice());
 
         //教师线下单课酬计算
+        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
+        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
         teacherOfflineSalary = teacherDefaultVipGroupSalary.getOfflineClassesSalary();
         if (Objects.nonNull(vipOfflineSalarySettlement)) {
             if (vipOfflineSalarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY) {

+ 3 - 3
mec-biz/src/main/resources/config/mybatis/CoursePatrolEvaluationMapper.xml

@@ -81,9 +81,9 @@
         select
             cs.class_date_ as `date`
             ,count(distinct cs.id_) as `totalCount`
-            ,sum(distinct if(cs.type_ = 'SINGLE',1,0)) as  singleCourseCount
-            ,sum(distinct if(cs.type_ = 'MIX',1,0)) as minCourseCount
-            ,sum(distinct if(cpe.id_ is not null,1,0)) as patrolCount
+            ,sum( if(cs.type_ = 'SINGLE',1,0)) as  singleCourseCount
+            ,sum( if(cs.type_ = 'MIX',1,0)) as minCourseCount
+            ,sum( if(cpe.id_ is not null,1,0)) as patrolCount
         from
             course_schedule cs
             left join music_group mg on mg.id_ = cs.music_group_id_

+ 2 - 3
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -630,14 +630,13 @@
     </select>
     <select id="sumGroupIncomeFee" resultType="java.math.BigDecimal">
         SELECT
-        (CASE WHEN a.a IS NULL THEN 0 ELSE a.a END) +
-        (CASE WHEN c.c IS NULL THEN 0 ELSE c.c END) +
+        (CASE WHEN a.a > 0 THEN a.a ELSE c.c END) +
         (CASE WHEN d.d IS NULL THEN 0 ELSE d.d END) +
         (CASE WHEN e.e IS NULL THEN 0 ELSE e.e END) -
         (CASE WHEN b.b IS NULL THEN 0 ELSE b.b END) amount_
         FROM
         (SELECT SUM(CASE WHEN expect_amount_ IS NULL THEN 0 ELSE expect_amount_ END) a FROM student_payment_order
-         WHERE group_type_ = 'VIP' AND type_ = 'SMALL_CLASS_TO_BUY' AND music_group_id_ = #{vipGroupId} AND status_ = 'SUCCESS') a,
+             WHERE group_type_ = 'VIP' AND type_ = 'SMALL_CLASS_TO_BUY' AND music_group_id_ = #{vipGroupId} AND status_ = 'SUCCESS') a,
         (SELECT SUM(CASE WHEN amount_ IS NULL THEN 0 ELSE amount_ END) b FROM sys_user_cash_account_log WHERE group_id_ = #{vipGroupId} AND group_type_ = 'VIP') b,
         (SELECT SUM(CASE WHEN actual_price_ IS NULL THEN 0 ELSE actual_price_ END) c FROM activity_user_mapper WHERE vip_group_id_ = #{vipGroupId}) c,
         (SELECT SUM(CASE WHEN amount_ IS NULL THEN 0 ELSE amount_ END) d FROM sys_user_cash_account_detail WHERE group_id_ = #{vipGroupId}) d,

+ 4 - 3
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -56,6 +56,7 @@
 		<result property="code" column="code_"/>
 		<result property="activityChannel" column="activity_channel_"/>
 		<result property="originalPrice" column="original_price_"/>
+		<result property="fixedCourseNumFlag" column="fixed_course_num_flag_"/>
         <result column="tenant_id_" property="tenantId"/>
 	</resultMap>
 	
@@ -79,14 +80,14 @@
 										,member_rank_id_,member_time_,give_member_rank_id_,give_member_time_,course_type_,
 		                                activity_type_,give_sign_course_time_,is_pay_to_balance_,teach_mode_,give_teach_mode_,
 		                                period_,give_period_,status_,market_price_,give_allow_online_to_offline_,give_prize_num_,
-		                                activity_channel_,original_price_,tenant_id_,give_coupon_id_,give_coupon_num_)
+		                                activity_channel_,original_price_,tenant_id_,give_coupon_id_,give_coupon_num_,fixed_course_num_flag_)
 		VALUES(#{name},#{description},#{vipGroupCategoryIdList},#{startTime},#{endTime},#{organId},#{coursesStartTime},#{coursesEndTime},
 		       now(),now(),#{salarySettlementJson},#{delFlag},#{onlineClassJoinGradientRewards},
 		       #{offlineClassJoinGradientRewards},#{minCourseNum},#{maxCourseNum},#{studentMaxUsedTimes},#{applyToStudentType},#{allowOnlineToOffline},
 			   #{singleCourseTime},#{discount},#{fullMinusCourseTimes},#{giveCourseType},#{giveCategoryId},#{giveCourseNum}
 				  ,#{memberRankId},#{memberTime},#{giveMemberRankId},#{giveMemberTime},#{courseType},#{activityType},#{giveSingleCourseTime},
 		       #{isPayToBalance},#{teachMode},#{giveTeachMode},#{periodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{givePeriodEnum,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status},
-		       #{marketPrice},#{giveAllowOnlineToOffline},#{givePrizeNum},#{activityChannel},#{originalPrice},#{tenantId},#{giveCouponId},#{giveCouponNum})
+		       #{marketPrice},#{giveAllowOnlineToOffline},#{givePrizeNum},#{activityChannel},#{originalPrice},#{tenantId},#{giveCouponId},#{giveCouponNum},#{fixedCourseNumFlag})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -108,7 +109,7 @@
 		allow_online_to_offline_=#{allowOnlineToOffline},end_time_ = #{endTime},market_price_ = #{marketPrice},update_time_ = NOW(),
 		give_allow_online_to_offline_ = #{giveAllowOnlineToOffline},
 		give_prize_num_ = #{givePrizeNum},activity_channel_ = #{activityChannel},original_price_ = #{originalPrice} ,
-									  give_coupon_id_ = #{giveCouponId} ,give_coupon_num_ = #{giveCouponNum}
+									  give_coupon_id_ = #{giveCouponId} ,give_coupon_num_ = #{giveCouponNum},fixed_course_num_flag_ = #{fixedCourseNumFlag}
 		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
 	</update>
 

+ 4 - 3
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -381,11 +381,12 @@ public class RoomServiceImpl implements RoomService {
 
         // 课程人数
         {
-            int studentNums = 1;
+            // 当前教室人数
+            int studentNums = courseScheduleStudentPaymentDao.findByCourseSchedule(Long.parseLong(roomId.substring(1))).size();
             // 网管课
-            if (courseSchedule.getGroupType() == GroupType.VIP) {
+            /*if (courseSchedule.getGroupType() == GroupType.VIP) {
                 studentNums = vipGroupDao.getCourseStudentNumsByGroupId(Long.parseLong(courseSchedule.getMusicGroupId()));
-            }
+            }*/
             roomResult.setStudentNums(studentNums);
         }
 

+ 14 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ActivityController.java

@@ -27,6 +27,8 @@ import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static java.math.BigDecimal.ROUND_UP;
+
 @RequestMapping("activity")
 @Api(tags = "活动")
 @RestController
@@ -154,6 +156,12 @@ public class ActivityController extends BaseController {
         Map<String, String> categoryMap = vipGroupCategoryDao.findConditionCategorys().stream().collect(Collectors.toMap(e-> e.getId().toString(), ConditionDto::getName));
         vipGroupActivity.setVipGroupCategoryNames(categoryMap.get(vipGroupActivity.getVipGroupCategoryIdList()));
         vipGroupActivity.setGiveCategoryName(categoryMap.get(vipGroupActivity.getGiveCategoryId()));
+        //如果是固定金额
+        if(vipGroupActivity.getFixedCourseNumFlag()){
+            vipGroupActivity.setDisplayPrice(vipGroupActivity.getMarketPrice());
+        }else {
+            vipGroupActivity.setDisplayPrice(vipGroupActivity.getSinglePrice().multiply(vipGroupActivity.getDiscount()).divide(new BigDecimal(100), 0, ROUND_UP));
+        }
         vipGroupActivityService.setActivityType(vipGroupActivity);
         return succeed(vipGroupActivity);
     }
@@ -186,6 +194,12 @@ public class ActivityController extends BaseController {
             for (VipGroupActivity activity : vipGroupActivities) {
                 activity.setVipGroupCategoryNames(categoryMap.get(activity.getVipGroupCategoryIdList()));
                 activity.setGiveCategoryName(categoryMap.get(activity.getGiveCategoryId()));
+                //如果是固定金额
+                if(activity.getFixedCourseNumFlag()){
+                    activity.setDisplayPrice(activity.getMarketPrice());
+                }else {
+                    activity.setDisplayPrice(activity.getSinglePrice().multiply(activity.getDiscount()).divide(new BigDecimal(100), 0, ROUND_UP));
+                }
                 vipGroupActivityService.setActivityType(activity);
             }
         }

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java

@@ -80,7 +80,7 @@ public class ClassGroupController extends BaseController {
 
             Map<Integer, StudentSubjectDto> subjectDtoMap = subjectService.getSubjectByStudentId(collect);
             courseStudents.forEach(studentAttendanceViewDto -> {
-                if (studentAttendanceViewDto.getSubjectId() == null) {
+                if (studentAttendanceViewDto.getSubjectIdList() == null) {
                     StudentSubjectDto subjectDto = subjectDtoMap.getOrDefault(studentAttendanceViewDto.getUserId(), null);
                     if (subjectDto.getSubjectId() != null) {
                         studentAttendanceViewDto.setSubjectName(subjectDto.getSubjectName());

+ 7 - 7
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -1870,7 +1870,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        queryInfo.setOrganIdList(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganIdList(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganIdList(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganIdList(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
         Integer tenantId = TenantContextHolder.getTenantId();
@@ -2009,7 +2009,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         PageInfo<MusicArrearageStudentDto> result = musicGroupPaymentCalenderDetailService.queryArrearageStudents(queryInfo);
@@ -2153,7 +2153,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        organId = organizationService.getEmployeeOrgan(sysUser.getId(), organId, sysUser.getIsSuperAdmin());
+        organId = organizationService.getEmployeeOrgan(sysUser.getId(), organId, sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         List<IndexErrorDataExportDto> result = indexService.exportIndexErrData(organId, errorType);
         if (CollectionUtils.isEmpty(result)) {
             throw new BizException("没有可导出的记录");
@@ -2237,7 +2237,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        queryInfo.setOrganIds(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganIds(), sysUser.getIsSuperAdmin()));
+        queryInfo.setOrganIds(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganIds(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         List<IndexErrorDataExportDto> result = indexErrDataRecordService.queryRecord(queryInfo).getRows();
@@ -2363,7 +2363,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin());
+        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         if (StringUtils.isEmpty(organIds)) {
@@ -2411,7 +2411,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin());
+        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         if (StringUtils.isEmpty(organIds)) {
@@ -2459,7 +2459,7 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败");
         }
-        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin());
+        String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
         if (StringUtils.isEmpty(organIds)) {

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -115,7 +115,7 @@ public class IndexController extends BaseController {
 		RBucket<Map<String, Boolean>> bucket = redissonClient.getBucket("index:hasIndexErrData " + sysUser.getId());
 		Map<String, Boolean> map = bucket.get();
 		if(map == null || map.size() == 0){
-			organId = organizationService.getEmployeeOrgan(sysUser.getId(),organId,sysUser.getIsSuperAdmin());
+			organId = organizationService.getEmployeeOrgan(sysUser.getId(),organId,sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
 			map = indexService.hasIndexErrData(organId);
 			bucket.set(map,30, TimeUnit.MINUTES);
 		}

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduOnlineMusicGroupController.java

@@ -57,7 +57,7 @@ public class EduOnlineMusicGroupController extends BaseController {
 		if (onlyForRole) {
             queryInfo.setRepairUserId(sysUser.getId());
 		}else {
-            queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()));
+            queryInfo.setOrganId(organizationService.getEmployeeOrgan(sysUser.getId(), queryInfo.getOrganId(), sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1));
         }
         queryInfo.setStatus(MusicGroupStatusEnum.PROGRESS);
         return succeed(musicGroupService.findEduTeacherMusicGroups(queryInfo));

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduOrganizationController.java

@@ -38,7 +38,7 @@ public class EduOrganizationController extends BaseController {
 	    	Integer tenantId = 1;
 	        return succeed(organizationService.queryAllOrganWithNoAuth(tenantId));
 		}else{
-			String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin());
+			String organIds = organizationService.getEmployeeOrgan(sysUser.getId(), "", sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
 	        return succeed(organizationService.queryEmployeeOrgan(organIds));
 		}
     	

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/education/EduRegisterController.java

@@ -53,7 +53,7 @@ public class EduRegisterController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-        organId = organizationService.getEmployeeOrgan(sysUser.getId(), organId, sysUser.getIsSuperAdmin());
+        organId = organizationService.getEmployeeOrgan(sysUser.getId(), organId, sysUser.getIsSuperAdmin()&&sysUser.getTenantId() == -1);
         //是乐团主管,不是分部经理
         List<Integer> cooperationOrganIds = null;
         Boolean onlyForRole = employeePositionService.onlyForRole(SysUserRoleEnum.EDUCATION, sysUser.getId(), sysUser.getIsSuperAdmin());