From 00a59b93c16b24e7be77c6f1ce4866c75a2e0431 Mon Sep 17 00:00:00 2001 From: 101captain <237651143@qq.com> Date: 星期二, 19 四月 2022 16:32:21 +0800 Subject: [PATCH] 花城E+防疫修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 145 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 96 insertions(+), 49 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 7f588c4..637e82b 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 @@ -173,7 +175,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(); @@ -190,24 +192,30 @@ // 当前时间 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 changeType = ComActIntegralUserTradeDO.changeType.add; + + 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: @@ -250,27 +258,36 @@ } 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("成功参加党员活动奖励积分"); + ComActActivityDO actActivityDO3 = comActActivityService.getById(serviceId); + if(actActivityDO3 != null) { + amount = actActivityDO3.getRewardIntegral(); + } break; case 7: // 查询调查问卷 @@ -301,17 +318,22 @@ 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){ + changeType = ComActIntegralUserTradeDO.changeType.reduce; + ComActActivityDO actActivityDO2 = comActActivityService.getById(serviceId); + if (actActivityDO2 != null) { + amount = -actActivityDO2.getCancelDeduct(); + if (actActivityDO2.getType()==1) { identityType=3; - }else { - identityType=1; + remark.append("取消志愿者活动扣除积分"); + } else if(actActivityDO2.getType()==3){ + identityType=2; + remark.append("取消党员活动扣除积分"); } - } + else { + identityType=1; + remark.append("取消居民活动扣除积分"); + } + } // else { // ComPbActivityDO comPbActivityDO = comBpActivityDAO.selectById(serviceId); @@ -320,6 +342,7 @@ // identityType=2; // } // } + break; default: break; } @@ -367,25 +390,45 @@ Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident(); Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident(); - integralUserDO.setIntegralSum(integralUserDO.getIntegralSum() + amount); - integralUserDO.setIntegralAvailableSum(integralUserDO.getIntegralAvailableSum() + amount); - integralUserDO.setUpdateAt(nowDate); // 根据不同身份,计算钱包金额 + int reduceAmount = 0; if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) { - integralUserDO.setIntegralResident(integralUserDO.getIntegralResident() + amount); - integralUserDO.setIntegralAvailableResident(integralUserDO.getIntegralAvailableResident() + 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(integralUserDO.getIntegralParty() + amount); - integralUserDO.setIntegralAvailableParty(integralUserDO.getIntegralAvailableParty() + 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(integralUserDO.getIntegralVolunteer() + amount); - integralUserDO.setIntegralAvailableVolunteer(integralUserDO.getIntegralAvailableVolunteer() + amount); + int integralVolunteerNow = addIntegral(integralVolunteer + amount); + if (amount < 0) { + reduceAmount = integralVolunteer - integralVolunteerNow; + } + integralUserDO.setIntegralVolunteer(integralVolunteerNow); + integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount)); } + if (changeType == ComActIntegralUserTradeDO.changeType.reduce) { + amount = reduceAmount; + 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); // 增加积分账户交易记录 Long tradeId = this.addIntegralTradeRecord(userId, integralId, communityId, serviceId, type, amount, - ComActIntegralUserTradeDO.changeType.add, remark.toString(), identityType, 2L); + changeType, remark.toString(), identityType, 2L); // 增加积分账户变更记录 comActIntegralUserChangeService.addIntegralUserChangeRecord(userId, integralId, communityId, integralSum, integralUserDO.getIntegralSum(), integralAvailableSum, integralUserDO.getIntegralAvailableSum(), @@ -399,6 +442,10 @@ return R.ok(); } + private int addIntegral(int integral) { + return integral > 0 ? integral : 0; + } + /** * 根据类型、用户id、社区id构建查询请求参数 * -- Gitblit v1.7.1