nnnn
This commit is contained in:
@@ -36,6 +36,8 @@ public interface AccountService extends IService<Account> {
|
||||
|
||||
void recharge(ConsumeLog consumeLog);
|
||||
|
||||
void rechargeAdminIgnoreAccount(ConsumeLog consumeLog);
|
||||
|
||||
Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo);
|
||||
|
||||
boolean distribution(ConsumeLog consumeLog, Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum);
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.RechargeOrder;
|
||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||
import com.ruoyi.cai.dto.admin.vo.order.UpdateAdminRechargeOrderDTO;
|
||||
import com.ruoyi.cai.dto.app.query.order.AddRechargeOrderDto;
|
||||
import com.ruoyi.cai.dto.ConsumeResp;
|
||||
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
||||
@@ -29,7 +30,7 @@ public interface RechargeOrderService extends IService<RechargeOrder> {
|
||||
|
||||
RechargeConsumerResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum);
|
||||
|
||||
RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto);
|
||||
UpdateAdminRechargeOrderDTO updateAdminRechargeOrder(AddRechargeOrderAdminDto dto);
|
||||
|
||||
void setFastPay(String orderNo);
|
||||
}
|
||||
|
||||
@@ -232,6 +232,22 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
consumeLogService.save(consumeLog);
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void rechargeAdminIgnoreAccount(ConsumeLog consumeLog){
|
||||
log.info("开始管理員充值 consumeLog={}", JSON.toJSONString(consumeLog));
|
||||
Long userId = consumeLog.getSourceUserId();
|
||||
Long amount = consumeLog.getAmount();
|
||||
User user = userService.getById(userId);
|
||||
Account account = this.getByUserId(userId);
|
||||
if(account == null || user == null){
|
||||
throw new ServiceException("无效账号");
|
||||
}
|
||||
// 获取分销的比例和用户
|
||||
consumeLogService.calculateInitFenxiao(consumeLog);
|
||||
consumeLogService.save(consumeLog);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo) {
|
||||
|
||||
@@ -7,14 +7,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.*;
|
||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||
import com.ruoyi.cai.dto.admin.vo.order.UpdateAdminRechargeOrderDTO;
|
||||
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;
|
||||
import com.ruoyi.cai.enums.version.VersionPlatformEnum;
|
||||
import com.ruoyi.cai.manager.IdManager;
|
||||
import com.ruoyi.cai.mapper.AccountMapper;
|
||||
import com.ruoyi.cai.mapper.RechargeOrderMapper;
|
||||
@@ -142,7 +141,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto){
|
||||
public UpdateAdminRechargeOrderDTO updateAdminRechargeOrder(AddRechargeOrderAdminDto dto){
|
||||
User user = userService.getByUserCode(dto.getUsercode());
|
||||
if(user == null){
|
||||
throw new ServiceException("用户不存在");
|
||||
@@ -151,6 +150,14 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
if(accountTypeEnum == null){
|
||||
throw new ServiceException("参数错误");
|
||||
}
|
||||
if(dto.isDistribution()){
|
||||
if(dto.getRechargeCoin() <= 0){
|
||||
throw new ServiceException("开启分销情况下,无法调整金额为负数");
|
||||
}
|
||||
if(accountTypeEnum != AccountTypeEnum.COIN){
|
||||
throw new ServiceException("只有调整余额才能开启分销");
|
||||
}
|
||||
}
|
||||
Long userId = user.getId();
|
||||
Long traceId = IdManager.nextId();
|
||||
RechargeOrder order = new RechargeOrder();
|
||||
@@ -167,7 +174,16 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
order.setOperateIp(ServletUtils.getClientIP());
|
||||
order.setAdmin(true);
|
||||
order.setAdminId(LoginHelper.getUserId());
|
||||
order.setRemark(dto.getRemark());
|
||||
String remark = dto.getRemark();
|
||||
if(dto.isDistribution()){
|
||||
if(remark == null){
|
||||
remark = "[参与分销]";
|
||||
}else{
|
||||
remark = "[参与分销]"+remark;
|
||||
}
|
||||
}
|
||||
order.setRemark(remark);
|
||||
order.setDistribution(dto.isDistribution());
|
||||
order.setTraceId(traceId);
|
||||
this.save(order);
|
||||
Account account = accountService.getByUserId(userId);
|
||||
@@ -200,9 +216,31 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
||||
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_INCOME_COIN_DECR,dto.getRechargeCoin(),traceId);
|
||||
}
|
||||
}
|
||||
return order;
|
||||
UpdateAdminRechargeOrderDTO result = new UpdateAdminRechargeOrderDTO();
|
||||
result.setRechargeOrder(order);
|
||||
// 分销逻辑
|
||||
if(dto.isDistribution()){
|
||||
ConsumeLog consumeLog = new ConsumeLog();
|
||||
consumeLog.init(user,null);
|
||||
consumeLog.setTraceId(traceId);
|
||||
consumeLog.setType(ConsumeLogType.RECHARGE.getCode());
|
||||
consumeLog.setAmount(order.getRechargeCoin());
|
||||
accountService.rechargeAdminIgnoreAccount(consumeLog);
|
||||
RechargeConsumerResp resp = new RechargeConsumerResp();
|
||||
resp.setSuccess(true);
|
||||
resp.setConsumeLogId(consumeLog.getId());
|
||||
resp.setUserId(user.getId());
|
||||
resp.setUser(user);
|
||||
resp.setTraceId(traceId);
|
||||
resp.setPrice(order.getPrice());
|
||||
resp.setRechargeCoin(order.getRechargeCoin());
|
||||
resp.setOrderNo(order.getOrderNo());
|
||||
result.setResp(resp);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setFastPay(String orderNo) {
|
||||
if(orderNo != null){
|
||||
|
||||
Reference in New Issue
Block a user