From eb80b83a3d4a0b59325e90405dc6c687c2904d3a Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期三, 05 一月 2022 14:45:16 +0800
Subject: [PATCH] 商家后台相关代码提交

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java |  426 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 279 insertions(+), 147 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 bf91110..1a640df 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
@@ -1,6 +1,7 @@
 package com.panzhihua.service_community.service.impl;
 
 import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
 import static org.apache.commons.lang3.StringUtils.isBlank;
 import static org.apache.commons.lang3.StringUtils.isNotBlank;
 
@@ -8,8 +9,10 @@
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -17,12 +20,6 @@
 
 import javax.annotation.Resource;
 
-import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
-import com.panzhihua.service_community.dao.*;
-import com.panzhihua.service_community.entity.ComActActivityCode;
-import com.panzhihua.service_community.model.dos.*;
-import com.panzhihua.service_community.service.ComActActivityCodeService;
-import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -35,8 +32,10 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.HttpStatus;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
 import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
 import com.panzhihua.common.model.vos.IndexDataVO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
@@ -45,6 +44,7 @@
 import com.panzhihua.common.model.vos.community.ComActActPictureVO;
 import com.panzhihua.common.model.vos.community.ComActActRegistVO;
 import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO;
+import com.panzhihua.common.model.vos.community.ComActActivityTypeVO;
 import com.panzhihua.common.model.vos.community.ComActActivityVO;
 import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
 import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
@@ -53,7 +53,22 @@
 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.ComActActEvaluateDAO;
+import com.panzhihua.service_community.dao.ComActActPictureDAO;
+import com.panzhihua.service_community.dao.ComActActRegistDAO;
+import com.panzhihua.service_community.dao.ComActActSignDAO;
+import com.panzhihua.service_community.dao.ComActActivityCodeDao;
+import com.panzhihua.service_community.dao.ComActActivityDAO;
+import com.panzhihua.service_community.dao.ComBpActivityDAO;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
+import com.panzhihua.service_community.model.dos.ComActActPictureDO;
+import com.panzhihua.service_community.model.dos.ComActActRegistDO;
+import com.panzhihua.service_community.model.dos.ComActActSignDO;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+import com.panzhihua.service_community.service.ComActActivityCodeService;
 import com.panzhihua.service_community.service.ComActActivityService;
+import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
 
 import lombok.extern.slf4j.Slf4j;
 
@@ -101,6 +116,9 @@
      */
     @Override
     public R addActivity(ComActActivityVO comActActivityVO) {
+        if (comActActivityVO.getHaveIntegralReward().intValue() == 2) {
+            comActActivityVO.setRewardWay(null);
+        }
         ComActActivityDO comActActivityDO = new ComActActivityDO();
         BeanUtils.copyProperties(comActActivityVO, comActActivityDO);
         Integer status = comActActivityVO.getStatus();
@@ -186,11 +204,15 @@
                 }
             }
         }
+        if (comActActivityVO.getHaveIntegralReward().intValue() == 2) {
+            comActActivityVO.setRewardWay(null);
+        }
         BeanUtils.copyProperties(comActActivityVO, comActActivityDO);
 
         // 结束时间大于当前时间则设置为“进行中”
         Date now = new Date();
-        if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
+        if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()
+        && now.getTime() > comActActivityVO.getSignUpBegin().getTime()) {
             comActActivityDO.setStatus(3);
         }
         boolean b = this.updateById(comActActivityDO);
@@ -264,8 +286,7 @@
      */
     @Override
     public R cancelActivity(ComActActivityVO comActActivityVO) {
-        ComActActivityDO comActActivityDO = new ComActActivityDO();
-        comActActivityDO.setId(comActActivityVO.getId());
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
         comActActivityDO.setStatus(comActActivityVO.getStatus());
         comActActivityDO.setCancelReason(comActActivityVO.getCancelReason());
         int update = comActActivityDAO.updateById(comActActivityDO);
@@ -291,13 +312,21 @@
                 LambdaQueryWrapper<ComActActSignDO> actSignQuery = new LambdaQueryWrapper<>();
                 actSignQuery.eq(ComActActSignDO::getActivityId, id);
                 actSignQuery.eq(ComActActSignDO::getUserId, userId);
+                actSignQuery.eq(ComActActSignDO::getStatus, 1);
                 ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(actSignQuery);
                 if (!ObjectUtils.isEmpty(comActActSignDO)) {
                     comActActivityVO.setIsSign(1);
                     comActActivityVO.setIsVolunteer(comActActSignDO.getIsVolunteer());
                 }
+                List<ComActActRegistDO> regList = comActActRegistDAO.selectList(new QueryWrapper<ComActActRegistDO>().lambda()
+                        .eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getActivityId, id).eq(ComActActRegistDO::getType, 1));
+                if (!regList.isEmpty()) {
+                    List<ComActActRegistDO> collect = regList.stream().sorted(Comparator.comparing(ComActActRegistDO::getId).reversed()).collect(Collectors.toList());
+                    comActActivityVO.setTimes(collect.get(0).getTimes());
+                }
             }
         }
+        comActActivityVO.setCodeType(1);
         return comActActivityVO;
     }
 
@@ -441,78 +470,124 @@
         Long activityId = signactivityVO.getActivityId();
         Integer type = signactivityVO.getType();
         Long userId = signactivityVO.getUserId();
-        Integer isVolunteer = signactivityVO.getIsVolunteer();
+        Integer isVolunteer = 0;
         // 查询社区活动
         ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
         if (isNull(actActivityDO)) {
             return R.fail("活动不存在");
         }
         int num = 0;
+        ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>()
+                .lambda().eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId));
         if (1 == type) {
+            if (nonNull(comActActSignDO) && comActActSignDO.getStatus().equals(1)) {
+                return R.fail("已经报名过了,请勿重复提交");
+            }
+            Integer volunteerMax = actActivityDO.getVolunteerMax();
+            Integer residentMax = actActivityDO.getParticipantMax();
             R<LoginUserInfoVO> userInfoR = userService.getUserInfoByUserId(String.valueOf(userId));
             LoginUserInfoVO loginUserInfoVO =
-                JSONObject.parseObject(JSONObject.toJSONString(userInfoR.getData()), LoginUserInfoVO.class);
-            boolean userNotVolunteer = !(loginUserInfoVO.getIsVolunteer() == 1);
-            if (isVolunteer == 1 && userNotVolunteer) {
-                return R.fail("只有志愿者才能报名");
-            }
-
-            // 查询当前活动下参与志愿者/居民数量
-            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("志愿者报名人数已满");
-            }
-
-            //审查用户是否有该活动报名权限(是否活动指定参与人群)
-            String currentUserTags = loginUserInfoVO.getTags();
-            String attendPeople = actActivityDO.getAattendPeople();
-            if (isVolunteer.intValue() == 0 && isNotBlank(attendPeople)) {
-                if (isBlank(currentUserTags)) {
-                    currentUserTags = "全部居民";
+                    JSONObject.parseObject(JSONObject.toJSONString(userInfoR.getData()), LoginUserInfoVO.class);
+            // 查询当前活动下参与居民
+            Integer residentCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 0).eq(ComActActSignDO::getStatus, 1));
+            if (volunteerMax != 0) {
+                //志愿者活动
+                boolean userIsVolunteer = loginUserInfoVO.getIsVolunteer() == 1;
+                // 查询当前活动下参与志愿者
+                Integer volunteerCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                        .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 1).eq(ComActActSignDO::getStatus, 1));
+                if (userIsVolunteer) {
+                    //用户是志愿者以志愿者身份参加
+                    if (volunteerMax > volunteerCount || volunteerMax.equals(-1)) {
+                        //以志愿者身份报名
+                        isVolunteer = 1;
+                    } else if (nonNull(residentMax) && (residentMax > residentCount || residentMax.equals(-1))) {
+                        //志愿者报名人数已满,再以居民身份报名参加
+                        isVolunteer = 0;
+                    } else {
+                        return R.fail("报名人数已满");
+                    }
                 } else {
-                    currentUserTags = currentUserTags.concat(",全部居民");
+                    //用户是普通居民已居民身份参加
+                    if (nonNull(residentMax) && (residentMax > residentCount || residentMax.equals(-1))) {
+                        //以居民身份报名参加
+                        isVolunteer = 0;
+                    } else if (volunteerMax > volunteerCount || volunteerMax.equals(-1)) {
+                        return R.fail(HttpStatus.NOT_ACCEPTABLE, "您还不是志愿者哦~");
+                    } else {
+                        return R.fail("报名人数已满");
+                    }
                 }
-                List<String> currentUserTagList = Arrays.asList(currentUserTags.split(","));
-                boolean checkResult = currentUserTagList.stream().anyMatch(currentUserTag -> attendPeople.contains(currentUserTag));
-                if (!checkResult) {
-                    return R.fail("您不是指定参与人群!");
+            } else {
+                //普通居民活动
+                //审查用户是否有该活动报名权限(是否活动指定参与人群)
+                String currentUserTags = loginUserInfoVO.getTags();
+                String attendPeople = actActivityDO.getAattendPeople();
+                if (isNotBlank(attendPeople)) {
+                    if (isBlank(currentUserTags)) {
+                        currentUserTags = "全部居民";
+                    } else {
+                        currentUserTags = currentUserTags.concat(",全部居民");
+                    }
+                    List<String> currentUserTagList = Arrays.asList(currentUserTags.split(","));
+                    boolean checkResult = currentUserTagList.stream().anyMatch(currentUserTag -> attendPeople.contains(currentUserTag));
+                    if (!checkResult) {
+                        return R.fail("您不是指定参与人群!");
+                    }
+                }
+                if (residentMax > residentCount || residentMax.equals(-1)) {
+                    //用户参加居民活动
+                    isVolunteer = 0;
+                } else {
+                    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);
-            comActActSignDO.setIsVolunteer(isVolunteer);
-            try {
+            if (nonNull(comActActSignDO)) {
+                comActActSignDO.setStatus(1);
+                comActActSignDO.setCreateAt(new Date());
+                comActActSignDO.setReason(null);
+                comActActSignDO.setIsVolunteer(isVolunteer);
+                num = comActActSignDAO.updateById(comActActSignDO);
+            } else {
+                comActActSignDO = new ComActActSignDO();
+                comActActSignDO.setActivityId(activityId);
+                comActActSignDO.setUserId(userId);
+                comActActSignDO.setIsVolunteer(isVolunteer);
                 num = comActActSignDAO.insert(comActActSignDO);
-            } catch (Exception e) {
-                if (e.getMessage().contains("unique_activity_id_user_id")) {
-                    return R.fail("已经报名过了,请勿重复提交");
-                }
-                log.error(e.getMessage());
             }
         } else {
+            Integer regTimes = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                    .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getType, 1));
+            Integer canCancel = actActivityDO.getCanCancel();
+            if (nonNull(canCancel) && canCancel.equals(2)) {
+                return R.fail("该活动暂不支持取消");
+            }
+            if (regTimes > 0) {
+                return R.fail("您已参与活动,不可取消");
+            }
             if (isNull(signactivityVO.getReason())) {
                 return R.fail("缺少取消原因");
             }
-            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>()
-                    .lambda().eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId));
             if (isNull(comActActSignDO)) {
                 return R.fail("未报名");
             }
             comActActSignDO.setStatus(0);
             comActActSignDO.setReason(signactivityVO.getReason());
             num = comActActSignDAO.updateById(comActActSignDO);
+            if (num > 0) {
+                AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO();
+                addComActIntegralUserDTO.setUserId(userId);
+                addComActIntegralUserDTO.setIntegralType(8);
+                addComActIntegralUserDTO.setActivityType(1);
+                addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer());
+                addComActIntegralUserDTO.setCommunityId(actActivityDO.getCommunityId());
+                addComActIntegralUserDTO.setServiceId(activityId);
+                comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+            }
         }
         if (num > 0) {
-            return R.ok();
+            return R.ok(isVolunteer);
         }
         return R.fail();
     }
@@ -522,10 +597,11 @@
      *
      * @param userId
      *            用户id
+     * @param status
      * @return 活动列表
      */
     @Override
-    public R listActivity(Long userId) {
+    public R listActivity(Long userId, Integer status) {
         List<ActivitySignVO> activitySignVOList = comActActSignDAO.selectList(userId);
         if (ObjectUtils.isEmpty(activitySignVOList)) {
             return R.fail();
@@ -534,34 +610,47 @@
             .collect(Collectors.toList());
         List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
         List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
-        comActActivityDOS.forEach(comActActivityDO -> {
-            ComActActivityVO comActActivityVO = new ComActActivityVO();
-            BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
-            List<ActivitySignVO> collect = activitySignVOList.stream()
-                .filter(activitySignVO -> activitySignVO.getActivityId().equals(comActActivityVO.getId())).limit(1)
-                .collect(Collectors.toList());
-            ActivitySignVO activitySignVO = collect.get(0);
-            Integer isVolunteer = activitySignVO.getIsVolunteer();
-            if (isVolunteer.intValue() == 1) {
-                comActActivityVO.setType(1);
-            } else {
-                comActActivityVO.setType(2);
+        if (nonNull(status)) {
+            if(status.equals(4)){
+                comActActivityDOS = comActActivityDOS.stream()
+                        .filter(activityDO -> activityDO.getStatus().equals(3)||activityDO.getStatus().equals(4)).collect(Collectors.toList());
+            }else{
+                comActActivityDOS = comActActivityDOS.stream()
+                        .filter(activityDO -> activityDO.getStatus().equals(status)).collect(Collectors.toList());
             }
-            Integer status = comActActivityVO.getStatus();
-            if (status.intValue() == 3) {
-                comActActivityVO.setStatus(4);
-            }
-            Date createAt = null;
-            try {
-                createAt = DateUtils.parseDate(activitySignVO.getCreateAt());
-            } catch (ParseException e) {
-                log.error("时间转换异常{【】}", e.getMessage());
-            }
-            comActActivityVO.setSingDate(createAt);
-            comActActivityVO.setTimes(activitySignVO.getTimes());
-            comActActivityVO.setAward(activitySignVO.getAward());
-            comActActivityVOS.add(comActActivityVO);
-        });
+        }
+        if (!comActActivityDOS.isEmpty()) {
+            comActActivityDOS.forEach(comActActivityDO -> {
+                ComActActivityVO comActActivityVO = new ComActActivityVO();
+                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
+                List<ActivitySignVO> collect = activitySignVOList.stream()
+                        .filter(activitySignVO -> activitySignVO.getActivityId().equals(comActActivityVO.getId())).limit(1)
+                        .collect(Collectors.toList());
+                ActivitySignVO activitySignVO = collect.get(0);
+                Integer isVolunteer = activitySignVO.getIsVolunteer();
+                if (isVolunteer.intValue() == 1) {
+                    comActActivityVO.setType(1);
+                } else {
+                    comActActivityVO.setType(2);
+                }
+                Integer activityStatus = comActActivityVO.getStatus();
+                if (activityStatus.intValue() == 3) {
+                    comActActivityVO.setStatus(4);
+                }
+                Date createAt = null;
+                try {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    createAt = simpleDateFormat.parse(activitySignVO.getCreateAt());
+                } catch (ParseException e) {
+                    log.error("时间转换异常【{}】", e.getMessage());
+                }
+                comActActivityVO.setSingDate(createAt);
+                comActActivityVO.setTimes(activitySignVO.getTimes());
+                Integer totalAward = comActActRegistDAO.selectTotalAwardWithRegist(activitySignVO.getActivityId(), userId);
+                comActActivityVO.setAward(totalAward);
+                comActActivityVOS.add(comActActivityVO);
+            });
+        }
         return R.ok(comActActivityVOS);
     }
 
@@ -819,6 +908,12 @@
                 return R.fail("活动不存在!");
             }
 
+            ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>().lambda()
+                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getStatus, 1));
+            if (isNull(comActActSignDO)) {
+                return R.fail("活动未报名");
+            }
+
             Date beginAt = comActActivityDO.getBeginAt();
             Date endAt = comActActivityDO.getEndAt();
             Date nowDate = new Date();
@@ -830,11 +925,16 @@
                     .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getCodeId,comActActRegistVO.getCodeId()));
             int signAllCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
                     .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
-            if (signDayCount >= 0) {
+            if (signDayCount > 0) {
                 return R.fail("请扫描新的签到码");
             }
-            if(signAllCount>=comActActivityDO.getLimit()){
-                return R.fail("签到次数上限");
+            Integer haveIntegralReward = comActActivityDO.getHaveIntegralReward();
+            boolean isHave = nonNull(haveIntegralReward) && haveIntegralReward.equals(1);
+            if (isHave) {
+                int limit = comActActivityDO.getLimit().intValue();
+                if(limit != -1 && signAllCount >= limit){
+                    return R.fail("签到次数上限");
+                }
             }
 
 //        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
@@ -845,78 +945,83 @@
             comActActRegistDO.setActivityId(activityId);
             comActActRegistDO.setType(1);
             comActActRegistDO.setUserId(userId);
-            comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
+            comActActRegistDO.setIsVolunteer(comActActSignDO.getIsVolunteer());
             comActActRegistDO.setCreateAt(nowDate);
             comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
-            comActActRegistDO.setAward(comActActivityDO.getRewardIntegral());
+            comActActRegistDO.setAward(isHave ? comActActivityDO.getRewardIntegral() : 0);
             comActActRegistDO.setPosition(comActActRegistVO.getPosition());
             comActActRegistDO.setTimes(signAllCount+1);
             int result = comActActRegistDAO.insert(comActActRegistDO);
             if (result > 0) {
-                AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO();
-                addComActIntegralUserDTO.setUserId(userId);
-                addComActIntegralUserDTO.setIntegralType(8);
-                addComActIntegralUserDTO.setActivityType(1);
-                addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId());
-                addComActIntegralUserDTO.setServiceId(activityId);
-                comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
-//            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
-//            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
-                return R.ok();
+                if (isHave) {
+                    boolean isVolunteerAct = comActActivityDO.getVolunteerMax() != 0;
+                    AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO();
+                    addComActIntegralUserDTO.setUserId(userId);
+                    addComActIntegralUserDTO.setIntegralType(isVolunteerAct ? 5 : 4);
+                    addComActIntegralUserDTO.setActivityType(1);
+                    addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer());
+                    addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId());
+                    addComActIntegralUserDTO.setServiceId(activityId);
+                    comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+                    return R.ok(comActActivityDO.getRewardIntegral());
+                } else {
+                    return R.ok();
+                }
             }
             return R.fail("网络错误,请重试");
         }
-        else {
-            ComPbActivityDO comPbActivityDO=comBpActivityDAO.selectById(activityId);
-            if (isNull(comPbActivityDO)) {
-                return R.fail("活动不存在!");
-            }
+//        else {
+//            ComPbActivityDO comPbActivityDO=comBpActivityDAO.selectById(activityId);
+//            if (isNull(comPbActivityDO)) {
+//                return R.fail("活动不存在!");
+//            }
+//
+//            Date beginAt = comPbActivityDO.getActivityTimeBegin();
+//            Date endAt = comPbActivityDO.getActivityTimeEnd();
+//            Date nowDate = new Date();
+//            if (nowDate.before(beginAt) || nowDate.after(endAt)) {
+//                return R.fail("不在活动时间范围内");
+//            }
+//
+//            int signDayCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
+//                    .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getCodeId,comActActRegistVO.getCodeId()));
+//            int signAllCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
+//                    .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
+//            if (signDayCount >= 0) {
+//                return R.fail("请扫描新的签到码");
+//            }
+//            int limit = comPbActivityDO.getLimit().intValue();
+//            if(limit != -1 && signAllCount >= limit){
+//                return R.fail("签到次数上限");
+//            }
+//
+//            ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
+//            comActActRegistDO.setActivityId(activityId);
+//            comActActRegistDO.setType(2);
+//            comActActRegistDO.setUserId(userId);
+//            comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
+//            comActActRegistDO.setCreateAt(nowDate);
+//            comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
+//            comActActRegistDO.setAward(comPbActivityDO.getRewardIntegral());
+//            comActActRegistDO.setPosition(comActActRegistVO.getPosition());
+//            comActActRegistDO.setTimes(signAllCount+1);
+//            int result = comActActRegistDAO.insert(comActActRegistDO);
+//            if (result > 0) {
+//                AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO();
+//                addComActIntegralUserDTO.setUserId(userId);
+//                addComActIntegralUserDTO.setIntegralType(8);
+//                addComActIntegralUserDTO.setActivityType(2);
+//                addComActIntegralUserDTO.setCommunityId(comPbActivityDO.getCommunityId());
+//                addComActIntegralUserDTO.setServiceId(activityId);
+//                comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+////            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+////            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
+//                return R.ok();
+//            }
+//            return R.fail("网络错误,请重试");
+//        }
 
-            Date beginAt = comPbActivityDO.getActivityTimeBegin();
-            Date endAt = comPbActivityDO.getActivityTimeEnd();
-            Date nowDate = new Date();
-            if (nowDate.before(beginAt) || nowDate.after(endAt)) {
-                return R.fail("不在活动时间范围内");
-            }
-
-            int signDayCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
-                    .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getCodeId,comActActRegistVO.getCodeId()));
-            int signAllCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
-                    .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
-            if (signDayCount >= 0) {
-                return R.fail("请扫描新的签到码");
-            }
-            if(signAllCount>=comPbActivityDO.getLimit()){
-                return R.fail("签到次数上限");
-            }
-
-            ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
-            comActActRegistDO.setActivityId(activityId);
-            comActActRegistDO.setType(2);
-            comActActRegistDO.setUserId(userId);
-            comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
-            comActActRegistDO.setCreateAt(nowDate);
-            comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
-            comActActRegistDO.setAward(comPbActivityDO.getRewardIntegral());
-            comActActRegistDO.setPosition(comActActRegistVO.getPosition());
-            comActActRegistDO.setTimes(signAllCount+1);
-            int result = comActActRegistDAO.insert(comActActRegistDO);
-            if (result > 0) {
-                AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO();
-                addComActIntegralUserDTO.setUserId(userId);
-                addComActIntegralUserDTO.setIntegralType(8);
-                addComActIntegralUserDTO.setActivityType(2);
-                addComActIntegralUserDTO.setCommunityId(comPbActivityDO.getCommunityId());
-                addComActIntegralUserDTO.setServiceId(activityId);
-                comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
-//            ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
-//            opsForValue.set(activitySignInKey, "", 1800L, TimeUnit.SECONDS);
-                return R.ok();
-            }
-            return R.fail("网络错误,请重试");
-        }
-
-
+        return R.fail("网络错误,请重试");
     }
 
     /**
@@ -958,4 +1063,31 @@
     public R listRegistRecord(Long id, Long userId) {
         return R.ok(comActActRegistDAO.listRegistRecord(id, userId));
     }
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @Override
+    public R listActivityType(Long communityId, Integer type) {
+        return R.ok(this.baseMapper.listActivityType(communityId, type));
+    }
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    @Override
+    public R addActivityType(ComActActivityTypeVO comActActivityTypeVO) {
+        try {
+            this.baseMapper.addActivityType(comActActivityTypeVO);
+        } catch (Exception e) {
+            log.error("添加活动类型错误【{}】", e.getMessage());
+            return R.fail("活动类型已存在");
+        }
+        return R.ok();
+    }
 }

--
Gitblit v1.7.1