Browse Source

玫瑰

master
张彭杰 4 months ago
parent
commit
c61c07457d
6 changed files with 96 additions and 0 deletions
  1. 2
      dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java
  2. 4
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/MallServerApplicationService.java
  3. 25
      dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireRewardAmountDto.java
  4. 28
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/walletaccount/user/WalletAccountUserCommandController.java
  5. 21
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/walletaccount/user/request/UserAcquireRewardAmountDto.java
  6. 16
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/walletaccount/WalletAccountApplicationService.java

2
dating-agency-mall-constant/src/main/java/com/qniao/dam/domian/aggregate/walletaccount/constant/TradeTypeEnum.java

@ -30,6 +30,8 @@ public enum TradeTypeEnum {
MATCHMAKER_NOVICE_TASK_REWARD(110, "红娘新手任务奖励"),
CHAT_REWARD(111, "聊天收益"),
PLATFORM_SERVICE_FEE(201, "平台服务费"),
WITHDRAW(202, "提现");

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

@ -50,4 +50,8 @@ public interface MallServerApplicationService {
@PostMapping("/user/consume/virtual-account")
@IgnoreResponseAdvice
ConsumeVirtualAccountVo userConsumeVirtualAccountBySdk(@RequestBody UserConsumeVirtualAccountDto dto);
@PostMapping("/user/acquire/reward-amount")
@IgnoreResponseAdvice
void userAcquireRewardAmountBySdk(@RequestBody UserAcquireRewardAmountDto dto);
}

25
dating-agency-mall-sdk/src/main/java/com/qniao/dam/application/request/UserAcquireRewardAmountDto.java

@ -0,0 +1,25 @@
package com.qniao.dam.application.request;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserAcquireRewardAmountDto {
private Long userId;
private TradeTypeEnum tradeType;
private BigDecimal amount;
private Long associateId;
private String remark;
}

28
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/walletaccount/user/WalletAccountUserCommandController.java

@ -0,0 +1,28 @@
package com.qniao.dam.api.command.walletaccount.user;
import com.qniao.dam.api.command.walletaccount.user.request.UserAcquireRewardAmountDto;
import com.qniao.dam.application.handler.walletaccount.WalletAccountApplicationService;
import com.qniao.framework.annotation.IgnoreResponseAdvice;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("user")
@Api(tags = "钱包")
public class WalletAccountUserCommandController {
@Resource
private WalletAccountApplicationService walletAccountApplicationService;
@PostMapping("/user/acquire/reward-amount")
@IgnoreResponseAdvice
public void userAcquireRewardAmountBySdk(@RequestBody UserAcquireRewardAmountDto dto) {
walletAccountApplicationService.acquireRewardAmount(dto);
}
}

21
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/walletaccount/user/request/UserAcquireRewardAmountDto.java

@ -0,0 +1,21 @@
package com.qniao.dam.api.command.walletaccount.user.request;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class UserAcquireRewardAmountDto {
private Long userId;
private TradeTypeEnum tradeType;
private BigDecimal amount;
private Long associateId;
private String remark;
}

16
dating-agency-mall-server/src/main/java/com/qniao/dam/application/handler/walletaccount/WalletAccountApplicationService.java

@ -1,10 +1,13 @@
package com.qniao.dam.application.handler.walletaccount;
import com.qniao.dam.api.command.walletaccount.user.request.UserAcquireRewardAmountDto;
import com.qniao.dam.domain.aggregate.walletaccount.WalletAccountAggregate;
import com.qniao.dam.domain.aggregate.walletaccount.entity.WalletAccount;
import com.qniao.dam.domain.aggregate.walletaccount.valueobj.WalletAccountRecord;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.walletaccount.constant.TradeTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.WalletAccountDao;
import com.qniao.dam.query.walletaccount.WalletAccountQueryService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -18,6 +21,8 @@ public class WalletAccountApplicationService {
private WalletAccountDao walletAccountDao;
@Resource
private WalletAccountAggregate walletAccountAggregate;
@Resource
private WalletAccountQueryService walletAccountQueryService;
public void confirmWithdraw(Long walletAccountId, BigDecimal withdrawAmount, Long associateId) {
WalletAccount walletAccount = walletAccountDao.selectById(walletAccountId);
@ -37,4 +42,15 @@ public class WalletAccountApplicationService {
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
walletAccountAggregate.save(walletAccount);
}
public void acquireRewardAmount(UserAcquireRewardAmountDto dto) {
WalletAccount walletAccount = walletAccountQueryService.queryByType(dto.getUserId(), IdentityTypeEnum.INDIVIDUAL);
BigDecimal originalBalance = walletAccount.getTotalBalance();
walletAccount.setAvailableBalance(walletAccount.getAvailableBalance().add(dto.getAmount()));
walletAccount.setTotalBalance(walletAccount.getAvailableBalance().add(walletAccount.getFrozenBalance()));
WalletAccountRecord record = WalletAccountRecord.build(TradeTypeEnum.CHAT_REWARD, dto.getAmount(), true, originalBalance, walletAccount.getTotalBalance());
record.setRemark(dto.getRemark());
walletAccount.setRecordList(Collections.singletonList(record));
walletAccountAggregate.save(walletAccount);
}
}
Loading…
Cancel
Save