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/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 137 ++++++++++++++++++++++++++------------------- 1 files changed, 79 insertions(+), 58 deletions(-) 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); // 增加积分账户交易记录 -- Gitblit v1.7.1