From a4a3f30fa1868c7c8b823a947a5cda423acce57d Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期六, 31 七月 2021 10:08:58 +0800
Subject: [PATCH] 防火防汛接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 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 669a52e..348df80 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
@@ -2,6 +2,7 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -189,7 +190,14 @@
     public ComActActivityVO inforActivity(Long id, Long userId) {
         ComActActivityVO comActActivityVO=comActActivityDAO.inforActivity(id);
         if (!ObjectUtils.isEmpty(comActActivityVO)) {
-            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, id).eq(ComActActSignDO::getUserId, userId));
+
+            LambdaQueryWrapper<ComActActSignDO> actSignQuery = new LambdaQueryWrapper<>();
+            actSignQuery.eq(ComActActSignDO::getActivityId, id);
+            if(userId != null){
+                actSignQuery.eq(ComActActSignDO::getUserId, userId);
+            }
+
+            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(actSignQuery);
             if (!ObjectUtils.isEmpty(comActActSignDO)) {
                 comActActivityVO.setIsSign(1);
                 comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer());
@@ -208,7 +216,15 @@
      */
     @Override
     public R listActivitySign(ActivitySignVO activitySignVO) {
-        List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySign(activitySignVO);
+
+        IPage<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySign(new Page(activitySignVO.getPageNum(),activitySignVO.getPageSize()),activitySignVO);
+//        List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySign(activitySignVO);
+        return R.ok(activitySignVOS);
+    }
+
+    @Override
+    public R listActivitySigns(ActivitySignVO activitySignVO) {
+        List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO);
         return R.ok(activitySignVOS);
     }
 
@@ -257,6 +273,21 @@
                 return R.fail("只有志愿者才能报名");
             }
 
+            //查询社区活动
+            ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
+            if(actActivityDO != null){
+                //查询当前活动下参与志愿者/居民数量
+                Integer count = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId,activityId)
+                        .eq(ComActActSignDO::getIsVolunteer,isVolunteer));
+                if(isVolunteer.equals(1) && actActivityDO.getVolunteerMax() <= count && !actActivityDO.getVolunteerMax().equals(-1)){
+                    return R.fail("志愿者报名人数已满");
+                }
+
+                if(isVolunteer.equals(0) && actActivityDO.getParticipantMax() <= count && !actActivityDO.getParticipantMax().equals(-1)){
+                    return R.fail("居民报名人数已满");
+                }
+            }
+
             ComActActSignDO comActActSignDO=new ComActActSignDO();
             comActActSignDO.setActivityId(activityId);
             comActActSignDO.setUserId(userId);

--
Gitblit v1.7.1