From d99a56e37cf9109b46ee68d34a06594ef5615ed3 Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期四, 10 十一月 2022 16:06:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into huacheng_test
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 142 ++++++++++++++++++++++++++++------------------
1 files changed, 86 insertions(+), 56 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 719b0f2..eb4131b 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
@@ -4,6 +4,7 @@
import javax.annotation.Resource;
+import com.panzhihua.service_community.dao.ComBpActivityDAO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,6 +28,8 @@
import com.panzhihua.service_community.service.*;
import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.nonNull;
/**
* @auther lyq
@@ -56,6 +59,8 @@
private ComActDiscussOptionService comActDiscussOptionService;
@Resource
private ComActActivityService comActActivityService;
+ @Resource
+ private ComBpActivityDAO comBpActivityDAO;
/**
* 查询用户某个时间段交易数量
@@ -81,7 +86,8 @@
* @param serviceId
* 交易业务id
* @param serviceType
- * 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷)
+ * 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+ * "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
* @param amount
* 交易积分数量
* @param changeType
@@ -170,7 +176,8 @@
@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.取消活动 9.参与单位党员活动)
Integer type = integralUserDTO.getIntegralType();
// 业务id
Long serviceId = integralUserDTO.getServiceId();
@@ -187,24 +194,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 changeType = ComActIntegralUserTradeDO.changeType.add;
+
+ if (!type.equals(8) && !type.equals(4) && !type.equals(5) && !type.equals(6) && !type.equals(9)) {
+ // 查询随手拍增加积分数量
+ 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:
@@ -246,29 +257,6 @@
}
}
break;
- case 4:
- identityType = 3;
- remark.append("参与志愿者活动奖励积分");
- ComActActivityDO actActivityZYZDO = comActActivityService.getById(serviceId);
- if (actActivityZYZDO != null) {
- remark.append("【");
- remark.append(actActivityZYZDO.getActivityName());
- remark.append("】");
- }
- break;
- case 5:
- remark.append("参与社区活动奖励积分");
- ComActActivityDO actActivityDO = comActActivityService.getById(serviceId);
- if (actActivityDO != null) {
- remark.append("【");
- remark.append(actActivityDO.getActivityName());
- remark.append("】");
- }
- break;
- case 6:
- identityType = 2;
- remark.append("参与党员活动奖励积分");
- break;
case 7:
// 查询调查问卷
ComActQuestnaireDO questnaireDO = comActQuestnaireDAO.selectById(serviceId);
@@ -298,11 +286,19 @@
remark.append("】");
break;
case 8:
- remark.append("成功参加活动奖励积分");
- ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId);
- if(actActivityDO1!=null){
- amount=actActivityDO1.getRewardIntegral();
- }
+ changeType = ComActIntegralUserTradeDO.changeType.reduce;
+ amount = -integralUserDTO.getIntegral();
+ remark.append(integralUserDTO.getRemark());
+ identityType = integralUserDTO.getSignIdentity();
+ break;
+ case 4:
+ case 5:
+ case 6:
+ case 9:
+ identityType = integralUserDTO.getSignIdentity();
+ remark.append(integralUserDTO.getRemark());
+ amount = integralUserDTO.getIntegral();
+ break;
default:
break;
}
@@ -350,25 +346,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(),
@@ -383,6 +399,20 @@
}
/**
+ * 获取积分详情
+ * @param id
+ * @return
+ */
+ @Override
+ public R getUserIntegralDetail(Long id) {
+ return R.ok(this.baseMapper.getUserIntegralDetail(id));
+ }
+
+ private int addIntegral(int integral) {
+ return integral > 0 ? integral : 0;
+ }
+
+ /**
* 根据类型、用户id、社区id构建查询请求参数
*
* @param type
--
Gitblit v1.7.1