Ver código fonte

消息推送

liujc 1 ano atrás
pai
commit
be1bc6d736

+ 5 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -358,4 +358,9 @@ public interface SysConfigConstant {
      * 个人风采虚拟人数增长最大值
      */
     String STYLE_VIDEO_VIRTUAL_NUMBER = "style_video_virtual_number";
+
+    /**
+     * 客服电话
+     */
+    String CUSTOMER_SERVICE_PHONE = "customer_service_phone";
 }

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

@@ -114,6 +114,10 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     STUDENT_LIVE_COMPLETION_FAIL("直播课成课失败"),
     COUPON_ISSUE("优惠券发放"),
 
+    SMS_TENANT_AUTH_UNPASS("机构入驻审核失败"),
+    SMS_TENANT_AUTH_PASS("机构入驻审核通过"),
+    TEACHER_UNBIND_PASS("老师解绑通过"),
+    TEACHER_UNBIND_UNPASS("老师解绑拒绝"),
     ;
 
     MessageTypeEnum(String msg) {

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

@@ -102,7 +102,6 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
 
         // 获取学生的专辑
         List<Long> albumIds = userTenantAlbumRecordService.getUseAlbumIdsByUserId(query.getUserId(), ClientEnum.STUDENT);
-        albumIds.add(1686291824928468993L);
         if (CollectionUtils.isEmpty(albumIds)) {
             return data;
         }

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

@@ -4,23 +4,24 @@ import com.alibaba.fastjson.JSON;
 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.biz.dal.dto.activity.ActivityTeacherQuery;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.TenantEntryRecordMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
-import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.apache.commons.collections.CollectionUtils;
-import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantApplyRecordWrapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantApplyRecordMapper;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 
 /**
@@ -50,6 +51,12 @@ public class TenantApplyRecordServiceImpl extends ServiceImpl<TenantApplyRecordM
     @Autowired
     TenantInfoService tenantInfoService;
 
+    @Autowired
+    private SysMessageService sysMessageService;
+
+    @Autowired
+    private SysConfigService sysConfigService;
+
     /**
      * 查询详情
      * @param id 详情ID
@@ -240,9 +247,33 @@ public class TenantApplyRecordServiceImpl extends ServiceImpl<TenantApplyRecordM
             tenantApplyRecordMapper.updateUnpassStatusById(id);
         }
         tenantEntryRecordMapper.insert(entryRecord);
+        CompletableFuture.runAsync(() -> {
+            sendMessage(entry, ifPass, entryRecord);
+        });
         return true;
     }
 
+    private void sendMessage(TenantApplyRecordWrapper.TenantEntry entry, Boolean ifPass, TenantEntryRecord entryRecord) {
+        //发送短信
+        Map<Long, String> receivers = new HashMap<>();
+        receivers.put(0L, entryRecord.getPhone());
+        if (Boolean.TRUE.equals(ifPass)) {
+            try {
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TENANT_AUTH_PASS,
+                        receivers, null, 0, null, ClientEnum.TENANT.getCode());
+            } catch (Exception e) {
+                log.error("机构入驻审核极光消息推送异常");
+            }
+            try {
+                String serviceConfig = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_PHONE);
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_TENANT_AUTH_UNPASS,
+                        receivers, null, 0, null, ClientEnum.TENANT.getCode(), entry.getReason(),serviceConfig);
+            } catch (Exception e) {
+                log.error("机构入驻审核极光消息推送异常");
+            }
+        }
+    }
+
 
     /**
      * 匹配地区码与省市区

+ 59 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantUnbindRecordServiceImpl.java

@@ -5,26 +5,27 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.StudentDao;
 import com.yonge.cooleshow.biz.dal.dao.SubjectDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
-import com.yonge.cooleshow.biz.dal.entity.Student;
-import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
-import com.yonge.cooleshow.biz.dal.service.StudentService;
-import com.yonge.cooleshow.biz.dal.service.TeacherService;
+import com.yonge.cooleshow.biz.dal.entity.*;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
-import com.yonge.cooleshow.biz.dal.entity.TenantUnbindRecord;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantUnbindRecordWrapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantUnbindRecordMapper;
-import com.yonge.cooleshow.biz.dal.service.TenantUnbindRecordService;
 
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -58,6 +59,15 @@ public class TenantUnbindRecordServiceImpl extends ServiceImpl<TenantUnbindRecor
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private SysMessageService sysMessageService;
+
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
 	/**
      * 查询详情
      * @param id 详情ID
@@ -180,6 +190,14 @@ public class TenantUnbindRecordServiceImpl extends ServiceImpl<TenantUnbindRecor
 
     @Override
     public Boolean entry(TenantUnbindRecordWrapper.Audio audio) {
+
+        TenantUnbindRecord record = getById(audio.getId());
+        if (record == null) {
+            throw new BizException("审核数据不存在");
+        } else if (!"DOING".equals(record.getStatus())) {
+            throw new BizException("审核数据已被处理");
+        }
+
         boolean update = tenantUnbindRecordService.lambdaUpdate()
                 .set(TenantUnbindRecord::getStatus, audio.getStatus() ? "PASS" : "UNPASS")
                 .set(TenantUnbindRecord::getReason, audio.getReason())
@@ -203,6 +221,39 @@ public class TenantUnbindRecordServiceImpl extends ServiceImpl<TenantUnbindRecor
                         .eq(Teacher::getUserId, unbindRecord.getUserId()).update();
             }
         }
-        return null;
+
+        // 老师端发送消息
+        CompletableFuture.runAsync(() -> {
+
+            sendTeacherUnBindMessage(audio, record);
+        });
+        return true;
+    }
+
+    private void sendTeacherUnBindMessage(TenantUnbindRecordWrapper.Audio audio, TenantUnbindRecord record) {
+        TenantInfo tenantInfo = tenantInfoService.getById(record.getTenantId());
+        if (tenantInfo == null) {
+            log.error("机构入驻审核发送消息失败,机构信息不存在,机构id:{}", record.getTenantId());
+            return;
+        }
+        //发送短信
+        SysUser sysUser = sysUserFeignService.queryUserById(record.getUserId());
+        Map<Long, String> receivers = new HashMap<>();
+        receivers.put(record.getUserId(), sysUser.getPhone());
+        if (Boolean.TRUE.equals(audio.getStatus())) {
+            try {
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_UNBIND_PASS,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(),tenantInfo.getName());
+            } catch (Exception e) {
+                log.error("机构入驻审核极光消息推送异常");
+            }
+            try {
+                String serviceConfig = sysConfigService.findConfigValue(SysConfigConstant.CUSTOMER_SERVICE_PHONE);
+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_UNBIND_UNPASS,
+                        receivers, null, 0, null, ClientEnum.TEACHER.getCode(),tenantInfo.getName(), audio.getReason(),serviceConfig);
+            } catch (Exception e) {
+                log.error("机构入驻审核极光消息推送异常");
+            }
+        }
     }
 }

+ 6 - 1
toolset/thirdparty-component/src/main/java/com/yonge/toolset/thirdparty/message/provider/AwSmsPlugin.java

@@ -36,6 +36,7 @@ public class AwSmsPlugin implements MessageSenderPlugin, InitializingBean {
 	private String pswd = "9#O!9hSJ";
 
 	private String signature = "【酷乐秀】";
+	private String signatureTenant = "【酷乐秀机构版】";
 
 	public static String getName() {
 		return "awsms";
@@ -103,7 +104,11 @@ public class AwSmsPlugin implements MessageSenderPlugin, InitializingBean {
 			reqParams.put("SpCode", appId);
 			reqParams.put("LoginName", account);
 			reqParams.put("Password", pswd);
-			reqParams.put("MessageContent", signature + content);
+            if (StringUtils.isNotBlank(jpushType) && jpushType.equals("TENANT")) {
+                reqParams.put("MessageContent", signatureTenant + content);
+            } else {
+                reqParams.put("MessageContent", signature + content);
+            }
 			reqParams.put("UserNumber", stringBuilder.toString().trim());
 			// reqParams.put("SerialNumber", "");
 			// reqParams.put("ScheduleTime", "");