From e7f03acfa5ee4ad4fd6d1ee9e9ae9a5655488f6d Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期二, 09 十一月 2021 17:04:46 +0800
Subject: [PATCH] 1109修改
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java | 273 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 169 insertions(+), 104 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 a0eeb40..afb6738 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
@@ -1,5 +1,12 @@
package com.panzhihua.service_community.service.impl;
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,7 +16,6 @@
import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO;
import com.panzhihua.common.model.vos.community.integral.admin.IntegralUserVO;
import com.panzhihua.common.utlis.DateUtils;
@@ -19,12 +25,8 @@
import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.*;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import javax.annotation.Resource;
-import java.util.Date;
+import lombok.extern.slf4j.Slf4j;
/**
* @auther lyq
@@ -33,7 +35,8 @@
*/
@Slf4j
@Service
-public class ComActIntegralUserTradeServiceImpl extends ServiceImpl<ComActIntegralUserTradeMapper, ComActIntegralUserTradeDO> implements ComActIntegralUserTradeService {
+public class ComActIntegralUserTradeServiceImpl extends
+ ServiceImpl<ComActIntegralUserTradeMapper, ComActIntegralUserTradeDO> implements ComActIntegralUserTradeService {
@Resource
private ComActIntegralRuleService comActIntegralRuleService;
@@ -49,33 +52,50 @@
private ComActMicroWishService comActMicroWishService;
@Resource
private ComActDiscussDAO comActDiscussDAO;
+ @Resource
+ private ComActDiscussOptionService comActDiscussOptionService;
+ @Resource
+ private ComActActivityService comActActivityService;
/**
* 查询用户某个时间段交易数量
- * @param integralCountDTO 请求参数
- * @return 交易数量
+ *
+ * @param integralCountDTO
+ * 请求参数
+ * @return 交易数量
*/
@Override
- public Integer getIntegralCount(ComActIntegralCountDTO integralCountDTO){
+ public Integer getIntegralCount(ComActIntegralCountDTO integralCountDTO) {
return this.baseMapper.getIntegralCount(integralCountDTO);
}
/**
* 添加用户积分交易记录
- * @param userId 用户id
- * @param integralId 积分账户id
- * @param communityId 社区id
- * @param serviceId 交易业务id
- * @param serviceType 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷)
- * @param amount 交易积分数量
- * @param changeType 变动类型(1.增加 2.减少)
- * @param remark 交易备注
- * @param identityType 交易身份类型(1.居民 2.党员 3.志愿者)
- * @param createBy 操作人id
+ *
+ * @param userId
+ * 用户id
+ * @param integralId
+ * 积分账户id
+ * @param communityId
+ * 社区id
+ * @param serviceId
+ * 交易业务id
+ * @param serviceType
+ * 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷)
+ * @param amount
+ * 交易积分数量
+ * @param changeType
+ * 变动类型(1.增加 2.减少)
+ * @param remark
+ * 交易备注
+ * @param identityType
+ * 交易身份类型(1.居民 2.党员 3.志愿者)
+ * @param createBy
+ * 操作人id
*/
@Override
- public Long addIntegralTradeRecord(Long userId,Long integralId,Long communityId,Long serviceId
- ,Integer serviceType,Integer amount,Integer changeType,String remark,Integer identityType,Long createBy){
+ public Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId,
+ Integer serviceType, Integer amount, Integer changeType, String remark, Integer identityType, Long createBy) {
ComActIntegralUserTradeDO integralUserTradeDO = new ComActIntegralUserTradeDO();
integralUserTradeDO.setId(Snowflake.getId());
integralUserTradeDO.setUserId(userId);
@@ -95,37 +115,43 @@
/**
* 小程序-查询用户社区积分明细
- * @param communityTradeDTO 请求参数
- * @return 用户社区积分明细
+ *
+ * @param communityTradeDTO
+ * 请求参数
+ * @return 用户社区积分明细
*/
@Override
- public R getIntegralCommunityTradeApplets(ComActIntegralCommunityRankDTO communityTradeDTO){
- if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.resident)){
- communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.resident);
- }else if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.party)){
- communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.party);
- }else if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.volunteer)){
- communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.volunteer);
+ public R getIntegralCommunityTradeApplets(ComActIntegralCommunityRankDTO communityTradeDTO) {
+ if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.resident)) {
+ communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.resident);
+ } else if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.party)) {
+ communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.party);
+ } else if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.volunteer)) {
+ communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.volunteer);
}
- return R.ok(this.baseMapper.getIntegralCommunityTradeApplets(new Page(communityTradeDTO.getPageNum(),communityTradeDTO.getPageSize()),communityTradeDTO));
+ return R.ok(this.baseMapper.getIntegralCommunityTradeApplets(
+ new Page(communityTradeDTO.getPageNum(), communityTradeDTO.getPageSize()), communityTradeDTO));
}
/**
* 社区后台-分页查询社区下积分明细记录
- * @param integralRuleDTO 请求参数
- * @return 社区下积分明细记录
+ *
+ * @param integralRuleDTO
+ * 请求参数
+ * @return 社区下积分明细记录
*/
@Override
- public R getIntegralTradeListAdmin(PageComActIntegralTradeDTO integralRuleDTO){
- IPage<ComActIntegralUserTradeAdminVO> userTradeAdminIPage = this.baseMapper.getIntegralTradeListAdmin(new Page(integralRuleDTO.getPageNum(),integralRuleDTO.getPageSize()),integralRuleDTO);
- if(!userTradeAdminIPage.getRecords().isEmpty()){
+ public R getIntegralTradeListAdmin(PageComActIntegralTradeDTO integralRuleDTO) {
+ IPage<ComActIntegralUserTradeAdminVO> userTradeAdminIPage = this.baseMapper.getIntegralTradeListAdmin(
+ new Page(integralRuleDTO.getPageNum(), integralRuleDTO.getPageSize()), integralRuleDTO);
+ if (!userTradeAdminIPage.getRecords().isEmpty()) {
userTradeAdminIPage.getRecords().forEach(userTrade -> {
StringBuilder sb = new StringBuilder();
sb.append("居民");
- if(userTrade.getIsVolunteer().equals(ComActIntegralUserTradeAdminVO.isVolunteer.yes)){
+ if (userTrade.getIsVolunteer().equals(ComActIntegralUserTradeAdminVO.isVolunteer.yes)) {
sb.append(",志愿者");
}
- if(userTrade.getIsPartymember().equals(ComActIntegralUserTradeAdminVO.isPartymember.yes)){
+ if (userTrade.getIsPartymember().equals(ComActIntegralUserTradeAdminVO.isPartymember.yes)) {
sb.append(",党员");
}
userTrade.setIdentity(sb.toString());
@@ -136,52 +162,55 @@
/**
* 给用户添加积分
- * @param integralUserDTO 请求参数
- * @return 添加积分结果
+ *
+ * @param integralUserDTO
+ * 请求参数
+ * @return 添加积分结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R addIntegralTradeAdmin(AddComActIntegralUserDTO integralUserDTO){
- //判断增加积分类型 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷)
+ public R addIntegralTradeAdmin(AddComActIntegralUserDTO integralUserDTO) {
+ // 判断增加积分类型 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 7.参与调查问卷)
Integer type = integralUserDTO.getIntegralType();
- //业务id
+ // 业务id
Long serviceId = integralUserDTO.getServiceId();
- //用户id
+ // 用户id
Long userId = integralUserDTO.getUserId();
- //社区id
+ // 社区id
Long communityId = integralUserDTO.getCommunityId();
- //需要给用户增加的积分数量
+ // 需要给用户增加的积分数量
Integer amount = 0;
- //用户增加积分的身份
+ // 用户增加积分的身份
Integer identityType = 1;
- //用户交易备注
+ // 用户交易备注
StringBuilder remark = new StringBuilder();
- //当前时间
+ // 当前时间
Date nowDate = new Date();
- //查询随手拍增加积分数量
- ComActIntegralRuleDO integralRuleDO = comActIntegralRuleService.getOne(new QueryWrapper<ComActIntegralRuleDO>().lambda()
- .eq(ComActIntegralRuleDO::getIntegralType,type)
- .eq(ComActIntegralRuleDO::getCommunityId,communityId));
- if(integralRuleDO == null){
+ // 查询随手拍增加积分数量
+ 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));
- if(count >= integralRuleDO.getCount()){
+ // 判断规则是否有次数限制
+ 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();
- switch (type){
+ switch (type) {
case 1:
remark.append("发布随手拍奖励积分");
ComActEasyPhotoDO easyPhotoDO = comActEasyPhotoService.getById(serviceId);
- if(easyPhotoDO != null){
+ if (easyPhotoDO != null) {
remark.append("【");
remark.append(easyPhotoDO.getDetail());
remark.append("】");
@@ -190,7 +219,7 @@
case 2:
remark.append("发布微心愿奖励积分");
ComActMicroWishDO microWishDO = comActMicroWishService.getById(serviceId);
- if(microWishDO != null){
+ if (microWishDO != null) {
remark.append("【");
remark.append(microWishDO.getWishName());
remark.append("】");
@@ -198,57 +227,85 @@
break;
case 3:
remark.append("参与议事投票奖励积分");
- ComActDiscussDO discussDO = comActDiscussDAO.selectById(serviceId);
- if(discussDO != null){
- remark.append("【");
- remark.append(discussDO.getVoteTitle());
- remark.append("】");
+ if (integralUserDTO.getIsComment().equals(1)) {
+ ComActDiscussDO discussDO = comActDiscussDAO.selectById(serviceId);
+ if (discussDO != null) {
+ remark.append("【");
+ remark.append(discussDO.getDiscussSubject());
+ remark.append("】");
+ }
+ } else {
+ ComActDiscussOptionDO discussOptionDO = comActDiscussOptionService.getById(serviceId);
+ if (discussOptionDO != null) {
+ ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussOptionDO.getDiscussId());
+ if (discussDO != null) {
+ remark.append("【");
+ remark.append(discussDO.getVoteTitle());
+ remark.append("】");
+ }
+ }
}
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);
- if(questnaireDO == null){
+ if (questnaireDO == null) {
log.error("未查询到调查问卷记录,记录积分失败");
return R.fail("未查询到调查问卷记录,记录积分失败");
}
- //查询当前用户信息
+ // 查询当前用户信息
IntegralUserVO integralUser = this.baseMapper.getUserInfo(userId);
- if(integralUser == null){
+ if (integralUser == null) {
log.error("未查询到用户信息,记录积分失败");
return R.fail("未查询到用户信息,记录积分失败");
}
- //判断调查问卷调查的对象是什么身份,如果是党员和志愿者两种身份,则记录志愿者积分
- if(questnaireDO.getForParty() && integralUser.getIsPartymember().equals(1)){
+ // 判断调查问卷调查的对象是什么身份,如果是党员和志愿者两种身份,则记录志愿者积分
+ if (questnaireDO.getForParty().equals(1) && integralUser.getIsPartymember().equals(1)) {
identityType = 2;
- if(questnaireDO.getForVolunteer() && integralUser.getIsVolunteer().equals(1)){
+ if (questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)) {
identityType = 3;
}
}
- if(questnaireDO.getForVolunteer() && integralUser.getIsVolunteer().equals(1)){
+ if (questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)) {
identityType = 3;
}
remark.append("参与调查问卷奖励积分");
+ remark.append("【");
+ remark.append(questnaireDO.getTitle());
+ remark.append("】");
break;
default:
break;
}
- //查询用户积分账户
- ComActIntegralUserDO integralUserDO = comActIntegralUserService.getOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
- .eq(ComActIntegralUserDO::getUserId,userId).eq(ComActIntegralUserDO::getCommunityId,communityId));
- if(integralUserDO == null){
+ // 查询用户积分账户
+ ComActIntegralUserDO integralUserDO =
+ comActIntegralUserService.getOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+ .eq(ComActIntegralUserDO::getUserId, userId).eq(ComActIntegralUserDO::getCommunityId, communityId));
+ if (integralUserDO == null) {
integralUserDO = new ComActIntegralUserDO();
integralUserDO.setCommunityId(communityId);
integralUserDO.setUserId(userId);
@@ -268,12 +325,12 @@
integralUserDO.setIntegralFrozenResident(0);
comActIntegralUserService.save(integralUserDO);
}
- if(integralUserDO.getStatus().equals(ComActIntegralUserDO.status.no)){
+ if (integralUserDO.getStatus().equals(ComActIntegralUserDO.status.no)) {
log.error("用户钱包已被禁用,记录积分失败,用户id:" + userId);
return R.fail("用户钱包已被禁用,记录积分失败,用户id:" + userId);
}
Long integralId = integralUserDO.getId();
- //记录变动前钱包金额
+ // 记录变动前钱包金额
Integer integralSum = integralUserDO.getIntegralSum();
Integer integralAvailableSum = integralUserDO.getIntegralAvailableSum();
Integer integralFrozenSum = integralUserDO.getIntegralFrozenSum();
@@ -290,49 +347,57 @@
integralUserDO.setIntegralSum(integralUserDO.getIntegralSum() + amount);
integralUserDO.setIntegralAvailableSum(integralUserDO.getIntegralAvailableSum() + amount);
integralUserDO.setUpdateAt(nowDate);
- //根据不同身份,计算钱包金额
- if(identityType.equals(ComActIntegralUserTradeDO.identityType.jm)){
+ // 根据不同身份,计算钱包金额
+ if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) {
integralUserDO.setIntegralResident(integralUserDO.getIntegralResident() + amount);
integralUserDO.setIntegralAvailableResident(integralUserDO.getIntegralAvailableResident() + amount);
- }else if(identityType.equals(ComActIntegralUserTradeDO.identityType.dy)){
+ } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) {
integralUserDO.setIntegralParty(integralUserDO.getIntegralParty() + amount);
integralUserDO.setIntegralAvailableParty(integralUserDO.getIntegralAvailableParty() + amount);
- }else if(identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)){
+ } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) {
integralUserDO.setIntegralVolunteer(integralUserDO.getIntegralVolunteer() + amount);
integralUserDO.setIntegralAvailableVolunteer(integralUserDO.getIntegralAvailableVolunteer() + amount);
}
- //更新钱包
+ // 更新钱包
comActIntegralUserService.updateById(integralUserDO);
- //增加积分账户交易记录
- Long tradeId = this.addIntegralTradeRecord(userId,integralId,communityId,serviceId,type,amount
- ,ComActIntegralUserTradeDO.changeType.add,remark.toString(),identityType,2L);
- //增加积分账户变更记录
- comActIntegralUserChangeService.addIntegralUserChangeRecord(userId,integralId,communityId,integralSum,integralUserDO.getIntegralSum()
- ,integralAvailableSum,integralUserDO.getIntegralAvailableSum(),integralFrozenSum,integralUserDO.getIntegralFrozenSum()
- ,integralParty,integralUserDO.getIntegralParty(),integralAvailableParty,integralUserDO.getIntegralAvailableParty()
- ,integralFrozenParty,integralUserDO.getIntegralFrozenParty(),integralVolunteer,integralUserDO.getIntegralVolunteer()
- ,integralAvailableVolunteer,integralUserDO.getIntegralAvailableVolunteer(),integralFrozenVolunteer,integralUserDO.getIntegralFrozenVolunteer()
- ,integralResident,integralUserDO.getIntegralResident(),integralAvailableResident,integralUserDO.getIntegralAvailableResident()
- ,integralFrozenResident,integralUserDO.getIntegralFrozenResident(),tradeId);
+ // 增加积分账户交易记录
+ Long tradeId = this.addIntegralTradeRecord(userId, integralId, communityId, serviceId, type, amount,
+ ComActIntegralUserTradeDO.changeType.add, remark.toString(), identityType, 2L);
+ // 增加积分账户变更记录
+ comActIntegralUserChangeService.addIntegralUserChangeRecord(userId, integralId, communityId, integralSum,
+ integralUserDO.getIntegralSum(), integralAvailableSum, integralUserDO.getIntegralAvailableSum(),
+ integralFrozenSum, integralUserDO.getIntegralFrozenSum(), integralParty, integralUserDO.getIntegralParty(),
+ integralAvailableParty, integralUserDO.getIntegralAvailableParty(), integralFrozenParty,
+ integralUserDO.getIntegralFrozenParty(), integralVolunteer, integralUserDO.getIntegralVolunteer(),
+ integralAvailableVolunteer, integralUserDO.getIntegralAvailableVolunteer(), integralFrozenVolunteer,
+ integralUserDO.getIntegralFrozenVolunteer(), integralResident, integralUserDO.getIntegralResident(),
+ integralAvailableResident, integralUserDO.getIntegralAvailableResident(), integralFrozenResident,
+ integralUserDO.getIntegralFrozenResident(), tradeId);
return R.ok();
}
/**
* 根据类型、用户id、社区id构建查询请求参数
- * @param type 类型
- * @param userId 用户id
- * @param communityId 社区id
- * @return 查询请求参数
+ *
+ * @param type
+ * 类型
+ * @param userId
+ * 用户id
+ * @param communityId
+ * 社区id
+ * @return 查询请求参数
*/
- private ComActIntegralCountDTO getIntegralCountDTO(Integer type,Long userId,Long communityId){
+ private ComActIntegralCountDTO getIntegralCountDTO(Integer type, Long userId, Long communityId,
+ Integer integralType) {
ComActIntegralCountDTO integralCountDTO = new ComActIntegralCountDTO();
integralCountDTO.setUserId(userId);
integralCountDTO.setCommunityId(communityId);
+ integralCountDTO.setServiceType(integralType);
integralCountDTO.setType(ComActIntegralUserTradeDO.changeType.add);
- if(type.equals(ComActIntegralRuleDO.type.month)){
+ if (type.equals(ComActIntegralRuleDO.type.month)) {
integralCountDTO.setStartTime(DateUtils.getFirstDayOfMonthString());
integralCountDTO.setEndTime(DateUtils.getLastDayOfMonthString());
- }else if(type.equals(ComActIntegralRuleDO.type.day)){
+ } else if (type.equals(ComActIntegralRuleDO.type.day)) {
integralCountDTO.setStartTime(DateUtils.getDayOfMonthString() + " 00:00:00");
integralCountDTO.setEndTime(DateUtils.getDayOfMonthString() + " 23:59:59");
}
--
Gitblit v1.7.1