nnnn
This commit is contained in:
6
doc/20251128.sql
Normal file
6
doc/20251128.sql
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
alter table cai_account
|
||||||
|
add column `points` bigint(20) default 0 not null comment '积分';
|
||||||
|
ALTER TABLE cai_goods
|
||||||
|
ADD COLUMN `give_point` bigint(20) default 0 not null comment '充值赠送积分';
|
||||||
|
ALTER TABLE cai_recharge_order
|
||||||
|
ADD COLUMN `distribution` tinyint default 0 not null comment '是否參與分銷';
|
||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.ruoyi.cai.domain.Account;
|
import com.ruoyi.cai.domain.Account;
|
||||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
||||||
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.AccountAdminVo;
|
||||||
|
import com.ruoyi.cai.manager.ConsumerManager;
|
||||||
import com.ruoyi.cai.service.AccountService;
|
import com.ruoyi.cai.service.AccountService;
|
||||||
import com.ruoyi.cai.service.RechargeOrderService;
|
import com.ruoyi.cai.service.RechargeOrderService;
|
||||||
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.annotation.Log;
|
||||||
@@ -16,6 +17,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
|
|||||||
import com.ruoyi.common.core.validate.AddGroup;
|
import com.ruoyi.common.core.validate.AddGroup;
|
||||||
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.BusinessType;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@@ -58,12 +60,15 @@ public class AccountController extends BaseController {
|
|||||||
return R.ok(accountService.getById(id));
|
return R.ok(accountService.getById(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ConsumerManager consumerManager;
|
||||||
|
|
||||||
@SaCheckPermission("cai:account:add")
|
@SaCheckPermission("cai:account:add")
|
||||||
@Log(title = "用户账户调账", businessType = BusinessType.INSERT)
|
@Log(title = "用户账户调账", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/updateCoin")
|
@PostMapping("/updateCoin")
|
||||||
public R<Void> add(@RequestBody AddRechargeOrderAdminDto bo) {
|
public R<Void> add(@RequestBody AddRechargeOrderAdminDto bo) {
|
||||||
rechargeOrderService.updateAdminRechargeOrder(bo);
|
consumerManager.rechargeOrderSuccessAdmin(bo);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,22 +144,22 @@ public class PayController {
|
|||||||
@Operation(summary = "微信支付efps")
|
@Operation(summary = "微信支付efps")
|
||||||
@Log(title = "微信支付efps", businessType = BusinessType.OTHER, isSaveDb = true)
|
@Log(title = "微信支付efps", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public R<WechatJSAPIResponse> efpsWx(HttpServletRequest request, @RequestBody V14PayDTO payDTO){
|
public V14R<WechatJSAPIResponse> efpsWx(HttpServletRequest request, @RequestBody V14PayDTO payDTO){
|
||||||
String efpsToken = request.getHeader("Efps-Token");
|
String efpsToken = request.getHeader("Efps-Token");
|
||||||
if(StringUtils.isBlank(efpsToken)){
|
if(StringUtils.isBlank(efpsToken)){
|
||||||
return R.fail(600,"支付失败,鉴权失败或者未找到订单");
|
return V14R.fail14(600,"支付失败,鉴权失败或者未找到订单");
|
||||||
}
|
}
|
||||||
V14Token v14Token = v14Manager.checkToken(efpsToken);
|
V14Token v14Token = v14Manager.checkToken(efpsToken);
|
||||||
if(v14Token == null){
|
if(v14Token == null){
|
||||||
return R.fail(600,"支付失败,鉴权失败或者未找到订单");
|
return V14R.fail14(600,"支付失败,鉴权失败或者未找到订单");
|
||||||
}
|
}
|
||||||
PayTrdConfig payTrdConfig = payTrdConfigService.getById(v14Token.getPayTrdConfigId());
|
PayTrdConfig payTrdConfig = payTrdConfigService.getById(v14Token.getPayTrdConfigId());
|
||||||
if(payTrdConfig == null){
|
if(payTrdConfig == null){
|
||||||
return R.fail(600,"支付失败,未找到支付通道信息");
|
return V14R.fail14(600,"支付失败,未找到支付通道信息");
|
||||||
}
|
}
|
||||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(v14Token.getOrderNo(),true);
|
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(v14Token.getOrderNo(),true);
|
||||||
if(payOrderInfo == null){
|
if(payOrderInfo == null){
|
||||||
return R.fail(600,"支付失败,未找到订单");
|
return V14R.fail14(600,"支付失败,未找到订单");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
V14ExtendMapDTO extendMap = JSON.parseObject(payTrdConfig.getExtendData(), V14ExtendMapDTO.class);
|
V14ExtendMapDTO extendMap = JSON.parseObject(payTrdConfig.getExtendData(), V14ExtendMapDTO.class);
|
||||||
@@ -167,10 +167,12 @@ public class PayController {
|
|||||||
payOrderInfo.setOpenId(openId);
|
payOrderInfo.setOpenId(openId);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("获取openid失败",e);
|
log.error("获取openid失败",e);
|
||||||
return R.fail(600,"微信登录失败");
|
return V14R.fail14(600,"微信登录失败");
|
||||||
}
|
}
|
||||||
WechatJSAPIResponse pay = v14Manager.pay(payOrderInfo, payTrdConfig);
|
WechatJSAPIResponse pay = v14Manager.pay(payOrderInfo, payTrdConfig);
|
||||||
return R.ok(pay);
|
V14R<WechatJSAPIResponse> result = V14R.ok14(pay);
|
||||||
|
result.setWxJsapiParam(pay.getWxJsapiParam());
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,10 @@ public class Account implements Serializable {
|
|||||||
* 收益的彩币数量
|
* 收益的彩币数量
|
||||||
*/
|
*/
|
||||||
private Long incomeCoin;
|
private Long incomeCoin;
|
||||||
|
/**
|
||||||
|
* 积分
|
||||||
|
*/
|
||||||
|
private Long points;
|
||||||
/**
|
/**
|
||||||
* 充值总额
|
* 充值总额
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -47,6 +47,8 @@ public class Goods implements Serializable {
|
|||||||
private Long wxAmount;
|
private Long wxAmount;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Long aliAmountDiff;
|
private Long aliAmountDiff;
|
||||||
|
@Schema(description = "赠送积分")
|
||||||
|
private Long givePoint;
|
||||||
/**
|
/**
|
||||||
* 状态 0 可用 1不可用
|
* 状态 0 可用 1不可用
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ public class RechargeOrder implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Boolean admin;
|
private Boolean admin;
|
||||||
|
|
||||||
|
private Boolean distribution;
|
||||||
|
|
||||||
private Long adminId;
|
private Long adminId;
|
||||||
|
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ public class AddRechargeOrderAdminDto {
|
|||||||
* 调整的金额
|
* 调整的金额
|
||||||
*/
|
*/
|
||||||
private Long rechargeCoin;
|
private Long rechargeCoin;
|
||||||
|
/**
|
||||||
|
* 是否参与分销
|
||||||
|
*/
|
||||||
|
private boolean distribution;
|
||||||
private String remark;
|
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()),
|
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||||
ANCHOR_TOP_MIN("30", "小火箭置顶间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
ANCHOR_TOP_MIN("30", "小火箭置顶间隔时间(分钟)",SystemConfigGroupEnum.BUSINESS, new NumberSystemConfigCheck()),
|
||||||
OPEN_ALI_PAY("1", "是否开启四方支付宝支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
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()),
|
OPEN_WX_PAY("1", "是否开启微信支付",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||||
ALI_PAY_FIRST("1", "支付宝支付显示是否在前面",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
ALI_PAY_FIRST("1", "支付宝支付显示是否在前面",SystemConfigGroupEnum.BUSINESS,new BooleanSystemConfigCheck()),
|
||||||
OPEN_WITHDRAW("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.ConsumeLog;
|
||||||
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.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.GiveGiftReq;
|
||||||
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
|
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
|
||||||
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
|
import com.ruoyi.cai.dto.commom.consumer.GiftConsumerResp;
|
||||||
@@ -158,6 +160,26 @@ public class ConsumerManager {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RankAdminManager rankAdminManager;
|
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){
|
public RechargeConsumerResp rechargeOrderSuccess(String tradeNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum){
|
||||||
RechargeConsumerResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum);
|
RechargeConsumerResp resp = rechargeOrderService.orderSuccess(tradeNo,params,appId,payTypeEnum);
|
||||||
if(resp.isSuccess()){
|
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 recharge(ConsumeLog consumeLog);
|
||||||
|
|
||||||
|
void rechargeAdminIgnoreAccount(ConsumeLog consumeLog);
|
||||||
|
|
||||||
Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo);
|
Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo);
|
||||||
|
|
||||||
boolean distribution(ConsumeLog consumeLog, Long userId, Long amount, AccountChangeCodeEnum accountChangeEnum);
|
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.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.ruoyi.cai.domain.RechargeOrder;
|
import com.ruoyi.cai.domain.RechargeOrder;
|
||||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
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.app.query.order.AddRechargeOrderDto;
|
||||||
import com.ruoyi.cai.dto.ConsumeResp;
|
import com.ruoyi.cai.dto.ConsumeResp;
|
||||||
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
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);
|
RechargeConsumerResp orderSuccess(String orderNo, Map<String,String> params, String appId, PayTypeEnum payTypeEnum);
|
||||||
|
|
||||||
RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto);
|
UpdateAdminRechargeOrderDTO updateAdminRechargeOrder(AddRechargeOrderAdminDto dto);
|
||||||
|
|
||||||
void setFastPay(String orderNo);
|
void setFastPay(String orderNo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -232,6 +232,22 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
|||||||
consumeLogService.save(consumeLog);
|
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
|
@Override
|
||||||
public Page<AccountAdminVo> pageAdmin(PageQuery pageQuery, AccountAdminVo bo) {
|
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.ruoyi.cai.domain.*;
|
import com.ruoyi.cai.domain.*;
|
||||||
import com.ruoyi.cai.dto.AddRechargeOrderAdminDto;
|
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.app.query.order.AddRechargeOrderDto;
|
||||||
import com.ruoyi.cai.dto.ConsumeResp;
|
|
||||||
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.RechargeOrderAdminVo;
|
||||||
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
||||||
import com.ruoyi.cai.enums.ConsumeLogType;
|
import com.ruoyi.cai.enums.ConsumeLogType;
|
||||||
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
import com.ruoyi.cai.enums.account.AccountChangeCodeEnum;
|
||||||
import com.ruoyi.cai.enums.account.AccountTypeEnum;
|
import com.ruoyi.cai.enums.account.AccountTypeEnum;
|
||||||
import com.ruoyi.cai.enums.version.VersionPlatformEnum;
|
|
||||||
import com.ruoyi.cai.manager.IdManager;
|
import com.ruoyi.cai.manager.IdManager;
|
||||||
import com.ruoyi.cai.mapper.AccountMapper;
|
import com.ruoyi.cai.mapper.AccountMapper;
|
||||||
import com.ruoyi.cai.mapper.RechargeOrderMapper;
|
import com.ruoyi.cai.mapper.RechargeOrderMapper;
|
||||||
@@ -142,7 +141,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public RechargeOrder updateAdminRechargeOrder(AddRechargeOrderAdminDto dto){
|
public UpdateAdminRechargeOrderDTO updateAdminRechargeOrder(AddRechargeOrderAdminDto dto){
|
||||||
User user = userService.getByUserCode(dto.getUsercode());
|
User user = userService.getByUserCode(dto.getUsercode());
|
||||||
if(user == null){
|
if(user == null){
|
||||||
throw new ServiceException("用户不存在");
|
throw new ServiceException("用户不存在");
|
||||||
@@ -151,6 +150,14 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
|||||||
if(accountTypeEnum == null){
|
if(accountTypeEnum == null){
|
||||||
throw new ServiceException("参数错误");
|
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 userId = user.getId();
|
||||||
Long traceId = IdManager.nextId();
|
Long traceId = IdManager.nextId();
|
||||||
RechargeOrder order = new RechargeOrder();
|
RechargeOrder order = new RechargeOrder();
|
||||||
@@ -167,7 +174,16 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
|||||||
order.setOperateIp(ServletUtils.getClientIP());
|
order.setOperateIp(ServletUtils.getClientIP());
|
||||||
order.setAdmin(true);
|
order.setAdmin(true);
|
||||||
order.setAdminId(LoginHelper.getUserId());
|
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);
|
order.setTraceId(traceId);
|
||||||
this.save(order);
|
this.save(order);
|
||||||
Account account = accountService.getByUserId(userId);
|
Account account = accountService.getByUserId(userId);
|
||||||
@@ -200,8 +216,30 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
|
|||||||
accountChangeLogService.saveLogAdmin(user.getId(),user.getUsercode(), AccountChangeCodeEnum.SYSTEM_INCOME_COIN_DECR,dto.getRechargeCoin(),traceId);
|
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
|
@Override
|
||||||
public void setFastPay(String orderNo) {
|
public void setFastPay(String orderNo) {
|
||||||
|
|||||||
Reference in New Issue
Block a user