123
This commit is contained in:
@@ -24,6 +24,7 @@ public interface AccountCashService extends IService<AccountCash> {
|
||||
|
||||
void fail(Long id);
|
||||
|
||||
ExportBatchAuditVo batchAudit(List<AccountCashAdminVo> result);
|
||||
ExportBatchAuditVo batchAudit(List<Long> result);
|
||||
|
||||
void success(Long id);
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||
import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto;
|
||||
import com.ruoyi.cai.dto.ConsumeResp;
|
||||
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
||||
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
||||
import com.ruoyi.cai.pay.PayTypeEnum;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
@@ -26,7 +27,7 @@ public interface RechargeOrderService extends IService<RechargeOrder> {
|
||||
|
||||
RechargeOrder addRechargeOrder(AddRechargeOrderDto addRechargeOrderDto);
|
||||
|
||||
ConsumeResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum);
|
||||
RechargeConsumerResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum);
|
||||
|
||||
RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto);
|
||||
}
|
||||
|
||||
@@ -3,8 +3,9 @@ package com.ruoyi.cai.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.UserGift;
|
||||
import com.ruoyi.cai.dto.ConsumeResp;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGiftRes;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGiftReq;
|
||||
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
|
||||
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -18,6 +19,6 @@ public interface UserGiftService extends IService<UserGift> {
|
||||
|
||||
List<UserGiftIndexVo> selectGiftList(Long userId);
|
||||
|
||||
ConsumeResp giveGift(GiveGiftRes query);
|
||||
GiftConsumerResp giveGift(GiveGiftReq query);
|
||||
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ import com.ruoyi.cai.enums.AccountCashStatusEnum;
|
||||
import com.ruoyi.cai.enums.AuditStatusEnum;
|
||||
import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.mapper.AccountCashMapper;
|
||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||
import com.ruoyi.cai.notice.dto.CashSuccessSendMesDTO;
|
||||
import com.ruoyi.cai.service.AccountCashService;
|
||||
import com.ruoyi.cai.service.AccountBankcardService;
|
||||
import com.ruoyi.cai.service.AccountService;
|
||||
@@ -20,11 +22,13 @@ import com.ruoyi.cai.service.WithdrawExchangeService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.ServletUtils;
|
||||
import io.undertow.util.AttachmentList;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@@ -35,6 +39,8 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
|
||||
private AccountService accountService;
|
||||
@Autowired
|
||||
private WithdrawExchangeService withdrawExchangeService;
|
||||
@Autowired
|
||||
private YunxinHttpService yunxinHttpService;
|
||||
@Override
|
||||
public void withdraw(WithdrawReq res) {
|
||||
AccountBankcard one = accountBankcardService.getOne(Wrappers.lambdaQuery(AccountBankcard.class)
|
||||
@@ -84,31 +90,66 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
|
||||
return;
|
||||
}
|
||||
accountService.withdrawFail(accountCash.getUserId(),accountCash.getWithdrawCoin(),accountCash.getTraceId());
|
||||
|
||||
yunxinHttpService.cashFailSendMessage(accountCash.getUserId(),accountCash.getCreateTime(),accountCash.getCashMoney(),
|
||||
accountCash.getVerifyRemark());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ExportBatchAuditVo batchAudit(List<AccountCashAdminVo> result) {
|
||||
public void success(Long id) {
|
||||
boolean update = this.update(Wrappers.lambdaUpdate(AccountCash.class)
|
||||
.set(AccountCash::getVerifyTime, LocalDateTime.now())
|
||||
.set(AccountCash::getOperateIp, ServletUtils.getClientIP())
|
||||
.set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode())
|
||||
.eq(AccountCash::getStatus, AccountCashStatusEnum.READY.getCode())
|
||||
.eq(AccountCash::getId, id));
|
||||
if(!update){
|
||||
return;
|
||||
}
|
||||
AccountCash accountCash = this.getById(id);
|
||||
if(accountCash == null){
|
||||
return;
|
||||
}
|
||||
// 发送通知
|
||||
yunxinHttpService.cashSuccessSendMessage(accountCash.getUserId(),
|
||||
accountCash.getCreateTime(),
|
||||
accountCash.getCashMoney(),accountCash.getRealCashMoney(),
|
||||
accountCash.getCardAccount(),accountCash.getVerifyTime());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ExportBatchAuditVo batchAudit(List<Long> result) {
|
||||
ExportBatchAuditVo res = new ExportBatchAuditVo();
|
||||
Integer allNum = result.size();
|
||||
Integer successNum = 0;
|
||||
Integer ignoreNum = 0;
|
||||
Integer failNum = 0;
|
||||
for (AccountCashAdminVo vo : result) {
|
||||
List<CashSuccessSendMesDTO> dtoList = new ArrayList<>();
|
||||
for (Long id : result) {
|
||||
try {
|
||||
AccountCash cash = this.getById(vo.getId());
|
||||
if(!AuditStatusEnum.AUDITING.getCode().equals(cash.getStatus())){
|
||||
AccountCash cash = this.getById(id);
|
||||
if(cash == null || !AuditStatusEnum.AUDITING.getCode().equals(cash.getStatus())){
|
||||
ignoreNum++;
|
||||
continue;
|
||||
}
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
boolean update = this.update(Wrappers.lambdaUpdate(AccountCash.class)
|
||||
.eq(AccountCash::getId, vo.getId())
|
||||
.eq(AccountCash::getId, id)
|
||||
.eq(AccountCash::getStatus, AuditStatusEnum.AUDITING.getCode())
|
||||
.set(AccountCash::getVerifyTime, LocalDateTime.now())
|
||||
.set(AccountCash::getVerifyTime, now)
|
||||
.set(AccountCash::getOperateIp, ServletUtils.getClientIP())
|
||||
.set(AccountCash::getStatus, AccountCashStatusEnum.SUCCESS.getCode()));
|
||||
if(update){
|
||||
successNum++;
|
||||
CashSuccessSendMesDTO dto = new CashSuccessSendMesDTO();
|
||||
dto.setToUid(cash.getUserId());
|
||||
dto.setCashTime(cash.getCreateTime());
|
||||
dto.setCashMoney(cash.getCashMoney());
|
||||
dto.setRealCashMonty(cash.getRealCashMoney());
|
||||
dto.setCardAccount(cash.getCardAccount());
|
||||
dto.setVerifyTime(now);
|
||||
dtoList.add(dto);
|
||||
}else{
|
||||
ignoreNum++;
|
||||
}
|
||||
@@ -121,8 +162,12 @@ public class AccountCashServiceImpl extends ServiceImpl<AccountCashMapper, Accou
|
||||
res.setIgnoreNum(ignoreNum);
|
||||
res.setAllNum(allNum);
|
||||
res.setFailNum(failNum);
|
||||
if(!dtoList.isEmpty()){
|
||||
yunxinHttpService.batchCashSuccessSendMessage(dtoList);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.manager.SystemConfigManager;
|
||||
import com.ruoyi.cai.mapper.AccountMapper;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.cai.util.NumCaUtil;
|
||||
import com.ruoyi.cai.util.CaiNumUtil;
|
||||
import com.ruoyi.cai.ws.bean.Room;
|
||||
import com.ruoyi.cai.ws.bean.RoomData;
|
||||
import com.ruoyi.cai.ws.bean.UserData;
|
||||
@@ -100,7 +100,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
// 开始处理 接收方的费用
|
||||
Long targetUserId = consumeLog.getTargetUserId();
|
||||
if(targetUserId != null){
|
||||
Long anchorAmount = NumCaUtil.coin(amount,consumeLog.getTargetRate());
|
||||
Long anchorAmount = CaiNumUtil.coin(amount,consumeLog.getTargetRate());
|
||||
consumeLog.setAnchorAmount(anchorAmount);
|
||||
baseMapper.incsIncomeCoin(targetUserId,anchorAmount);
|
||||
}
|
||||
@@ -158,7 +158,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
}
|
||||
// 开始处理 接收方的费用
|
||||
BigDecimal imRate = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.DAY_MAX_DYNAMIC);
|
||||
Long anchorAmount = NumCaUtil.coin(price,imRate);
|
||||
Long anchorAmount = CaiNumUtil.coin(price,imRate);
|
||||
baseMapper.incsIncomeCoin(toUser.getId(),anchorAmount);
|
||||
Long tractId = IdManager.nextId();
|
||||
// 记录消费方的流水
|
||||
@@ -372,7 +372,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
}
|
||||
}
|
||||
Long amountReal = payCoin + payIncome; // 实际支付的金额
|
||||
Long anchorAmount = NumCaUtil.coin(amountReal,roomData.getVideoDivide());
|
||||
Long anchorAmount = CaiNumUtil.coin(amountReal,roomData.getVideoDivide());
|
||||
User fromUser = userService.getById(userCall.getFromUid());
|
||||
User toUser = userService.getById(userCall.getToUid());
|
||||
|
||||
|
||||
@@ -8,9 +8,10 @@ import com.ruoyi.cai.enums.ConsumeLogStatus;
|
||||
import com.ruoyi.cai.enums.ConsumeLogType;
|
||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||
import com.ruoyi.cai.mapper.ConsumeLogMapper;
|
||||
import com.ruoyi.cai.notice.YunxinHttpService;
|
||||
import com.ruoyi.cai.rank.RankManager;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.cai.util.NumCaUtil;
|
||||
import com.ruoyi.cai.util.CaiNumUtil;
|
||||
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
@@ -43,6 +44,8 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
||||
private UnionService unionService;
|
||||
@Autowired
|
||||
private AccountService accountService;
|
||||
@Autowired
|
||||
private YunxinHttpService yunxinHttpService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -108,11 +111,15 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
||||
AccountChangeCodeEnum changeCodeEnum = ConsumeLogType.getUnionChange(code);
|
||||
oneUnionSend = accountService.distribution(consumer, consumer.getUnionUserId(), consumer.getUnionAmount(), changeCodeEnum);
|
||||
}
|
||||
if(oneInviteSend){
|
||||
if(oneInviteSend){ // 一级邀请
|
||||
rankManager.sendInviteRankMq(consumer.getOneUserId(),consumer.getOneAmount(),consumer.getTraceId());
|
||||
userInviteService.incsCoinAsync(consumer.getOneUserId(),consumer.getCreateInviteUserId(),consumer.getOneAmount());
|
||||
if(ConsumeLogType.RECHARGE.getCode().equals(consumer.getType())){ // 充值奖励推送
|
||||
yunxinHttpService.inviteCashbackSendMessage(consumer.getOneUserId(),consumer.getSourceUserId(),
|
||||
consumer.getOneRate(),consumer.getAmount(),consumer.getOneAmount());
|
||||
}
|
||||
}
|
||||
if(oneUnionSend){
|
||||
if(oneUnionSend){ // 工会邀请
|
||||
rankManager.sendInviteRankMq(consumer.getUnionUserId(),consumer.getUnionAmount(),consumer.getTraceId());
|
||||
}
|
||||
}catch (Exception e){
|
||||
@@ -138,7 +145,7 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
||||
consumeLog.setOnePhone(oneUser.getMobile());
|
||||
consumeLog.setOneJoin(userInvite.getEnableRate());
|
||||
consumeLog.setOneIsUnion(oneUser.getIsUnion());
|
||||
consumeLog.setOneAmount(NumCaUtil.coin(consumeLog.getAmount(),consumeLog.getOneRate()));
|
||||
consumeLog.setOneAmount(CaiNumUtil.coin(consumeLog.getAmount(),consumeLog.getOneRate()));
|
||||
}
|
||||
}
|
||||
consumeLog.setCalculateStatus(true);
|
||||
@@ -164,7 +171,7 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
||||
consumeLog.setOnePhone(oneUser.getMobile());
|
||||
consumeLog.setOneJoin(userInvite.getEnableRate());
|
||||
consumeLog.setOneIsUnion(oneUser.getIsUnion());
|
||||
consumeLog.setOneAmount(NumCaUtil.coin(consumeLog.getAnchorAmount(),consumeLog.getOneRate()));
|
||||
consumeLog.setOneAmount(CaiNumUtil.coin(consumeLog.getAnchorAmount(),consumeLog.getOneRate()));
|
||||
}
|
||||
}
|
||||
// 工会分销 只有通话和礼物才有
|
||||
@@ -188,7 +195,7 @@ public class ConsumeLogServiceImpl extends ServiceImpl<ConsumeLogMapper, Consume
|
||||
}else if(ConsumeLogType.VIDEO.getCode().equals(consumeLog.getType())){
|
||||
consumeLog.setUnionRate(unionUser.getVideoDivide());
|
||||
}
|
||||
consumeLog.setUnionAmount(NumCaUtil.coin(consumeLog.getAnchorAmount(),consumeLog.getUnionRate()));
|
||||
consumeLog.setUnionAmount(CaiNumUtil.coin(consumeLog.getAnchorAmount(),consumeLog.getUnionRate()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||
import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto;
|
||||
import com.ruoyi.cai.dto.ConsumeResp;
|
||||
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
||||
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
||||
import com.ruoyi.cai.enums.ConsumeLogType;
|
||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||
import com.ruoyi.cai.enums.account.AccountTypeEnum;
|
||||
@@ -93,7 +94,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ConsumeResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum){
|
||||
public RechargeConsumerResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum){
|
||||
RechargeOrder rechargeOrder = this.getByOrderNo(orderNo);
|
||||
if(rechargeOrder == null){
|
||||
throw new ServiceException("订单不存在");
|
||||
@@ -124,12 +125,13 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
consumeLog.setType(ConsumeLogType.RECHARGE.getCode());
|
||||
consumeLog.setAmount(rechargeOrder.getRechargeCoin());
|
||||
accountService.recharge(consumeLog);
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
RechargeConsumerResp resp = new RechargeConsumerResp();
|
||||
resp.setSuccess(true);
|
||||
resp.setConsumeLogId(consumeLog.getId());
|
||||
resp.setUserId(user.getId());
|
||||
resp.setTraceId(traceId);
|
||||
resp.setPrice(rechargeOrder.getPrice());
|
||||
resp.setRechargeCoin(rechargeOrder.getRechargeCoin());
|
||||
return resp;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,15 +3,13 @@ package com.ruoyi.cai.service.impl;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.*;
|
||||
import com.ruoyi.cai.dto.ConsumeResp;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGiftRes;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGiftReq;
|
||||
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
|
||||
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
|
||||
import com.ruoyi.cai.enums.ConsumeLogType;
|
||||
import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.manager.LockManager;
|
||||
import com.ruoyi.cai.mapper.UserGiftMapper;
|
||||
import com.ruoyi.cai.mq.AmqpProducer;
|
||||
import com.ruoyi.cai.mq.dto.CommonDTO;
|
||||
import com.ruoyi.cai.mq.handle.dto.RankDTO;
|
||||
import com.ruoyi.cai.rank.RankManager;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
@@ -57,7 +55,7 @@ public class UserGiftServiceImpl extends ServiceImpl<UserGiftMapper, UserGift> i
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ConsumeResp giveGift(GiveGiftRes query) {
|
||||
public GiftConsumerResp giveGift(GiveGiftReq query) {
|
||||
Long fromUserId = LoginHelper.getUserId();
|
||||
Gift gift = giftService.getById(query.getGiftId());
|
||||
if(gift == null){
|
||||
@@ -68,7 +66,8 @@ public class UserGiftServiceImpl extends ServiceImpl<UserGiftMapper, UserGift> i
|
||||
if(lock.isLocked()){
|
||||
throw new ServiceException("您点击太快了");
|
||||
}
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
GiftConsumerResp resp = new GiftConsumerResp();
|
||||
resp.setGift(gift);
|
||||
try {
|
||||
lock.lock(3, TimeUnit.SECONDS);
|
||||
User fromUser = userService.getById(fromUserId);
|
||||
@@ -84,6 +83,7 @@ public class UserGiftServiceImpl extends ServiceImpl<UserGiftMapper, UserGift> i
|
||||
consumeLog.setAmount(giftAmount);
|
||||
consumeLog.setTargetRate(anchor.getGiftRate());
|
||||
consumeLog = accountService.giftDecr(consumeLog, ConsumeLogType.GIFT, gift);
|
||||
resp.setAnchorIncomeCoin(consumeLog.getAnchorAmount());
|
||||
resp.setConsumeLogId(consumeLog.getId());
|
||||
UserGift userGift = new UserGift();
|
||||
userGift.setType(query.getType());
|
||||
|
||||
Reference in New Issue
Block a user