Ver código fonte

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

zouxuan 3 anos atrás
pai
commit
57198d283a

+ 3 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MusicScoreQueryInfo.java

@@ -1,8 +1,10 @@
 package com.ym.mec.auth.api.dto;
 
+import com.ym.mec.common.page.QueryInfo;
+
 import io.swagger.annotations.ApiModelProperty;
 
-public class MusicScoreQueryInfo {
+public class MusicScoreQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "父节点编号,默认0",required = false)
     private Integer parentId = 0;
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/TenantInfoInfoPageVo.java

@@ -38,6 +38,9 @@ public class TenantInfoInfoPageVo implements Serializable {
     @ApiModelProperty(value = "创建人名称")
     private String createdName;
 
+    @ApiModelProperty(value = "学员人数")
+    private Integer studentCount;
+
     //机构产品信息
     @ApiModelProperty(value = "服务名称")
     private String serveName;
@@ -136,4 +139,12 @@ public class TenantInfoInfoPageVo implements Serializable {
     public void setCreatedName(String createdName) {
         this.createdName = createdName;
     }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
 }

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java

@@ -51,6 +51,21 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 
 	/**
 	 * 发送消息
+	 * @param senderTenantId 消息发送者所在的机构编号
+	 * @param messageSender 消息发送者
+	 * @param messageType 消息类型
+	 * @param receivers 消息接收者(Key:用户编号  value:消息接收对象)
+	 * @param triggerTime 触发时间
+	 * @param readStatus 阅读状态(0-未读  1-已读)
+	 * @param url 超链接地址
+	 * @param args 参数
+	 * @return
+	 */
+	public void batchSendMessage(Integer senderTenantId, MessageSender messageSender, MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
+			Integer readStatus, String url,String jpushType, Object... args);
+
+	/**
+	 * 发送消息
 	 * @param messageSender 消息发送者
 	 * @param messageType 消息类型
 	 * @param receivers 消息接收者(Key:用户编号  value:消息接收对象)

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

@@ -37,8 +37,6 @@ public interface TenantInfoService extends IService<TenantInfo> {
 
     Map<String, Object> tenantRenewPay(Integer tenantId, Integer val) throws Exception;
 
-    RBucket<Map<String, Object>> cacheOrder(String key);
-
     RBucket<Integer> opsRenewInfo(Integer tenantId);
 
     void renewSuccess(Integer val, TenantProductInfo productInfo, BigDecimal amount);

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

@@ -1,5 +1,26 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Random;
+import java.util.Set;
+
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
@@ -21,7 +42,6 @@ import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMessage;
-import com.ym.mec.common.entity.ImPlayMidiMessage;
 import com.ym.mec.common.entity.ImPrivateMessage;
 import com.ym.mec.common.entity.ImTxtMessage;
 import com.ym.mec.common.exception.BizException;
@@ -38,21 +58,6 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.string.MessageFormatter;
 
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.Map.Entry;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.MessageTypeEnum.STUDENT_PUSH_VIP_BUY;
-
 @Service
 public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> implements SysMessageService {
 
@@ -127,7 +132,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	 * @param group 消息组
 	 * @return
 	 */
-	private int addMessage(Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
+	private int addMessage(Integer receiverTenantId, Map<Integer, String> receivers, String subject, String content, Date triggerTime, MessageSendMode mode, SendStatusEnum status,
 			String errorMsg, Integer readStatus, String memo, String group,String jpushType) {
 		SysMessage message = null;
 		Date date = new Date();
@@ -147,6 +152,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 					userId = user.getId();
 				}
 			}
+			message.setTenantId(receiverTenantId);
 			message.setUserId(userId);
 			message.setContent(content);
 			message.setCreateOn(date);
@@ -301,7 +307,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+	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);
 		if (receivers == null || receivers.size() == 0) {
@@ -309,12 +315,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			return;
 		}
 		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(receivers.keySet().iterator().next());
-		TenantContextHolder.setTenantId(simpleUserDto.getTenantId());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
 
 		// email data from database load, 使用接收者 tenantId, 假设发送者和接收者为同一机构
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
 			LOGGER.info("batch 发送邮件 {} ", simpleUserDto.getTenantId());
-			loadEmailInfo(simpleUserDto.getTenantId());
+			loadEmailInfo(senderTenantId);
 			debugMode = false;
 		}
 		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
@@ -377,10 +383,15 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		} else if (messageSender.getSendMode().equals("EMAIL")) {
 			mode = MessageSendMode.EMAIL;
 		}
-		LOGGER.info("batch 添加消息");
-		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
+		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
 				url, messageConfig.getGroup(),jpushType);
-		TenantContextHolder.clearTenantId();
+	}
+
+	@Override
+	@Async
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
+			String url,String jpushType, Object... args) {
+		batchSendMessage(TenantContextHolder.getTenantId(), messageSender, type, receivers, triggerTime, readStatus, url, jpushType, args);
 	}
 
 
@@ -391,6 +402,9 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("接收地址不能为空");
 		}
+		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(receivers.keySet().iterator().next());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
+		
 		if(StringUtils.isNotEmpty(jpushType) && jpushType == "STUDENT"){
 			//如果不是缴费信息
 			if(type != STUDENT_PUSH_VIP_BUY){
@@ -443,7 +457,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 				LOGGER.warn("消息发送失败", e);
 			}
 		}
-		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
+		addMessage(receiverTenantId, receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, MessageSendMode.PUSH, status, errorMsg, readStatus,
 				url, messageConfig.getGroup(),jpushType);
 	}
 
@@ -455,7 +469,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			throw new BizException("接收地址不能为空");
 		}
 		SimpleUserDto simpleUserDto = teacherDao.getSimpleUser(userId);
-		TenantContextHolder.setTenantId(simpleUserDto.getTenantId());
+		Integer receiverTenantId = simpleUserDto.getTenantId();
+		
 		// email data from database load
 		if (Objects.equals(messageSender.getSendMode(), "EMAIL")) {
 			loadEmailInfo(simpleUserDto.getTenantId());
@@ -489,8 +504,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		}
 		Map<Integer, String> receivers = new HashMap<Integer, String>();
 		receivers.put(userId, receiver);
-		LOGGER.info("添加消息 {} ", title);
-		addMessage(receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
+		addMessage(receiverTenantId, receivers, title, content, triggerTime, mode, status, errorMsg, readStatus, url, null,jpushType);
 	}
 
 	private void loadEmailInfo(Integer tenantId) {

+ 0 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -526,15 +526,6 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         return result;
     }
 
-    /**
-     * 缓存订单数据
-     *
-     * @param key TenantOrderRecordEnum+机构id+其他
-     */
-    public RBucket<Map<String, Object>> cacheOrder(String key) {
-        return redissonClient.getBucket(key);
-    }
-
     //操作续费信息
     public RBucket<Integer> opsRenewInfo(Integer key) {
         return redissonClient.getBucket(TenantOrderRecordEnum.TENANT_RENEW.getCode() + ":" + key);

+ 6 - 6
mec-biz/src/main/resources/config/mybatis/SysMusicScoreCategoriesMapper.xml

@@ -128,9 +128,9 @@
 		SELECT sm.*, GROUP_CONCAT(o.name_) AS organ_name_ FROM sys_music_score_categories sm
 		LEFT JOIN organization o ON FIND_IN_SET(o.id_,sm.organ_id_)
 		<where>
-			<if test="organId != null and organId != ''">
+			<!-- <if test="organId != null and organId != ''">
 				AND INTE_ARRAY(sm.organ_id_,#{organId})
-			</if>
+			</if> -->
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
@@ -149,9 +149,9 @@
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(sm.id_) FROM sys_music_score_categories sm
 		<where>
-			<if test="organId != null and organId != ''">
+			<!-- <if test="organId != null and organId != ''">
 				AND INTE_ARRAY(sm.organ_id_,#{organId})
-			</if>
+			</if> -->
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
@@ -191,9 +191,9 @@
 			<if test="parentId != null">
 				AND sm.parent_id_ = #{parentId}
 			</if>
-			<if test="organId != null">
+			<!-- <if test="organId != null">
 				AND INTE_ARRAY(#{organId},sm.organ_id_)
-			</if>
+			</if> -->
 		</where>
 	</sql>
 	

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

@@ -46,6 +46,7 @@
         <result column="state_" jdbcType="INTEGER" property="state"/>
         <result column="logo_" jdbcType="VARCHAR" property="logo"/>
         <result column="real_name_" jdbcType="VARCHAR" property="createdName"/>
+        <result column="studentCount" jdbcType="INTEGER" property="studentCount"/>
         <!-- 机构产品信息-->
         <result column="serve_name_" jdbcType="VARCHAR" property="serveName"/>
         <result column="student_up_limit_" jdbcType="INTEGER" property="studentUpLimit"/>
@@ -63,12 +64,15 @@
         u.`real_name_`,
         c.`name_` AS serve_name_,
         d.`student_up_limit_`,
-        b.`expiry_date_`
+        b.`expiry_date_`,
+        ifnull(st.studentCount, 0) as studentCount
         FROM tenant_info AS a
         LEFT JOIN tenant_product_info AS b ON a.`id_` = b.`tenant_id_` and b.using_ = 0
         LEFT JOIN platform_serve AS c ON b.`serve_id_` = c.`id_`
         LEFT JOIN platform_serve_detail AS d ON b.`serve_detail_id_` = d.`id_` AND c.`id_` = d.`serve_id_`
         LEFT JOIN sys_user AS u ON a.`created_by_` = u.`id_`
+        LEFT JOIN (select tenant_id_, count(tenant_id_) as studentCount from student group by tenant_id_) as st
+        on a.id_ = st.tenant_id_
         <where>
             <if test="param.search != null ">
                 AND (