提交 3ff63f73 authored 作者: huyufan's avatar huyufan

供一部接口相关开发

上级 32a101ff
package com.clx.performance.param.open;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(description = "货主绑卡")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOwnerBindCardParam {
@ApiModelProperty(value = "货主编号")
private Long userNo;
@ApiModelProperty(value = "货主姓名")
private String name;
@ApiModelProperty(value = "所属银行")
private String ownerAccountBank;
@ApiModelProperty(value = "开户行")
private String ownerOpenBank;
@ApiModelProperty(value = "户名")
private String ownerAccountName;
@ApiModelProperty(value = "银行账户")
private String ownerBankAccount;
}
package com.clx.performance.param.open;
import com.msl.common.convertor.type.MoneyInConvert;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@ApiModel(description = "货主提现")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOwnerCaseOutParam {
@ApiModelProperty(value = "货主用户编号", example = "123")
private Long ownerUserNo;
@ApiModelProperty(value = "提现金额(元)", example = "1.23")
@MoneyInConvert
private BigDecimal caseOutBalance;
@ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1")
private Integer accountType;
@ApiModelProperty(value = "提现银行", example = "浙江银行")
private String caseOutBank;
@ApiModelProperty(value = "提现银行卡号", example = "62213545878787")
private String caseOutBankNumber;
}
\ No newline at end of file
package com.clx.performance.param.open;
import com.msl.common.convertor.type.MoneyInConvert;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal;
@ApiModel(description = "货主充值")
@Getter
@Setter
@ToString
@NoArgsConstructor
public class OpenOwnerTopUpParam {
@ApiModelProperty(value = "货主用户编号", example = "123")
private Long ownerUserNo;
@ApiModelProperty(value = "充值金额(元)", example = "1.23")
@MoneyInConvert
private BigDecimal topUpBalance;
@ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1")
private Integer accountType;
@ApiModelProperty(value = "打款银行", example = "浙江银行")
private String drawingBank;
@ApiModelProperty(value = "打款银行卡号", example = "62213545878787")
private String drawingBankNumber;
@ApiModelProperty(value = "打款凭证", example = "/a.png")
private String drawingProof;
}
\ No newline at end of file
package com.clx.performance.param.pc;
import com.msl.common.convertor.type.MoneyInConvert;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -22,7 +23,7 @@ public class OwnerCaseOutParam {
private Long ownerUserNo;
@ApiModelProperty(value = "提现金额(元)", example = "1.23")
@MoneyOutConvert
@MoneyInConvert
private BigDecimal caseOutBalance;
@ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1")
......
package com.clx.performance.param.pc;
import com.msl.common.convertor.type.MoneyInConvert;
import com.msl.common.convertor.type.MoneyOutConvert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -22,7 +23,7 @@ public class OwnerTopUpParam {
private Long ownerUserNo;
@ApiModelProperty(value = "充值金额(元)", example = "1.23")
@MoneyOutConvert
@MoneyInConvert
private BigDecimal topUpBalance;
@ApiModelProperty(value = "账户类型: 1:保证金 2:预付运费", example = "1")
......
package com.clx.performance.controller.open;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.OwnerTransferInfo;
import com.clx.performance.param.open.OpenOwnerBindCardParam;
import com.clx.performance.param.open.OpenOwnerCaseOutParam;
import com.clx.performance.param.open.OpenOwnerTopUpParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.owner.CreteAccountParam;
import com.clx.performance.param.pc.owner.FrozenAccountParam;
import com.clx.performance.service.*;
import com.clx.performance.vo.pc.*;
import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.util.Map;
@Slf4j
@RestController
@RequestMapping("/open/owner")
@Validated
@AllArgsConstructor
@Api(tags = "PC-货主资金管理")
public class OpenOwnerAccountController {
private final OwnerAccountService ownerAccountService;
@ApiOperation(value = "账户充值", notes = "<br>By:胡宇帆")
@PostMapping("/accountTopUp")
@UnitCovert(param = false)
public Result<Long> openAccountTopUp(@RequestBody OpenOwnerTopUpParam param) {
Long id = ownerAccountService.openAccountTopUp(param);
return Result.ok(id);
}
@ApiOperation(value = "账户提现", notes = "<br>By:胡宇帆")
@PostMapping("/accountCaseOut")
@UnitCovert(param = false)
public Result<Long> accountCaseOut(@RequestBody OpenOwnerCaseOutParam param) {
Long id = ownerAccountService.openAccountCaseOut(param);
return Result.ok(id);
}
@ApiOperation(value = "获取货主信息绑卡信息", notes = "<br>By:胡宇帆")
@GetMapping("/getOwnerBindCard")
public Result<OwnerBindCardVO> getOwnerBindCard(@RequestParam Long userNo) {
return Result.ok(ownerAccountService.getOwnerBindCard(userNo));
}
@ApiOperation(value = "绑定货主银行卡")
@PostMapping({"/bindOwnerBindCard"})
Result<Object> openBindOwnerBindCard(@RequestBody OpenOwnerBindCardParam param) {
ownerAccountService.openBindOwnerBindCard(param);
return Result.ok();
}
@ApiOperation(value = "解绑货主银行卡")
@PostMapping({"/unBindOwnerBindCard"})
Result<Object> unBindOwnerBindCard(@RequestBody OpenOwnerBindCardParam param) {
ownerAccountService.openUnBindOwnerBindCard(param);
return Result.ok();
}
}
......@@ -2,6 +2,9 @@ package com.clx.performance.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.OwnerTransferInfo;
import com.clx.performance.param.open.OpenOwnerBindCardParam;
import com.clx.performance.param.open.OpenOwnerCaseOutParam;
import com.clx.performance.param.open.OpenOwnerTopUpParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.owner.CreteAccountParam;
import com.clx.performance.param.pc.owner.FrozenAccountParam;
......@@ -25,8 +28,12 @@ public interface OwnerAccountService {
Long accountTopUp(OwnerTopUpParam param);
Long openAccountTopUp(OpenOwnerTopUpParam param);
Long accountCaseOut(OwnerCaseOutParam param);
Long openAccountCaseOut(OpenOwnerCaseOutParam param);
/**
* 充值审批
*/
......@@ -64,8 +71,14 @@ public interface OwnerAccountService {
void bindOwnerBindCard(OwnerBindCardParam param);
void openBindOwnerBindCard(OpenOwnerBindCardParam param);
void unBindOwnerBindCard(OwnerBindCardParam param);
void openUnBindOwnerBindCard(OpenOwnerBindCardParam param);
void ownerAccountFrozen(FrozenAccountParam param);
void createAccount(CreteAccountParam param);
......
......@@ -9,6 +9,9 @@ import com.clx.performance.enums.IdTypeEnum;
import com.clx.performance.enums.OwnerAccountEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.*;
import com.clx.performance.param.open.OpenOwnerBindCardParam;
import com.clx.performance.param.open.OpenOwnerCaseOutParam;
import com.clx.performance.param.open.OpenOwnerTopUpParam;
import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.owner.CreteAccountParam;
import com.clx.performance.param.pc.owner.FrozenAccountParam;
......@@ -110,6 +113,23 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
return entity.getTopUpNo();
}
public Long openAccountTopUp(OpenOwnerTopUpParam param) {
OwnerTopUp entity = new OwnerTopUp();
entity.setAccountType(param.getAccountType());
entity.setOwnerUserNo(param.getOwnerUserNo());
entity.setTopUpBalance(param.getTopUpBalance());
entity.setStatus(OwnerAccountEnum.TopUpStatus.PENDING.getCode());
entity.setDrawingBank(param.getDrawingBank());
entity.setDrawingBankNumber(param.getDrawingBankNumber());
entity.setDrawingProof(param.getDrawingProof());
//充值编号
entity.setTopUpNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.TOP_UP.getCode()));
ownerTopUpDao.saveEntity(entity);
return entity.getTopUpNo();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long accountCaseOut(OwnerCaseOutParam param) {
......@@ -156,6 +176,52 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
return entity.getCaseOutNo();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Long openAccountCaseOut(OpenOwnerCaseOutParam param) {
BigDecimal caseOutBalance = param.getCaseOutBalance();
LocalDateTime now = LocalDateTime.now();
while (true) {
//冻结账户可用金额
OwnerAccount account = ownerAccountDao.getAccountByOwnerUserNoAndAccountType(param.getOwnerUserNo(), param.getAccountType());
OwnerAccount update = new OwnerAccount();
update.setUsableBalance(caseOutBalance.negate());
update.setFrozenBalance(caseOutBalance);
update.setModifiedTime(account.getModifiedTime());
update.setId(account.getId());
int flag = ownerAccountDao.updateAccount(update, now);
if (flag > 0) {
break;
}
}
//提现记录
OwnerCaseOut entity = new OwnerCaseOut();
entity.setAccountType(param.getAccountType());
entity.setCaseOutNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.CASE_OUT.getCode()));
entity.setOwnerUserNo(param.getOwnerUserNo());
entity.setStatus(OwnerAccountEnum.CaseOutStatus.PENDING_PAYMENT.getCode());
entity.setCaseOutBank(param.getCaseOutBank());
entity.setCaseOutBankNumber(param.getCaseOutBankNumber());
ownerCaseOutDao.saveEntity(entity);
//插入冻结流水
OwnerRunningWaterRecord runningWaterRecord = new OwnerRunningWaterRecord();
runningWaterRecord.setOwnerName("测试");
runningWaterRecord.setMobile("11111111111");
runningWaterRecord.setCreateBy("操作人测试");
runningWaterRecord.setRelationId(entity.getCaseOutNo());
runningWaterRecord.setAccountBalance(caseOutBalance);
runningWaterRecord.setOwnerUserNo(param.getOwnerUserNo());
runningWaterRecord.setAccountType(param.getAccountType());
runningWaterRecord.setRunningWaterType(OwnerAccountEnum.RunningWaterStatus.FROZEN.getCode());
runningWaterRecord.setRunningWaterNo(idGenerateSnowFlake.nextId(IdTypeEnum.Type.CASE_OUT_FROZEN.getCode()));
ownerRunningWaterRecordDao.saveEntity(runningWaterRecord);
return entity.getCaseOutNo();
}
/**
* 充值审批
*/
......@@ -427,6 +493,37 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
ownerBindCardRecordDao.saveEntity(record);
}
@Override
public void openBindOwnerBindCard(OpenOwnerBindCardParam param) {
Result<OwnerBindCardVO> result = ownerInfoFeign.getOwnerInfoVO(param.getUserNo());
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前参数未查询到有效数据");
}
if (result.succeed() && ObjectUtil.isNotNull(result.getData()) && StringUtils.isNotBlank(result.getData().getOwnerAccountBank())) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前货主存在绑定银行卡,请先解绑银行卡后再进行绑定操作");
}
UpdateOwnerBindCardFeignParam feignParam = new UpdateOwnerBindCardFeignParam();
feignParam.setUserNo(param.getUserNo());
feignParam.setOwnerAccountBank(param.getOwnerAccountBank());
feignParam.setOwnerAccountName(param.getOwnerAccountName());
feignParam.setOwnerBankAccount(param.getOwnerBankAccount());
feignParam.setOwnerOpenBank(param.getOwnerOpenBank());
ownerInfoFeign.bindOwnerBindCard(feignParam);
OwnerBindCardRecord record = new OwnerBindCardRecord();
record.setOwnerUserNo(param.getUserNo());
record.setOwnerUserName(param.getName());
record.setCreateItem("绑定银行卡");
record.setOwnerBank(param.getOwnerAccountBank());
record.setOpenAccountBank(param.getOwnerAccountBank());
record.setAccountBankName(param.getOwnerAccountName());
record.setBankCardNumber(param.getOwnerBankAccount());
record.setCreateBy("曹做人");
ownerBindCardRecordDao.saveEntity(record);
}
@Override
public void unBindOwnerBindCard(OwnerBindCardParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
......@@ -453,6 +550,31 @@ public class OwnerAccountServiceImpl implements OwnerAccountService {
ownerInfoFeign.unBindOwnerBindCard(feignParam);
}
@Override
public void openUnBindOwnerBindCard(OpenOwnerBindCardParam param) {
Result<OwnerBindCardVO> result = ownerInfoFeign.getOwnerInfoVO(param.getUserNo());
if (!result.succeed()) {
throw new ServiceSystemException(PerformanceResultEnum.HTTP_ERROR, "当前参数未查询到有效数据");
}
OwnerBindCardRecord record = new OwnerBindCardRecord();
//record.setOwnerType(param.getOwnerType());
record.setOwnerUserNo(param.getUserNo());
record.setCreateItem("解绑银行卡");
record.setOwnerBank(param.getOwnerAccountBank());
record.setOpenAccountBank(param.getOwnerAccountBank());
record.setAccountBankName(param.getOwnerAccountName());
record.setCreateBy(param.getName());
ownerBindCardRecordDao.saveEntity(record);
UpdateOwnerBindCardFeignParam feignParam = new UpdateOwnerBindCardFeignParam();
feignParam.setUserNo(param.getUserNo());
// feignParam.setOwnerAccountBank(param.getOwnerAccountBank());
// feignParam.setOwnerAccountName(param.getOwnerAccountName());
// feignParam.setOwnerBankAccount(param.getOwnerBankAccount());
// feignParam.setOwnerOpenBank(param.getOwnerOpenBank());
ownerInfoFeign.unBindOwnerBindCard(feignParam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void ownerAccountFrozen(FrozenAccountParam param) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论