From 40ff51856a11151ab3f0154a1ae3530e00dafff7 Mon Sep 17 00:00:00 2001 From: puhanshu <a9236326> Date: 星期四, 23 十二月 2021 13:52:31 +0800 Subject: [PATCH] 修改活动bug --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml | 8 + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 137 +++++++++++++++----------- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java | 4 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml | 10 +- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java | 14 +- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java | 4 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java | 4 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml | 6 + springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java | 4 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java | 19 +-- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java | 4 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java | 16 +- springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java | 8 + springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java | 24 +++- 14 files changed, 158 insertions(+), 104 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java index 279d8f8..2167b83 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java @@ -11,7 +11,7 @@ @ApiModelProperty("业务id") private Long serviceId; - @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷 8.活动签到 9.取消活动)") + @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参加居民活动 5.参加志愿者活动 6.参与党员活动 7.参与调查问卷 8.取消活动 )") private Integer integralType; @ApiModelProperty(value = "社区id") @@ -26,6 +26,9 @@ @ApiModelProperty(value = "签到类型 1居民 志愿者签到 2党员签到") private Integer activityType; + @ApiModelProperty(value = "是否是志愿者 0 不是 1 是") + private Integer isVolunteer; + public AddComActIntegralUserDTO(Long serviceId, Integer integralType, Long communityId, Long userId) { this.serviceId = serviceId; this.integralType = integralType; @@ -36,17 +39,16 @@ public AddComActIntegralUserDTO() {} /** - * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷 8.活动签到 9.取消活动) + * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参加居民活动 5.参加志愿者活动 6.参与党员活动 7.参与调查问卷 8.取消活动 ) */ public interface integralType { int fbssp = 1; int fbwxy = 2; int cyystp = 3; - int cyzyzhd = 4; - int cysqhd = 5; + int cyjmhd = 4; + int cyzyzhd = 5; int cydyhd = 6; int cydcwj = 7; - int hdqd = 8; - int qxhd = 9; + int qxhd = 8; } } diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java index 29bb739..05a20af 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java @@ -80,4 +80,12 @@ @ApiModelProperty(value = "活动类型 1居民,志愿者 2党员") private Integer activityType; + + @ApiModelProperty("签到开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date startTime; + + @ApiModelProperty("签到结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date endTime; } \ No newline at end of file diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java index c0c4557..ad1e46c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java @@ -5304,11 +5304,11 @@ R addIntegralTradeAdmin(@RequestBody AddComActIntegralUserDTO integralUserDTO); /** - * 根据社区活动id查询社区活动报名人员列表 + * 根据社区活动id查询社区活动报名且未参与人员列表 * * @param activityId * 活动id - * @return 社区活动报名人员列表 + * @return 社区活动报名且未参与人员列表 */ @PostMapping("/integral/act/activity/admin") R getTaskActivityPeopleList(@RequestParam("activityId") Long activityId); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java index acb283b..33e02ca 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java @@ -142,11 +142,11 @@ } /** - * 根据社区活动id查询社区活动报名人员列表 + * 根据社区活动id查询社区活动报名且未参与人员列表 * * @param activityId * 活动id - * @return 社区活动报名人员列表 + * @return 社区活动报名且未参与人员列表 */ @PostMapping("/act/activity/admin") public R getTaskActivityPeopleList(@RequestParam("activityId") Long activityId) { diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java index f3ab2fb..82d3d98 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java @@ -45,7 +45,7 @@ + "count(if(s.is_volunteer=1,s.id,null))volunteer_now, " + "count(if(s.is_volunteer=0,s.id,null))participant_now, " + "a.participant_max, " + "a.sign_up_begin, " + "a.sign_up_end, " + "ca.name as communityName " + "FROM " + "com_act_activity a " - + "left join sys_user u on a.sponsor_id=u.user_id " + "left join com_act_act_sign s on a.id=s.activity_id " + + "left join sys_user u on a.sponsor_id=u.user_id " + "left join (select * from com_act_act_sign where `status` = 1) s on a.id=s.activity_id " + "left join com_act ca on a.community_id=ca.community_id " + " where 1=1 " + "<if test='comActActivityVO.choice == 0 '>" + "AND a.community_id=#{comActActivityVO.communityId} " + " </if> " @@ -79,12 +79,12 @@ */ ComActActivityVO inforActivity(@Param("id") Long id); - @Select("SELECT " + "a.* " + "FROM " + "com_act_act_sign s " + "JOIN com_act_activity a ON s.activity_id = a.id " + @Select("SELECT " + "a.* " + "FROM " + "(select * from com_act_act_sign where `status` = 1) s " + "JOIN com_act_activity a ON s.activity_id = a.id " + "WHERE " + "s.user_id = #{comActActivityVO.sponsorId} " + "ORDER BY " + "s.create_at DESC") IPage<ComActActivityVO> pageMyActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO); @Select("select " + "t.activity_name," + "t.id," + "t.end_at," + "t.begin_at," + "t.cover," + "t.status " - + "from com_act_act_sign s " + + "from (select * from com_act_act_sign where `status` = 1) s " + "join sys_user u on s.user_id=u.user_id and u.phone=#{phone} and s.is_volunteer=1 " + "join com_act_activity t on s.activity_id=t.id and t.status=5") List<ComActActivityVO> listActivityByPhone(String phone); @@ -92,7 +92,7 @@ @Select("select t.id from ( " + "SELECT " + "a.id, " + "a.activity_name, " + "COUNT(case when s.is_volunteer=1 then s.id else null end )volunteernum, " + "COUNT(case when s.is_volunteer=0 then s.id else null end)usernum, " + "a.participant_min, " - + "a.volunteer_min " + "FROM " + "com_act_activity a " + "LEFT JOIN com_act_act_sign s on a.id=s.activity_id " + + "a.volunteer_min " + "FROM " + "com_act_activity a " + "LEFT JOIN (select * from com_act_act_sign where `status` = 1) s on a.id=s.activity_id " + "WHERE " + "a.`status` in(3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.sign_up_end)<=0 " + "GROUP BY a.id)t WHERE t.usernum<participant_min or t.volunteernum<volunteer_min") List<Long> selectTimedTaskActActivity(); @@ -170,8 +170,8 @@ @Select("SELECT " + " count( caa.id ) as totalNum, " + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min = 0 and community_id = #{communityId}) as commonNum, " + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min > 0 and community_id = #{communityId}) as volunteerNum, " - + " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 0 and caa.community_id = #{communityId}) as commonPeopleNum, " - + " (select count(caas.user_id) from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 1 and caa.community_id = #{communityId}) as volunteerPeopleNum, " + + " (select count(caas.user_id) from (select * from com_act_act_sign where `status` = 1) as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 0 and caa.community_id = #{communityId}) as commonPeopleNum, " + + " (select count(caas.user_id) from (select * from com_act_act_sign where `status` = 1) as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and is_volunteer = 1 and caa.community_id = #{communityId}) as volunteerPeopleNum, " + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and community_id = #{communityId} and create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now()) as currentNum " + "FROM " + " com_act_activity AS caa " + "WHERE " + " caa.`status` IN (1,2,3,4,5) and community_id = #{communityId}") @@ -202,9 +202,9 @@ @Param("actActivityListDTO") ScreenActActivityListDTO actActivityListDTO); @Select("SELECT " + " count( caas.id ) AS volunteerCount,( " + " SELECT " + " count( caas1.id ) " + " FROM " - + " com_act_act_sign AS caas1 " + " LEFT JOIN sys_user AS su1 ON su1.user_id = caas1.user_id " + " WHERE " + + " (select * from com_act_act_sign where `status` = 1) AS caas1 " + " LEFT JOIN sys_user AS su1 ON su1.user_id = caas1.user_id " + " WHERE " + " su1.is_volunteer = 0 " + " AND caas1.activity_id = #{activityId} " + " ) AS participantCount " - + "FROM " + " com_act_act_sign AS caas " + " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id " + "WHERE " + + "FROM " + " (select * from com_act_act_sign where `status` = 1) AS caas " + " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id " + "WHERE " + " su.is_volunteer = 1 " + " AND activity_id = #{activityId} ") ActActivityListVO getScreenActActivityPeopleCount(@Param("activityId") Long activityId); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java index 89e712a..fdb7d7d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java @@ -54,11 +54,11 @@ @Param("communityRankDTO") ComActIntegralCommunityRankDTO communityRankDTO); /** - * 根据社区活动id查询社区活动报名人员列表 + * 根据社区活动id查询社区活动报名且未参与人员列表 * * @param activityId * 活动id - * @return 社区活动报名人员列表 + * @return 社区活动报名且未参与人员列表 */ List<ComActActivityPeopleVO> getTaskActivityPeopleList(@Param("activityId") Long activityId); } diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java index 2d3bf99..95d1c0c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java @@ -49,11 +49,11 @@ R getIntegralCommunityRankApplets(ComActIntegralCommunityRankDTO communityRankDTO); /** - * 根据社区活动id查询社区活动报名人员列表 + * 根据社区活动id查询社区活动报名且未参与人员列表 * * @param activityId * 活动id - * @return 社区活动报名人员列表 + * @return 社区活动报名且未参与人员列表 */ R getTaskActivityPeopleList(Long activityId); 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 af68555..dd45bcc 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 @@ -483,13 +483,13 @@ 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::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::getActivityId, activityId).eq(ComActActSignDO::getIsVolunteer, 1).eq(ComActActSignDO::getStatus, 1)); if (userIsVolunteer) { //用户是志愿者以志愿者身份参加 if (volunteerMax > volunteerCount || volunteerMax.equals(-1)) { @@ -550,9 +550,14 @@ num = comActActSignDAO.insert(comActActSignDO); } } 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("缺少取消原因"); @@ -566,8 +571,9 @@ if (num > 0) { AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); - addComActIntegralUserDTO.setIntegralType(9); + addComActIntegralUserDTO.setIntegralType(8); addComActIntegralUserDTO.setActivityType(1); + addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer()); addComActIntegralUserDTO.setCommunityId(actActivityDO.getCommunityId()); addComActIntegralUserDTO.setServiceId(activityId); comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO); @@ -895,6 +901,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(); @@ -926,7 +938,7 @@ 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(isHave ? comActActivityDO.getRewardIntegral() : 0); @@ -935,10 +947,12 @@ int result = comActActRegistDAO.insert(comActActRegistDO); if (result > 0) { if (isHave) { + boolean isVolunteerAct = comActActivityDO.getVolunteerMax() != 0; AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); - addComActIntegralUserDTO.setIntegralType(8); + addComActIntegralUserDTO.setIntegralType(isVolunteerAct ? 5 : 4); addComActIntegralUserDTO.setActivityType(1); + addComActIntegralUserDTO.setIsVolunteer(comActActSignDO.getIsVolunteer()); addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId()); addComActIntegralUserDTO.setServiceId(activityId); comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO); diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java index 27f2dde..e5b9d4d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java @@ -186,11 +186,11 @@ } /** - * 根据社区活动id查询社区活动报名人员列表 + * 根据社区活动id查询社区活动报名且未参与人员列表 * * @param activityId * 活动id - * @return 社区活动报名人员列表 + * @return 社区活动报名且未参与人员列表 */ @Override public R getTaskActivityPeopleList(Long activityId) { diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java index 2609a25..e35bdb4 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java @@ -29,6 +29,8 @@ import lombok.extern.slf4j.Slf4j; +import static java.util.Objects.nonNull; + /** * @auther lyq * @create 2021-07-28 16:03:18 @@ -177,7 +179,7 @@ @Override @Transactional(rollbackFor = Exception.class) public R addIntegralTradeAdmin(AddComActIntegralUserDTO integralUserDTO) { - // 判断增加积分类型 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷 8.活动签到 9.取消活动) + // 判断增加积分类型 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参加居民活动 5.参加志愿者活动 6.参与党员活动 7.参与调查问卷 8.取消活动) Integer type = integralUserDTO.getIntegralType(); // 业务id Long serviceId = integralUserDTO.getServiceId(); @@ -194,24 +196,28 @@ // 当前时间 Date nowDate = new Date(); - // 查询随手拍增加积分数量 - ComActIntegralRuleDO integralRuleDO = - comActIntegralRuleService.getOne(new QueryWrapper<ComActIntegralRuleDO>().lambda() - .eq(ComActIntegralRuleDO::getIntegralType, type).eq(ComActIntegralRuleDO::getCommunityId, communityId)); - if (integralRuleDO == null) { - log.error("未查询到该社区积分规则,社区id:" + communityId); - return R.fail("未查询到该社区积分规则,社区id:" + communityId); - } - // 判断规则是否有次数限制 - if (integralRuleDO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.yes)) { - Integer count = this.baseMapper.getIntegralCount( - getIntegralCountDTO(integralRuleDO.getType(), userId, communityId, integralRuleDO.getIntegralType())); - if (count >= integralRuleDO.getCount()) { - log.error("该用户参加任务次数已达上限"); - return R.fail("该用户参加任务次数已达上限"); + Integer isVolunteer = integralUserDTO.getIsVolunteer(); + + if (!type.equals(8)) { + // 查询随手拍增加积分数量 + ComActIntegralRuleDO integralRuleDO = + comActIntegralRuleService.getOne(new QueryWrapper<ComActIntegralRuleDO>().lambda() + .eq(ComActIntegralRuleDO::getIntegralType, type).eq(ComActIntegralRuleDO::getCommunityId, communityId)); + if (integralRuleDO == null) { + log.error("未查询到该社区积分规则,社区id:" + communityId); + return R.fail("未查询到该社区积分规则,社区id:" + communityId); } + // 判断规则是否有次数限制 + if (integralRuleDO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.yes)) { + Integer count = this.baseMapper.getIntegralCount( + getIntegralCountDTO(integralRuleDO.getType(), userId, communityId, integralRuleDO.getIntegralType())); + if (count >= integralRuleDO.getCount()) { + log.error("该用户参加任务次数已达上限"); + return R.fail("该用户参加任务次数已达上限"); + } + } + amount = integralRuleDO.getAmount(); } - amount = integralRuleDO.getAmount(); switch (type) { case 1: @@ -254,27 +260,32 @@ } break; case 4: - identityType = 3; - remark.append("参与志愿者活动奖励积分"); - ComActActivityDO actActivityZYZDO = comActActivityService.getById(serviceId); - if (actActivityZYZDO != null) { - remark.append("【"); - remark.append(actActivityZYZDO.getActivityName()); - remark.append("】"); + if (nonNull(isVolunteer) && isVolunteer.equals(1)) { + identityType = 3; + } else { + identityType = 1; + } + remark.append("成功参加居民活动奖励积分"); + ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId); + if(actActivityDO1 != null) { + amount = actActivityDO1.getRewardIntegral(); } break; case 5: - remark.append("参与社区活动奖励积分"); + if (nonNull(isVolunteer) && isVolunteer.equals(0)) { + identityType = 1; + } else { + identityType = 3; + } + remark.append("成功参加志愿者活动奖励积分"); ComActActivityDO actActivityDO = comActActivityService.getById(serviceId); - if (actActivityDO != null) { - remark.append("【"); - remark.append(actActivityDO.getActivityName()); - remark.append("】"); + if(actActivityDO != null) { + amount = actActivityDO.getRewardIntegral(); } break; case 6: identityType = 2; - remark.append("参与党员活动奖励积分"); + remark.append("参与党员活动"); break; case 7: // 查询调查问卷 @@ -305,16 +316,20 @@ remark.append("】"); break; case 8: - remark.append("成功参加活动奖励积分"); - if(integralUserDTO.getActivityType()==1){ - ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId); - if(actActivityDO1!=null){ - amount=actActivityDO1.getRewardIntegral(); - if(actActivityDO1.getVolunteerMax()!=0){ - identityType=3; - }else { - identityType=1; + if (integralUserDTO.getActivityType() == 1) { + ComActActivityDO actActivityDO2 = comActActivityService.getById(serviceId); + if (actActivityDO2 != null) { + amount = -actActivityDO2.getCancelDeduct(); + if (actActivityDO2.getVolunteerMax() != 0) { + remark.append("取消志愿者活动扣除积分"); + } else { + remark.append("取消居民活动扣除积分"); } + } + if (nonNull(isVolunteer) && isVolunteer.equals(1)) { + identityType = 3; + } else { + identityType = 1; } } // else { @@ -325,19 +340,6 @@ // } // } break; - case 9: - remark.append("取消活动扣除积分"); - if (integralUserDTO.getActivityType() == 1) { - ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId); - if (actActivityDO1 != null) { - amount = -actActivityDO1.getCancelDeduct(); - if (actActivityDO1.getVolunteerMax() != 0) { - identityType = 3; - } else { - identityType = 1; - } - } - } default: break; } @@ -385,20 +387,39 @@ Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident(); Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident(); - integralUserDO.setIntegralSum(addIntegral(integralUserDO.getIntegralSum() + amount)); - integralUserDO.setIntegralAvailableSum(addIntegral(integralUserDO.getIntegralAvailableSum() + amount)); - integralUserDO.setUpdateAt(nowDate); // 根据不同身份,计算钱包金额 + int reduceAmount = 0; if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) { - integralUserDO.setIntegralResident(addIntegral(integralUserDO.getIntegralResident() + amount)); + int integralResidentNow = addIntegral(integralResident + amount); + if (amount < 0) { + reduceAmount = integralResident - integralResidentNow; + } + integralUserDO.setIntegralResident(integralResidentNow); integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount)); } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) { - integralUserDO.setIntegralParty(addIntegral(integralUserDO.getIntegralParty() + amount)); + int integralPartyNow = addIntegral(integralParty + amount); + if (amount < 0) { + reduceAmount = integralParty - integralPartyNow; + } + integralUserDO.setIntegralParty(integralPartyNow); integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount)); } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) { - integralUserDO.setIntegralVolunteer(addIntegral(integralUserDO.getIntegralVolunteer() + amount)); + int integralVolunteerNow = addIntegral(integralVolunteer + amount); + if (amount < 0) { + reduceAmount = integralVolunteer - integralVolunteerNow; + } + integralUserDO.setIntegralVolunteer(integralVolunteerNow); integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount)); } + if (reduceAmount > 0) { + integralUserDO.setIntegralSum(addIntegral(integralSum + reduceAmount)); + integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum + reduceAmount)); + } else { + integralUserDO.setIntegralSum(addIntegral(integralSum + amount)); + integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum + amount)); + } + integralUserDO.setUpdateAt(nowDate); + // 更新钱包 comActIntegralUserService.updateById(integralUserDO); // 增加积分账户交易记录 diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml index 0d83e0f..fe6b4e3 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml @@ -55,6 +55,12 @@ <if test="comActActRegistVO.createAt != null"> AND caar.create_at = #{comActActRegistVO.createAt} </if> + <if test="comActActRegistVO.startTime != null"> + AND caar.create_at >= #{comActActRegistVO.startTime} + </if> + <if test="comActActRegistVO.endTime != null"> + AND caar.create_at <= #{comActActRegistVO.endTime} + </if> <if test="comActActRegistVO.type != null"> AND caar.type = #{comActActRegistVO.type} </if> @@ -117,7 +123,7 @@ '志愿者' ELSE '居民' END identity FROM - `com_act_act_sign` caas + (SELECT * FROM com_act_act_sign WHERE `status` = 1) caas LEFT JOIN sys_user su ON caas.user_id = su.user_id WHERE NOT EXISTS ( SELECT 1 FROM com_act_act_regist caar WHERE caas.user_id = caar.user_id ) AND caas.activity_id = #{comActActRegistVO.activityId} diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml index 1fc34df..bdf1b9d 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml @@ -55,13 +55,13 @@ <select id="activityStatistics" resultType="com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO"> SELECT IFNULL(volunteer_max,0) + IFNULL(participant_max,0) as signTotal - ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId}) as reallySignTotal - ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId}) as registTotal + ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as reallySignTotal + ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as registTotal ,(SELECT count(id) FROM com_act_act_regist WHERE activity_id = #{activityId}) as reallyRegistTotal - ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId}) - (SELECT count(id) FROM com_act_act_regist WHERE activity_id = #{activityId})) as noRegistTotal - ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId}) as evaluateTotal + ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) - (SELECT count(id) FROM com_act_act_regist WHERE activity_id = #{activityId})) as noRegistTotal + ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as evaluateTotal ,(SELECT count(id) FROM com_act_act_evaluate WHERE activity_id = #{activityId}) as reallyEvaluateTotal - ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId}) - (SELECT count(id) FROM com_act_act_evaluate WHERE activity_id = #{activityId})) as noEvaluateTotal + ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) - (SELECT count(id) FROM com_act_act_evaluate WHERE activity_id = #{activityId})) as noEvaluateTotal FROM com_act_activity where id = #{activityId} </select> <select id="getIndexTopActivityList" resultMap="BaseResultMap"> diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml index b3bb72c..30c966e 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml @@ -114,7 +114,11 @@ </select> <select id="getTaskActivityPeopleList" resultType="com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO"> - select caas.user_id,caas.activity_id,caa.community_id,caas.is_volunteer from com_act_act_sign as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.id = #{activityId} + select caas.user_id,caas.activity_id,caa.community_id,caas.is_volunteer + from (SELECT * FROM com_act_act_sign WHERE `status` = 1) as caas + left join com_act_activity as caa on caa.id = caas.activity_id + left join com_act_act_regist AS caar ON caas.user_id = caar.user_id AND caas.activity_id = caar.activity_id + where caa.id = #{activityId} AND caar.id IS NULL </select> </mapper> diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java index 8ba0e72..bf2c965 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java +++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java @@ -130,7 +130,7 @@ // 获取待结束的活动列表 List<Long> activityList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), Long.class); if (!activityList.isEmpty()) { - log.info("社区活动结束时计算积分"); + log.info("社区活动结束时扣减未参与用户积分"); activityList.forEach(activityId -> { R r1 = communityService.getTaskActivityPeopleList(activityId); if (R.isOk(r1)) { @@ -138,15 +138,14 @@ JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), ComActActivityPeopleVO.class); if (!peopleList.isEmpty()) { peopleList.forEach(people -> { - if (people.getIsVolunteer().equals(1)) { - communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO( - people.getActivityId(), AddComActIntegralUserDTO.integralType.cyzyzhd, - people.getCommunityId(), people.getUserId())); - } else { - communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO( - people.getActivityId(), AddComActIntegralUserDTO.integralType.cysqhd, - people.getCommunityId(), people.getUserId())); - } + AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO(); + addComActIntegralUserDTO.setUserId(people.getUserId()); + addComActIntegralUserDTO.setIntegralType(AddComActIntegralUserDTO.integralType.qxhd); + addComActIntegralUserDTO.setActivityType(1); + addComActIntegralUserDTO.setIsVolunteer(people.getIsVolunteer()); + addComActIntegralUserDTO.setCommunityId(people.getCommunityId()); + addComActIntegralUserDTO.setServiceId(activityId); + communityService.addIntegralTradeAdmin(addComActIntegralUserDTO); }); } } -- Gitblit v1.7.1