From 202c08e4c835e4fa00452577d954025045f7961e Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期三, 04 八月 2021 17:29:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test' into txb

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java |   80 ++++++++++++++++++++++++++++++++++------
 1 files changed, 68 insertions(+), 12 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
index 99f60c5..eef5397 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -16,6 +16,8 @@
 import com.panzhihua.common.model.vos.community.*;
 import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
 import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
 import com.panzhihua.service_community.dao.ComActActSignDAO;
 import com.panzhihua.service_community.dao.ComActActivityDAO;
 import com.panzhihua.service_community.dao.ComActDiscussOptionUserDAO;
@@ -24,15 +26,13 @@
 import com.panzhihua.service_community.service.ComActActivityService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -94,7 +94,34 @@
      */
     @Override
     public R putActivity(ComActActivityVO comActActivityVO) {
-        ComActActivityDO comActActivityDO=new ComActActivityDO();
+        ComActActivityDO comActActivityDO = this.comActActivityDAO.selectById(comActActivityVO.getId());
+        if(comActActivityDO == null){
+            return R.fail("未找到社区活动");
+        }
+
+        if(!comActActivityDO.getActivityAddr().equals(comActActivityVO.getActivityAddr()) || !comActActivityDO.getBeginAt().equals(comActActivityVO.getBeginAt())){
+            //修改活动开始时间与活动地点需要推送订阅消息给用户
+            ActivitySignVO activitySignVO = new ActivitySignVO();
+            activitySignVO.setId(comActActivityVO.getId());
+            List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO);
+            if(!activitySignVOS.isEmpty()){
+                try {
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    String accessToken = util.getAppAccessToken();
+
+                    activitySignVOS.forEach(activitySignVO1 -> {
+                        //变更社区活动推送订阅消息给用户
+                        WxUtil.sendSubscribeHDBG(activitySignVO1.getOpenid(),accessToken,comActActivityVO.getActivityName()
+                                , com.panzhihua.common.utlis.DateUtils.format(comActActivityDO.getBeginAt()
+                                        , com.panzhihua.common.utlis.DateUtils.ymdhms_format),comActActivityDO.getActivityAddr(),
+                                com.panzhihua.common.utlis.DateUtils.format(comActActivityVO.getBeginAt()
+                                        , com.panzhihua.common.utlis.DateUtils.ymdhms_format),comActActivityVO.getActivityAddr());
+                    });
+                }catch (Exception e){
+                    log.error("消息推送失败,失败原因:" + e.getMessage());
+                }
+            }
+        }
         BeanUtils.copyProperties(comActActivityVO,comActActivityDO);
 
         //结束时间大于当前时间则设置为“进行中”
@@ -500,14 +527,43 @@
         return dates;
     }
 
-    public static void main(String[] args) {
-        List<Date> dates=new ArrayList<>();
-        Date date=new Date();
-        for(int i=6;i>=0;i--){
-            Date date1= DateUtils.addDays(date,-i);
-            dates.add(date1);
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @Override
+    public R timedTaskActivityNotice(){
+        //查询所有即将开始的活动
+        List<ComActActivityDO> actActivityList = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>().lambda()
+                .le(ComActActivityDO::getBeginAt, DateUtils.addDays(new Date(),1)));
+        if(!actActivityList.isEmpty()){
+            WxXCXTempSend util = new WxXCXTempSend();
+            try {
+                String accessToken = util.getAppAccessToken();
+                actActivityList.forEach(actActivity -> {
+                    //查询报名活动人员列表
+                    List<ComActActSignDO> actSignList = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>().lambda()
+                            .eq(ComActActSignDO::getActivityId,actActivity.getId()));
+                    actSignList.forEach(actSign -> {
+                        //查询用户openId
+                        Map<String,String> map = comActActSignDAO.getUserOpenId(actSign.getUserId());
+                        if(map != null){
+                            String openid = map.get("openid");
+                            //推送消息
+                            WxUtil.sendSubscribeHDJJKS(openid,accessToken,actActivity.getActivityName()
+                                    , com.panzhihua.common.utlis.DateUtils.format(actActivity.getBeginAt()
+                                            ,com.panzhihua.common.utlis.DateUtils.ymdhms_format),actActivity.getActivityAddr()
+                                    ,actSignList.size()+"");
+                        }
+
+                    });
+
+                });
+            }catch (Exception e){
+                log.error("推送失败,错误原因:" + e.getMessage());
+            }
         }
-        System.out.println(dates);
+        return R.ok();
     }
 
 }

--
Gitblit v1.7.1