From 312427a1d7479081f2b413fa5ce0aab3e9115e6d Mon Sep 17 00:00:00 2001 From: xhxu Date: Mon, 22 Aug 2022 17:55:15 +0800 Subject: [PATCH] // add bank shar --- .../SharingReceiverApplySchedule.java | 24 ++++++++++++- .../po/WxProfitSharingReceiverApply.java | 4 +-- .../EnumSharingReceiverVerifyResult.java | 22 ++++++------ .../WxProfitSharingReceiverApplyMapper.java | 1 + .../WxProfitSharingReceiverApplyService.java | 2 ++ ...ProfitSharingReceiverApplyServiceImpl.java | 36 ++++++++++++++++--- .../WxProfitSharingReceiverApplyMapper.xml | 7 ++++ 7 files changed, 79 insertions(+), 17 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingReceiverApplySchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingReceiverApplySchedule.java index beca18fe0..89b703276 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/SharingReceiverApplySchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/SharingReceiverApplySchedule.java @@ -4,6 +4,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxProfitSharingReceiverApply; import com.iformall.enums.EnumSharingReceiverApplyStatus; import com.iformall.enums.EnumSharingReceiverApplymentState; +import com.iformall.enums.EnumSharingReceiverVerifyResult; import com.iformall.mapper.WxProfitSharingReceiverApplyMapper; import com.iformall.service.WxProfitSharingReceiverApplyService; import org.slf4j.Logger; @@ -28,7 +29,7 @@ public class SharingReceiverApplySchedule { @Async @Scheduled(cron = "0 22 */1 * * ?")// 每小时的22分钟 - public void sharingOrderRedoSchedule() { + public void handApplymentStatesSchedule() { WxProfitSharingReceiverApply receiverApply = new WxProfitSharingReceiverApply(); receiverApply.setStatus(EnumSharingReceiverApplyStatus.PROFIT_RECEIVER_APPLY_STATUS_VALID.getCode()); receiverApply.setApplymentStates(EnumSharingReceiverApplymentState.getNeedSyncList()); @@ -47,4 +48,25 @@ public class SharingReceiverApplySchedule { } } + @Async + @Scheduled(cron = "0 22 11,17 * * ?")// 每天上午11点下午17点的22分钟 + public void handVerifyResultSchedule() { + WxProfitSharingReceiverApply receiverApply = new WxProfitSharingReceiverApply(); + receiverApply.setStatus(EnumSharingReceiverApplyStatus.PROFIT_RECEIVER_APPLY_STATUS_VALID.getCode()); + receiverApply.setVerifyResult(EnumSharingReceiverVerifyResult.VERIFYING.getCode()); + List needSyncList = wxProfitSharingReceiverApplyMapper.findListByVerifyResult(receiverApply); + if(!needSyncList.isEmpty()){ + for (WxProfitSharingReceiverApply apply:needSyncList){ + try{ + ResultData resultData = wxProfitSharingReceiverApplyService.handVerifyResult(apply); + if(resultData.code != 200){ + logger.error("同步进件状态异常{}"+apply.getId()); + } + }catch(Exception e){ + logger.error("同步进件状态异常{}"+apply.getId()+"---"+e.getMessage()); + } + } + } + } + } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiverApply.java b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiverApply.java index bb3b24b30..ccb6ea77f 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiverApply.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxProfitSharingReceiverApply.java @@ -98,10 +98,10 @@ public class WxProfitSharingReceiverApply extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value="EnumSharingReceiverVerifyResult 修改收款帐号 申请状态",name="verifyResult") private Integer verifyResult; - @io.swagger.annotations.ApiModelProperty(value="修改收款帐号 申请状态描述",name="verifyFailReason") + @io.swagger.annotations.ApiModelProperty(value="汇款验证失败原因",name="verifyFailReason") private String verifyFailReason; - @io.swagger.annotations.ApiModelProperty(value="修改收款帐号 申请状态描述",name="status") + @io.swagger.annotations.ApiModelProperty(value="EnumSharingReceiverApplyStatus",name="status") private Integer status; @io.swagger.annotations.ApiModelProperty(value="",name="createTime") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumSharingReceiverVerifyResult.java b/mallinkService/src/main/java/com/iformall/enums/EnumSharingReceiverVerifyResult.java index 520ec4982..4503d57e5 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumSharingReceiverVerifyResult.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumSharingReceiverVerifyResult.java @@ -1,5 +1,7 @@ package com.iformall.enums; +import com.github.binarywang.wxpay.bean.applyment.enums.SettlementVerifyResultEnum; + /** * 签约状态 * VERIFYING:系统汇款验证中,商户可发起提现尝试。 @@ -8,9 +10,9 @@ package com.iformall.enums; */ public enum EnumSharingReceiverVerifyResult { - VERIFYING(1, "VERIFYING", "系统汇款验证中,商户可发起提现尝试。"), - VERIFY_SUCCESS(2, "VERIFY_SUCCESS", "系统成功汇款,该账户可正常发起提现。"), - VERIFY_FAIL(3, "VERIFY_FAIL", "系统汇款失败,该账户无法发起提现,请检查修改。"), + VERIFYING(1, SettlementVerifyResultEnum.VERIFYING, "系统汇款验证中,商户可发起提现尝试。"), + VERIFY_SUCCESS(2, SettlementVerifyResultEnum.VERIFY_SUCCESS, "系统成功汇款,该账户可正常发起提现。"), + VERIFY_FAIL(3, SettlementVerifyResultEnum.VERIFY_FAIL, "系统汇款失败,该账户无法发起提现,请检查修改。"), ; public static EnumSharingReceiverVerifyResult getEnum(Integer code) { @@ -22,9 +24,9 @@ public enum EnumSharingReceiverVerifyResult { return null; } - public static EnumSharingReceiverVerifyResult getEnum(String codeStr) { + public static EnumSharingReceiverVerifyResult getEnum(SettlementVerifyResultEnum settlementVerifyResultEnum) { for (EnumSharingReceiverVerifyResult value : values()) { - if (value.getCodeStr().equals(codeStr)) { + if (value.getSettlementVerifyResultEnum().equals(settlementVerifyResultEnum)) { return value; } } @@ -32,12 +34,12 @@ public enum EnumSharingReceiverVerifyResult { } private Integer code; - private String codeStr; + private SettlementVerifyResultEnum settlementVerifyResultEnum; private String message; - EnumSharingReceiverVerifyResult(Integer code, String codeStr, String message) { + EnumSharingReceiverVerifyResult(Integer code, SettlementVerifyResultEnum settlementVerifyResultEnum, String message) { this.code = code; - this.codeStr = codeStr; + this.settlementVerifyResultEnum = settlementVerifyResultEnum; this.message = message; } @@ -45,8 +47,8 @@ public enum EnumSharingReceiverVerifyResult { return code; } - public String getCodeStr() { - return codeStr; + public SettlementVerifyResultEnum getSettlementVerifyResultEnum() { + return settlementVerifyResultEnum; } public String getMessage() { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxProfitSharingReceiverApplyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxProfitSharingReceiverApplyMapper.java index ec99954a4..933af10f4 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxProfitSharingReceiverApplyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxProfitSharingReceiverApplyMapper.java @@ -12,4 +12,5 @@ public interface WxProfitSharingReceiverApplyMapper extends CommonMapper findListByApplymentState(WxProfitSharingReceiverApply apply); + List findListByVerifyResult(WxProfitSharingReceiverApply apply); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingReceiverApplyService.java b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingReceiverApplyService.java index fa8c64653..df24f824d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxProfitSharingReceiverApplyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxProfitSharingReceiverApplyService.java @@ -29,4 +29,6 @@ public interface WxProfitSharingReceiverApplyService { ResultData handApplymentStates(WxProfitSharingReceiverApply apply); ResultData modifySettlement(WxProfitSharingReceiverApply receiverAdd,String subMchid); + + ResultData handVerifyResult(WxProfitSharingReceiverApply apply); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingReceiverApplyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingReceiverApplyServiceImpl.java index 5f2b09c7e..cbcfddb11 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingReceiverApplyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingReceiverApplyServiceImpl.java @@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.binarywang.wxpay.bean.applyment.ApplymentStateQueryResult; -import com.github.binarywang.wxpay.bean.applyment.ModifySettlementRequest; -import com.github.binarywang.wxpay.bean.applyment.WxPayApplyment4SubCreateRequest; -import com.github.binarywang.wxpay.bean.applyment.WxPayApplymentCreateResult; +import com.github.binarywang.wxpay.bean.applyment.*; import com.github.binarywang.wxpay.bean.applyment.enums.SalesScenesTypeEnum; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; @@ -171,6 +168,8 @@ public class WxProfitSharingReceiverApplyServiceImpl implements WxProfitSharingR receiverApplyUpd.setApplymentStateDesc(applymentStateQueryResult.getApplymentStateMsg()); if(enumApplymentState.equals(EnumSharingReceiverApplymentState.APPLYMENT_STATE_REJECTED)){ receiverApplyUpd.setAuditDetail(JSON.toJSONString(applymentStateQueryResult.getAuditDetail())); + }else{ + receiverApplyUpd.setAuditDetail("[]"); } receiverApplyUpd.setUpdateTime(new Date()); wxProfitSharingReceiverApplyMapper.updateById(receiverApplyUpd); @@ -220,6 +219,35 @@ public class WxProfitSharingReceiverApplyServiceImpl implements WxProfitSharingR return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "结算帐号填写未完成"); } + @Override + public ResultData handVerifyResult(WxProfitSharingReceiverApply receiverApply) { + if(receiverApply == null || !EnumSharingReceiverVerifyResult.VERIFYING.getCode().equals(receiverApply.getVerifyResult())){ + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "该状态无需同步"); + } + WxPayService wxPayService = wxPayAccountService.getWxPayService(receiverApply.getTenantId()); + try { + SettlementInfoResult settlementInfoResult = wxPayService.getApplyment4SubService().querySettlementBySubMchid(receiverApply.getSubMchid()); + EnumSharingReceiverVerifyResult enumVerifyResult = EnumSharingReceiverVerifyResult.getEnum(settlementInfoResult.getVerifyResult()); + if(enumVerifyResult != null && !enumVerifyResult.getCode().equals(receiverApply.getVerifyResult())){ + WxProfitSharingReceiverApply receiverApplyUpd = new WxProfitSharingReceiverApply(); + receiverApplyUpd.updateTenantInfo(receiverApply); + receiverApplyUpd.setId(receiverApply.getId()); + receiverApplyUpd.setVerifyResult(enumVerifyResult.getCode()); + if(enumVerifyResult.equals(EnumSharingReceiverVerifyResult.VERIFY_FAIL)){ + receiverApplyUpd.setVerifyFailReason(settlementInfoResult.getVerifyFailReason()); + }else{ + receiverApplyUpd.setVerifyFailReason(""); + } + receiverApplyUpd.setUpdateTime(new Date()); + wxProfitSharingReceiverApplyMapper.updateById(receiverApplyUpd); + } + return new ResultData(); + } catch (WxPayException e) { + e.printStackTrace(); + return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(),e.getMessage()); + } + } + //------------------------------------------------------------------------------------------------------------------ diff --git a/mallinkService/src/main/resources/mapper/WxProfitSharingReceiverApplyMapper.xml b/mallinkService/src/main/resources/mapper/WxProfitSharingReceiverApplyMapper.xml index 79f4e0f67..c8243af4e 100644 --- a/mallinkService/src/main/resources/mapper/WxProfitSharingReceiverApplyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxProfitSharingReceiverApplyMapper.xml @@ -144,5 +144,12 @@ from wx_profit_sharing_receiver_apply + +