Commit c4938c68 by guojuxing

提现代码优化

parent 49afafc7
...@@ -8,6 +8,10 @@ package com.gic.finance.constant; ...@@ -8,6 +8,10 @@ package com.gic.finance.constant;
*/ */
public enum WithdrawalStatusEnum { public enum WithdrawalStatusEnum {
/** /**
* 提审
*/
NEW(0, "提审"),
/**
* 待审核 * 待审核
*/ */
TO_BE_EXAMINE(1, "待审核"), TO_BE_EXAMINE(1, "待审核"),
...@@ -48,6 +52,18 @@ public enum WithdrawalStatusEnum { ...@@ -48,6 +52,18 @@ public enum WithdrawalStatusEnum {
return "未知"; return "未知";
} }
public static WithdrawalStatusEnum getEnumByCode(Integer code) {
if (code == null) {
return null;
}
for (WithdrawalStatusEnum typeEnum : values()) {
if (code.intValue() == typeEnum.getCode()) {
return typeEnum;
}
}
return null;
}
public int getCode() { public int getCode() {
return code; return code;
} }
......
...@@ -30,36 +30,45 @@ public class OperationUserInfoDTO implements Serializable{ ...@@ -30,36 +30,45 @@ public class OperationUserInfoDTO implements Serializable{
return id; return id;
} }
public void setId(Integer id) { public OperationUserInfoDTO setId(Integer id) {
this.id = id; this.id = id;
return this;
} }
public String getLoginName() { public String getLoginName() {
return loginName; return loginName;
} }
public void setLoginName(String loginName) { public OperationUserInfoDTO setLoginName(String loginName) {
this.loginName = loginName; this.loginName = loginName;
return this;
} }
public String getRealName() { public String getRealName() {
return realName; return realName;
} }
public void setRealName(String realName) { public OperationUserInfoDTO setRealName(String realName) {
this.realName = realName; this.realName = realName;
return this;
} }
public String getUserMobile() { public String getUserMobile() {
return userMobile; return userMobile;
} }
public void setUserMobile(String userMobile) { public OperationUserInfoDTO setUserMobile(String userMobile) {
this.userMobile = userMobile; this.userMobile = userMobile;
return this;
} }
@Override @Override
public String toString() { public String toString() {
return super.toString(); return "OperationUserInfoDTO{" +
"id=" + id +
", loginName='" + loginName + '\'' +
", realName='" + realName + '\'' +
", userMobile='" + userMobile + '\'' +
'}';
} }
} }
...@@ -2,6 +2,7 @@ package com.gic.finance.service.outer.impl; ...@@ -2,6 +2,7 @@ package com.gic.finance.service.outer.impl;
import java.util.Date; import java.util.Date;
import com.gic.finance.util.cashwithdrawal.StateHandler;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -37,38 +38,17 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{ ...@@ -37,38 +38,17 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
private CashWithdrawalService cashWithdrawalService; private CashWithdrawalService cashWithdrawalService;
@Autowired @Autowired
private PayAccountService payAccountService; private PayAccountService payAccountService;
/**
* 提现申请
* @Title: cashWithdrawal

* @Description:

 * @author guojuxing
* @param dto

* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


 */
private ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
ServiceResponse paramValid = ValidParamsUtils.allCheckValidate(dto, CashWithdrawalDTO.CashWithdrawal.class);
if (!paramValid.isSuccess()) {
return paramValid;
}
dto.setCreateTime(new Date());
dto.setUpdateTime(new Date());
dto.setCashWithdrawalStatus(WithdrawalStatusEnum.TO_BE_EXAMINE.getCode());
//流水号
dto.setCashWithdrawalSerialNumber(CreateRandomUtils.createSerialNumber());
cashWithdrawalService.save(dto);
return ServiceResponse.success(dto.getCashWithdrawalSerialNumber());
}
@Override @Override
public ServiceResponse<String> cashWithdrawalOfServiceProvider(CashWithdrawalDTO dto) { public ServiceResponse<String> cashWithdrawalOfServiceProvider(CashWithdrawalDTO dto) {
dto.setApplyType(WithdrawalApplyTypeEnum.SERVICE_PROVIDER.getCode()); dto.setApplyType(WithdrawalApplyTypeEnum.SERVICE_PROVIDER.getCode());
return cashWithdrawal(dto); return StateHandler.cashWithdrawal(WithdrawalStatusEnum.NEW, dto);
} }
@Override @Override
public ServiceResponse<String> cashWithdrawalOfSupplier(CashWithdrawalDTO dto) { public ServiceResponse<String> cashWithdrawalOfSupplier(CashWithdrawalDTO dto) {
dto.setApplyType(WithdrawalApplyTypeEnum.SUPPLIER.getCode()); dto.setApplyType(WithdrawalApplyTypeEnum.SUPPLIER.getCode());
return cashWithdrawal(dto); return StateHandler.cashWithdrawal(WithdrawalStatusEnum.NEW, dto);
} }
@Override @Override
...@@ -95,15 +75,9 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{ ...@@ -95,15 +75,9 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
if (record == null) { if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此记录"); return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此记录");
} }
if (record.getCashWithdrawalStatus().intValue() == WithdrawalStatusEnum.CANCEL.getCode()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "已取消");
}
// 操作人相关信息 // 操作人相关信息
getOperationUserInfo(record, dto); getOperationUserInfo(record, dto);
return StateHandler.approval(WithdrawalStatusEnum.getEnumByCode(record.getCashWithdrawalStatus()), record);
record.setCashWithdrawalStatus(WithdrawalStatusEnum.PASS.getCode());
cashWithdrawalService.update(record);
return ServiceResponse.success();
} }
@Override @Override
...@@ -117,57 +91,25 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{ ...@@ -117,57 +91,25 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
@Override @Override
public ServiceResponse<Void> reject(Integer id, String rejectReason, OperationUserInfoDTO dto) { public ServiceResponse<Void> reject(Integer id, String rejectReason, OperationUserInfoDTO dto) {
if (StringUtils.isBlank(rejectReason)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "驳回理由不能为空");
}
TabCashWithdrawal record = cashWithdrawalService.getById(id); TabCashWithdrawal record = cashWithdrawalService.getById(id);
if (record == null) { if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此记录"); return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此记录");
} }
if (record.getCashWithdrawalStatus().intValue() == WithdrawalStatusEnum.CANCEL.getCode()) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "已取消");
}
// 操作人相关信息 // 操作人相关信息
getOperationUserInfo(record, dto); getOperationUserInfo(record, dto);
record.setCashWithdrawalStatus(WithdrawalStatusEnum.REJECT.getCode());
record.setRejectReason(rejectReason); record.setRejectReason(rejectReason);
cashWithdrawalService.update(record); return StateHandler.reject(WithdrawalStatusEnum.getEnumByCode(record.getCashWithdrawalStatus()), record);
//回调
AsyncCallbackUtils.callBack(record, "com.gic.open.api.service.market.PayCallbackApiService", "callbackWithdraw");
return ServiceResponse.success();
} }
@Override @Override
public ServiceResponse<Void> pay(Integer id, Integer payId, String bankSerialNumber) { public ServiceResponse<Void> pay(Integer id, Integer payId, String bankSerialNumber) {
if (StringUtils.isBlank(bankSerialNumber)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "银行流水号不能为空");
}
TabCashWithdrawal record = cashWithdrawalService.getById(id); TabCashWithdrawal record = cashWithdrawalService.getById(id);
if (record == null) { if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此申请单记录"); return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "参数有误,无此申请单记录");
} }
TabPayAccount account = payAccountService.getById(payId);
if (account == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "无此打款户信息记录,请前往添加");
}
//todo 操作人相关信息
record.setOperatorTime(new Date());
record.setPayId(payId);
record.setPayAccount(account.getBankAccount());
record.setPayAccountBank(account.getBank());
record.setPayAccountBranchName(account.getBranchName());
record.setPayAccountName(account.getAccountName());
record.setBankSerialNumber(bankSerialNumber); record.setBankSerialNumber(bankSerialNumber);
record.setCashWithdrawalStatus(WithdrawalStatusEnum.COMPLETE.getCode()); record.setPayId(payId);
cashWithdrawalService.update(record); return StateHandler.complete(WithdrawalStatusEnum.getEnumByCode(record.getCashWithdrawalStatus()), record);
//回调
AsyncCallbackUtils.callBack(record, "com.gic.open.api.service.market.PayCallbackApiService", "callbackWithdraw");
return ServiceResponse.success();
} }
@Override @Override
...@@ -183,12 +125,7 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{ ...@@ -183,12 +125,7 @@ public class CashWithdrawalApiServiceImpl implements CashWithdrawalApiService{
if (record == null) { if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "提现流水号错误,查无数据"); return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "提现流水号错误,查无数据");
} }
if (record.getCashWithdrawalStatus().intValue() != WithdrawalStatusEnum.TO_BE_EXAMINE.getCode()) { return StateHandler.cancel(WithdrawalStatusEnum.getEnumByCode(record.getCashWithdrawalStatus()), record);
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "已审批,不能取消");
}
record.setCashWithdrawalStatus(WithdrawalStatusEnum.CANCEL.getCode());
cashWithdrawalService.update(record);
return ServiceResponse.success();
} }
private void getOperationUserInfo(TabCashWithdrawal record, OperationUserInfoDTO userInfo) { private void getOperationUserInfo(TabCashWithdrawal record, OperationUserInfoDTO userInfo) {
......
package com.gic.finance.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring ApplicationContext 工具类
* @ClassName: ApplicationContextUtils

* @Description: 

* @author guojuxing

* @date 2020/11/11 10:22 AM

*/
@Component
public class ApplicationContextUtils implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtils.applicationContext = applicationContext;
}
public static <T> T getBean(String beanName) {
if (applicationContext.containsBean(beanName)) {
return (T) applicationContext.getBean(beanName);
}
return null;
}
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
package com.gic.finance.util.cashwithdrawal;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.service.CashWithdrawalService;
/**
* 体现状态抽象
* @ClassName: State

* @Description: 

* @author guojuxing

* @date 2020/11/6 10:18 AM

*/
public abstract class State {
/**
* 提现申请
* @Title: cashWithdrawal

* @Description:

* @author guojuxing
* @param dto

* @return com.gic.api.base.commons.ServiceResponse<java.lang.String>


*/
public abstract ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto);
/**
* 审核通过
* @param record
* @return
*/
public abstract ServiceResponse<Void> approval(TabCashWithdrawal record);
/**
* 审核拒绝
* @param record
* @return
*/
public abstract ServiceResponse<Void> reject(TabCashWithdrawal record);
/**
* 审核取消
* @param record
* @return
*/
public abstract ServiceResponse<Void> cancel(TabCashWithdrawal record);
/**
* 完成(打款成功)
* @param record
* @return
*/
public abstract ServiceResponse<Void> complete(TabCashWithdrawal record);
}
package com.gic.finance.util.cashwithdrawal;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.finance.constant.WithdrawalStatusEnum;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.util.ApplicationContextUtils;
import com.gic.finance.util.cashwithdrawal.event.*;
/**
* 提现调用
* @ClassName: StateHandler

* @Description: 

* @author guojuxing

* @date 2020/11/6 1:41 PM

*/
public class StateHandler {
private static Map<WithdrawalStatusEnum, State> stateMap = new ConcurrentHashMap<>(16);
static {
stateMap.put(WithdrawalStatusEnum.NEW, ApplicationContextUtils.getBean(CashWithdrawalState.class));
stateMap.put(WithdrawalStatusEnum.TO_BE_EXAMINE, ApplicationContextUtils.getBean(CheckAuthState.class));
stateMap.put(WithdrawalStatusEnum.CANCEL, ApplicationContextUtils.getBean(CancelState.class));
stateMap.put(WithdrawalStatusEnum.REJECT, ApplicationContextUtils.getBean(RejectState.class));
stateMap.put(WithdrawalStatusEnum.PASS, ApplicationContextUtils.getBean(ApprovalState.class));
stateMap.put(WithdrawalStatusEnum.COMPLETE, ApplicationContextUtils.getBean(CompleteState.class));
}
public static ServiceResponse<String> cashWithdrawal(WithdrawalStatusEnum state, CashWithdrawalDTO dto) {
return stateMap.get(state).cashWithdrawal(dto);
}
public static ServiceResponse<Void> approval(WithdrawalStatusEnum state, TabCashWithdrawal record) {
return stateMap.get(state).approval(record);
}
public static ServiceResponse<Void> reject(WithdrawalStatusEnum state, TabCashWithdrawal record) {
return stateMap.get(state).reject(record);
}
public static ServiceResponse<Void> cancel(WithdrawalStatusEnum state, TabCashWithdrawal record) {
return stateMap.get(state).cancel(record);
}
public static ServiceResponse<Void> complete(WithdrawalStatusEnum state, TabCashWithdrawal record) {
return stateMap.get(state).complete(record);
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.AsyncCallbackUtils;
import com.gic.finance.constant.WithdrawalStatusEnum;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.entity.TabPayAccount;
import com.gic.finance.service.CashWithdrawalService;
import com.gic.finance.service.PayAccountService;
import com.gic.finance.util.cashwithdrawal.State;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 审批通过状态
* @ClassName: ApprovalState

* @Description: 

* @author guojuxing

* @date 2020/11/6 11:19 AM

*/
@Component
public class ApprovalState extends State{
@Autowired
private CashWithdrawalService cashWithdrawalService;
@Autowired
private PayAccountService payAccountService;
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已通过审批");
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已通过审批");
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已通过审批");
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已通过审批");
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
if (StringUtils.isBlank(record.getBankSerialNumber())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "银行流水号不能为空");
}
TabPayAccount account = payAccountService.getById(record.getPayId());
if (account == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "无此打款户信息记录,请前往添加");
}
//todo 操作人相关信息
record.setOperatorTime(new Date());
record.setPayId(record.getPayId());
record.setPayAccount(account.getBankAccount());
record.setPayAccountBank(account.getBank());
record.setPayAccountBranchName(account.getBranchName());
record.setPayAccountName(account.getAccountName());
record.setCashWithdrawalStatus(WithdrawalStatusEnum.COMPLETE.getCode());
cashWithdrawalService.update(record);
//回调
AsyncCallbackUtils.callBack(record, "com.gic.open.api.service.market.PayCallbackApiService", "callbackWithdraw");
return ServiceResponse.success();
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.util.cashwithdrawal.State;
import org.springframework.stereotype.Component;
/**
* 取消审核状态
* @ClassName: CancelState

* @Description: 

* @author guojuxing

* @date 2020/11/6 1:38 PM

*/
@Component
public class CancelState extends State{
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已取消");
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已取消");
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已取消");
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已取消");
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已取消");
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.CreateRandomUtils;
import com.gic.enterprise.utils.valid.ValidParamsUtils;
import com.gic.finance.constant.WithdrawalStatusEnum;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.service.CashWithdrawalService;
import com.gic.finance.util.cashwithdrawal.State;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 新增提审
* @ClassName: CashWithdrawalState

* @Description: 

* @author guojuxing

* @date 2020/11/6 4:51 PM

*/
@Component
public class CashWithdrawalState extends State{
@Autowired
private CashWithdrawalService cashWithdrawalService;
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
ServiceResponse paramValid = ValidParamsUtils.allCheckValidate(dto, CashWithdrawalDTO.CashWithdrawal.class);
if (!paramValid.isSuccess()) {
return paramValid;
}
dto.setCreateTime(new Date());
dto.setUpdateTime(new Date());
dto.setCashWithdrawalStatus(WithdrawalStatusEnum.TO_BE_EXAMINE.getCode());
//流水号
dto.setCashWithdrawalSerialNumber(CreateRandomUtils.createSerialNumber());
cashWithdrawalService.save(dto);
return ServiceResponse.success(dto.getCashWithdrawalSerialNumber());
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "提审中,不能通过审批");
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "提审中,不能拒绝审批");
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "提审中,不能取消审批");
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "提审中,不能打款");
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.AsyncCallbackUtils;
import com.gic.finance.constant.WithdrawalStatusEnum;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.service.CashWithdrawalService;
import com.gic.finance.service.PayAccountService;
import com.gic.finance.util.cashwithdrawal.State;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 审核
* @ClassName: CheckAuthState

* @Description: 

* @author guojuxing

* @date 2020/11/6 3:28 PM

*/
@Component
public class CheckAuthState extends State{
@Autowired
private CashWithdrawalService cashWithdrawalService;
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "不能重复提审");
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
record.setCashWithdrawalStatus(WithdrawalStatusEnum.PASS.getCode());
cashWithdrawalService.update(record);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
if (StringUtils.isBlank(record.getRejectReason())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "驳回理由不能为空");
}
record.setCashWithdrawalStatus(WithdrawalStatusEnum.REJECT.getCode());
cashWithdrawalService.update(record);
//回调
AsyncCallbackUtils.callBack(record, "com.gic.open.api.service.market.PayCallbackApiService", "callbackWithdraw");
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
record.setCashWithdrawalStatus(WithdrawalStatusEnum.CANCEL.getCode());
cashWithdrawalService.update(record);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "审核中不能打款");
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.util.cashwithdrawal.State;
import org.springframework.stereotype.Component;
/**
* 完成状态
* @ClassName: CompleteState

* @Description: 

* @author guojuxing

* @date 2020/11/6 3:48 PM

*/
@Component
public class CompleteState extends State{
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已完成");
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已完成");
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已完成");
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已完成");
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "已完成");
}
}
package com.gic.finance.util.cashwithdrawal.event;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.error.ErrorCode;
import com.gic.finance.constant.WithdrawalStatusEnum;
import com.gic.finance.dto.CashWithdrawalDTO;
import com.gic.finance.entity.TabCashWithdrawal;
import com.gic.finance.util.cashwithdrawal.State;
import org.springframework.stereotype.Component;
/**
* 拒绝审批状态
* @ClassName: RejectState

* @Description: 

* @author guojuxing

* @date 2020/11/6 11:23 AM

*/
@Component
public class RejectState extends State{
@Override
public ServiceResponse<String> cashWithdrawal(CashWithdrawalDTO dto) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), WithdrawalStatusEnum.REJECT.getMessage());
}
@Override
public ServiceResponse<Void> approval(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), WithdrawalStatusEnum.REJECT.getMessage());
}
@Override
public ServiceResponse<Void> reject(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), WithdrawalStatusEnum.REJECT.getMessage());
}
@Override
public ServiceResponse<Void> cancel(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), WithdrawalStatusEnum.REJECT.getMessage());
}
@Override
public ServiceResponse<Void> complete(TabCashWithdrawal record) {
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), WithdrawalStatusEnum.REJECT.getMessage());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment