Procházet zdrojové kódy

1.意见反馈添加推送

yuanliang před 1 rokem
rodič
revize
356cc41884

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -133,6 +133,9 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     ADD_COOPERATE_TENANT("添加合作机构"),
     TEACHER_BIND_TENANT("老师绑定机构"),
     TEACHER_UNBIND_TENANT("老师解绑机构"),
+
+    SYS_SUGGEST_FEEDBACK_STUDENT("意见反馈推送"),
+    SYS_SUGGEST_FEEDBACK_TEACHER("意见反馈推送"),
     ;
 
     MessageTypeEnum(String msg) {

+ 6 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysMessageService.java

@@ -29,10 +29,13 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 */
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum messageType, Map<Long, String> receivers, Date triggerTime,
 			Integer readStatus, String url,String jpushType, Object... args);
-	
-	
+
+
+	void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
+						  String url, String jpushType, String title, Object... args);
+
 	public void batchSendMessage(MessageSender messageSender, String title, String content, Map<Long, String> receivers, Date triggerTime,
-			Integer readStatus, String url,String jpushType, Object... args);
+								 Integer readStatus, String url, String jpushType, Object... args);
 
 
 	/**

+ 12 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMessageServiceImpl.java

@@ -131,7 +131,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
-			String url,String jpushType, Object... args) {
+								 String url, String jpushType, Object... args) {
+		batchSendMessage(messageSender, type, receivers, triggerTime, readStatus, url, jpushType, null, args);
+	}
+	@Override
+	public void batchSendMessage(MessageSender messageSender, MessageTypeEnum type, Map<Long, String> receivers, Date triggerTime, Integer readStatus,
+			String url,String jpushType,String title, Object... args) {
 		LOGGER.info("batchSendMessage msgSender {}, type {}, receivers {} ", messageSender, type, receivers);
 		if (receivers == null || receivers.size() == 0) {
 			LOGGER.error("接收地址不能为空");
@@ -162,13 +167,16 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		Date date = new Date();
 		SendStatusEnum status = SendStatusEnum.WAIT;
 		String errorMsg = null;
+		String msgTitle = title;
+		if(StringUtils.isEmpty(msgTitle)){
+			msgTitle = messageConfig.getDescription();
+		}
 		// 立即发送
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
-
 				if (isSendRemoteMessage(messageSender)) {
-					errorMsg = messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
+					errorMsg = messageSenderPluginContext.batchSend(messageSender, msgTitle,
 														 MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null);
 					if (StringUtils.isEmpty(errorMsg)) {
 						status = SendStatusEnum.SUCCESSED;
@@ -192,7 +200,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
         if (ClientEnum.TENANT_STUDENT.getCode().equals(jpushType)) {
             jpushType = ClientEnum.STUDENT.getCode();
         }
-		addMessage(receivers, messageConfig.getDescription(), MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
+		addMessage(receivers, title, MessageFormatter.arrayFormat(messageConfig.getContent(), args), triggerTime, mode, status, errorMsg, readStatus,
 				url, messageConfig.getGroup(),jpushType,messageConfig.getId());
 	}
 

+ 43 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysSuggestionV2ServiceImpl.java

@@ -3,15 +3,31 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.SysSuggestionType;
 import com.yonge.cooleshow.biz.dal.entity.SysSuggestionV2;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
+import com.yonge.cooleshow.biz.dal.mapper.SysSuggestionTypeMapper;
 import com.yonge.cooleshow.biz.dal.mapper.SysSuggestionV2Mapper;
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
+import com.yonge.cooleshow.biz.dal.service.SysSuggestionTypeService;
 import com.yonge.cooleshow.biz.dal.service.SysSuggestionV2Service;
 import com.yonge.cooleshow.biz.dal.wrapper.SysSuggestionWrapper;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * 平台建议表
@@ -21,6 +37,11 @@ import java.util.Date;
 @Service
 public class SysSuggestionV2ServiceImpl extends ServiceImpl<SysSuggestionV2Mapper, SysSuggestionV2> implements SysSuggestionV2Service {
 
+    @Autowired
+    private SysMessageService sysMessageService;
+
+    @Autowired
+    private SysSuggestionTypeMapper sysSuggestionTypeMapper;
 
 	/**
      * 查询详情
@@ -85,9 +106,11 @@ public class SysSuggestionV2ServiceImpl extends ServiceImpl<SysSuggestionV2Mappe
         if (Boolean.TRUE.equals(handleStatus)) {
             throw new BizException("反馈意见已经处理");
         }
+
+        Date handTime = new Date();
         this.lambdaUpdate()
             .set(SysSuggestionV2::getHandleStatus, true)
-            .set(SysSuggestionV2::getHandleTime, new Date())
+            .set(SysSuggestionV2::getHandleTime, handTime)
             .set(SysSuggestionV2::getFeedback, handleSuggestion.getFeedback())
             .set(SysSuggestionV2::getFeedbackContent, handleSuggestion.getFeedbackContent())
             .set(SysSuggestionV2::getHandleBy,handleSuggestion.getHandleBy())
@@ -95,6 +118,25 @@ public class SysSuggestionV2ServiceImpl extends ServiceImpl<SysSuggestionV2Mappe
             .eq(SysSuggestionV2::getId, handleSuggestion.getId())
             .eq(SysSuggestionV2::getHandleStatus, false)
             .update();
+
+        Boolean feedback = handleSuggestion.getFeedback();
+        if (feedback && StringUtils.isNotEmpty(handleSuggestion.getFeedbackContent())) {
+            // 推送消息
+            try {
+                Map<Long, String> receivers = new HashMap<>();
+                receivers.put(suggestion.getUserId(), suggestion.getMobileNo());
+                MessageTypeEnum messageType = MessageTypeEnum.SYS_SUGGEST_FEEDBACK_STUDENT;
+                if (ClientEnum.TEACHER.equals(suggestion.getClientType())) {
+                    messageType = MessageTypeEnum.SYS_SUGGEST_FEEDBACK_TEACHER;
+                }
+                SysSuggestionType type = Optional.ofNullable(sysSuggestionTypeMapper.selectById(suggestion.getSuggestionTypeId())).orElse(new SysSuggestionType());
+                String title = "【" + Optional.ofNullable(type.getName()).orElse("") + "】" + DateFormatUtils.format(handTime, "yyyy-MM-dd");
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, messageType,
+                        receivers, null, 0, null, null, title, handleSuggestion.getFeedbackContent());
+            } catch (Exception e) {
+                log.warn("意见反馈推送发送失败,{}", e.getMessage());
+            }
+        }
         return true;
     }
 }