nnnn
This commit is contained in:
@@ -36,6 +36,10 @@ public class Account implements Serializable {
|
||||
* 收益的彩币数量
|
||||
*/
|
||||
private Long incomeCoin;
|
||||
/**
|
||||
* 积分
|
||||
*/
|
||||
private Long points;
|
||||
/**
|
||||
* 充值总额
|
||||
*/
|
||||
|
||||
@@ -47,6 +47,8 @@ public class Goods implements Serializable {
|
||||
private Long wxAmount;
|
||||
@TableField(exist = false)
|
||||
private Long aliAmountDiff;
|
||||
@Schema(description = "赠送积分")
|
||||
private Long givePoint;
|
||||
/**
|
||||
* 状态 0 可用 1不可用
|
||||
*/
|
||||
|
||||
@@ -83,6 +83,8 @@ public class RechargeOrder implements Serializable {
|
||||
*/
|
||||
private Boolean admin;
|
||||
|
||||
private Boolean distribution;
|
||||
|
||||
private Long adminId;
|
||||
|
||||
private String remark;
|
||||
|
||||
@@ -19,6 +19,10 @@ public class AddRechargeOrderAdminDto {
|
||||
* 调整的金额
|
||||
*/
|
||||
private Long rechargeCoin;
|
||||
/**
|
||||
* 是否参与分销
|
||||
*/
|
||||
private boolean distribution;
|
||||
private String remark;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cai.dto.admin.vo.order;
|
||||
|
||||
import com.ruoyi.cai.domain.RechargeOrder;
|
||||
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class UpdateAdminRechargeOrderDTO {
|
||||
private RechargeConsumerResp resp;
|
||||
private RechargeOrder rechargeOrder;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ public enum SystemConfigEnum {
|
||||
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
ANCHOR_TOP_MIN("30", "小火箭置顶间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||
OPEN_ALI_PAY("1", "是否开启四方支付宝支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
OPEN_SOURCE_ALI_PAY("1", "是否开启原生支付宝支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
OPEN_SOURCE_ALI_PAY("1", "是否开启原生支付宝支付(废弃)",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
OPEN_WX_PAY("1", "是否开启微信支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
ALI_PAY_FIRST("1", "支付宝支付显示是否在前面",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
OPEN_WITHDRAW("1", "是否开启提现功能",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||
|
||||
@@ -5,6 +5,8 @@ import com.ruoyi.cai.domain.Account;
|
||||
import com.ruoyi.cai.domain.ConsumeLog;
|
||||
import com.ruoyi.cai.domain.Gift;
|
||||
import com.ruoyi.cai.domain.User;
|
||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||
import com.ruoyi.cai.dto.admin.vo.order.UpdateAdminRechargeOrderDTO;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGiftReq;
|
||||
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
|
||||
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
|
||||
@@ -158,6 +160,26 @@ public class ConsumerManager {
|
||||
@Autowired
|
||||
private RankAdminManager rankAdminManager;
|
||||
|
||||
public RechargeConsumerResp rechargeOrderSuccessAdmin(AddRechargeOrderAdminDto dto){
|
||||
UpdateAdminRechargeOrderDTO result = rechargeOrderService.updateAdminRechargeOrder(dto);
|
||||
RechargeConsumerResp resp = result.getResp();
|
||||
try {
|
||||
amqpHttpProducer.sendCalculateSales(resp.getConsumeLogId()+"");
|
||||
}catch (Exception e){
|
||||
log.error("RabbitMq 发送失败, 充值分销流程流转失败!",e);
|
||||
}
|
||||
try {
|
||||
Account account = accountService.getByUserId(resp.getUserId());
|
||||
if(account != null){
|
||||
Long totalCoin = account.getCoin() + account.getIncomeCoin();
|
||||
yunxinHttpService.rechargeCoinSendMessage(resp.getUserId(), resp.getRechargeCoin(),totalCoin);
|
||||
}
|
||||
}catch (Exception e){
|
||||
log.error("充值成功通知失败!",e);
|
||||
}
|
||||
return resp;
|
||||
}
|
||||
|
||||
public RechargeConsumerResp rechargeOrderSuccess(String tradeNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum){
|
||||
RechargeConsumerResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum);
|
||||
if(resp.isSuccess()){
|
||||
|
||||
29
ruoyi-cai/src/main/java/com/ruoyi/cai/pay/V14R.java
Normal file
29
ruoyi-cai/src/main/java/com/ruoyi/cai/pay/V14R.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.ruoyi.cai.pay;
|
||||
|
||||
import com.ruoyi.cai.trdpay.dto.v14.wechatJSAPI.WxJsapiParam;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class V14R<T> extends R<T> {
|
||||
private WxJsapiParam wxJsapiParam;
|
||||
|
||||
public static <T> V14R<T> fail14(int code, String msg) {
|
||||
return restResult14(null, code, msg);
|
||||
}
|
||||
|
||||
private static <T> V14R<T> restResult14(T data, int code, String msg) {
|
||||
V14R<T> r = new V14R<>();
|
||||
r.setCode(code);
|
||||
r.setData(data);
|
||||
r.setMsg(msg);
|
||||
return r;
|
||||
}
|
||||
|
||||
public static <T> V14R<T> ok14(T data) {
|
||||
return restResult14(data, SUCCESS, "操作成功");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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