From c3811d01d1929a98a0f34f70ca187d82ee312dbb Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期三, 03 十一月 2021 17:26:50 +0800
Subject: [PATCH] Merge branch 'test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into test

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java |  412 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 310 insertions(+), 102 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 39e6c42..3456592 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,10 +1,15 @@
 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;
 
+import java.math.BigDecimal;
+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.Date;
@@ -26,8 +31,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;
@@ -36,6 +43,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;
@@ -48,13 +56,18 @@
 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;
 
@@ -84,6 +97,14 @@
     private StringRedisTemplate stringRedisTemplate;
     @Resource
     private ComActActPictureDAO comActActPictureDAO;
+    @Resource
+    private ComActActivityCodeDao comActActivityCodeDao;
+    @Resource
+    private ComBpActivityDAO comBpActivityDAO;
+    @Resource
+    private ComActIntegralUserTradeService comActIntegralUserTradeService;
+    @Resource
+    private ComActActivityCodeService comActActivityCodeService;
 
     /**
      * 新增社区活动
@@ -128,6 +149,13 @@
         comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
         comActActPictureDO.setSysFlag(0);
         comActActPictureDAO.insert(comActActPictureDO);
+
+        ComActActivityCode comActActivityCode = new ComActActivityCode();
+        comActActivityCode.setActivityId(comActActivityDO.getId().longValue());
+        comActActivityCode.setCreateTime(new Date());
+        comActActivityCode.setType(1);
+        comActActivityCode.setStatus(1);
+        comActActivityCodeService.save(comActActivityCode);
         return R.ok(activityId);
     }
 
@@ -177,7 +205,7 @@
         // 结束时间大于当前时间则设置为“进行中”
         Date now = new Date();
         if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
-            comActActivityDO.setStatus(4);
+            comActActivityDO.setStatus(3);
         }
         boolean b = this.updateById(comActActivityDO);
         if (b) {
@@ -277,6 +305,7 @@
                 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);
@@ -284,6 +313,7 @@
                 }
             }
         }
+        comActActivityVO.setCodeType(1);
         return comActActivityVO;
     }
 
@@ -427,68 +457,105 @@
         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)) {
-                    return R.fail("您不是指定参与人群!");
+                    JSONObject.parseObject(JSONObject.toJSONString(userInfoR.getData()), LoginUserInfoVO.class);
+            // 查询当前活动下参与居民
+            Integer residentCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 0));
+            if (volunteerMax != 0) {
+                //志愿者活动
+                boolean userIsVolunteer = loginUserInfoVO.getIsVolunteer() == 1;
+                // 查询当前活动下参与志愿者
+                Integer volunteerCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                        .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 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 {
+                    //用户是普通居民已居民身份参加
+                    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 {
-            num = comActActSignDAO
-                .delete(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getUserId, userId)
-                    .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, isVolunteer));
+            if (isNull(signactivityVO.getReason())) {
+                return R.fail("缺少取消原因");
+            }
+            if (isNull(comActActSignDO)) {
+                return R.fail("未报名");
+            }
+            comActActSignDO.setStatus(0);
+            comActActSignDO.setReason(signactivityVO.getReason());
+            num = comActActSignDAO.updateById(comActActSignDO);
         }
         if (num > 0) {
-            return R.ok();
+            return R.ok(isVolunteer);
         }
         return R.fail();
     }
@@ -498,41 +565,54 @@
      *
      * @param userId
      *            用户id
+     * @param status
      * @return 活动列表
      */
     @Override
-    public R listActivity(Long userId) {
-        List<ComActActSignDO> comActActSignDOS = comActActSignDAO
-            .selectList(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getUserId, userId));
-        if (ObjectUtils.isEmpty(comActActSignDOS)) {
+    public R listActivity(Long userId, Integer status) {
+        List<ActivitySignVO> activitySignVOList = comActActSignDAO.selectList(userId);
+        if (ObjectUtils.isEmpty(activitySignVOList)) {
             return R.fail();
         }
-        List<Long> longs = comActActSignDOS.stream().map(comActActSignDO -> comActActSignDO.getActivityId())
+        List<Long> longs = activitySignVOList.stream().map(activitySignVO -> activitySignVO.getActivityId())
             .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<ComActActSignDO> collect = comActActSignDOS.stream()
-                .filter(comActActSignDO -> comActActSignDO.getActivityId().equals(comActActivityVO.getId())).limit(1)
-                .collect(Collectors.toList());
-            ComActActSignDO comActActSignDO = collect.get(0);
-            Integer isVolunteer = comActActSignDO.getIsVolunteer();
-            if (isVolunteer.intValue() == 1) {
-                comActActivityVO.setType(1);
-            } else {
-                comActActivityVO.setType(2);
-            }
-            Integer status = comActActivityVO.getStatus();
-            if (status.intValue() == 3) {
-                comActActivityVO.setStatus(4);
-            }
-            comActActivityVO.setSingDate(comActActSignDOS.stream()
-                .filter(comActActSignDO1 -> comActActSignDO1.getActivityId().equals(comActActivityVO.getId()))
-                .collect(Collectors.toList()).get(0).getCreateAt());
-            comActActivityVOS.add(comActActivityVO);
-        });
+        if (nonNull(status)) {
+            comActActivityDOS = comActActivityDOS.stream()
+                    .filter(activityDO -> activityDO.getStatus().equals(status)).collect(Collectors.toList());
+        }
+        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());
+                comActActivityVO.setAward(activitySignVO.getAward());
+                comActActivityVOS.add(comActActivityVO);
+            });
+        }
         return R.ok(comActActivityVOS);
     }
 
@@ -633,11 +713,20 @@
         iPage.getRecords().forEach(vo ->{
             List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO
                     .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId()));
-            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() != 0) {
+            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() > 0) {
+                BigDecimal starNum = BigDecimal.ZERO;
                 //总星级
-                int starNum = comActActEvaluateDOList.stream().mapToInt(ComActActEvaluateDO::getStarLevel).sum();
-                //评分星级=总星级/总评价人数
-                vo.setEvaluateLevel(Double.valueOf(starNum/comActActEvaluateDOList.size()));
+                for (ComActActEvaluateDO evaluateDO:comActActEvaluateDOList) {
+                    starNum = starNum.add(BigDecimal.valueOf(evaluateDO.getStarLevel()==null?0:evaluateDO.getStarLevel()));
+                }
+                //评分星级(如果无评分默认5分)=总星级/总评价人数
+                if(starNum.compareTo(BigDecimal.ZERO) == 0){
+                    vo.setEvaluateLevel(BigDecimal.valueOf(5));
+                }else{
+                    vo.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateDOList.size()),2, RoundingMode.HALF_UP));
+                }
+            }else{
+                vo.setEvaluateLevel(BigDecimal.valueOf(5));
             }
         });
         return R.ok(iPage);
@@ -718,7 +807,7 @@
         // 查询所有即将开始的活动
         List<ComActActivityDO> actActivityList = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>()
             .lambda().le(ComActActivityDO::getBeginAt, DateUtils.addDays(new Date(), 1))
-            .ge(ComActActivityDO::getBeginAt, new Date()));
+            .ge(ComActActivityDO::getBeginAt, new Date()).notIn(ComActActivityDO::getStatus,5,6));
         if (!actActivityList.isEmpty()) {
             WxXCXTempSend util = new WxXCXTempSend();
             try {
@@ -775,40 +864,111 @@
         if (isNull(activityId)) {
             return R.fail("签到所属活动id不能为空!");
         }
-        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
-        if (isNull(comActActivityDO)) {
-            return R.fail("活动不存在!");
-        }
+        if(comActActRegistVO.getActivityType()==1){
+            ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+            if (isNull(comActActivityDO)) {
+                return R.fail("活动不存在!");
+            }
 
-        Date beginAt = comActActivityDO.getBeginAt();
-        Date endAt = comActActivityDO.getEndAt();
-        Date nowDate = new Date();
-        if (nowDate.before(beginAt) || nowDate.after(endAt)) {
-            return R.fail("不在活动时间范围内");
-        }
+            Date beginAt = comActActivityDO.getBeginAt();
+            Date endAt = comActActivityDO.getEndAt();
+            Date nowDate = new Date();
+            if (nowDate.before(beginAt) || nowDate.after(endAt)) {
+                return R.fail("不在活动时间范围内");
+            }
 
-        int signCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
-                .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
-
-        if (signCount > 0) {
-            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 = comActActivityDO.getLimit().intValue();
+            if(limit != -1 && signAllCount >= limit){
+                return R.fail("签到次数上限");
+            }
 
 //        String activitySignInKey = String.join(DELIMITER, ACTIVITY_SIGN_IN, userId.toString(), activityId.toString());
 //        if (stringRedisTemplate.hasKey(activitySignInKey)) {
 //            return R.fail("你已签到,如要再次签到请三十分钟后尝试!");
 //        }
-        ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
-        comActActRegistDO.setActivityId(activityId);
-        comActActRegistDO.setUserId(userId);
-        comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
-        comActActRegistDO.setCreateAt(nowDate);
-        int result = comActActRegistDAO.insert(comActActRegistDO);
-        if (result > 0) {
+            ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
+            comActActRegistDO.setActivityId(activityId);
+            comActActRegistDO.setType(1);
+            comActActRegistDO.setUserId(userId);
+            comActActRegistDO.setIsVolunteer(comActActRegistVO.getIsVolunteer());
+            comActActRegistDO.setCreateAt(nowDate);
+            comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
+            comActActRegistDO.setAward(comActActivityDO.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(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();
+                return R.ok(comActActivityDO.getRewardIntegral());
+            }
+            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("网络错误,请重试");
+//        }
+
         return R.fail("网络错误,请重试");
     }
 
@@ -830,4 +990,52 @@
         });
         return R.ok(comActActRegistVOS);
     }
+
+    /**
+     * 获取活动报名签到记录
+     * @param id 活动主键id
+     * @return
+     */
+    @Override
+    public R listSignInRecord(Long id) {
+        return R.ok(comActActSignDAO.listSignInRecord(id));
+    }
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    @Override
+    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