Browse Source

悬赏招亲

master
张彭杰 1 year ago
parent
commit
2001b2ad1f
4 changed files with 33 additions and 7 deletions
  1. 11
      dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/withdrawaudit/entity/WithdrawAudit.java
  2. 16
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/withdrawaudit/user/WithdrawAuditUserCommandController.java
  3. 8
      dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/withdrawaudit/user/response/UserPageWithdrawAuditVo.java
  4. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/withdrawaudit/WithdrawAuditApplicationService.java

11
dating-agency-mall-entity/src/main/java/com/qniao/dam/domain/aggregate/withdrawaudit/entity/WithdrawAudit.java

@ -4,6 +4,7 @@ package com.qniao.dam.domain.aggregate.withdrawaudit.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.withdrawaudit.constant.WithdrawAuditStatus;
import com.qniao.dam.domian.aggregate.withdrawaudit.constant.WithdrawTypeEnum;
import com.qniao.domain.Entity;
@ -19,11 +20,17 @@ import java.util.Map;
@TableName("da_withdraw_audit")
public class WithdrawAudit extends Entity<WithdrawAudit> {
@ApiModelProperty("钱包账号标识")
private Long walletAccountId;
@ApiModelProperty("用户唯一标识")
private Long walletAccountUserId;
@ApiModelProperty("钱包账号标识")
private Long walletAccountId;
@ApiModelProperty("组织唯一标识")
private Long walletAccountOrgId;
@ApiModelProperty("身份类型(个人、组织)")
private IdentityTypeEnum identityType;
@ApiModelProperty("提现金额")
private BigDecimal withdrawAmount;

16
dating-agency-mall-server/src/main/java/com/qniao/dam/api/command/withdrawaudit/user/WithdrawAuditUserCommandController.java

@ -6,6 +6,8 @@ import com.qniao.dam.api.command.withdrawaudit.user.request.UserApplyWalletAccou
import com.qniao.dam.api.command.withdrawaudit.user.request.UserAuditWithdrawAuditDto;
import com.qniao.dam.application.service.withdrawaudit.WithdrawAuditApplicationService;
import com.qniao.dam.domain.aggregate.withdrawaudit.entity.WithdrawAudit;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dau.infrastructure.constant.RequestHeaderFields;
import com.qniao.framework.utils.ServletUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import java.util.Objects;
@RestController
@RequestMapping("user")
@ -26,12 +29,19 @@ public class WithdrawAuditUserCommandController {
@ApiOperation("用户发起提现申请")
@PostMapping("apply/wallet-account/withdraw")
public void userApplyWalletAccountWithdraw(@RequestBody @Valid UserApplyWalletAccountWithdrawDto dto,
@RequestParam("userId") Long userId) {
@RequestParam("userId") Long userId,
@RequestHeader(name = RequestHeaderFields.FIELD_ORGANIZATION_ID, required = false) Long orgId) {
Long appId = Long.valueOf(ServletUtils.getAppId());
WithdrawAudit withdrawAudit = dto.trans2Domain();
withdrawAudit.setWalletAccountUserId(userId);
if (Objects.nonNull(orgId)) {
withdrawAudit.setIdentityType(IdentityTypeEnum.ORGANIZATION);
withdrawAudit.setWalletAccountOrgId(orgId);
} else {
withdrawAudit.setIdentityType(IdentityTypeEnum.INDIVIDUAL);
withdrawAudit.setWalletAccountUserId(userId);
}
List<ThirdPartyField> fieldList = ThirdPartyFieldAssembler.from(dto.getThirdPartyFields());
withdrawAuditApplicationService.applyWithdraw(withdrawAudit,fieldList,appId);
withdrawAuditApplicationService.applyWithdraw(withdrawAudit, fieldList, appId);
}
@ApiOperation("审核提现申请")

8
dating-agency-mall-server/src/main/java/com/qniao/dam/api/query/withdrawaudit/user/response/UserPageWithdrawAuditVo.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qniao.dam.domian.aggregate.walletaccount.constant.IdentityTypeEnum;
import com.qniao.dam.domian.aggregate.withdrawaudit.constant.WithdrawAuditStatus;
import com.qniao.dam.domian.aggregate.withdrawaudit.constant.WithdrawTypeEnum;
import io.swagger.annotations.ApiModelProperty;
@ -25,6 +26,13 @@ public class UserPageWithdrawAuditVo {
@JsonSerialize(using = ToStringSerializer.class)
private Long walletAccountUserId;
@ApiModelProperty("组织唯一标识")
@JsonSerialize(using = ToStringSerializer.class)
private Long walletAccountOrgId;
@ApiModelProperty("身份类型(个人、组织)")
private IdentityTypeEnum identityType;
@ApiModelProperty("钱包用户名称")
private String walletAccountUserName;

5
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/withdrawaudit/WithdrawAuditApplicationService.java

@ -38,8 +38,9 @@ public class WithdrawAuditApplicationService extends BaseApplicationService {
public void applyWithdraw(WithdrawAudit withdrawAudit, List<ThirdPartyField> fieldList, Long appId) {
synchronized (withdrawAudit.getWalletAccountUserId().toString().intern()) {
WalletAccount walletAccount = walletAccountQueryService.queryByUserId(withdrawAudit.getWalletAccountUserId());
Long identityId = Objects.nonNull(withdrawAudit.getWalletAccountOrgId()) ? withdrawAudit.getWalletAccountOrgId() : withdrawAudit.getWalletAccountUserId();
synchronized (identityId.toString().intern()) {
WalletAccount walletAccount = walletAccountQueryService.queryByType(identityId, withdrawAudit.getIdentityType());
if (Objects.isNull(walletAccount) || withdrawAudit.getWithdrawAmount().compareTo(walletAccount.getAvailableBalance()) > 0) {
throw new BizException("超出可提现金额");
}

Loading…
Cancel
Save