Browse Source

玫瑰

master
张彭杰 2 months ago
parent
commit
a58444706b
7 changed files with 104 additions and 4 deletions
  1. 4
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java
  2. 15
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/FreezeOneOnOneRtcConsumeBySdkDto.java
  3. 18
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/FreezeOneOnOneRtcConsumeBySdkVo.java
  4. 12
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java
  5. 13
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/FreezeOneOnOneRtcConsumeDto.java
  6. 18
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/FreezeOneOnOneRtcConsumeVo.java
  7. 28
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java

4
dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java

@ -65,4 +65,8 @@ public interface MallServerApplicationService {
@IgnoreResponseAdvice @IgnoreResponseAdvice
CheckOneOnOneRtcConsumeSdkVo checkOneOnOneRtcConsumeBySdk(@RequestBody CheckOneOnOneRtcConsumeSdkDto dto); CheckOneOnOneRtcConsumeSdkVo checkOneOnOneRtcConsumeBySdk(@RequestBody CheckOneOnOneRtcConsumeSdkDto dto);
@PostMapping("/user/freeze/one-on-one-rtc-consume/by/sdk")
@IgnoreResponseAdvice
FreezeOneOnOneRtcConsumeBySdkVo freezeOneOnOneRtcConsumeBySdk(@RequestBody FreezeOneOnOneRtcConsumeBySdkDto dto);
} }

15
dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/FreezeOneOnOneRtcConsumeBySdkDto.java

@ -0,0 +1,15 @@
package com.qniao.dam.application.request;
import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class FreezeOneOnOneRtcConsumeBySdkDto {
private Long userId;
private RtcChannelTypeEnum rtcChannelType;
}

18
dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/response/FreezeOneOnOneRtcConsumeBySdkVo.java

@ -0,0 +1,18 @@
package com.qniao.dam.application.response;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class FreezeOneOnOneRtcConsumeBySdkVo {
private Boolean flag;
private Integer freezeBalance;
private Integer availableBalance;
private BigDecimal unitSellingPrice;
}

12
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/VirtualAccountUserCommandController.java

@ -1,11 +1,9 @@
package com.qniao.dam.api.command.virtualaccount.user; package com.qniao.dam.api.command.virtualaccount.user;
import com.qniao.dam.api.command.virtualaccount.user.request.CheckOneOnOneRtcConsumeDto;
import com.qniao.dam.api.command.virtualaccount.user.request.UserConsumeVirtualAccountDto;
import com.qniao.dam.api.command.virtualaccount.user.request.UserCostChannelGiftDto;
import com.qniao.dam.api.command.virtualaccount.user.request.UserCostIMGiftDto;
import com.qniao.dam.api.command.virtualaccount.user.request.*;
import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo; import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo;
import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo; import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo;
import com.qniao.dam.api.command.virtualaccount.user.response.FreezeOneOnOneRtcConsumeVo;
import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo; import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo;
import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService; import com.qniao.dam.application.service.virtualaccount.VirtualAccountApplicationService;
import com.qniao.framework.annotation.IgnoreResponseAdvice; import com.qniao.framework.annotation.IgnoreResponseAdvice;
@ -49,4 +47,10 @@ public class VirtualAccountUserCommandController {
return virtualAccountApplicationService.checkOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType()); return virtualAccountApplicationService.checkOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType());
} }
@PostMapping("/freeze/one-on-one-rtc-consume/by/sdk")
@IgnoreResponseAdvice
public FreezeOneOnOneRtcConsumeVo freezeOneOnOneRtcConsumeBySdk(@RequestBody FreezeOneOnOneRtcConsumeDto dto) {
return virtualAccountApplicationService.freezeOneOnOneRtcConsume(dto.getUserId(), dto.getRtcChannelType());
}
} }

13
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/request/FreezeOneOnOneRtcConsumeDto.java

@ -0,0 +1,13 @@
package com.qniao.dam.api.command.virtualaccount.user.request;
import com.qniao.daca.domian.aggregate.rtcchannel.constant.RtcChannelTypeEnum;
import lombok.Data;
@Data
public class FreezeOneOnOneRtcConsumeDto {
private Long userId;
private RtcChannelTypeEnum rtcChannelType;
}

18
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/virtualaccount/user/response/FreezeOneOnOneRtcConsumeVo.java

@ -0,0 +1,18 @@
package com.qniao.dam.api.command.virtualaccount.user.response;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class FreezeOneOnOneRtcConsumeVo {
private Boolean flag = false;
private Integer freezeBalance;
private Integer availableBalance;
private BigDecimal unitSellingPrice;
}

28
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/virtualaccount/VirtualAccountApplicationService.java

@ -6,6 +6,7 @@ import com.qniao.dam.api.command.virtualaccount.user.request.UserCostChannelGift
import com.qniao.dam.api.command.virtualaccount.user.request.UserCostIMGiftDto; import com.qniao.dam.api.command.virtualaccount.user.request.UserCostIMGiftDto;
import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo; import com.qniao.dam.api.command.virtualaccount.user.response.CheckOneOnOneRtcConsumeVo;
import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo; import com.qniao.dam.api.command.virtualaccount.user.response.CostGiftVo;
import com.qniao.dam.api.command.virtualaccount.user.response.FreezeOneOnOneRtcConsumeVo;
import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo; import com.qniao.dam.api.command.virtualaccount.user.response.UserConsumeVirtualAccountVo;
import com.qniao.dam.api.query.product.user.response.UserGetProductByCategoryVo; import com.qniao.dam.api.query.product.user.response.UserGetProductByCategoryVo;
import com.qniao.dam.domain.aggregate.order.entity.Order; import com.qniao.dam.domain.aggregate.order.entity.Order;
@ -368,4 +369,31 @@ public class VirtualAccountApplicationService extends BaseApplicationService {
} }
return vo; return vo;
} }
public FreezeOneOnOneRtcConsumeVo freezeOneOnOneRtcConsume(Long userId,
RtcChannelTypeEnum rtcChannelType) {
FreezeOneOnOneRtcConsumeVo vo = new FreezeOneOnOneRtcConsumeVo();
UserGetProductByCategoryVo productSpec = null;
if (RtcChannelTypeEnum.ONE_ON_ONE_VOICE.equals(rtcChannelType)) {
//一对一语音
productSpec = productQueryService.getProductByCategory(ProductSubCategoryEnum.CHAT_VOICE_FEE.getValue());
} else if (RtcChannelTypeEnum.ONE_ON_ONE_VIDEO.equals(rtcChannelType)) {
//一对一视频
productSpec = productQueryService.getProductByCategory(ProductSubCategoryEnum.CHAT_VIDEO_FEE.getValue());
}
VirtualAccount virtualAccount = virtualAccountQueryService.queryBy(userId);
Integer tradeBalance = productSpec.getUnitSellingPrice().intValue();
if (virtualAccount != null && virtualAccount.getBalance() >= tradeBalance) {
Integer originalBalance = virtualAccount.getBalance();
virtualAccount.setTotalBalance(virtualAccount.getTotalBalance() - tradeBalance);
virtualAccount.setBalance(originalBalance - tradeBalance);
virtualAccount.setFrozenBalance(virtualAccount.getFrozenBalance() + tradeBalance);
virtualAccountAggregate.edit(virtualAccount);
vo.setFlag(true);
vo.setFreezeBalance(tradeBalance);
vo.setAvailableBalance(virtualAccount.getBalance());
vo.setUnitSellingPrice(productSpec.getUnitSellingPrice());
}
return vo;
}
} }
Loading…
Cancel
Save