feat(myInvitation): 新增星球手续费并调整社区加入逻辑
parent
f432697d94
commit
1f50a33c78
|
@ -24,14 +24,17 @@ import com.mcwl.communityCenter.mapper.CommunityUserMapper;
|
|||
import com.mcwl.communityCenter.service.CommunityService;
|
||||
import com.mcwl.communityCenter.service.IncomeInfoService;
|
||||
import com.mcwl.communityCenter.service.PublishService;
|
||||
import com.mcwl.myInvitation.domain.CommissionRatio;
|
||||
import com.mcwl.myInvitation.domain.Consume;
|
||||
import com.mcwl.myInvitation.mapper.ConsumeMapper;
|
||||
import com.mcwl.myInvitation.service.CommissionRatioService;
|
||||
import com.mcwl.system.service.ISysUserService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
@ -58,6 +61,8 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
|||
|
||||
private final IncomeInfoService incomeInfoService;
|
||||
|
||||
private final CommissionRatioService commissionRatioService;
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -142,8 +147,26 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
|||
|
||||
sysUserService.updateUser(user);
|
||||
|
||||
|
||||
|
||||
// 从redis获取提成比例
|
||||
// 抽取社区比例
|
||||
String commissionRationCommunity = redisCache.getCacheObject("CommissionRationCommunity");
|
||||
if (Objects.isNull(commissionRationCommunity)) {
|
||||
CommissionRatio commissionRatio = commissionRatioService.lambdaQuery()
|
||||
.eq(CommissionRatio::getType, 2)
|
||||
.one();
|
||||
commissionRationCommunity = commissionRatio.getRatio().toString();
|
||||
redisCache.setCacheObject("CommissionRationCommunity", commissionRationCommunity);
|
||||
}
|
||||
|
||||
SysUser tenantUser = sysUserService.selectUserById(tenantId);
|
||||
tenantUser.setWallet(priceBigDecimal.add(new BigDecimal(tenantUser.getWallet().toString())).doubleValue());
|
||||
BigDecimal getWallet = priceBigDecimal
|
||||
.multiply(new BigDecimal("1").subtract(new BigDecimal(commissionRationCommunity)));
|
||||
tenantUser.setWallet(getWallet
|
||||
.add(new BigDecimal(tenantUser.getWallet().toString()))
|
||||
.setScale(2, RoundingMode.HALF_UP)
|
||||
.doubleValue());
|
||||
sysUserService.updateUser(tenantUser);
|
||||
|
||||
|
||||
|
@ -175,7 +198,7 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
|||
communityAdvice.setAdviceType(AdviceConstant.COMMUNITY_NOTICE);
|
||||
communityAdvice.setUserId(tenantId);
|
||||
communityAdvice.setContent(StringUtils.format("{}加入{}社区,金币+{}",
|
||||
SecurityUtils.getLoginUser().getUser().getNickName(), community.getCommunityName(), price));
|
||||
SecurityUtils.getLoginUser().getUser().getNickName(), community.getCommunityName(), getWallet));
|
||||
communityAdviceMapper.insert(communityAdvice);
|
||||
|
||||
Consume consume = new Consume();
|
||||
|
@ -188,7 +211,7 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
|||
|
||||
consume = new Consume();
|
||||
consume.setUserId(community.getTenantId());
|
||||
consume.setAmount(price);
|
||||
consume.setAmount(getWallet.doubleValue());
|
||||
consume.setProductId(communityId);
|
||||
consume.setType(3);
|
||||
consume.setWallet(sysUserService.selectUserById(community.getTenantId()).getWallet());
|
||||
|
@ -199,7 +222,7 @@ public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community
|
|||
incomeInfo.setCommunityId(communityId);
|
||||
incomeInfo.setUserId(tenantId);
|
||||
incomeInfo.setType(0);
|
||||
incomeInfo.setAmount(price);
|
||||
incomeInfo.setAmount(getWallet.doubleValue());
|
||||
incomeInfoService.save(incomeInfo);
|
||||
|
||||
redisCache.deleteObject("communityJoinNumMap");
|
||||
|
|
|
@ -34,6 +34,10 @@ public class CommissionRatio extends BaseEntity {
|
|||
* 类型 0邀请人-被邀请人 1公司-商家
|
||||
*/
|
||||
private Integer type;
|
||||
/**
|
||||
* 描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public class CommissionRatioVo {
|
|||
*/
|
||||
private Double ratio;
|
||||
/**
|
||||
* 提成类型,平台手续费、邀请人提成
|
||||
* 提成类型,平台手续费、邀请人提成、星球手续费
|
||||
*/
|
||||
private String ratioName;
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ public class CommissionRatioServiceImpl extends ServiceImpl<CommissionRatioMappe
|
|||
|
||||
redisCache.deleteObject("CommissionRationInviterUser");
|
||||
redisCache.deleteObject("CommissionRationMerchant");
|
||||
redisCache.deleteObject("CommissionRationCommunity");
|
||||
|
||||
return this.getCommissionRatioVo(commissionRatio);
|
||||
}
|
||||
|
@ -66,11 +67,7 @@ public class CommissionRatioServiceImpl extends ServiceImpl<CommissionRatioMappe
|
|||
private CommissionRatioVo getCommissionRatioVo(CommissionRatio commissionRatio) {
|
||||
CommissionRatioVo vo = new CommissionRatioVo();
|
||||
BeanUtil.copyProperties(commissionRatio, vo);
|
||||
if (commissionRatio.getType() == 0) {
|
||||
vo.setRatioName("平台手续费");
|
||||
} else if (commissionRatio.getType() == 1) {
|
||||
vo.setRatioName("邀请人提成");
|
||||
}
|
||||
vo.setRatioName(commissionRatio.getDescription());
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue