Browse Source

Merge remote-tracking branch 'origin/saas' into saas

hgw 3 years ago
parent
commit
889e33236b
42 changed files with 306 additions and 126 deletions
  1. 7 5
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/interceptor/TenantInterceptor.java
  2. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysEmailDao.java
  4. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantInfoDao.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  6. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseScheduleRecordDto.java
  8. 43 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java
  9. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  10. 2 7
      mec-biz/src/main/java/com/ym/mec/biz/service/SubjectChangeService.java
  11. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java
  12. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/SysEmailService.java
  13. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoService.java
  14. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/AppRedemptionCodeServiceImpl.java
  15. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  16. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrderPayOpsServiceImpl.java
  17. 19 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java
  18. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  19. 17 27
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectChangeServiceImpl.java
  20. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  21. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysEmailServiceImpl.java
  22. 8 24
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  23. 25 12
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java
  24. 7 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  25. 1 1
      mec-biz/src/main/resources/config/mybatis/ExtracurricularExercisesReplyMapper.xml
  26. 1 4
      mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml
  27. 3 0
      mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml
  28. 1 2
      mec-biz/src/main/resources/config/mybatis/SysEmailMapper.xml
  29. 4 0
      mec-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml
  30. 1 1
      mec-im/src/main/java/com/ym/common/ErrorEnum.java
  31. 2 2
      mec-im/src/main/java/com/ym/controller/RoomController.java
  32. 7 7
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  33. 2 1
      mec-im/src/main/java/com/ym/service/RoomService.java
  34. 2 0
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  35. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/StudentController.java
  36. 1 3
      mec-student/src/main/java/com/ym/mec/student/controller/SubjectChangeController.java
  37. 29 0
      mec-student/src/main/java/com/ym/mec/student/controller/SubjectController.java
  38. 6 0
      mec-student/src/main/java/com/ym/mec/student/controller/TenantInfoController.java
  39. 10 3
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/CommEmailPlugin.java
  40. 7 1
      mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java
  41. 4 1
      mec-web/src/main/java/com/ym/mec/web/controller/SysEmailController.java
  42. 15 1
      mec-web/src/main/java/com/ym/mec/web/controller/TenantInfoController.java

+ 7 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/interceptor/TenantInterceptor.java

@@ -45,11 +45,13 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 		}
 		if(StringUtils.isNotEmpty(tenantId)){
 			TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-			TenantInfo tenantInfo = tenantInfoService.getOpenTenant(Integer.parseInt(tenantId));
-			if(tenantInfo != null){
-				request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
-			}else {
-				throw new BizException("机构信息异常,请联系管理员");
+			if(Integer.parseInt(tenantId) != -1){
+				TenantInfo tenantInfo = tenantInfoService.getOpenTenant(Integer.parseInt(tenantId));
+				if(tenantInfo != null){
+					request.setAttribute(DATA_SOURCE_ID, tenantInfo.getDataSource());
+				}else {
+					throw new BizException("机构信息异常,请联系管理员");
+				}
 			}
 		}
 		return true;

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

@@ -170,4 +170,6 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
     List<Subject> queryPageByIdOrName(Map<String, Object> params);
 
     int queryPageByIdOrNameCount(Map<String, Object> params);
+
+    List<Subject> list();
 }

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

@@ -16,6 +16,6 @@ public interface SysEmailDao extends BaseMapper<SysEmail> {
 
    int insertBatch(@Param("entities") List<SysEmail> entities);
 
-    SysEmail query();
+    SysEmail query(@Param("tenantId") Integer tenantId);
 }
 

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

@@ -16,4 +16,6 @@ public interface TenantInfoDao extends BaseMapper<TenantInfo> {
     TenantProductSumm queryTenantInfoProductSumm(Integer tenantId);
 
     TenantInfo getOpenTenant(Integer tenantId);
+
+    TenantInfo queryTenantInfoByOrgan(@Param("organId") Integer organId);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -84,7 +84,7 @@ public class MusicGroup extends BaseEntity {
 	private String courseForm;
 
 	@ApiModelProperty(value = "老师课酬结算方式",required = false)
-	private SalarySettlementTypeEnum settlementType;
+	private SalarySettlementTypeEnum settlementType = SalarySettlementTypeEnum.TEACHER_DEFAULT;
 
 	@ApiModelProperty(value = "课程展现形式",required = false)
 	private CourseViewTypeEnum courseViewType;

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java

@@ -80,6 +80,16 @@ public class Student extends SysUser {
 
 	private Integer countFlag;
 
+	@ApiModelProperty(value = "家长姓名")
+	private String parentName;
+
+	@ApiModelProperty(value = "备注")
+	private String remake;
+
+	@ApiModelProperty(value = "单位名称")
+	private String unitName;
+
+
 	public Student(Integer userId, String subjectIdList) {
 		this.userId = userId;
 		this.subjectIdList = subjectIdList;
@@ -307,4 +317,28 @@ public class Student extends SysUser {
 	public void setMemberRankImg(String memberRankImg) {
 		this.memberRankImg = memberRankImg;
 	}
+
+	public String getParentName() {
+		return parentName;
+	}
+
+	public void setParentName(String parentName) {
+		this.parentName = parentName;
+	}
+
+	public String getRemake() {
+		return remake;
+	}
+
+	public void setRemake(String remake) {
+		this.remake = remake;
+	}
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseScheduleRecordDto.java

@@ -57,6 +57,9 @@ public class StudentCourseScheduleRecordDto {
 
     @ApiModelProperty(value = "教学形式")
     private TeachModeEnum teachMode;
+    
+    @ApiModelProperty(value = "教学点")
+    private String teachingAddress;
 
     public String getHeadUrl() {
         return headUrl;
@@ -169,4 +172,12 @@ public class StudentCourseScheduleRecordDto {
     public void setRestOfClass(Integer restOfClass) {
         this.restOfClass = restOfClass;
     }
+
+	public String getTeachingAddress() {
+		return teachingAddress;
+	}
+
+	public void setTeachingAddress(String teachingAddress) {
+		this.teachingAddress = teachingAddress;
+	}
 }

+ 43 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java

@@ -37,7 +37,17 @@ public class StudentPreRegistration extends BaseStudentDto {
 	
 	/** 创建时间 */
 	private java.util.Date createTime;
-	
+
+	// 2022 add new field
+	/** 家长姓名 **/
+	private String parentName;
+
+	/** 备注 */
+	private String remake;
+
+	/** 单位名称 */
+	private String unitName;
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -130,4 +140,36 @@ public class StudentPreRegistration extends BaseStudentDto {
 	public void setCloudTeacherMethod(String cloudTeacherMethod) {
 		this.cloudTeacherMethod = cloudTeacherMethod;
 	}
+
+	public boolean isAllowAdjust() {
+		return isAllowAdjust;
+	}
+
+	public void setAllowAdjust(boolean allowAdjust) {
+		isAllowAdjust = allowAdjust;
+	}
+
+	public String getParentName() {
+		return parentName;
+	}
+
+	public void setParentName(String parentName) {
+		this.parentName = parentName;
+	}
+
+	public String getRemake() {
+		return remake;
+	}
+
+	public void setRemake(String remake) {
+		this.remake = remake;
+	}
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
 }

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -198,6 +198,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
 
     APP_REDEMPTION_CODE("APP_REDEMPTION_CODE", "兑换码分配量预警"),
     CLOUD_TEACHER_ORDER_SUCCESS("CLOUD_TEACHER_ORDER_SUCCESS", "云教练激活成功"),
+    TEST_EMAIL_FIRST("TEST_EMAIL_FIRST", "测试邮件")
     ;
 
     MessageTypeEnum(String code, String msg) {

+ 2 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/SubjectChangeService.java

@@ -73,17 +73,12 @@ public interface SubjectChangeService extends BaseService<Integer, SubjectChange
 
     /**
      * 添加
-     * @param orderId
      * @param musicGroupId
      * @param goodsIds
-     * @param totalAmount
-     * @param balance
      * @return
      */
-    List<SellOrder> addSellOrder(Long orderId,
+    List<SellOrder> addSellOrder(StudentPaymentOrder studentPaymentOrder,
                                  String musicGroupId,
                                  List<Integer> goodsIds,
-                                 BigDecimal totalAmount,
-                                 BigDecimal balance,
-                                 KitGroupPurchaseTypeEnum kitGroupPurchaseType,BigDecimal couponRemitAmount);
+                                 KitGroupPurchaseTypeEnum kitGroupPurchaseType);
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java

@@ -109,4 +109,10 @@ public interface SubjectService extends BaseService<Integer, Subject> {
      * @return 查询结果
      */
     PageInfo<Subject> queryPageByIdOrName(SubjectQueryInfo queryInfo);
+
+    /**
+     * 列出声部
+     * @return
+     */
+    List<Subject> list();
 }

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

@@ -11,6 +11,6 @@ import com.ym.mec.biz.dal.entity.SysEmail;
  */
 public interface SysEmailService extends IService<SysEmail> {
 
-    SysEmail query();
+    SysEmail query(Integer tenantId);
 }
 

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/TenantInfoService.java

@@ -38,8 +38,6 @@ public interface TenantInfoService extends IService<TenantInfo> {
 
     TenantProductSumm queryTenantInfoProductSumm(Integer id);
 
-    Boolean testEmail();
-
     /**
     * @description: 保存tenantId
      * @param request
@@ -48,4 +46,13 @@ public interface TenantInfoService extends IService<TenantInfo> {
     * @date 2022/1/7 14:42
     */
     void saveTenantContextHolder(HttpServletRequest request);
+
+    /**
+     * 按部门查询机构信息
+     * @return 机构信息
+     */
+    TenantInfo queryTenantInfoByOrgan(Integer organId);
+
+    Boolean testEmail();
+
 }

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

@@ -97,7 +97,7 @@ public class AppRedemptionCodeServiceImpl extends ServiceImpl<RedemptionCodeDao,
             redemptionCodeDao.insertBatch(redemptionCodesList);
         } catch (DuplicateKeyException dupKeyEx) {
             logger.error("数据导入重复: " + dupKeyEx.getCause());
-            return "数据重复:" + dupKeyEx;
+            throw new BizException("数据重复:" + dupKeyEx.getCause());
         } catch (Exception ex) {
             throw new BizException("导入数据出错:" + ex, ex);
         }

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

@@ -1342,6 +1342,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if(count > 0l){
                 Map<String, Object> param = new HashMap<>();
                 param.put("musicGroupId", musicGroupId);
+                param.put("tenantId", musicGroup.getTenantId());
                 int i = musicGroupPurchaseListDao.queryCount(param);
                 if (i <= 0) {
                     throw new BizException("采购清单未确认");

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

@@ -309,7 +309,7 @@ public class OrderPayOpsServiceImpl implements OrderPayOpsService {
                 try {
                     Boolean ret = tenantOrderRecordService.rechargeCheck(record);
                     if (ret) break;
-                    Thread.sleep(3000);//每3秒触发一次
+                    Thread.sleep(3000); // 每3秒触发一次
                     log.info("executePayment 重试 >>>>>  start {}", i);
                 } catch (InterruptedException e) {
                     return;

+ 19 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -255,14 +255,31 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
         if (Objects.isNull(courseScheduleID)) {
             throw new BizException("作业不存在");
         }
+        CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleID);
+        
+        if(courseSchedule == null){
+        	throw new BizException("课程不存在");
+        }
+
+        MusicGroupTrainPlan musicGroupTrainPlan = null;
+		//获取课程规划
+		MusicGroupTrainPlanSaveDto schoolTerm = musicGroupTrainPlanService.getSchoolTerm(courseSchedule);
+		int courseNumNo = courseScheduleDao.getCourseNumNo(schoolTerm);
+		List<MusicGroupTrainPlan> planList = musicGroupTrainPlanService.queryPlan(schoolTerm);
+		if(planList.size() >= courseNumNo){
+			musicGroupTrainPlan = planList.get(courseNumNo - 1);
+		}
+		
         CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkDao.findCourseHomeworkStudentDetail(courseScheduleID, userId);
         if(courseHomeworkStudentDetail == null){
-            throw new BizException("作业不存在");
+        	courseHomeworkStudentDetail = new CourseHomeworkStudentDetailDto();
+			courseHomeworkStudentDetail.setMusicGroupTrainPlan(musicGroupTrainPlan);
+        	return courseHomeworkStudentDetail;
         }
+        
         SysUser sysUser = teacherDao.getUser(userId.intValue());
         courseHomeworkStudentDetail.setStudentId(userId.intValue());
         courseHomeworkStudentDetail.setStudentName(sysUser.getUsername());
-        CourseSchedule courseSchedule = courseScheduleDao.get(courseHomeworkStudentDetail.getCourseScheduleId());
         if (Objects.nonNull(courseSchedule)) {
             SysUser teacher = teacherDao.getUser(courseSchedule.getActualTeacherId());
             courseHomeworkStudentDetail.setTeacherId(courseSchedule.getActualTeacherId());
@@ -290,15 +307,6 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
         Student student = studentDao.get(userId.intValue());
         courseHomeworkStudentDetail.setHasMember(student.getMemberRankSettingId()==null?0:1);
 //        }
-        
-		//获取课程规划
-		MusicGroupTrainPlanSaveDto schoolTerm = musicGroupTrainPlanService.getSchoolTerm(courseSchedule);
-		int courseNumNo = courseScheduleDao.getCourseNumNo(schoolTerm);
-		List<MusicGroupTrainPlan> planList = musicGroupTrainPlanService.queryPlan(schoolTerm);
-		if(planList.size() >= courseNumNo){
-			courseHomeworkStudentDetail.setMusicGroupTrainPlan(planList.get(courseNumNo - 1));
-		}
-		
 		
         return courseHomeworkStudentDetail;
     }

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

@@ -178,6 +178,10 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
         student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
         student.setCurrentClass(studentPreRegistration.getCurrentClass());
         student.setTenantId(studentPreRegistration.getTeacherRecommandSubjectId());
+        student.setOrganId(studentPreRegistration.getOrganId());
+        student.setParentName(studentPreRegistration.getParentName());
+        student.setRemake(studentPreRegistration.getRemake());
+        student.setUnitName(studentPreRegistration.getUnitName());
         studentDao.insert(student);
         
         return true;

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

@@ -11,6 +11,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -135,17 +136,13 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.get(subjectChange.getOrderId().longValue());
 
             if (studentPaymentOrder != null && studentPaymentOrder.getStatus() == DealStatusEnum.ING) {
-
                 // 查询订单状态
                 PayStatus payStatus = studentPaymentOrderService.queryPayStatus(studentPaymentOrder.getPaymentChannel(), studentPaymentOrder.getOrderNo(), studentPaymentOrder.getTransNo());
                 if (payStatus != PayStatus.FAILED) {
                     if (payStatus == PayStatus.SUCCESSED) {
                         throw new BizException("订单已支付成功,请勿重复支付");
-                    }/*else if(payStatus == PayStatus.PAYING){
-                		throw new BizException("订单还在交易中,请稍后重试");
-                	}*/
+                    }
                 }
-
                 studentPaymentOrder.setStatus(DealStatusEnum.CLOSE);
                 studentPaymentOrder.setUpdateTime(date);
                 studentPaymentOrderService.update(studentPaymentOrder);
@@ -174,6 +171,8 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 
         String channelType = "";
 
+        Integer tenantId = TenantContextHolder.getTenantId();
+
         //只允许使用这类型的优惠券
         String[] checkCoupon = CouponDetailTypeEnum.getAllowType(CouponDetailTypeEnum.ACCESSORIES, CouponDetailTypeEnum.MUSICAL);
         StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(subjectChangeParamDto.getCouponIdList(), amount, true, checkCoupon);
@@ -188,7 +187,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrder.setOrganId(subjectChange.getOrganId());
         studentPaymentOrder.setRoutingOrganId(subjectChange.getOrganId());
-
+        studentPaymentOrder.setTenantId(tenantId);
         studentPaymentOrderService.insert(studentPaymentOrder);
 
         subjectChange.setOrderId(studentPaymentOrder.getId().intValue());
@@ -390,12 +389,10 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             if (StringUtils.isNotBlank(goodsIds)) {
                 List<Integer> goodsIdList = Arrays.stream(goodsIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
                 //添加新订单
-                this.addSellOrder(studentPaymentOrder.getId(),
+                this.addSellOrder(studentPaymentOrder,
                         subjectChange.getMusicGroupId(),
                         goodsIdList,
-                        BigDecimal.ZERO,
-                        BigDecimal.ZERO,
-                        subjectChange.getKitGroupPurchaseType(), BigDecimal.ZERO);
+                        subjectChange.getKitGroupPurchaseType());
             }
             //乐保处理
             studentInstrumentService.subjectChangeUpdateInstrument(subjectChange);
@@ -621,13 +618,6 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             subjectChange.setStatus(SubjectChangeStatusEnum.SUCCESSED);
             subjectChange.setSellTime(nowDate);
 
-            //乐器辅件价差大于0时,有销售金额
-//            if (subjectChange.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP) && studentPaymentOrder.getActualAmount().compareTo(BigDecimal.ZERO) > 0) {
-//                BigDecimal sellAmount = studentPaymentOrder.getActualAmount().multiply(subjectChange.getGoodsMargin())
-//                        .divide(studentPaymentOrder.getExpectAmount(), 2, BigDecimal.ROUND_HALF_UP);
-//                subjectChange.setSellAmount(sellAmount);
-//            }
-
             if (this.update(subjectChange) <= 0) {
                 throw new BizException("维修单更新失败");
             }
@@ -645,12 +635,9 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
                     sellOrderService.refundByOrderId(subjectChange.getOriginalOrderId().longValue(), false);
                 }
                 //添加新订单
-                List<SellOrder> sellOrders = this.addSellOrder(studentPaymentOrder.getId(),
-                        subjectChange.getMusicGroupId(),
+                List<SellOrder> sellOrders = this.addSellOrder(studentPaymentOrder,subjectChange.getMusicGroupId(),
                         goodsIdList,
-                        studentPaymentOrder.getExpectAmount(),
-                        studentPaymentOrder.getBalancePaymentAmount(),
-                        subjectChange.getKitGroupPurchaseType(), studentPaymentOrder.getCouponRemitFee());
+                        subjectChange.getKitGroupPurchaseType());
                 if (sellOrders != null && sellOrders.size() > 0) {
                     SubjectChange change = subjectChangeDao.get(subjectChange.getId());
                     BigDecimal instrumentAmount = sellOrders.stream().filter(e -> e.getType() == SellTypeEnum.INSTRUMENT).map(e -> e.getExpectAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -767,19 +754,21 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
 
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public List<SellOrder> addSellOrder(Long orderId,
+    public List<SellOrder> addSellOrder(StudentPaymentOrder order,
                                         String musicGroupId,
                                         List<Integer> goodsIds,
-                                        BigDecimal totalAmount,
-                                        BigDecimal balance,
-                                        KitGroupPurchaseTypeEnum kitGroupPurchaseType, BigDecimal couponRemitAmount) {
+                                        KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
         if (goodsIds == null || goodsIds.size() <= 0) {
             return null;
         }
+        BigDecimal balance = order.getBalancePaymentAmount();
         if (balance == null) {
             balance = BigDecimal.ZERO;
         }
-        StudentPaymentOrder order = studentPaymentOrderDao.get(orderId);
+        Long orderId = order.getId();
+        BigDecimal totalAmount = order.getExpectAmount();
+        BigDecimal couponRemitAmount = order.getCouponRemitFee();
+        Integer tenantId = order.getTenantId();
         MusicGroup musicGroup = new MusicGroup();
         if (StringUtils.isNotBlank(musicGroupId)) {
             musicGroup = musicGroupDao.get(musicGroupId);
@@ -882,6 +871,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
                 sellOrder.setSellTime(order.getCreateTime());
                 sellOrder.setCreateIme(new Date());
                 sellOrder.setUpdateTime(new Date());
+                sellOrder.setTenantId(tenantId);
                 if (nowGoods.getType().equals(GoodsType.INSTRUMENT)) {
                     sellOrder.setType(SellTypeEnum.INSTRUMENT);
                 } else if (nowGoods.getType().equals(GoodsType.ACCESSORIES)) {

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

@@ -238,6 +238,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implem
         }
         pageInfo.setRows(dataList);
         return pageInfo;
+    }
 
+    @Override
+    public List<Subject> list() {
+        return subjectDao.list();
     }
 }

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

@@ -21,8 +21,8 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailDao, SysEmail> impl
     private final static Logger logger = LoggerFactory.getLogger(SysEmailServiceImpl.class);
 
     @Override
-    public SysEmail query() {
-        return baseMapper.query();
+    public SysEmail query(Integer tenantId) {
+        return baseMapper.query(tenantId);
     }
 }
 

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

@@ -104,7 +104,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		PageInfo<SysMessageDto> pageInfo = new PageInfo<SysMessageDto>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
-		
+
 		List<SysMessageDto> dataList = null;
 		int count = this.findCount(params);
 		if (count > 0) {
@@ -314,7 +314,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		}
 		// email data from database load, 使用接收者 tenantId, 假设发送者和接收者为同一机构
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
-			loadEmailInfo(null, receivers.values().stream().findFirst().orElse(null));
+			Integer userId = receivers.keySet().stream().findFirst().orElse(-1);
+			loadEmailInfo(userId);
 		}
 		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
 			//如果不是缴费信息
@@ -355,6 +356,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
+				debugMode = false;
 				if (debugMode == true
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
 								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null)) {
@@ -451,7 +453,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		}
 		// email data from database load
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
-			loadEmailInfo(userId, receiver);
+			loadEmailInfo(userId);
 		}
 		Date date = new Date();
 		SendStatusEnum status = SendStatusEnum.WAIT;
@@ -482,33 +484,15 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
 	}
 
-	private Integer getTenantIdByUser(Integer userId, String receiver) throws BizException {
-		SysUser user;
-		if (userId == null) {
-			user = sysUserFeignService.queryUserByMobile(receiver);
-			if (user != null) {
-				return user.getTenantId();
-			} // user query null using receiver query
-		}
-
-		user = sysUserFeignService.queryUserByMobile(receiver);
-		if (user != null) {
-			return user.getTenantId();
-		} else {
-			throw new BizException("找不到发送者用户 id: " + userId.toString() + " 接收者 " + receiver);
-		}
-	}
-
-	private void loadEmailInfo(Integer userId,  String receiver) {
-		Integer tenantId = getTenantIdByUser(userId, receiver);
-		SysEmail email1 = sysEmailService.getOne(new WrapperUtil<SysEmail>().hasEq("tenant_id_", tenantId).queryWrapper());
+	private void loadEmailInfo(Integer userId) {
+		SysUser user = sysUserFeignService.queryUserById(userId);
+		SysEmail email1 = sysEmailService.getOne(new WrapperUtil<SysEmail>().hasEq("tenant_id_", user.getTenantId()).queryWrapper());
 		messageSenderPluginContext.sysEmail.setHostName(email1.getHostName());
 		messageSenderPluginContext.sysEmail.setSmtpPort(email1.getSmtpPort());
 		messageSenderPluginContext.sysEmail.setUserName(email1.getUserName());
 		messageSenderPluginContext.sysEmail.setPassword(email1.getPassword());
 		messageSenderPluginContext.sysEmail.setFromName(email1.getFromName());
 		messageSenderPluginContext.sysEmail.setFrom(email1.getFrom());
-
 	}
 
 	@Override

+ 25 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -670,12 +670,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         return tps;
     }
 
-
-    @Override
-    public Boolean testEmail() {
-        // sysMessageService.batchSendMessage(MessageSener.);
-        return false;
-    }
     @Override
     public void saveTenantContextHolder(HttpServletRequest request) {
         String tenantId = request.getHeader("tenantId");
@@ -686,13 +680,32 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
             }
         }
         if(StringUtils.isNotEmpty(tenantId)){
-            TenantInfo tenantInfo = this.baseMapper.getOpenTenant(Integer.parseInt(tenantId));
-            if(tenantInfo != null){
-                TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
-                request.setAttribute("datasourceId", tenantInfo.getDataSource());
-            }else {
-                throw new BizException("机构信息异常,请联系管理员");
+            TenantContextHolder.setTenantId(Integer.parseInt(tenantId));
+            if(Integer.parseInt(tenantId) != -1){
+                TenantInfo tenantInfo = this.baseMapper.getOpenTenant(Integer.parseInt(tenantId));
+                if(tenantInfo != null){
+                    request.setAttribute("datasourceId", tenantInfo.getDataSource());
+                }else {
+                    throw new BizException("机构信息异常,请联系管理员");
+                }
             }
         }
     }
+
+    @Override
+    public TenantInfo queryTenantInfoByOrgan(Integer organId) {
+        return baseMapper.queryTenantInfoByOrgan(organId);
+    }
+
+
+    @Override
+    public Boolean testEmail() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        Map<Integer, String> receivers = new HashMap<>();
+        receivers.put(user.getId(), "yanite1234@sina.com");
+        receivers.put(2, "yanite2016@sina.com");
+        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.EMAIL, MessageTypeEnum.TEST_EMAIL_FIRST, receivers, null, 0, null, "SYSTEM", null, null, null, null);
+
+        return false;
+    }
 }

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

@@ -107,6 +107,7 @@
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="rest_of_class_" property="restOfClass"/>
         <result column="class_group_id_" property="classGroupId"/>
+        <result column="school_name_" property="teachingAddress" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentCourseInfoDto" id="StudentCourseInfoDto">
@@ -1108,11 +1109,13 @@
         CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
         CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
         cs.actual_teacher_id_ teacher_id_,
-        cs.teach_mode_
+        cs.teach_mode_,
+        s.name_ school_name
         FROM course_schedule_student_payment cssp
         LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ =
         sa.user_id_
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
+        left join school s on s.id_ = cs.schoole_id_
         LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="queryStudentCourseScheduleRecordCondition"/>
         ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
@@ -1139,9 +1142,11 @@
                CONCAT(cs.class_date_, ' ', cs.start_class_time_) start_class_time_,
                CONCAT(cs.class_date_, ' ', cs.end_class_time_)   end_class_time_,
                cs.teach_mode_,
-               cs.class_group_id_
+               cs.class_group_id_,
+        		s.name_ school_name
         FROM class_group_student_mapper cgsm
                  LEFT JOIN course_schedule cs ON cs.class_group_id_ = cgsm.class_group_id_
+        		left join school s on s.id_ = cs.schoole_id_
                  LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)

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

@@ -211,7 +211,7 @@
 
 	<sql id="queryStudentExtraExercisesCondition">
 		<where>
-			tenant_id_ = #{tenantId}
+			eer.tenant_id_ = #{tenantId}
 			<if test="studentId!=null">
 				AND eer.user_id_=#{studentId}
 			</if>

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

@@ -76,14 +76,11 @@
             <if test="visitTime != null">
                 visit_time_ = #{visitTime},
             </if>
-            <if test="createTime != null">
-                create_time_ = #{createTime},
-            </if>
             <if test="objectId != null">
                 object_id_ = #{objectId},
             </if>
         </set>
-        where id_ = #{id,jdbcType=INTEGER} and tenant_id_ = #{tenantId}
+        WHERE id_ = #{id,jdbcType=INTEGER} AND tenant_id_ = #{tenantId}
     </update>
 
     <select id="queryPage" resultMap="StudentVisit">

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

@@ -274,5 +274,8 @@
             #{userId}
         </foreach>
     </select>
+    <select id="list" resultMap="Subject">
+        select * from subject where del_flag_ = 0 and parent_subject_id_ != 0
+    </select>
 
 </mapper>

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

@@ -26,8 +26,7 @@
         </foreach>
     </insert>
     <select id="query" resultType="com.ym.mec.biz.dal.entity.SysEmail">
-        select *
-        from sys_email
+        select * from sys_email where tenant_id_ = #{tenantId}
     </select>
 
 </mapper>

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/TenantInfoMapper.xml

@@ -108,5 +108,9 @@
     <select id="getOpenTenant" resultType="com.ym.mec.biz.dal.entity.TenantInfo">
         SELECT * FROM tenant_info WHERE id_ = #{tenantId} AND state_ = 1
     </select>
+    <select id="queryTenantInfoByOrgan" resultType="com.ym.mec.biz.dal.entity.TenantInfo">
+        select * from tenant_info
+        where id_ = (select tenant_id_ from organization where id_ = #{organId})
+    </select>
 
 </mapper>

+ 1 - 1
mec-im/src/main/java/com/ym/common/ErrorEnum.java

@@ -35,7 +35,7 @@ public enum ErrorEnum {
     ERR_USER_EXIST_IN_ROOM(28, "User exist in room"),
     ERR_CHANGE_SELF_ROLE(29, "Can not change self role"),
     ERR_APPLY_TICKET_INVALID(30, "Apply ticket invalid"),
-    ERR_OVER_MAX_COUNT(31, "Over max count"),
+    ERR_OVER_MAX_COUNT(31, "云教室人数已超上线"),
     ERR_TEACHER_EXIST_IN_ROOM(32, "Teacher exist in room"),
     ERR_DOWNGRADE_ROLE(33, "Can't downgrade role"),
     ERR_CHANGE_ROLE(34, "Only change student to teacher");

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

@@ -22,8 +22,8 @@ public class RoomController{
     MessageService messageService;
 
     @RequestMapping(value = "/join", method = RequestMethod.POST)
-    public Object joinRoom(@RequestBody ReqUserData data) throws Exception {
-        return new BaseResponse<>(roomService.joinRoom(data.getRoomId()));
+    public BaseResponse joinRoom(@RequestBody ReqUserData data) throws Exception {
+        return roomService.joinRoom(data.getRoomId());
     }
 
     @RequestMapping(value = "/signIn", method = RequestMethod.POST)

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.ym.common.ApiException;
+import com.ym.common.BaseResponse;
 import com.ym.common.DisplayEnum;
 import com.ym.common.ErrorEnum;
 import com.ym.config.IMProperties;
@@ -126,9 +127,8 @@ public class RoomServiceImpl implements RoomService {
 
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     @Override
-    public RoomResult joinRoom(String roomId) throws Exception {
+    public BaseResponse joinRoom(String roomId) throws Exception {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
-
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         String userId = sysUser.getId().toString();
         log.info("joinRoom: roomId={}, userId={}", roomId, userId);
@@ -136,7 +136,7 @@ public class RoomServiceImpl implements RoomService {
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
         if(courseSchedule.getTeachMode() == TeachModeEnum.OFFLINE){
-            throw new ApiException(ErrorEnum.JOIN_ROOM_ERROR);
+            return new BaseResponse(ErrorEnum.JOIN_ROOM_ERROR,ErrorEnum.JOIN_ROOM_ERROR.getErrMsg(),null);
         }
         Date curTime = DateTimeUtils.currentUTC();
         //是否提前进入教室
@@ -146,7 +146,7 @@ public class RoomServiceImpl implements RoomService {
         }
         Date addMinutes = DateUtil.addMinutes(curTime, Integer.parseInt(courseBeforeBufferTime));
         if(courseSchedule.getStartClassTime().compareTo(addMinutes) > 0 ){
-            throw new ApiException(ErrorEnum.ROOM_NOT_START);
+            return new BaseResponse(ErrorEnum.ROOM_NOT_START,ErrorEnum.ROOM_NOT_START.getErrMsg(),null);
 //            throw new BizException("网络教室暂未开启,请在{}分钟后进入教室",DateUtil.minutesBetween(addMinutes,courseSchedule.getStartClassTime()));
         }
         final TenantAssetsInfo one = tenantAssetsInfoService.getOne(new WrapperUtil<TenantAssetsInfo>()
@@ -154,7 +154,7 @@ public class RoomServiceImpl implements RoomService {
                 .queryWrapper()
                 .gt("balance_", 0));
         if(one == null){
-            throw new ApiException(ErrorEnum.CLOUD_BALANCE_NOT_FEE);
+            return new BaseResponse(ErrorEnum.CLOUD_BALANCE_NOT_FEE,ErrorEnum.CLOUD_BALANCE_NOT_FEE.getErrMsg(),null);
         }
 
         //是否是连堂课
@@ -201,7 +201,7 @@ public class RoomServiceImpl implements RoomService {
             int count = roomMemberDao.countByRidAndExcludeRole(roomId, RoleEnum.RoleAudience.getValue());
             if (count == roomProperties.getMaxCount()) {
                 log.info("join error Over max count: roomId = {}, userId = {}", roomId,userId);
-                throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
+                return new BaseResponse(ErrorEnum.ERR_OVER_MAX_COUNT,ErrorEnum.ERR_OVER_MAX_COUNT.getErrMsg(),null);
             }
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 roleEnum = RoleTeacher;
@@ -285,7 +285,7 @@ public class RoomServiceImpl implements RoomService {
             roomResult.setSoundVolume(room.getSoundVolume());
         }
         log.info("join room: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, userName, roleEnum);
-        return roomResult;
+        return new BaseResponse(roomResult);
     }
 
     public RoomMember saveRoomMember(String roomId,String userId){

+ 2 - 1
mec-im/src/main/java/com/ym/service/RoomService.java

@@ -1,5 +1,6 @@
 package com.ym.service;
 
+import com.ym.common.BaseResponse;
 import com.ym.mec.biz.dal.dto.RongyunBasicUserDto;
 import com.ym.pojo.*;
 import org.apache.ibatis.annotations.Param;
@@ -11,7 +12,7 @@ import java.util.List;
  */
 public interface RoomService {
     //everyone
-    RoomResult joinRoom(String roomId) throws Exception;
+    BaseResponse joinRoom(String roomId) throws Exception;
 
     Integer getCurrentCourseId(String roomId);
 

+ 2 - 0
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -46,6 +46,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 "/studentCompetition/getWinnerList",
                 "/musicGroup/getGradeList",
                 "/studentCompetition/get","/musicGroup/preRegister",
+                "/tenantInfo/queryTenantInfoByOrgan/**",
+                "/subject/list",
                 "/musicEnlightenmentQuestionnaire/addEnlightenmentQuestionnaire", "/musicEnlightenmentQuestionnaire/getUserMusicEnlightenmentQuestionnaire").permitAll().anyRequest().authenticated().and().httpBasic();
     }
 

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/StudentController.java

@@ -39,7 +39,7 @@ public class StudentController extends BaseController {
         		return succeed("您已注册,请直接下载APP!");
         	}
         }
-        
+
         return studentService.register(studentPreRegistration) ? succeed() : failed();
     }
 

+ 1 - 3
mec-student/src/main/java/com/ym/mec/student/controller/SubjectChangeController.java

@@ -54,9 +54,7 @@ public class SubjectChangeController extends BaseController {
             PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
             if(payStatus == PayStatus.SUCCESSED){
         		throw new BizException("订单已支付成功,请勿重复支付");
-        	}/*else if(payStatus == PayStatus.PAYING){
-        		throw new BizException("订单还在交易中,请稍后重试");
-        	}*/
+        	}
             return failed(HttpStatus.CONTINUE, "您有待支付的订单");
         }
         Map payMap = subjectChangeService.payChange(subjectChangeParamDto);

+ 29 - 0
mec-student/src/main/java/com/ym/mec/student/controller/SubjectController.java

@@ -0,0 +1,29 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
+import com.ym.mec.biz.dal.page.SubjectQueryInfo;
+import com.ym.mec.biz.service.SubjectService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RequestMapping("subject")
+@Api(tags = "科目服务")
+@RestController
+public class SubjectController extends BaseController {
+
+    @Autowired
+    private SubjectService subjectService;
+
+    @ApiOperation(value = "列出所有分部")
+    @PostMapping("/list")
+    public Object list(){
+        return succeed(subjectService.list());
+    }
+}

+ 6 - 0
mec-student/src/main/java/com/ym/mec/student/controller/TenantInfoController.java

@@ -54,4 +54,10 @@ public class TenantInfoController extends BaseController {
     public Object queryTenantInfoCheck(@ApiParam(value = "机构ID", required = true) @PathVariable("id") Integer id) {
         return succeed(tenantInfoService.queryTenantInfoCheck(id));
     }
+
+    @ApiOperation("查询单个机构详情按分部Id")
+    @GetMapping(value = "/queryTenantInfoByOrgan/{organId}")
+    public Object queryTenantInfoByOrgan(@ApiParam(value = "分部ID", required = true) @PathVariable("organId") Integer organId) {
+        return succeed(tenantInfoService.queryTenantInfoByOrgan(organId));
+    }
 }

+ 10 - 3
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/CommEmailPlugin.java

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
 
 import com.ym.mec.thirdparty.message.MessageSenderPlugin;
 
-//@Service
+@Service
 public class CommEmailPlugin implements MessageSenderPlugin, InitializingBean {
 
 	private String hostName;
@@ -50,11 +50,15 @@ public class CommEmailPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	public static String getName() {
-		return "EMAIL";
+		return "email";
 	}
 
 	@Override
 	public void afterPropertiesSet() throws Exception {
+
+	}
+
+	private boolean checkProperties() {
 		if (StringUtils.isBlank(hostName)) {
 			throw new RuntimeException("SMTP服务器没有配置");
 		}
@@ -79,15 +83,18 @@ public class CommEmailPlugin implements MessageSenderPlugin, InitializingBean {
 		if (StringUtils.isBlank(fromName)) {
 			fromName = from;
 		}
+		return true;
 	}
 
 	@Override
 	public boolean send(String subject, String content, String receiver, String url, String jpushType, String sound, String channelId) throws Exception {
+		this.checkProperties();
 		Email email = new SimpleEmail();
 		email.setHostName(hostName);
+		email.setDebug(true);
 		email.setSslSmtpPort(smtpPort + "");
 		email.setAuthenticator(new DefaultAuthenticator(userName, password));
-		// email.setSSLOnConnect(true);
+		email.setSSLOnConnect(true);
 		try {
 			email.setFrom(from, fromName);
 			email.setSubject(subject);

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

@@ -103,9 +103,15 @@ public class SubjectController extends BaseController {
 
     @ApiOperation(value = "搜索按Id和名称")
     @PostMapping("/queryPageByIdOrName")
-    // @PreAuthorize("@pcs.hasPermissions('subject/queryPageByIdOrName')")
+    @PreAuthorize("@pcs.hasPermissions('subject/queryPageByIdOrName')")
     public Object queryPageByIdOrName(SubjectQueryInfo queryInfo){
         return succeed(subjectService.queryPageByIdOrName(queryInfo));
     }
 
+    @ApiOperation(value = "列出所有分部")
+    @PostMapping("/list")
+    // @PreAuthorize("@pcs.hasPermissions('subject/list')")
+    public Object list(){
+        return succeed(subjectService.list());
+    }
 }

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

@@ -1,8 +1,10 @@
 package com.ym.mec.web.controller;
 
+import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
 import com.ym.mec.biz.dal.entity.SysEmail;
 import com.ym.mec.biz.service.SysEmailService;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.tenant.TenantContextHolder;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -40,7 +42,8 @@ public class SysEmailController extends BaseController {
     @GetMapping("/query")
     @PreAuthorize("@pcs.hasPermissions('sysEmail/query')")
     public HttpResponseResult<SysEmail> query() {
-        return succeed(sysEmailService.query());
+        Integer tenantId = TenantContextHolder.getTenantId();
+        return succeed(sysEmailService.query(tenantId));
     }
 
 }

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

@@ -12,13 +12,17 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.thirdparty.yqpay.Msg;
 import com.ym.mec.util.validator.ValidationKit;
+
 import io.swagger.annotations.*;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
@@ -82,6 +86,16 @@ public class TenantInfoController extends BaseController {
         return succeed(tenantInfoService.queryTenantInfoProductSumm(tenantId));
     }
 
+    @ApiOperation("查询用户机构信息")
+    @GetMapping(value = "/queryUserTenantInfo")
+    public Object queryUserTenantInfo() {
+    	SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || user.getId() == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(tenantInfoService.queryTenantInfo(user.getTenantId()));
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "search", dataType = "String", value = "关键字"),
             @ApiImplicitParam(name = "createdName", dataType = "String", value = "创建人"),
@@ -127,7 +141,7 @@ public class TenantInfoController extends BaseController {
 
     @ApiOperation(value = "轮询查询订单状态")
     @GetMapping("/rechargeCheck/{orderNo}")
-    @PreAuthorize("@pcs.hasPermissions('tenantInfo/payCheck')")
+    @PreAuthorize("@pcs.hasPermissions('tenantInfo/rechargeCheck')")
     public HttpResponseResult<Boolean> rechargeCheck(
             @ApiParam(value = "订单号", required = true) @PathVariable("orderNo") String orderNo
     ) throws Exception {