Przeglądaj źródła

Merge branch 'zx_online_0910' of http://git.dayaedu.com/yonge/cooleshow into test

zouxuan 9 miesięcy temu
rodzic
commit
3b821b4fdf

+ 10 - 9
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/ImGroupNoticeController.java

@@ -6,16 +6,11 @@ import com.yonge.cooleshow.biz.dal.service.ImGroupNoticeService;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.Map;
 
 /**
@@ -31,7 +26,7 @@ public class ImGroupNoticeController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private ImGroupNoticeService imGroupNoticeService;
 
     @ApiImplicitParams({
@@ -42,5 +37,11 @@ public class ImGroupNoticeController extends BaseController {
     public HttpResponseResult<PageInfo<ImGroupNoticeDto>> queryPage(@RequestBody Map<String,Object> params) throws Exception {
         return succeed(imGroupNoticeService.queryPage(params));
     }
+
+    @ApiOperation("获取群公告")
+    @GetMapping(value = "/get/{noticeId}")
+    public HttpResponseResult<ImGroupNoticeDto> get(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
+        return succeed(imGroupNoticeService.getNotice(noticeId));
+    }
 }
 

+ 15 - 15
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/ImGroupNoticeController.java

@@ -8,19 +8,11 @@ import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.utils.validator.ValidationKit;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-import org.springframework.beans.factory.annotation.Autowired;
+import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.Map;
 
@@ -37,27 +29,35 @@ public class ImGroupNoticeController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private ImGroupNoticeService imGroupNoticeService;
 
     @ApiOperation("新增群公告")
     @PostMapping(value = "/create")
-    public HttpResponseResult create(@Valid @RequestBody ImGroupNotice imGroupNotice, BindingResult bindingResult){
+    public HttpResponseResult<Object> create(@Valid @RequestBody ImGroupNoticeDto imGroupNotice, BindingResult bindingResult){
         ValidationKit.ignoreFields(bindingResult,"id");
+        imGroupNotice.setClientType("TEACHER");
         imGroupNoticeService.create(imGroupNotice);
         return succeed();
     }
 
     @ApiOperation("删除群公告")
     @PostMapping(value = "/del/{noticeId}")
-    public HttpResponseResult del(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
+    public HttpResponseResult<Object> del(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
         imGroupNoticeService.del(noticeId);
         return succeed();
     }
 
+    @ApiOperation("获取群公告")
+    @GetMapping(value = "/get/{noticeId}")
+    public HttpResponseResult<ImGroupNoticeDto> get(@ApiParam(value = "群公告编号", required = true) @PathVariable("noticeId") Long noticeId){
+        return succeed(imGroupNoticeService.getNotice(noticeId));
+    }
+
     @ApiOperation("修改群公告")
     @PostMapping(value = "/update")
-    public HttpResponseResult modify(@Valid @RequestBody ImGroupNotice imGroupNotice){
+    public HttpResponseResult<Object> modify(@Valid @RequestBody ImGroupNoticeDto imGroupNotice){
+        imGroupNotice.setClientType("TEACHER");
         imGroupNoticeService.modify(imGroupNotice);
         return succeed();
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImGroupNoticeDto.java

@@ -11,6 +11,17 @@ public class ImGroupNoticeDto extends ImGroupNotice {
     @ApiModelProperty(value = "用户头像", required = true)
     private String avatar;
 
+    @ApiModelProperty(value = "客户端类型", required = true)
+    private String clientType;
+
+    public String getClientType() {
+        return clientType;
+    }
+
+    public void setClientType(String clientType) {
+        this.clientType = clientType;
+    }
+
     public String getUsername() {
         return username;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ImGroupNotice.java

@@ -64,6 +64,18 @@ public class ImGroupNotice implements Serializable {
     @ApiModelProperty(value = "修改时间;")
     private Date updateTime;
 
+    @TableField("message_seq_id_")
+    @ApiModelProperty(value = "消息编号;")
+    private String messageSeqId;
+
+    public String getMessageSeqId() {
+        return messageSeqId;
+    }
+
+    public void setMessageSeqId(String messageSeqId) {
+        this.messageSeqId = messageSeqId;
+    }
+
     public Long getId() {
         return id;
     }

+ 4 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ImGroupNoticeService.java

@@ -25,12 +25,14 @@ public interface ImGroupNoticeService extends IService<ImGroupNotice> {
     * @author zx
     * @date 2022/3/24 10:57
     */
-    void create(ImGroupNotice imGroupNotice);
+    void create(ImGroupNoticeDto imGroupNotice);
 
-    void modify(ImGroupNotice imGroupNotice);
+    void modify(ImGroupNoticeDto imGroupNotice);
 
     void del(Long noticeId);
 
     PageInfo<ImGroupNoticeDto> queryPage(Map<String,Object> params);
+
+    ImGroupNoticeDto getNotice(Long noticeId);
 }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CustomerServiceBatchSendingServiceImpl.java

@@ -732,7 +732,7 @@ public class CustomerServiceBatchSendingServiceImpl extends ServiceImpl<Customer
                         if (message == null) {
                             continue;
                         }
-                        Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
+                        String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
                         log.info("batchSendPrivateMessage GROUP tencentCloud senderId={}, ret={}", senderId, ret);
                     }
                 } else {
@@ -741,7 +741,7 @@ public class CustomerServiceBatchSendingServiceImpl extends ServiceImpl<Customer
                         if (message == null) {
                             continue;
                         }
-                        Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
+                        String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
                         log.info("batchSendPrivateMessage GROUP rongCloud senderId={}, ret={}", senderId, ret);
                     }
                 }

+ 130 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupNoticeServiceImpl.java

@@ -1,7 +1,13 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.microsvc.toolkit.middleware.im.ImPluginContext;
+import com.microsvc.toolkit.middleware.im.message.ETencentMessage;
+import com.microsvc.toolkit.middleware.im.message.MessageWrapper;
+import com.microsvc.toolkit.middleware.im.message.TencentRequest;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.ImGroupDao;
@@ -10,13 +16,15 @@ import com.yonge.cooleshow.biz.dal.dto.ImGroupNoticeDto;
 import com.yonge.cooleshow.biz.dal.entity.ImGroup;
 import com.yonge.cooleshow.biz.dal.entity.ImGroupNotice;
 import com.yonge.cooleshow.biz.dal.service.ImGroupNoticeService;
-import com.yonge.toolset.mybatis.support.PageUtil;
+import com.yonge.cooleshow.biz.dal.service.ImGroupService;
+import com.yonge.cooleshow.biz.dal.wrapper.im.ImGroupNoticeWrapper;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
-import org.springframework.stereotype.Service;
-
+import com.yonge.toolset.mybatis.support.PageUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
@@ -38,7 +46,9 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
     @Resource
     private SysUserFeignService sysUserFeignService;
     @Resource
-    private ImGroupDao imGroupDao;
+    private ImGroupService imGroupService;
+    @Resource
+    private ImPluginContext imPluginContext;
 
     @Override
     public ImGroupNoticeDao getDao() {
@@ -47,7 +57,7 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void create(ImGroupNotice imGroupNotice) {
+    public void create(ImGroupNoticeDto imGroupNotice) {
         Long userId = this.checkAdmin(imGroupNotice.getGroupId());
         Date date = new Date();
         imGroupNotice.setOperatorId(userId);
@@ -59,16 +69,40 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
             baseMapper.updateTopFlag(imGroupNotice.getGroupId());
         }
         baseMapper.insert(imGroupNotice);
+        // 发送群公告消息
+        String messageSeqId = sendGroupCustomNoticeMessage(convertToImGroupNotice(imGroupNotice));
+        // 更新群公告消息ID
+        if (StringUtils.isNotBlank(messageSeqId)) {
+            imGroupNotice.setMessageSeqId(messageSeqId);
+            baseMapper.updateById(imGroupNotice);
+        }
+    }
+
+    public ImGroupNoticeWrapper.ImGroupNotice convertToImGroupNotice(ImGroupNoticeDto imGroupNotice) {
+        ImGroupNoticeWrapper.ImGroupNotice notice = ImGroupNoticeWrapper.ImGroupNotice.builder()
+                .id(imGroupNotice.getId())
+                .groupId(imGroupNotice.getGroupId())
+                .title(imGroupNotice.getTitle())
+                .content(imGroupNotice.getContent())
+                .topFlag(imGroupNotice.getTopFlag())
+                .clientType(imGroupNotice.getClientType())
+                .sentToNewMemberFlag(imGroupNotice.getSentToNewMemberFlag())
+                .operatorId(imGroupNotice.getOperatorId())
+                .delFlag(imGroupNotice.getDelFlag())
+                .build();
+        return notice;
     }
 
     @Override
     public void del(Long noticeId) {
         ImGroupNotice imGroupNotice = baseMapper.selectById(noticeId);
         if(Objects.isNull(imGroupNotice)){
-            throw new BizException("群公告不存在");
+            throw new BizException("该群公告已被删除");
         }
         this.checkAdmin(imGroupNotice.getGroupId());
         baseMapper.deleteById(noticeId);
+        // 撤销群公告消息
+        revokeImGroupNoticeMessage(imGroupNotice);
     }
 
     @Override
@@ -79,10 +113,23 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
     }
 
     @Override
+    public ImGroupNoticeDto getNotice(Long noticeId) {
+        ImGroupNotice imGroupNotice = baseMapper.selectById(noticeId);
+        if(Objects.isNull(imGroupNotice)){
+            throw new BizException("该群公告已被删除");
+        }
+        ImGroupNoticeDto imGroupNoticeDto = JSON.parseObject(JSON.toJSONString(imGroupNotice), ImGroupNoticeDto.class);
+        SysUser sysUser = sysUserFeignService.queryUserById(imGroupNotice.getOperatorId());
+        imGroupNoticeDto.setUsername(sysUser.getUsername());
+        imGroupNoticeDto.setAvatar(sysUser.getAvatar());
+        return imGroupNoticeDto;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
-    public void modify(ImGroupNotice imGroupNotice) {
+    public void modify(ImGroupNoticeDto imGroupNotice) {
         if(Objects.isNull(baseMapper.selectById(imGroupNotice.getId()))){
-            throw new BizException("群公告不存在");
+            throw new BizException("该群公告已被删除");
         }
         Long userId = this.checkAdmin(imGroupNotice.getGroupId());
         Date date = new Date();
@@ -94,14 +141,26 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
         if(imGroupNotice.getTopFlag() != null && Boolean.TRUE.equals(imGroupNotice.getTopFlag())){
             baseMapper.updateTopFlag(imGroupNotice.getGroupId());
         }
-
         baseMapper.updateById(imGroupNotice);
+        // 撤销群公告消息
+        ImGroupNotice notice = baseMapper.selectById(imGroupNotice.getId());
+        revokeImGroupNoticeMessage(notice);
+        // 发送群公告消息
+        ImGroupNoticeDto dto = JSON.parseObject(JSON.toJSONString(notice), ImGroupNoticeDto.class);
+        dto.setClientType(imGroupNotice.getClientType());
+        String messageSeqId = sendGroupCustomNoticeMessage(convertToImGroupNotice(dto));
+
+        // 更新群公告消息ID
+        if (StringUtils.isNotBlank(messageSeqId)) {
+            notice.setMessageSeqId(messageSeqId);
+            baseMapper.updateById(notice);
+        }
     }
 
     public Long checkAdmin(String groupId){
-        ImGroup imGroup = imGroupDao.selectById(groupId);
+        ImGroup imGroup = imGroupService.getById(groupId);
         if(Objects.isNull(imGroup)){
-            throw new BizException("群信息不存在");
+            throw new BizException("该群公告已被删除");
         }
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(!Objects.equals(sysUser.getId(),imGroup.getCreateBy())){
@@ -110,5 +169,65 @@ public class ImGroupNoticeServiceImpl extends ServiceImpl<ImGroupNoticeDao, ImGr
         return sysUser.getId();
     }
 
+    /**
+     * 发送群公告消息
+     *
+     * @param notice   ImGroupNoticeWrapper.ImGroupNotice
+     * @return 消息ID
+     */
+    private String sendGroupCustomNoticeMessage(ImGroupNoticeWrapper.ImGroupNotice notice) {
+        String messageSeqId;
+        // 发送群公告消息
+        ImGroupNoticeWrapper.CustomGroupNotice customGroupNotice = ImGroupNoticeWrapper.CustomGroupNotice.builder()
+                .businessID("TC_GROUP_NOTICE")
+                .msgId(String.valueOf(notice.getId()))
+                .msgTitle(notice.getTitle())
+                .msgContent(notice.getContent())
+                .build();
+
+        TencentRequest.MessageBody messageBody = TencentRequest.MessageBody.builder()
+                .msgType(ETencentMessage.TIMCustomElem.name())
+                .msgContent(TencentRequest.CustomMessageBody.builder()
+                        .data(customGroupNotice.jsonString())
+                        .desc("群公告")
+                        .build())
+                .build();
+
+        try {
+            // 发送群公告消息
+            messageSeqId = imPluginContext.getPluginService().sendGroupMessage(MessageWrapper.GroupMessage.builder()
+                    .senderId(imGroupService.getImUserId(notice.getOperatorId().toString(), notice.getClientType()))
+                    .groupId(notice.getGroupId())
+                    .tencentMessage(messageBody)
+                    .build());
+        } catch (Exception e) {
+            log.error("群公告消息发送失败, messageId={}, groupId={}, title={}, ", notice.getId(), notice.getGroupId(),
+                    notice.getTitle(), e);
+            throw com.microsvc.toolkit.common.webportal.exception.BizException.from("群公告消息发送失败");
+        }
+        return messageSeqId;
+    }
+
+    /**
+     * 撤销群公告消息
+     * @param imGroupNotice ImGroupNotice
+     */
+    private void revokeImGroupNoticeMessage(ImGroupNotice imGroupNotice) {
+        try {
+            if (StringUtils.isNotBlank(imGroupNotice.getMessageSeqId())) {
+                imPluginContext.getPluginService().recallGroupMessage(MessageWrapper.RecallGroupMessage.builder()
+                        .groupId(imGroupNotice.getGroupId())
+                        .reason("群公告消息撤销")
+                        .messageSeqs(Lists.newArrayList(
+                                TencentRequest.GroupMessageSeq.builder().messageSeq(Integer.parseInt(imGroupNotice.getMessageSeqId())).build()
+                        ))
+                        .build());
+            }
+        } catch (Exception e) {
+            log.error("撤销群公告消息失败, messageId={}, groupId={}, title={}, ", imGroupNotice.getId(), imGroupNotice.getGroupId(),
+                    imGroupNotice.getTitle(), e);
+        }
+    }
+
 }
 

+ 6 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImUserFriendServiceImpl.java

@@ -418,12 +418,12 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                         .msgContent(TencentRequest.TextMessageBody.builder().text(customerMessage).build())
                         .build();
 
-                Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
+                String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
                 log.info("registerUserBindCustomerService GROUP tencentCloud senderId={}, ret={}", build.getSenderId(), ret);
             } else {
                 // 融云IM消息
                 TxtMessage message = new TxtMessage(customerMessage, "");
-                Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
+                String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
                 log.info("registerUserBindCustomerService GROUP rongCloud senderId={}, ret={}", build.getSenderId(), ret);
             }
 
@@ -485,12 +485,12 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                         .msgContent(TencentRequest.TextMessageBody.builder().text(sendMessage).build())
                         .build();
 
-                Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
+                String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
                 log.info("registerUserBindCustomerService GROUP tencentCloud senderId={}, ret={}", build.getSenderId(), ret);
             } else {
                 // 融云IM消息
                 TxtMessage message = new TxtMessage(sendMessage, "");
-                Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
+                String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
                 log.info("registerUserBindCustomerService GROUP rongCloud senderId={}, ret={}", build.getSenderId(), ret);
             }
         } catch (Exception e) {
@@ -584,7 +584,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                         if (message == null) {
                             continue;
                         }
-                        Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
+                        String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getMsgType()).tencentMessage(message));
                         log.info("batchSendPrivateMessage GROUP tencentCloud senderId={}, ret={}", senderId, ret);
                     }
                 } else {
@@ -593,7 +593,7 @@ public class ImUserFriendServiceImpl extends ServiceImpl<ImUserFriendDao, ImUser
                         if (message == null){
                             continue;
                         }
-                        Boolean ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
+                        String ret = imPluginContext.getPluginService().sendPrivateMessage(build.objectName(message.getType()).rongCloueMessage(message));
                         log.info("batchSendPrivateMessage GROUP rongCloud senderId={}, ret={}", senderId, ret);
                     }
                 }

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

@@ -2472,7 +2472,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         query.setDelFlag(true);
         query.setPage(1);
         query.setAudioPlayTypeFlag(false);
-        if (sourceType == SourceTypeEnum.PLATFORM) {
+        if (sourceType == null || sourceType == SourceTypeEnum.PLATFORM) {
             query.setApplicationId(applicationId);
         } else {
             query.setApplicationId(Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.CBS_TENANT_APP_ID)));

+ 32 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/im/ImGroupNoticeWrapper.java

@@ -10,6 +10,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 
+import java.io.Serializable;
 import java.util.Date;
 import java.util.Optional;
 
@@ -102,4 +103,35 @@ public class ImGroupNoticeWrapper {
                         
 	}
 
+
+    @Data
+    @Builder
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel(" 自定义群公告")
+    public static class CustomGroupNotice implements Serializable {
+
+        @ApiModelProperty("业务ID")
+        private String businessID;
+
+        @ApiModelProperty("群公告ID")
+        private String msgId;
+
+        @ApiModelProperty("群公告标题")
+        private String msgTitle;
+
+        @ApiModelProperty("群公告内容")
+        private String msgContent;
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public String getBusinessID() {
+            return Optional.ofNullable(businessID).orElse("TC_GROUP_NOTICE");
+        }
+    }
+
+
+
 }

+ 1 - 1
pom.xml

@@ -24,7 +24,7 @@
 		<redisson.version>3.11.5</redisson.version>
 		<maven.test.skip>true</maven.test.skip>
 		<cbs.version>1.0.15</cbs.version>
-		<microsvc.version>1.0.8</microsvc.version>
+		<microsvc.version>1.0.8-RC1</microsvc.version>
 	</properties>