فهرست منبع

广场舞大赛活动

xgb 1 ماه پیش
والد
کامیت
4fb051b23d

+ 1 - 1
fs-admin/src/main/java/com/fs/app/controller/AccWorkController.java

@@ -81,7 +81,7 @@ public class AccWorkController extends BaseController
     }
 
     /**
-     * 修改作品
+     * 修改作品 | 作品审核通过 | 您的作品已上线,快去分享拉票吧!
      */
     @PreAuthorize("@ss.hasPermi('app:accWork:edit')")
     @Log(title = "作品", businessType = BusinessType.UPDATE)

+ 3 - 0
fs-service/src/main/java/com/fs/activity/domain/AccWork.java

@@ -100,4 +100,7 @@ public class AccWork  {
     @TableField(exist = false)
     private Boolean isVoted;
 
+    @TableField(exist = false)
+    private Long userId;
+
 }

+ 4 - 0
fs-service/src/main/java/com/fs/activity/service/AccActivityService.java

@@ -2,6 +2,8 @@ package com.fs.activity.service;
 
 import com.fs.activity.domain.AccActivity;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.activity.domain.AccTeam;
+import com.fs.activity.domain.AccWork;
 import com.fs.common.core.domain.R;
 
 import java.util.List;
@@ -69,4 +71,6 @@ public interface AccActivityService extends IService<AccActivity> {
     AccActivity selectAccActivityByIdAndUserId(Long activityId, Long userId);
 
     R updateActivityShow(Long activityId, long userId);
+
+    R imMsg(AccTeam accWork);
 }

+ 22 - 0
fs-service/src/main/java/com/fs/activity/service/impl/AccActivityServiceImpl.java

@@ -2,9 +2,14 @@ package com.fs.activity.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.activity.domain.AccActivity;
+import com.fs.activity.domain.AccTeam;
+import com.fs.activity.domain.AccWork;
 import com.fs.activity.service.AccActivityService;
 import com.fs.activity.mapper.AccActivityMapper;
 import com.fs.common.core.domain.R;
+import com.fs.gtPush.service.uniPush2Service;
+import com.fs.his.enums.PushLogDesTypeEnum;
+import com.fs.im.service.OpenIMService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
@@ -28,9 +33,15 @@ public class AccActivityServiceImpl extends ServiceImpl<AccActivityMapper, AccAc
 
     private static final String ACTIVITY_SHOW_KEY = "activity:show:";
 
+    @Autowired
+    private OpenIMService openIMService;
+
     @Autowired
     private RedisTemplate redisTemplate;
 
+    @Autowired
+    private uniPush2Service uniPush2Service;
+
     /**
      * 查询活动
      *
@@ -193,6 +204,17 @@ public class AccActivityServiceImpl extends ServiceImpl<AccActivityMapper, AccAc
         return R.ok();
     }
 
+    @Override
+    public R imMsg(AccTeam accWork) {
+
+        openIMService.sendSystemMsg(String.valueOf(accWork.getLeaderId()),"| 新增队伍成功 | 恭喜您创建【团队名称】成功!队伍码:XXXXXX | 领队 |","广场舞活动");
+
+//
+//        uniPush2Service.pushIm( accWork.getLeaderId(),null,null,"广场舞活动","恭喜加入我们的队伍",1f, PushLogDesTypeEnum.IM_MSG.getValue(),"");
+
+        return null;
+    }
+
 
 }
 

+ 22 - 0
fs-service/src/main/java/com/fs/activity/service/impl/AccTeamServiceImpl.java

@@ -12,6 +12,7 @@ import com.fs.activity.service.AccTeamService;
 import com.fs.activity.mapper.AccTeamMapper;
 import com.fs.activity.utils.CodeGenerator;
 import com.fs.common.core.domain.R;
+import com.fs.im.service.OpenIMService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -31,6 +32,9 @@ public class AccTeamServiceImpl extends ServiceImpl<AccTeamMapper, AccTeam>
     @Autowired
     private AccTeamMemberMapper accTeamMemberMapper;
 
+    @Autowired
+    private OpenIMService openIMService;
+
     private final static Integer TEAM_MAX_MEMBER_COUNT = 26;
 
     /**
@@ -83,6 +87,15 @@ public class AccTeamServiceImpl extends ServiceImpl<AccTeamMapper, AccTeam>
         if(accTeamMemberMapper.insert(accTeamMember)<=0){
             throw new RuntimeException("创建队员失败");
         }
+
+        // 异步发送im消息推送
+        String userId=String.valueOf(accTeam.getLeaderId());
+        StringBuilder textBuilder=new StringBuilder();
+        textBuilder.append("| 创建队伍成功 | 恭喜您加入【").append(accTeam.getTeamName()).append("】成功!队伍码:").append(accTeam.getTeamCode());
+        String text=textBuilder.toString();
+        String title="广场舞活动";
+        openIMService.sendSystemMsgAsync(userId,text,title);
+
         return R.ok().put("data",accTeam);
     }
 
@@ -159,6 +172,15 @@ public class AccTeamServiceImpl extends ServiceImpl<AccTeamMapper, AccTeam>
                 }
             }
         }
+
+        // 异步发送im消息推送
+        String userId=String.valueOf(accTeam.getUserId());
+        StringBuilder textBuilder=new StringBuilder();
+        textBuilder.append("| 加入队伍成功 | 恭喜您加入【").append(team.getTeamName()).append("】成功!");
+        String text=textBuilder.toString();
+        String title="广场舞活动";
+        openIMService.sendSystemMsgAsync(userId,text,title);
+
         return R.ok();
     }
 

+ 12 - 2
fs-service/src/main/java/com/fs/activity/service/impl/AccWorkServiceImpl.java

@@ -15,6 +15,7 @@ import com.fs.activity.service.AccWorkService;
 import com.fs.activity.mapper.AccWorkMapper;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.ServiceException;
+import com.fs.im.service.OpenIMService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
@@ -52,8 +53,6 @@ public class AccWorkServiceImpl extends ServiceImpl<AccWorkMapper, AccWork>
     // 今日是否已经投给该作品
     private static final String VOTE_WORK_KEY = "vote:work:";
 
-
-
     // 每日最大投票数(可配置)
     private static final int MAX_VOTES_PER_DAY = 3;
 
@@ -69,6 +68,9 @@ public class AccWorkServiceImpl extends ServiceImpl<AccWorkMapper, AccWork>
     @Autowired
     private RedissonClient redissonClient;
 
+    @Autowired
+    private OpenIMService openIMService;
+
     /**
      * 查询作品
      *
@@ -170,6 +172,14 @@ public class AccWorkServiceImpl extends ServiceImpl<AccWorkMapper, AccWork>
             }
         }
 
+        // 异步发送im消息推送
+        String userId=String.valueOf(accWork.getUserId());
+        StringBuilder textBuilder=new StringBuilder();
+        textBuilder.append("| 作品上传成功 | 您的作品【").append(accWork.getWorkName()).append("】已提交审核,请耐心等待!");
+        String text=textBuilder.toString();
+        String title="广场舞活动";
+        openIMService.sendSystemMsgAsync(userId,text,title);
+
         return R.ok();
     }
 

+ 6 - 0
fs-service/src/main/java/com/fs/im/service/OpenIMService.java

@@ -13,6 +13,7 @@ import com.fs.im.dto.OpenImMsgDTO;
 import com.fs.im.dto.OpenImResponseDTO;
 import com.fs.im.vo.OpenImMsgCallBackVO;
 
+import java.util.HashMap;
 import java.util.List;
 
 public interface OpenIMService {
@@ -90,4 +91,9 @@ public interface OpenIMService {
     OpenImResponseDTO doctorSendMsgToUser(Long userId,Long doctorId);
 
     OpenImResponseDTO getFriendList(String userID, int pageNumber, int showNumber,Integer applyType);
+
+    OpenImResponseDTO sendSystemMsg(String userId, String text, String title);
+
+
+    void sendSystemMsgAsync(String userId, String text, String title);
 }

+ 40 - 0
fs-service/src/main/java/com/fs/im/service/impl/OpenIMServiceImpl.java

@@ -1689,4 +1689,44 @@ public class OpenIMServiceImpl implements OpenIMService {
         }
         return null;
     }
+
+    /**
+     *
+     * @param userId  接收消息的用户id
+     * @param text  通知正文
+     * @return
+     */
+    @Override
+    public OpenImResponseDTO sendSystemMsg(String userId,String text,String title){
+        OpenImMsgDTO openImMsgDTO = new OpenImMsgDTO();
+        OpenImMsgDTO.Content content = new OpenImMsgDTO.Content();
+        content.setContent(text);
+        openImMsgDTO.setContent(content);
+
+        OpenImMsgDTO.OfflinePushInfo offlinePushInfo = new OpenImMsgDTO.OfflinePushInfo();
+        offlinePushInfo.setDesc("系统通知");
+        offlinePushInfo.setTitle(title);
+        offlinePushInfo.setIOSBadgeCount(true);
+        offlinePushInfo.setIOSPushSound("");
+        openImMsgDTO.setOfflinePushInfo(offlinePushInfo);
+
+        openImMsgDTO.setSendID("imAdmin");
+        openImMsgDTO.setRecvID("U"+userId);
+        openImMsgDTO.setSenderPlatformID(3);
+        openImMsgDTO.setContentType(101); // 101:文本
+        openImMsgDTO.setSessionType(1);// 1:单聊,3:群聊,4:系统通知
+        openImMsgDTO.setSenderNickname("系统通知");
+        return openIMSendMsg(openImMsgDTO);
+    }
+
+    @Override
+    @Async
+    public void sendSystemMsgAsync(String userId, String text, String title) {
+        try {
+            log.info("异步发送系统消息:userId={}, title={}", userId, title);
+            sendSystemMsg(userId, text, title);
+        } catch (Exception e) {
+            log.error("异步发送系统消息失败:userId={}, error={}", userId, e.getMessage(), e);
+        }
+    }
 }

+ 6 - 0
fs-user-app/src/main/java/com/fs/app/controller/app/AccActivityController.java

@@ -161,6 +161,7 @@ public class AccActivityController extends AppBaseController
     @Login
     @PostMapping("/uploadVideo")
     public R uploadVideo(@RequestBody AccWork accWork){
+        accWork.setUserId(Long.parseLong(getUserId()));
         return accWorkService.uploadVideo(accWork);
     }
 
@@ -207,6 +208,11 @@ public class AccActivityController extends AppBaseController
 
 
 
+    @Login
+    @PostMapping("/imMsg")
+    public R imMsg(@RequestBody AccTeam accWork){
+        return accActivityService.imMsg(accWork);
+    }