Browse Source

Merge branch 'saas' of http://git.dayaedu.com/yonge/mec into saas

yonge 3 năm trước cách đây
mục cha
commit
33e4e3e61c
40 tập tin đã thay đổi với 263 bổ sung147 xóa
  1. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  2. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java
  4. 0 2
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java
  5. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoSendMsgService.java
  6. 4 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudTeacherOrderServiceImpl.java
  7. 39 33
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  8. 8 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  9. 7 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OnlineMusicGroupServiceImpl.java
  10. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java
  11. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  12. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  13. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  14. 4 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  15. 0 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  16. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  17. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseStatisticsServiceImpl.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantAssetsInfoServiceImpl.java
  19. 21 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoSendMsgServiceImpl.java
  20. 40 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  21. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantOrderRecordServiceImpl.java
  22. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  23. 6 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  24. 1 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  25. 2 2
      mec-biz/src/main/resources/config/mybatis/CloudTeacherOrderMapper.xml
  26. 1 3
      mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml
  27. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentGoodsSellMapper.xml
  28. 0 3
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  29. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  30. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  31. 1 1
      mec-biz/src/main/resources/config/mybatis/SysCouponMapper.xml
  32. 2 3
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  33. 4 7
      mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java
  34. 1 0
      mec-web/src/main/java/com/ym/mec/web/controller/ActivityPlanController.java
  35. 5 0
      mec-web/src/main/java/com/ym/mec/web/controller/CloudTeacherOrderController.java
  36. 5 5
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  37. 8 1
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java
  38. 6 11
      mec-web/src/main/resources/columnMapper.ini
  39. 54 0
      mec-web/src/main/resources/columnMapper_修改商品导入.ini
  40. BIN
      mec-web/src/main/resources/excelTemplate/商品导入模板.xls

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

@@ -408,7 +408,5 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     List<Student> queryStudent(Map<String, Object> params);
 
-    int updateMembershipEndTime(@Param("studentId")Integer studentId, @Param("endTime")Date endTime);
-
     SysUser getUserByPhone(String phone);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -324,7 +324,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      *
      * @return
      */
-    List<StudentRegisterPerDto> queryStudentPer1(String month);
+    List<StudentRegisterPerDto> queryStudentPer1(@Param("tenantId") Integer tenantId, @Param("month")String month);
 
     /**
      * 获取乐团报名信息和学校信息

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

@@ -159,7 +159,7 @@ public interface StudentManageService {
      * 获取激活比例
      * @return
      */
-    List<StudentRegisterPerDto> queryStudentPer();
+    List<StudentRegisterPerDto> queryStudentPer(Integer tenantId);
 
     /**
      * 获取有课没有激活的列表(变更为所有有课学生)

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

@@ -156,8 +156,6 @@ public interface StudentService extends BaseService<Integer, Student> {
      */
     PageInfo<CloudTeacherActiveTargetDetailDto> countCloudTeacherActiveDetail(CloudTeacherActiveQueryInfo queryInfo);
 
-    int updateMembershipEndTime(Integer studentId, Date endTime);
-
     /**
     * @description: 根据手机号检测学员是否存在,存在就更新,不存在插入
      * @param student

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoSendMsgService.java

@@ -2,5 +2,13 @@ package com.ym.mec.biz.service;
 
 public interface TenantInfoSendMsgService {
 
-    void platformSendToAll(String email, String phone, Object[] objs);
+    /**
+     * 以平台的名义发送邮件及短信
+     *
+     * @param receiveUserId 接收者userId
+     * @param email         接收email的地址
+     * @param phone         接收短信的电话
+     * @param objs          发送的信息
+     */
+    void platformSendToAll(Integer receiveUserId, String email, String phone, Object[] objs);
 }

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

@@ -287,7 +287,7 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             }
         }
         bucket.delete();
-        log.info(" 云教练 支付 失败 >>>>> ", i);
+        log.info(" 云教练 支付 失败 >>>>> {} ", i);
         return false;
     }
 
@@ -352,7 +352,9 @@ public class CloudTeacherOrderServiceImpl extends BaseServiceImpl<Long, CloudTea
             cto.setEndTime(endTime);
             cto.setStatus(2);
             cloudTeacherOrderDao.update(cto);
-            studentService.updateMembershipEndTime(cto.getStudentId(), cto.getEndTime());
+            log.info("团练宝更新订单");
+            studentService.updateMemberRank(cto.getStudentId(), cto.getType(), cto.getTime(), 1);
+            log.info("团练宝更新学生");
         }
 
         log.info("tenant orderNotify update order status end");

+ 39 - 33
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -679,7 +679,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			dayOfWeekMap.put(dto.getDayOfWeek(), list);
 		}
 
-		Calendar calendar = Calendar.getInstance();
+        Integer tenantId = TenantContextHolder.getTenantId();
+        Calendar calendar = Calendar.getInstance();
 		Date now = new Date();
 		List<CourseTimeDto> courseTimeDtoList = null;
 		List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();
@@ -688,9 +689,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<TeacherAttendance> teacherAttendances = new ArrayList<TeacherAttendance>();
 		Set<String> holidayDays = new HashSet<>();
 		if (isJumpHoliday) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
+			String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+			if(StringUtils.isNotBlank(holidaySetting)){
+				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
 			}
 		}
 		calendar.setTime(startDate);
@@ -1761,12 +1762,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<Date> courseStartDates = new ArrayList<>();
 
 		Set<String> holidayDays = new HashSet<>();
-
-		if (courseAdjustInfo.isHoliday()) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-			}
+        Integer tenantId = TenantContextHolder.getTenantId();
+        if (courseAdjustInfo.isHoliday()) {
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+            }
 		}
 
 		Map<String, List<CourseSchedule>> result = new HashMap<String, List<CourseSchedule>>(){{
@@ -2543,11 +2544,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		Set<String> holidayDays = new HashSet<>();
 
-		if (vipGroupCourseAdjustInfo.isHoliday()) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-			}
+        Integer tenantId = TenantContextHolder.getTenantId();
+        if (vipGroupCourseAdjustInfo.isHoliday()) {
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+            }
 		}
 
         while (true) {
@@ -2781,12 +2783,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		int betweenDays = 0;
 		//节假日
 		Set<String> holidayDays = new HashSet<>();
-		if(Objects.nonNull(courseAdjustInfo.getPauseDate())&&Objects.nonNull(courseAdjustInfo.getRecoveryDate())){
+        Integer tenantId = TenantContextHolder.getTenantId();
+        if(Objects.nonNull(courseAdjustInfo.getPauseDate())&&Objects.nonNull(courseAdjustInfo.getRecoveryDate())){
 			if (courseAdjustInfo.getHoliday()) {
-				SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-				if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-					holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-				}
+                String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+                if(StringUtils.isNotBlank(holidaySetting)){
+                    holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+                }
 			}
 
 			LocalDate pauseDate = LocalDate.parse(courseAdjustInfo.getPauseDate(), DateUtil.dateFormatter);
@@ -3049,11 +3052,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		Set<String> holidayDays = new HashSet<>();
 
-		if (coursePostPoneInfo.isSkipHoliday()) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-			}
+        Integer tenantId = TenantContextHolder.getTenantId();
+        if (coursePostPoneInfo.isSkipHoliday()) {
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+            }
 		}
 
         classGroupCourseSchedulesWithDate.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
@@ -3130,10 +3134,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		Set<String> holidayDays = new HashSet<>();
 
 		if (vipGroupCourseAdjustInfo.isHoliday()) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-			}
+            Integer tenantId = TenantContextHolder.getTenantId();
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+            }
 		}
 
         List<CourseSchedule> courseSchedules = new ArrayList<>();
@@ -4576,10 +4581,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Set<String> holidayDays = new HashSet<>();
 
 		if (courseGenerateInfo.isSkipHoliday()) {
-			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
-			}
+            Integer tenantId = TenantContextHolder.getTenantId();
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
+            }
 		}
 
         List<CourseSchedule> courseSchedules = new ArrayList<>();

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

@@ -37,7 +37,9 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
-import java.util.concurrent.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.stream.Collectors;
 
 @Service
@@ -115,8 +117,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				throw new BizException("员工已存在");
 			}
 		}
-		employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
-		employee.setUserType("SYSTEM");
+        if (StringUtils.isBlank(employee.getPassword())) {
+            int phoneStrLen = employee.getPhone().length();
+            employee.setPassword(new BCryptPasswordEncoder().encode("gym" + employee.getPhone().substring(phoneStrLen - 4, phoneStrLen)));
+        }
+        employee.setUserType("SYSTEM");
 		teacherDao.addSysUser(employee);
 		employee.setUserId(employee.getId());
         employeeDao.insert(employee);

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

@@ -15,6 +15,7 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.date.DateUtil;
@@ -82,6 +83,8 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
     private ImGroupMemberService imGroupMemberService;
     @Autowired
     private SysMessageService sysMessageService;
+    @Autowired
+    private SysTenantConfigService sysTenantConfigService;
 
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     @Override
@@ -419,9 +422,10 @@ public class OnlineMusicGroupServiceImpl implements OnlineMusicGroupService {
         Set<String> holidayDays = new HashSet<>();
 
         if (skipHoliday) {
-            SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-            if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
-                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
+            Integer tenantId = TenantContextHolder.getTenantId();
+            String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+            if(StringUtils.isNotBlank(holidaySetting)){
+                holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
             }
         }
 

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java

@@ -331,8 +331,8 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
         }
         //异步
         CompletableFuture.runAsync(() -> {
-            //检查5
-            for (int i = 0; i <= 5; i++) {
+            //检查10
+            for (int i = 0; i <= 10; i++) {
                 try {
                     Thread.sleep(3000);//每3秒触发一次
                     tenantOrderRecordService.checkTenantOrder();
@@ -348,7 +348,7 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
 
     // 检查云教室
     private void delayCheckCloudTeacherOrder(TenantOrderRecord record) {
-        RBucket<Object> bucket = redissonClient.getBucket("delay_check_tenant");
+        RBucket<Object> bucket = redissonClient.getBucket("delay_check_cloud_tenant");
         if (!bucket.trySet(1, 15L, TimeUnit.SECONDS)) {
             return;
         }
@@ -376,7 +376,7 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
 
     // 检查机构充值
     private void delayCheckTenantRecharge(TenantOrderRecord record) {
-        RBucket<Object> bucket = redissonClient.getBucket("delay_check_tenant");
+        RBucket<Object> bucket = redissonClient.getBucket("delay_check_recharge_tenant");
         if (!bucket.trySet(1, 15L, TimeUnit.SECONDS)) {
             log.info("executePayment bucket retryset >>>>> ");
             return;

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

@@ -760,9 +760,9 @@ public class StudentManageServiceImpl implements StudentManageService {
     }
 
     @Override
-    public List<StudentRegisterPerDto> queryStudentPer() {
+    public List<StudentRegisterPerDto> queryStudentPer(Integer tenantId) {
         String format = DateUtil.format(DateUtil.addDays(new Date(), -1), DateUtil.ISO_EXPANDED_DATE_FORMAT);
-        return studentRegistrationDao.queryStudentPer1(format);
+        return studentRegistrationDao.queryStudentPer1(tenantId, format);
     }
 
     @Override

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

@@ -808,7 +808,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             String musicGroupId = order.getMusicGroupId();
             Integer userId = order.getUserId();
             List<StudentPaymentOrder> oldStudentPaymentOrderList = this.queryByCondition(GroupType.MUSIC,musicGroupId, userId, DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
-            if(oldStudentPaymentOrderList != null && oldStudentPaymentOrderList.size() > 0){
+            if(oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0){
                 StudentRegistration studentRegistration = studentRegistrationService.getStudentRegister(musicGroupId, userId);
                 MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                 musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() == null?0:musicOneSubjectClassPlan.getPaidStudentNum() - 1);

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

@@ -470,9 +470,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         sysUser.setOrganId(studentRegistration.getOrganId());
 
         Boolean updateNameFlag = false;
-//        if (sysUser.getRealName() == null) {
-//            sysUser.setRealName(studentRegistration.getParentsName());
-//        }
 
         if (StringUtils.isEmpty(sysUser.getUsername())) {
             sysUser.setUsername(studentRegistration.getName());

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysTenantConfigService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.date.DateUtil;
@@ -47,7 +48,7 @@ public class StudentServeServiceImpl implements StudentServeService {
     @Autowired
     private StudentServeService studentServeService;
     @Autowired
-    private SysConfigDao sysConfigDao;
+    private SysTenantConfigService sysTenantConfigService;
     @Autowired
     private ClassGroupStudentMapperDao classGroupStudentMapperDao;
     @Autowired
@@ -316,8 +317,8 @@ public class StudentServeServiceImpl implements StudentServeService {
         Date nextMonday = Date.from(sunDayDate.plusDays(1).atStartOfDay(DateUtil.zoneId).toInstant());
 
         Set<String> holidayDays = new HashSet<>();
-        String holidaySetting = sysConfigDao.findConfigValue(SysConfigService.HOLIDAY_SETTING);
-        if(StringUtils.isNotEmpty(holidaySetting)){
+        String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+        if(StringUtils.isNotBlank(holidaySetting)){
             holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
         }
         LocalDate everyDay=monDayDate;

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

@@ -1186,11 +1186,6 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
     }
 
     @Override
-    public int updateMembershipEndTime(Integer studentId, Date endTime) {
-        return studentDao.updateMembershipEndTime(studentId, endTime);
-    }
-
-    @Override
     @Transactional(rollbackFor = Exception.class)
     public <T extends BaseStudentDto> SysUser upSetStudent(T baseStudent) {
         // 判断用户是否存在

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

@@ -309,7 +309,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Async
 	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
 			String url,String jpushType, Object... args) {
-		LOGGER.info("batchSendMessage {}, type {}, receivers {} ", messageSender, type, receivers);
+		LOGGER.info("batchSendMessage tenantId {} msgSender {}, type {}, receivers {} ", senderTenantId, messageSender, type, receivers);
 		if (receivers == null || receivers.size() == 0) {
 			LOGGER.error("接收地址不能为空");
 			return;
@@ -349,6 +349,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			}
 		}
 		String[] tos = receivers.values().toArray(new String[receivers.size()]);
+		LOGGER.error("batch 接收人 {} ", tos  );
 		SysMessageConfig messageConfig = sysMessageConfigService.queryByType(type);
 		if (messageConfig == null) {
 			throw new BizException("消息类型错误");

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

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.dal.entity.TeacherCourseStatistics;
 import com.ym.mec.biz.dal.page.TeacherCourseStatisticsQueryInfo;
 import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.SysTenantConfigService;
 import com.ym.mec.biz.service.TeacherCourseStatisticsService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
@@ -16,6 +17,7 @@ import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +32,8 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
     private TeacherCourseStatisticsDao teacherCourseStatisticsDao;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private SysTenantConfigService sysTenantConfigService;
 
     @Override
     public BaseDAO<Long, TeacherCourseStatistics> getDAO() {
@@ -63,8 +67,14 @@ public class TeacherCourseStatisticsServiceImpl extends BaseServiceImpl<Long, Te
         if (teacherCourseStatisticsList.size() == 0) {
             return;
         }
-        SysConfig salaryConfig = sysConfigService.findByParamName(SysConfigService.WARNING_MIN_COURSE_SALARY);
-        JSONObject salaryConfigObject = JSON.parseObject(salaryConfig.getParanValue());
+        Integer tenantId = TenantContextHolder.getTenantId();
+        String configValue = sysTenantConfigService.getTenantConfigValue(SysConfigService.WARNING_MIN_COURSE_SALARY, tenantId);
+        JSONObject salaryConfigObject;
+        if(StringUtils.isNotEmpty(configValue)){
+            salaryConfigObject = JSON.parseObject(configValue);
+        }else {
+            salaryConfigObject = new JSONObject();
+        }
 
         List<Integer> userIds = teacherCourseStatisticsList.stream().map(TeacherCourseStatistics::getUserId).collect(Collectors.toList());
         List<TeacherCourseStatistics> teCourseSalaryStaticsAndTypes = teacherCourseStatisticsDao.findUserCourseSalaryByUserIds(userIds, startDate, endDate);

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

@@ -153,7 +153,7 @@ public class TenantAssetsInfoServiceImpl extends ServiceImpl<TenantAssetsInfoDao
                 //当前余额大于300 并且 本次扣除后剩余额度小于300 就发信息提醒
                 if (balance.compareTo(new BigDecimal(300)) > -1 && balance.compareTo(after) < 0) {
                     TenantInfo t = tenantInfoService.getById(course.getTenantId());
-                    tenantInfoSendMsgService.platformSendToAll(t.getEmail(), t.getPhone(), new Object[]{t.getName()});
+                    tenantInfoSendMsgService.platformSendToAll(t.getUserId(), t.getEmail(), t.getPhone(), new Object[]{t.getName()});
                 }
             }
         });

+ 21 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoSendMsgServiceImpl.java

@@ -41,33 +41,39 @@ public class TenantInfoSendMsgServiceImpl implements TenantInfoSendMsgService {
     /**
      * 以平台的名义发送邮件及短信
      *
-     * @param email 发送的地址 电话或者邮件
-     * @param objs  发送的信息
+     * @param receiveUserId 接收者userId
+     * @param email         接收email的地址
+     * @param phone         接收短信的电话
+     * @param objs          发送的信息
      */
     @Override
-    public void platformSendToAll(String email, String phone, Object[] objs) {
+    public void platformSendToAll(Integer receiveUserId, String email, String phone, Object[] objs) {
         Map<Integer, String> sendPar = new HashMap<>();
-        Integer userId = tenantInfoDao.queryUserByTenantId(-1);
-        if (Objects.isNull(userId)) {
+        if (Objects.isNull(receiveUserId)) {
             return;
         }
-        log.info("platformSendToAll>>> email {} phone {} objs {} sendPar {}", email, phone, objs, sendPar);
+
+        if (StringUtils.isNotBlank(phone)) {
+            sendPar.put(receiveUserId, phone);
+            log.info("platformSendToAll>>> receiveUserId {} phone {} objs {} sendPar {}", receiveUserId, phone, objs, sendPar);
+            sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.AWSMS,
+                                               PLATFORM_ALL_MSG_ENUM.get(MessageSenderPluginContext.MessageSender.AWSMS),
+                                               sendPar, null, 0, null,
+                                               "SYSTEM", objs);
+        }
+        try {
+            Thread.sleep(3000);
+        } catch (Exception e) { }
 
         if (StringUtils.isNotBlank(email)) {
-            sendPar.put(userId, email);
-            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.EMAIL,
+            sendPar.put(receiveUserId, email);
+            log.info("platformSendToAll>>> receiveUserId {} email {} objs {} sendPar {}", receiveUserId, email, objs, sendPar);
+            sysMessageService.batchSendMessage(-1, MessageSenderPluginContext.MessageSender.EMAIL,
                     PLATFORM_ALL_MSG_ENUM.get(MessageSenderPluginContext.MessageSender.EMAIL),
                     sendPar, null, 0, null,
                     "SYSTEM", objs);
         }
 
-        if (StringUtils.isNotBlank(phone)) {
-            sendPar.put(userId, phone);
-            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-                    PLATFORM_ALL_MSG_ENUM.get(MessageSenderPluginContext.MessageSender.AWSMS),
-                    sendPar, null, 0, null,
-                    "SYSTEM", objs);
-        }
     }
 
 }

+ 40 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -9,7 +9,6 @@ import com.ym.mec.auth.api.entity.SysRole;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.OrganizationDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.TenantInfoDao;
 import com.ym.mec.biz.dal.dto.TenantConfigDto;
 import com.ym.mec.biz.dal.dto.TenantInfoDto;
@@ -37,7 +36,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.dao.DuplicateKeyException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -81,8 +82,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     @Autowired
     private IdGeneratorService idGenerator;
     @Autowired
-    private SysConfigDao sysConfigDao;
-    @Autowired
     private TenantOrderRecordService tenantOrderRecordService;
     @Autowired
     private TenantAssetsInfoService assetsInfoService;
@@ -94,6 +93,11 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private TenantInfoSendMsgService tenantInfoSendMsgService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private ContractService contractService;
+
+    @Value("${spring.profiles.active:dev}")
+    private String profiles;
 
     /**
      * 新增机构
@@ -125,6 +129,14 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         //添加机构产品信息
         setIdByApply(tenantId, dto.getProductInfo(), dto.getProductInfo()::setTenantId,
                 tenantProductInfoService::addTenantProduct);
+        //新建机构是0元时,直接默认支付成功
+        if (dto.getProductInfo().getPayAmount().compareTo(BigDecimal.ZERO) == 0) {
+            //修机构相关的改付款时间
+            tenantOpen(tenantId);
+            String orderNo = idGenerator.generatorId("payment") + "";
+            //写入付款记录
+            createOrderRecord(tenantId, BigDecimal.ZERO, orderNo, TenantOrderRecordEnum.TENANT_OPEN, 1, null);
+        }
         //添加机构配置
         setIdByApply(tenantId, dto.getConfig(), dto.getConfig()::setTenantId, tenantConfigService::addConfig);
         //释放
@@ -267,6 +279,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             tenantInfo.setUpdatedBy(userId);
             tenantInfo.setUpdatedTime(new Date());
             tenantInfo.setState(state);
+            String pw = null;
             //状态= 开通
             if (state == 1) {
                 if (tenantInfo.getPayState() == 0) {
@@ -274,11 +287,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
                 }
                 //已支付完成 并且 没有创建用户信息
                 if (tenantInfo.getPayState() == 1 && Objects.isNull(tenantInfo.getUserId())) {
-                    //初次开通
-                    checkFirstOpen(tenantInfo);
+                    //初次开通 返回密码
+                    pw = checkFirstOpen(tenantInfo);
                 }
             }
             baseMapper.updateById(tenantInfo);
+            //在执行了修改机构信息之后,并且有返回密码(第一次开通机构会生成登录密码并返回)就发送邮件及短信提醒
+            if (StringUtils.isNotBlank(pw)) {
+                Object[] msg = {tenantInfo.getName(), tenantInfo.getPhone(), pw, "https://online.dayaedu.com"};
+                tenantInfoSendMsgService.platformSendToAll(tenantInfo.getUserId(), tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
+            }
             return;
         }
         throw new BizException("传入机构状态参数异常!");
@@ -288,13 +306,14 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
      * 第一次开通服务
      *
      * @param tenantInfo 机构信息
+     * @return 初次开通机构返回机构密码
      */
-    private void checkFirstOpen(TenantInfo tenantInfo) {
+    private String checkFirstOpen(TenantInfo tenantInfo) {
         Integer tenantId = tenantInfo.getId();
         SysUser user = sysUserFeignService.queryUserByMobile(tenantInfo.getPhone());
         if (Objects.nonNull(user)) {
             if (user.getUserType().contains(SysUserType.SYSTEM.getCode())) {
-                return;
+                return null;
             }
         }
 
@@ -322,11 +341,17 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         Integer orgId = createOrg(tenantInfo);
         //建立角色
         Integer roleId = createRole(tenantInfo);
+        //密码规则 gym + 随机6位数字
+        String pw = new BCryptPasswordEncoder().encode("gym" + (int) ((Math.random() * 9 + 1) * 100000));
         // 创建账号、用户信息、用户和角色关系
-        createUser(tenantInfo, orgId, Lists.newArrayList(roleId));
+        createUser(tenantInfo, orgId, Lists.newArrayList(roleId), pw);
         //建立角色和菜单关系数据
         Lists.partition(collectMenuId, 50)
                 .forEach(idList -> employeeService.batchInsertRoleMenu(roleId, idList, tenantId));
+        if (!profiles.equals("dev")) {
+            //添加签章信息
+            contractService.addTsign(tenantInfo.getTsignCode(), tenantInfo.getTsignName());
+        }
 
         Date now = new Date();
 
@@ -341,11 +366,10 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         Date expiryDate = getExpiryDate(productInfo.getExpiryCount(), productInfo.getExpiryUnit(), now);
         productInfo.setExpiryDate(expiryDate);
         tenantProductInfoService.updateById(productInfo);
-        //发送邮件及短信提醒
-        Object[] msg = {tenantInfo.getName(), tenantInfo.getPhone(), "123456", "https://online.dayaedu.com"};
-        tenantInfoSendMsgService.platformSendToAll(tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
         //释放锁
         bucket.delete();
+
+        return pw;
     }
 
     //计算过期时间
@@ -383,8 +407,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         return sysRole.getId();
     }
 
-    //创建账号、用户信息、用户和角色关系
-    private void createUser(TenantInfo tenantInfo, Integer orgId, List<Integer> roles) {
+    //创建账号、用户信息、用户和角色关系 返回密码
+    private void createUser(TenantInfo tenantInfo, Integer orgId, List<Integer> roles, String pw) {
         Employee e = new Employee();
         e.setTenantId(tenantInfo.getId());
         e.setPhone(tenantInfo.getPhone());
@@ -395,6 +419,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         e.setRoleIds(roles);
         e.setUserType(SysUserType.SYSTEM.getCode());
         e.setOrganIdList(String.valueOf(orgId));
+        e.setPassword(pw);
         try {
             log.info("createUser >>>> {}", e);
             employeeService.add(e);
@@ -563,7 +588,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         TenantInfo tenantInfo = this.getById(tenantId);
         //发送邮件及短信提醒
         Object[] msg = {tenantInfo.getName()};
-        tenantInfoSendMsgService.platformSendToAll(tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
+        tenantInfoSendMsgService.platformSendToAll(tenantInfo.getUserId(), tenantInfo.getEmail(), tenantInfo.getPhone(), msg);
         //释放锁
         bucket.delete();
     }
@@ -831,7 +856,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private void send(List<TenantInfo> infoList, String dateStr) {
         infoList.forEach(t -> {
             Object[] objects = {t.getName(), dateStr};
-            tenantInfoSendMsgService.platformSendToAll(t.getEmail(), t.getPhone(), objects);
+            tenantInfoSendMsgService.platformSendToAll(t.getUserId(), t.getEmail(), t.getPhone(), objects);
         });
     }
 

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

@@ -131,7 +131,11 @@ public class TenantOrderRecordServiceImpl extends ServiceImpl<TenantOrderRecordD
             list.forEach(record -> {
                 checkTransOrderState(record);
                 if (record.getOrderState() == 1) {
-                    checkOrder.get(record.getOrderType()).accept(record);
+                    Consumer<TenantOrderRecord> consumer = checkOrder.get(record.getOrderType());
+                    if (Objects.isNull(consumer)) {
+                        return;
+                    }
+                    consumer.accept(record);
                     //修改流水
                     LocalDateTime now = LocalDateTime.now();
                     record.setPayDate(now.toLocalDate().toDate());

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

@@ -137,11 +137,11 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 				checkSettlement(vipGroupSalarySettlement.getGivePracticeSalarySettlement());
 			}
 			vipGroupActivityAddDto.setSalarySettlementJson(JSON.toJSONString(vipGroupActivityAddDto.getVipGroupSalarySettlement()));
-			ActivityApplyStudentType applyToStudentType = getApplyToStudentType(vipGroupActivityAddDto.getApplyToStudentType());
 			super.update(vipGroupActivityAddDto);
-			applyToStudentType.setActivityId(vipGroupActivityAddDto.getId());
-			activityApplyStudentTypeDao.updateByActivity(applyToStudentType);
 		}
+		ActivityApplyStudentType applyToStudentType = getApplyToStudentType(vipGroupActivityAddDto.getApplyToStudentType());
+		applyToStudentType.setActivityId(vipGroupActivityAddDto.getId());
+		activityApplyStudentTypeDao.updateByActivity(applyToStudentType);
 		return vipGroupActivityAddDto;
 	}
 

+ 6 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -158,6 +158,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     @Autowired
     private SysConfigService sysConfigService;
     @Autowired
+    private SysTenantConfigService sysTenantConfigService;
+    @Autowired
     private SysCouponCodeService sysCouponCodeService;
     @Autowired
     private ActivityUserMapperService activityUserMapperService;
@@ -1591,9 +1593,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
             Set<String> holidayDays = new HashSet<>();
 
             if (skipHoliday) {
-                SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
-                if (Objects.nonNull(holidaySetting) && StringUtils.isNotBlank(holidaySetting.getParanValue())) {
-                    holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
+                Integer tenantId = TenantContextHolder.getTenantId();
+                String holidaySetting = sysTenantConfigService.getTenantConfigValue(SysConfigService.HOLIDAY_SETTING,tenantId);
+                if(StringUtils.isNotBlank(holidaySetting)){
+                    holidayDays = new HashSet<>(JSON.parseArray(holidaySetting, String.class));
                 }
             }
 

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1036,7 +1036,7 @@
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cg.id_
         WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.group_type_ = 'MUSIC' AND cgsm.user_id_ = #{userId}
-        GROUP BY mg.id_,mgsf.payment_status_
+        GROUP BY mg.id_
     </select>
 
     <select id="queryStudentPracticeCourses" resultMap="CourseListDto">

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

@@ -385,7 +385,7 @@
         LEFT JOIN SUBJECT sj ON s.subject_id_list_ = sj.id_
         LEFT JOIN student_registration sr ON cto.student_id_ = sr.user_id_
         <where>
-            cto.status_ = 2 AND tor.order_no_ is not null AND tor.trans_no_ is not null
+            cto.tenant_id_ = #{tenantId} AND cto.status_ = 2 AND tor.order_no_ is not null AND tor.trans_no_ is not null
             AND tor.order_type_ = 'CLOUD_TEACHER'
             <if test="queryCondition != null and queryCondition != ''">
                 AND (u.username_ LIKE CONCAT('%', #{queryCondition}, '%') or u.phone_ = #{queryCondition} or u.id_ = #{queryCondition})
@@ -428,7 +428,7 @@
         LEFT JOIN subject sj ON s.subject_id_list_ = sj.id_
         LEFT JOIN student_registration sr ON cto.student_id_ = sr.user_id_
         <where>
-            cto.status_ = 2 AND tor.order_no_ is not null AND tor.trans_no_ is not null
+            cto.tenant_id_ = #{tenantId} AND cto.status_ = 2 AND tor.order_no_ is not null AND tor.trans_no_ is not null
             AND tor.order_type_ = 'CLOUD_TEACHER'
             <if test="queryCondition != null and queryCondition != ''">
                 AND (u.username_ LIKE CONCAT('%', #{queryCondition}, '%') or u.phone_ = #{queryCondition} or u.id_ = #{queryCondition})

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

@@ -34,9 +34,7 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="CooperationOrgan">
-        SELECT *
-        FROM cooperation_organ
-        WHERE id_ = #{id}
+        SELECT * FROM cooperation_organ WHERE id_ = #{id}
     </select>
 
     <!-- 全查询 -->

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentGoodsSellMapper.xml

@@ -119,7 +119,7 @@
 		<where>
 			sgs.tenant_id_ = #{tenantId}
 			<if test="teacherId != null">
-				sgs.teacher_id_ = #{teacherId}
+				AND sgs.teacher_id_ = #{teacherId}
 			</if>
 			<if test="studentId != null">
 				AND sgs.user_id_ = #{studentId}

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

@@ -1323,9 +1323,6 @@
         AND sr.music_group_status_ = 'NORMAL' AND mg.course_view_type_ != 2 AND mg.`status_` = 'PROGRESS'
         GROUP BY sr.user_id_)t)
     </update>
-    <update id="updateMembershipEndTime">
-        update student set membership_end_time_ = #{endTime} where user_id_ = #{studentId}
-    </update>
 
     <select id="queryStudent" resultMap="Student">
         SELECT s.*,su.username_,su.phone_,o.name_ organ_name_,sb.name_ subject_name_ FROM student s

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

@@ -1045,7 +1045,7 @@
                ifnull(a.coupon_remit_fee_, 0)     as totalAmount,
                a.actual_amount_                   as actualAmount,
                a.balance_payment_amount_          as balanceAmount,
-               a.remit_fee_ + a.coupon_remit_fee_ as totalRemitFee,
+               ifnull(a.remit_fee_,0) + ifnull(a.coupon_remit_fee_,0) as totalRemitFee,
                a.create_time_ as createTime,
                a.pay_time_ as payTime,
                a.trans_no_ as transNo,

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -909,7 +909,7 @@
         SELECT o.name_ organ_name_, md.total_num_ student_num_, md.activate_num_ per_num_, md.percent_ per_
         FROM index_base_month_data md
         LEFT JOIN organization o ON o.id_ = md.organ_id_
-        WHERE data_type_ = 'ACTIVATION_RATE'
+        WHERE data_type_ = 'ACTIVATION_RATE' and md.tenant_id_ = #{tenantId}
         AND month_ = #{month}
         ORDER BY md.percent_ DESC, o.id_
     </select>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/SysCouponMapper.xml

@@ -120,7 +120,7 @@
         WHERE id_ = #{param.id}
         and tenant_id_ = #{param.tenantId}
         <if test="param.checkStock != null">
-           and stock_count_ > (consume_num_ + #{param.exchangeNum})
+           and stock_count_ >= (consume_num_ + #{param.exchangeNum})
         </if>
     </update>
 

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

@@ -596,10 +596,9 @@
         FROM
         sys_user_cash_account suca
         LEFT JOIN sys_user su ON suca.user_id_=su.id_
-        WHERE
-            suca.tenant_id_ = #{tenantId}
+        WHERE suca.tenant_id_ = #{tenantId}
         AND su.user_type_ LIKE '%STUDENT%'
-#         suca.course_balance_ >0
+#         suca.course_balance_ > 0
         <if test="search!=null and search!=''">
             AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>

+ 4 - 7
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -16,10 +16,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
@@ -319,9 +316,9 @@ public class StudentManageController extends BaseController {
      * 学员注册激活比例列表
      * @return
      */
-    @GetMapping(value = "studentManage/queryStudentPer")
-    public Object queryStudentPer() {
-        return succeed(studentManageService.queryStudentPer());
+    @GetMapping(value = "studentManage/queryStudentPer/{tenantId}")
+    public Object queryStudentPer(@ApiParam(value = "机构Id", required = true) @PathVariable("tenantId") Integer tenantId) {
+        return succeed(studentManageService.queryStudentPer(tenantId));
     }
 
 

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

@@ -7,6 +7,7 @@ import com.ym.mec.biz.service.ActivityPlanService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
+import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;

+ 5 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CloudTeacherOrderController.java

@@ -12,6 +12,7 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.WrapperUtil;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -63,6 +64,8 @@ public class CloudTeacherOrderController extends BaseController {
     @PostMapping("/queryActive")
     @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/queryActive')")
     public HttpResponseResult<PageInfo<CloudTeacherStudent>> queryActive(@RequestBody CloudTeacherOrderQueryInfo cloudTeacherOrderQueryInfo) throws Exception {
+        Integer tenantId = TenantContextHolder.getTenantId();
+        cloudTeacherOrderQueryInfo.setTenantId(tenantId);
         cloudTeacherOrderQueryInfo.setStatus(2);
         return succeed(cloudTeacherOrderService.queryInactive(cloudTeacherOrderQueryInfo));
     }
@@ -71,6 +74,8 @@ public class CloudTeacherOrderController extends BaseController {
     @PostMapping("/queryActiveRecord")
     @PreAuthorize("@pcs.hasPermissions('cloudTeacherOrder/queryActiveRecord')")
     public HttpResponseResult<PageInfo<CloudTeacherStudent>> queryActiveRecord(@RequestBody CloudTeacherOrderQueryInfo cloudTeacherOrderQueryInfo) {
+        Integer tenantId = TenantContextHolder.getTenantId();
+        cloudTeacherOrderQueryInfo.setTenantId(tenantId);
         return succeed(cloudTeacherOrderService.queryRecord(cloudTeacherOrderQueryInfo));
     }
 

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

@@ -202,7 +202,7 @@ public class ExportController extends BaseController {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "乐团编号", "乐团名称","合作单位", "乐团状态",
                     "收费模式","收费类型","乐团主管","成团人数", "在读人数", "申请时间", "成团时间", "清单状态"}, new String[]{
                     "organName", "id", "name","cooperationOrganName", "status.msg", "courseViewType.msg","chargeTypeName",
-                    "educationalTeacherName", /*"teamTeacherName", 和标题对不上*/"groupMemberNum","payNum"
+                    "educationalTeacherName", "teamTeacherName", "groupMemberNum","payNum"
                     ,"createTime","updateTime","hasVerifyMusicalList?'已确认':'未确认'"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attac:wq" +
@@ -467,10 +467,10 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"商品编号", "货号", "品牌", "商品名称",
-                    "是否组合商品", "是否库存预警","商品类型", "商品分类", "具体型号", "内部库存", "税务库存", "库存类型", "市场价(元)",
+                    "是否组合商品", "商品类型", "商品分类", "具体型号", "内部库存", "税务库存", "库存类型", "市场价(元)",
                     "零售价(元)", "商品团购价(元)", "商品描述", "商品详情", "是否上下架"}, new String[]{
                     "id", "sn", "brand", "name",
-                    "complementGoodsIdList == null || complementGoodsIdList == '' ? '否':'是'", "stockWarning.msg",
+                    "complementGoodsIdList == null || complementGoodsIdList == '' ? '否':'是'",
                     "type.desc", "goodsCategoryName", "specification", "stockCount", "taxStockCount", "stockType.msg", "marketPrice",
                     "discountPrice", "groupPurchasePrice", "brief", "desc", "status.msg"}, rows);
             response.setContentType("application/octet-stream");
@@ -1923,8 +1923,8 @@ public class ExportController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         try {
 
-            String[] header = {"分部", "单位编号", "单位名称", "是否启用","乐团主管","是否全职资源"};
-            String[] body = {"organization.name", "id", "name", "isEnable == true ? '是':'否'", "realName", "fullJobResource == 1 ? '是' : '否'"};
+            String[] header = {"分部", "单位编号", "单位名称", "是否启用","乐团主管","状态栏"};
+            String[] body = {"organization.name", "id", "name", "isEnable == true ? '是':'否'", "realName", "isEnable == true ? '开启' : '未开启'"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=cooperationOrgan-" + DateUtil.getDate(new Date()) + ".xls");

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

@@ -299,7 +299,14 @@ public class TaskController extends BaseController {
 	// 统计老师课酬
 	@GetMapping("/teacherCourseStatistic")
 	public void teacherCourseStatisticsService() throws Exception {
-		teacherCourseStatisticsService.teacherCourseStatistic();
+		List<TenantInfo> tenantInfos = tenantInfoService.list(new QueryWrapper<TenantInfo>().eq("state_",1));
+		if(tenantInfos != null && tenantInfos.size() > 0){
+			for (TenantInfo tenantInfo : tenantInfos) {
+				TenantContextHolder.setTenantId(tenantInfo.getId());
+				teacherCourseStatisticsService.teacherCourseStatistic();
+				TenantContextHolder.clearTenantId();
+			}
+		}
 	}
 
 	// 更新历史陪练课至已结束

+ 6 - 11
mec-web/src/main/resources/columnMapper.ini

@@ -4,20 +4,15 @@
 商品名称 = name
 商品类型 = type
 商品分类 = goodsCategoryName
-具体型号 = specification
+商品型号 = specification
+库存类型 = stockType
+是否库存预警 = stockWarning
 商品市场价(元) = marketPrice
-商品零售价 = discountPrice
-商品团购价(元) = groupPurchasePrice
-商品采购价1(元) = costPrice
+零售价(元) = discountPrice
+团购价(元) = groupPurchasePrice
 商品图片(插入一张图片) = image
-商品明细 = brief
-商品采购价2(元) = agreeCostPrice
-内部库存 = stockCount
-税务库存 = taxStockCount
-备查货号 = supplyChannel
-库存类型 = stockType
+商品描述 = brief
 商品详情 = desc
-库存预警 = stockWarning
 
 
 [财务支出导入模板]

+ 54 - 0
mec-web/src/main/resources/columnMapper_修改商品导入.ini

@@ -0,0 +1,54 @@
+[商品导入模板]
+品牌 = brand
+货号 = sn
+商品名称 = name
+商品类型 = type
+商品分类 = goodsCategoryName
+具体型号 = specification
+商品市场价(元) = marketPrice
+商品零售价 = discountPrice
+商品团购价(元) = groupPurchasePrice
+商品采购价1(元) = costPrice
+商品图片(插入一张图片) = image
+商品明细 = brief
+商品采购价2(元) = agreeCostPrice
+内部库存 = stockCount
+税务库存 = taxStockCount
+备查货号 = supplyChannel
+库存类型 = stockType
+商品详情 = desc
+库存预警 = stockWarning
+
+
+[财务支出导入模板]
+财务流程编号 = financialProcessNo
+钉钉流程编号 = dingtalkProcessNo
+费用归属分部 = organName
+费用归属学校 = cooperationOrganName
+申请人 = applyUser
+费用类型 = type
+费用项目 = feeProject
+付款金额 = amount
+备注 = itemDetail
+付款时间 = paymentTime
+事由 = cause
+
+
+[财务管理导入模板]
+收入类型 = incomeType
+所属分部 = organName
+所属学校 = cooperationOrganName
+学员编号 = userId
+交易流水号 = transNo
+收款账户 = merNo
+交易日期 = payTime
+销售金额 = saleAmount
+服务金额 = serviceAmount
+商品编号 = goodsIds
+商品数量 = goodsNums
+备注 = memo
+缴费单号 = calenderId
+
+[兑换码分配模板表]
+代码 = code
+链接地址 = url

BIN
mec-web/src/main/resources/excelTemplate/商品导入模板.xls