This commit is contained in:
dute7liang
2024-01-27 21:25:25 +08:00
parent edad546c4b
commit 82a3a1c9d1
6 changed files with 52 additions and 20 deletions

View File

@@ -3,6 +3,7 @@ package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo; import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo;
import com.ruoyi.cai.dto.app.vo.user.UserListVo; import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.service.UserInviteService; import com.ruoyi.cai.service.UserInviteService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;

View File

@@ -17,6 +17,7 @@ public enum SystemConfigEnum {
RANK_INVITE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "邀请榜日榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()), RANK_INVITE_DAY_AWARD("138,108,88,58,38,28,28,28,28,28,28", "邀请榜日榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()),
RANK_INVITE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "邀请榜周榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()), RANK_INVITE_WEEK_AWARD("888,588,388,288,188,138,138,138,138,138,138,138", "邀请榜周榜奖励",SystemConfigGroupEnum.BUSINESS,new RankSystemConfigCheck()),
INVITE_BIND_RATE("1000", "邀请绑定成功率[0-1000]数字越大成功率越高",SystemConfigGroupEnum.BUSINESS, new Rate1000IntegerSystemConfigCheck()), INVITE_BIND_RATE("1000", "邀请绑定成功率[0-1000]数字越大成功率越高",SystemConfigGroupEnum.BUSINESS, new Rate1000IntegerSystemConfigCheck()),
SHARE_URL("https://h5.qx96688.com/index/invite/index", "分享链接",SystemConfigGroupEnum.BUSINESS, new Rate1000IntegerSystemConfigCheck()),
// INVITE_GIFT_RATE("100", "礼物分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()), // INVITE_GIFT_RATE("100", "礼物分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
// INVITE_GUARD_RATE("100", "守护分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()), // INVITE_GUARD_RATE("100", "守护分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
// INVITE_VIDEO_RATE("100", "视频分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()), // INVITE_VIDEO_RATE("100", "视频分销成功率",SystemConfigGroupEnum.BUSINESS, new RateIntegerSystemConfigCheck()),
@@ -33,7 +34,7 @@ public enum SystemConfigEnum {
DEFAULT_VIDEO_INCOME_RATE("0.07", "默认分销好友视频提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()), DEFAULT_VIDEO_INCOME_RATE("0.07", "默认分销好友视频提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
DEFAULT_GIFT_INCOME_RATE("0.07", "默认分销好友礼物提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()), DEFAULT_GIFT_INCOME_RATE("0.07", "默认分销好友礼物提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
DEFAULT_GUARD_INCOME_RATE("0.07", "默认分销好友守护提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()), DEFAULT_GUARD_INCOME_RATE("0.07", "默认分销好友守护提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
DEFAULT_PAY_INCOME_RATE("0.07", "默认分销好友充值提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()), DEFAULT_PAY_INCOME_RATE("0.3", "默认分销好友充值提成",SystemConfigGroupEnum.BUSINESS,new RateSystemConfigCheck()),
@Deprecated @Deprecated
DEFAULT_UNION_GIFT_INCOME_RATE("0.01", "默认工会礼物提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()), DEFAULT_UNION_GIFT_INCOME_RATE("0.01", "默认工会礼物提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),
DEFAULT_UNION_VIDEO_INCOME_RATE("0.01", "默认工会视频提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()), DEFAULT_UNION_VIDEO_INCOME_RATE("0.01", "默认工会视频提成",SystemConfigGroupEnum.BUSINESS, new RateSystemConfigCheck()),

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cai.notice; package com.ruoyi.cai.notice;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.ruoyi.cai.config.CaiProperties;
import com.ruoyi.cai.domain.Gift; import com.ruoyi.cai.domain.Gift;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.mq.handle.dto.WindowRechargeDTO; import com.ruoyi.cai.mq.handle.dto.WindowRechargeDTO;
@@ -40,6 +41,8 @@ public class YunxinHttpService {
@Autowired @Autowired
private AccountService accountService; private AccountService accountService;
@Autowired @Autowired
private CaiProperties caiProperties;
@Autowired
private UserService userService; private UserService userService;
/** /**
@@ -52,8 +55,8 @@ public class YunxinHttpService {
data.setTitle("系统奖励"); data.setTitle("系统奖励");
data.setCurrentDate(); data.setCurrentDate();
data.setTxt1("陌生人交友需谨慎,添加陌生人微信,QQ失去平台监管有极大被骗风险凡是诱导加微信QQ引导到其他平台或以色情为由索取礼物的行为请大家及时举报一经查明直接永久封号良好的交友氛围需大家共同维护希望大家提高自我警惕性杜绝被骗"); data.setTxt1("陌生人交友需谨慎,添加陌生人微信,QQ失去平台监管有极大被骗风险凡是诱导加微信QQ引导到其他平台或以色情为由索取礼物的行为请大家及时举报一经查明直接永久封号良好的交友氛围需大家共同维护希望大家提高自我警惕性杜绝被骗");
data.addFields("注册奖励",rewardCoin+"云贝"); data.addFields("注册奖励",rewardCoin+caiProperties.getCoinName());
data.addFields("云贝",totalCoin+"云贝"); data.addFields(""+caiProperties.getCoinName(),totalCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){
@@ -71,8 +74,8 @@ public class YunxinHttpService {
data.setAction(1); data.setAction(1);
data.setTitle("购买成功"); data.setTitle("购买成功");
data.setCurrentDate(); data.setCurrentDate();
data.addFields("购买云贝",rewardCoin+"云贝"); data.addFields("购买"+caiProperties.getCoinName(),rewardCoin+caiProperties.getCoinName());
data.addFields("云贝",totalCoin+"云贝"); data.addFields(""+caiProperties.getCoinName(),totalCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){
@@ -95,9 +98,9 @@ public class YunxinHttpService {
data.setTitle("收到礼物"); data.setTitle("收到礼物");
data.setCurrentDate(); data.setCurrentDate();
data.addFields("礼物名称",gift.getName()); data.addFields("礼物名称",gift.getName());
data.addFields("礼物单价",gift.getPrice()+"云贝"); data.addFields("礼物单价",gift.getPrice()+caiProperties.getCoinName());
data.addFields("收入云贝",incomeCoin+"云贝"); data.addFields("收入"+caiProperties.getCoinName(),incomeCoin+caiProperties.getCoinName());
data.addFields("云贝",totalCoin+"云贝"); data.addFields(""+caiProperties.getCoinName(),totalCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){
@@ -124,7 +127,7 @@ public class YunxinHttpService {
data.setCurrentDate(); data.setCurrentDate();
data.addFields("用户昵称",sourceNickname); data.addFields("用户昵称",sourceNickname);
data.addFields("用户蜜瓜号",sourceUsercode); data.addFields("用户蜜瓜号",sourceUsercode);
data.addFields(str,incomeCoin+"云贝"); data.addFields(str,incomeCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){
@@ -145,12 +148,12 @@ public class YunxinHttpService {
ExtNoticeData data = new ExtNoticeData(); ExtNoticeData data = new ExtNoticeData();
data.setAction(1); data.setAction(1);
data.setTitle("充值分成"); data.setTitle("充值分成");
data.setTxt1(String.format("充值分成:每一笔账户充值将给其邀请账户额外赠送%s的云贝", CaiNumUtil.rateToStr(rate))); data.setTxt1(String.format("充值分成:每一笔账户充值将给其邀请账户额外赠送%s的%s", CaiNumUtil.rateToStr(rate), caiProperties.getCoinName()));
data.setCurrentDate(); data.setCurrentDate();
data.addFields("充值用户",sourceUser.getNickname()); data.addFields("充值用户",sourceUser.getNickname());
data.addFields("蜜瓜号",sourceUser.getUsercode()); data.addFields("蜜瓜号",sourceUser.getUsercode());
data.addFields("充值金额",payCoin+"云贝"); data.addFields("充值金额",payCoin+caiProperties.getCoinName());
data.addFields("充值分成",incomeCoin+"云贝"); data.addFields("充值分成",incomeCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){
@@ -341,9 +344,9 @@ public class YunxinHttpService {
data.setTitle("收到守护符"); data.setTitle("收到守护符");
data.setCurrentDate(); data.setCurrentDate();
data.addFields("守护类型",num+"个守护符"); data.addFields("守护类型",num+"个守护符");
data.addFields("守护单价",price+"云贝"); data.addFields("守护单价",price+caiProperties.getCoinName());
data.addFields("收入云贝",incomeCoin+"云贝"); data.addFields("收入"+caiProperties.getCoinName(),incomeCoin+caiProperties.getCoinName());
data.addFields("云贝",totalCoin+"云贝"); data.addFields(""+caiProperties.getCoinName(),totalCoin+caiProperties.getCoinName());
NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data); NoticeR<ExtNoticeData> notice = NoticeR.ok(MessageBaseTypeEnum.TXT, data);
YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice); YxDataR<SendMsgResp> r = yunxin.sendToNotice(toUid, notice);
if(r == null || !r.isSuccess()){ if(r == null || !r.isSuccess()){

View File

@@ -9,13 +9,17 @@ import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
import com.ruoyi.cai.dto.app.dto.InviteCountDTO; import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo; import com.ruoyi.cai.dto.app.vo.invite.InviteHomeVo;
import com.ruoyi.cai.dto.app.vo.user.UserListVo; import com.ruoyi.cai.dto.app.vo.user.UserListVo;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.executor.ExecutorConstant; import com.ruoyi.cai.executor.ExecutorConstant;
import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.UserInviteMapper; import com.ruoyi.cai.mapper.UserInviteMapper;
import com.ruoyi.cai.service.UserInviteService; import com.ruoyi.cai.service.UserInviteService;
import com.ruoyi.cai.util.RateUtil;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -34,21 +38,32 @@ public class UserInviteServiceImpl extends ServiceImpl<UserInviteMapper, UserInv
} }
@Autowired @Autowired
private CaiProperties caiProperties; private CaiProperties caiProperties;
@Autowired
private SystemConfigManager systemConfigManager;
@Override @Override
public InviteHomeVo inviteHome(Long userId) { public InviteHomeVo inviteHome(Long userId) {
Integer firstPayAward = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.FAST_PAY_AWARD);
String shareUrlBase = systemConfigManager.getSystemConfig(SystemConfigEnum.SHARE_URL);
BigDecimal payIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_PAY_INCOME_RATE);
BigDecimal videoIncomeRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_VIDEO_INCOME_RATE);
BigDecimal anchorVideoRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DEFAULT_ANCHOR_VIDEO_PRICE);
String shareUrl = shareUrlBase + "?from="+userId;
InviteHomeVo vo = new InviteHomeVo(); InviteHomeVo vo = new InviteHomeVo();
List<String> reward = new ArrayList<>(); List<String> reward = new ArrayList<>();
reward.add("1、邀请主播认证通过奖励#300#"+caiProperties.getCoinName()); reward.add("1、邀请主播认证通过奖励#300#"+caiProperties.getCoinName());
reward.add("2、邀请用户首次充值奖励#1200#"+caiProperties.getCoinName()); reward.add("2、邀请用户首次充值奖励#"+firstPayAward+"#"+caiProperties.getCoinName());
reward.add("3、主播视频、礼物、会员分成#50%#"); reward.add("3、主播视频、礼物、会员分成#"+RateUtil.getRateStr(anchorVideoRate)+"%#");
reward.add("4、邀请用户充值提成#30%#"); reward.add("4、邀请用户充值提成#"+ RateUtil.getRateStr(payIncomeRate)+"%#");
reward.add("5、邀请主播收益#7%#"); reward.add("5、邀请主播收益#"+RateUtil.getRateStr(videoIncomeRate)+"%#");
reward.add("最终解释权归平台所有"); reward.add("最终解释权归平台所有");
vo.setReward(reward); vo.setReward(reward);
InviteCountDTO inviteCount = baseMapper.countInviteAndReward(userId); InviteCountDTO inviteCount = baseMapper.countInviteAndReward(userId);
vo.setTotalInvite(inviteCount.getTotalInvite()); vo.setTotalInvite(inviteCount.getTotalInvite());
vo.setTotalReward(inviteCount.getTotalReward()); vo.setTotalReward(inviteCount.getTotalReward());
vo.setShareUrl(shareUrl);
vo.setShareQrCode(shareUrl);
return vo; return vo;
} }

View File

@@ -23,7 +23,7 @@ public class CaiNumUtil {
public static String rateToStr(BigDecimal rate){ public static String rateToStr(BigDecimal rate){
BigDecimal mul = NumberUtil.mul(rate, 100); BigDecimal mul = NumberUtil.mul(rate, 100);
return mul.intValue()+""; return mul.intValue()+"%";
} }
public static void main(String[] args) { public static void main(String[] args) {

View File

@@ -0,0 +1,12 @@
package com.ruoyi.cai.util;
import cn.hutool.core.util.NumberUtil;
import java.math.BigDecimal;
public class RateUtil {
public static String getRateStr(BigDecimal rate){
return NumberUtil.mul(rate,100).longValue() + "";
}
}