From 9f8fe1711bb1138903b59bf0140a338725315266 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期一, 17 一月 2022 17:21:48 +0800
Subject: [PATCH] Merge branch 'test'
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 141 ++++++++++++++++++++++++++++++----------------
1 files changed, 92 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..5eab07b 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,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:
// 查询调查问卷
@@ -301,16 +314,21 @@
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;
+ changeType = ComActIntegralUserTradeDO.changeType.reduce;
+ 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 {
@@ -320,6 +338,7 @@
// identityType=2;
// }
// }
+ break;
default:
break;
}
@@ -367,25 +386,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 +438,10 @@
return R.ok();
}
+ private int addIntegral(int integral) {
+ return integral > 0 ? integral : 0;
+ }
+
/**
* 根据类型、用户id、社区id构建查询请求参数
*
--
Gitblit v1.7.1