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活动签到") @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷 8.活动签到 9.取消活动)") private Integer integralType; @ApiModelProperty(value = "社区id") @@ -36,7 +36,7 @@ public AddComActIntegralUserDTO() {} /** * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷) * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷 8.活动签到 9.取消活动) */ public interface integralType { int fbssp = 1; @@ -46,5 +46,7 @@ int cysqhd = 5; int cydyhd = 6; int cydcwj = 7; int hdqd = 8; int qxhd = 9; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -381,6 +381,7 @@ //活动报名名单 ActivitySignVO activitySignVO = new ActivitySignVO(); activitySignVO.setActivityId(activityId); activitySignVO.setStatus(1); R r = comActActivityService.listActivitySigns(activitySignVO); if (R.isOk(r)) { List<ActivitySignVO> activitySignVOS = springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActRegistDAO.java
@@ -37,4 +37,12 @@ * @return */ List<ComActActRegistVO> listRegistRecord(@Param("id") Long id, @Param("userId") Long userId); /** * 获取总积分奖励 * @param activityId * @param userId * @return */ Integer selectTotalAwardWithRegist(@Param("activityId") Long activityId, @Param("userId") Long userId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
@@ -186,6 +186,7 @@ /** * 积分奖励方式(1.按次奖励 2.记时奖励) */ @TableField(updateStrategy = FieldStrategy.IGNORED) private Integer rewardWay; /** * 奖励积分 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -115,6 +115,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(); @@ -199,6 +202,9 @@ log.error("消息推送失败,失败原因:" + e.getMessage()); } } } if (comActActivityVO.getHaveIntegralReward().intValue() == 2) { comActActivityVO.setRewardWay(null); } BeanUtils.copyProperties(comActActivityVO, comActActivityDO); @@ -545,6 +551,10 @@ num = comActActSignDAO.insert(comActActSignDO); } } else { Integer canCancel = actActivityDO.getCanCancel(); if (nonNull(canCancel) && canCancel.equals(2)) { return R.fail("该活动暂不支持取消"); } if (isNull(signactivityVO.getReason())) { return R.fail("缺少取消原因"); } @@ -554,6 +564,15 @@ comActActSignDO.setStatus(0); comActActSignDO.setReason(signactivityVO.getReason()); num = comActActSignDAO.updateById(comActActSignDO); if (num > 0) { AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); addComActIntegralUserDTO.setIntegralType(9); addComActIntegralUserDTO.setActivityType(1); addComActIntegralUserDTO.setCommunityId(actActivityDO.getCommunityId()); addComActIntegralUserDTO.setServiceId(activityId); comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO); } } if (num > 0) { return R.ok(isVolunteer); @@ -610,7 +629,8 @@ } comActActivityVO.setSingDate(createAt); comActActivityVO.setTimes(activitySignVO.getTimes()); comActActivityVO.setAward(activitySignVO.getAward()); Integer totalAward = comActActRegistDAO.selectTotalAwardWithRegist(activitySignVO.getActivityId(), userId); comActActivityVO.setAward(totalAward); comActActivityVOS.add(comActActivityVO); }); } @@ -894,6 +914,8 @@ // if (stringRedisTemplate.hasKey(activitySignInKey)) { // return R.fail("你已签到,如要再次签到请三十分钟后尝试!"); // } Integer haveIntegralReward = comActActivityDO.getHaveIntegralReward(); boolean isHave = nonNull(haveIntegralReward) && haveIntegralReward.equals(1); ComActActRegistDO comActActRegistDO = new ComActActRegistDO(); comActActRegistDO.setActivityId(activityId); comActActRegistDO.setType(1); @@ -901,11 +923,11 @@ comActActRegistDO.setIsVolunteer(comActActRegistVO.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) { if (isHave && result > 0) { AddComActIntegralUserDTO addComActIntegralUserDTO=new AddComActIntegralUserDTO(); addComActIntegralUserDTO.setUserId(userId); addComActIntegralUserDTO.setIntegralType(8); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java
@@ -320,6 +320,20 @@ // identityType=2; // } // } 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; } @@ -367,19 +381,19 @@ Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident(); Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident(); integralUserDO.setIntegralSum(integralUserDO.getIntegralSum() + amount); integralUserDO.setIntegralAvailableSum(integralUserDO.getIntegralAvailableSum() + amount); integralUserDO.setIntegralSum(addIntegral(integralUserDO.getIntegralSum() + amount)); integralUserDO.setIntegralAvailableSum(addIntegral(integralUserDO.getIntegralAvailableSum() + amount)); integralUserDO.setUpdateAt(nowDate); // 根据不同身份,计算钱包金额 if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) { integralUserDO.setIntegralResident(integralUserDO.getIntegralResident() + amount); integralUserDO.setIntegralAvailableResident(integralUserDO.getIntegralAvailableResident() + amount); integralUserDO.setIntegralResident(addIntegral(integralUserDO.getIntegralResident() + amount)); integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount)); } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) { integralUserDO.setIntegralParty(integralUserDO.getIntegralParty() + amount); integralUserDO.setIntegralAvailableParty(integralUserDO.getIntegralAvailableParty() + amount); integralUserDO.setIntegralParty(addIntegral(integralUserDO.getIntegralParty() + amount)); integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount)); } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) { integralUserDO.setIntegralVolunteer(integralUserDO.getIntegralVolunteer() + amount); integralUserDO.setIntegralAvailableVolunteer(integralUserDO.getIntegralAvailableVolunteer() + amount); integralUserDO.setIntegralVolunteer(addIntegral(integralUserDO.getIntegralVolunteer() + amount)); integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount)); } // 更新钱包 comActIntegralUserService.updateById(integralUserDO); @@ -399,6 +413,10 @@ return R.ok(); } private int addIntegral(int integral) { return integral > 0 ? integral : 0; } /** * 根据类型、用户id、社区id构建查询请求参数 * springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
@@ -141,4 +141,7 @@ SELECT create_at, award FROM com_act_act_regist WHERE activity_id = #{id} AND user_id = #{userId} AND `type` = 1 ORDER BY id DESC </select> <select id="selectTotalAwardWithRegist" resultType="java.lang.Integer"> SELECT SUM(award) FROM com_act_act_regist WHERE activity_id = #{id} AND user_id = #{userId} AND `type` = 1 </select> </mapper> springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml
@@ -74,7 +74,7 @@ SELECT a.id, a.activity_name, u.`name` sponsorName, a.activity_addr, a.participant_max, COUNT(if(s.is_volunteer=1,NULL,s.id))participant_now, a.volunteer_max, COUNT(if(s.is_volunteer=1,s.id,NULL))volunteer_now, a.`status`, a.publish_at, a.is_qr_code, a.begin_at, a.end_at, a.sign_up_begin, a.sign_up_end, a.reward_way, a.activity_type a.begin_at, a.end_at, a.sign_up_begin, a.sign_up_end, a.reward_way, a.activity_type, a.have_integral_reward 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