Browse Source

fix payAccount

release_toaliyun_real
zhengfangyuan 3 years ago
parent
commit
f57a59c0ef
11 changed files with 30 additions and 20 deletions
  1. +11
    -0
      mallinkBApi/src/main/java/com/iformall/controller/BaseController.java
  2. +2
    -2
      mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java
  3. +3
    -3
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  4. +1
    -0
      mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java
  5. +1
    -1
      mallinkSchedule/src/main/java/com/iformall/schedule/CashOutSchedule.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  7. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxPayAccountService.java
  8. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java
  9. +6
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  10. +1
    -6
      mallinkService/src/main/java/com/iformall/service/impl/WxPayAccountServiceImpl.java
  11. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java

+ 11
- 0
mallinkBApi/src/main/java/com/iformall/controller/BaseController.java View File

@@ -4,6 +4,7 @@ package com.iformall.controller;
import com.iformall.domain.po.*;
import com.iformall.domain.po.base.BaseCUserEntity;
import com.iformall.enums.EnumAppPlat;
import com.iformall.enums.EnumPayVersion;
import com.iformall.service.CUserTokenService;
import com.iformall.utils.RedisCacheUtils;
import lombok.extern.slf4j.Slf4j;
@@ -13,6 +14,7 @@ import com.iformall.domain.po.base.TenantEntity;
import com.iformall.exception.MallinkException;
import com.iformall.service.WxAppinfoService;
import com.iformall.service.WxMerchantBUserService;
import com.iformall.service.WxPayAccountService;
import com.iformall.service.wechat.FmOpenService;
import com.iformall.utils.Constant;
import com.iformall.utils.IPUtil;
@@ -40,6 +42,9 @@ public class BaseController {
@Autowired
private WxAppinfoService wxAppinfoService;
@Autowired
private WxPayAccountService wxPayAccountService;
@Autowired
MaUtil maUtil;

@@ -105,6 +110,12 @@ public class BaseController {
return id;
}

public WxAppinfo getCurrentApp() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
WxAppinfo appInfo = (WxAppinfo) request.getAttribute(Constant.APP_INFO);
return appInfo;
}
public CUser getCUser() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
BaseCUserEntity baseuser = (BaseCUserEntity) request.getAttribute(Constant.REQUEST_C_USER_KEY);


+ 2
- 2
mallinkBApi/src/main/java/com/iformall/controller/WxCashOutController.java View File

@@ -109,8 +109,8 @@ public class WxCashOutController extends BaseController {
Map<String,Object> resultMap = new HashMap<String,Object>();
resultMap.put("cashOutCount", merchant.getCashOutCount());
resultMap.put("cashOutNumber", merchant.getCashOutNumber());
WxPayAccount payAccount= wxPayAccountService.getByTenantId(mall.getTenantId());
WxAppinfo appInfo = getCurrentApp();
WxPayAccount payAccount= wxPayAccountService.getById(appInfo.getPayId());
if (payAccount.getShare().intValue() == EnumPayShare.YES.getCode().intValue()) {
resultMap.put("cashOutSupport", 0);
}else {


+ 3
- 3
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java View File

@@ -74,10 +74,10 @@ public class WxMicroPayController extends BaseController {
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
String authCode = paramMap.get("authCode");
String totalFeeStr = paramMap.get("totalFee");
return saveMicopayOrder(authCode, totalFeeStr, EnumPayWay.PAY_WAY_WECHAT_MA, request);
return saveMicopayOrder(authCode, totalFeeStr, EnumPayWay.PAY_WAY_WECHAT_MA,EnumPayVersion.WX_PAY_V2, request);
}

private ResultData saveMicopayOrder(String authCode,String totalFeeStr,EnumPayWay payWay,HttpServletRequest request) {
private ResultData saveMicopayOrder(String authCode,String totalFeeStr,EnumPayWay payWay,EnumPayVersion payVersion,HttpServletRequest request) {
if (StringUtils.isBlank(authCode)) {
logger.error("authCode不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不能为空");
@@ -97,7 +97,7 @@ public class WxMicroPayController extends BaseController {

WxOrder order = null;
try {
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr,payWay);
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr,payWay,payVersion);
} catch (MallinkException e) {
logger.error("saveMicopayOrder 1" + e.getMessage());
return new ResultData(e.getErrorCode(), e.getMessage());


+ 1
- 0
mallinkBApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java View File

@@ -84,6 +84,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
request.setAttribute(Constant.LOGIN_USER_KEY, user.getId());
request.setAttribute(Constant.TENANT_ID, tenantId);
request.setAttribute(Constant.REQUEST_C_USER_KEY, user);
request.setAttribute(Constant.APP_INFO, user.getAppinfo());
if (StringUtils.isNotBlank(parenTenantId)) {
request.setAttribute(Constant.PARENT_TENANT_ID, parenTenantId);
}


+ 1
- 1
mallinkSchedule/src/main/java/com/iformall/schedule/CashOutSchedule.java View File

@@ -120,7 +120,7 @@ public class CashOutSchedule {
if (null == appInfo) {
return;
}
WxPayAccount payAccount = wxPayAccountService.getByTenantId(cashout.getTenantId());
WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId());
if (null == payAccount) {
return;
}


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxOrderService.java View File

@@ -61,7 +61,7 @@ public interface WxOrderService {
* @param totalFeeStr
* @return 订单id
*/
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay);
WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay,EnumPayVersion payVersion);

/**
* 付款码支付v2


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxPayAccountService.java View File

@@ -50,7 +50,7 @@ public interface WxPayAccountService {
void deleteById(Long id);


WxPayAccount getByTenantId(String te);
//WxPayAccount getByTenantId(String te);

WxPayService getWxPayService(String tenantId);
}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxCashOutServiceImpl.java View File

@@ -239,7 +239,7 @@ public class WxCashOutServiceImpl implements WxCashOutService {
if (null == appInfo) {
return;
}
WxPayAccount payAccount = wxPayAccountService.getByTenantId(tenantEntity.getTenantId());
WxPayAccount payAccount = wxPayAccountService.getById(appInfo.getPayId());
if (null == payAccount) {
return;
}


+ 6
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -1086,7 +1086,7 @@ public class WxOrderServiceImpl implements WxOrderService {

@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay) {
public WxOrder saveMicroPayOrder(WxMerchantBUser user, String totalFeeStr,EnumPayWay payWay,EnumPayVersion payVersion) {
// 检查用户
if (user == null) {
logger.error("用户不存在");
@@ -1121,6 +1121,7 @@ public class WxOrderServiceImpl implements WxOrderService {
order.updateTenantInfo(wxMerchant);
order.setPayment(payment);
order.setPayVendor(payWay.getCode());
order.setPayVersion(payVersion.getCode());
order.setOrderType(EnumComposeOrder.SINGLE.getCode());
order.setCreateDate(new Date());
wxBatchOrderMapper.insert(order);
@@ -1137,8 +1138,8 @@ public class WxOrderServiceImpl implements WxOrderService {
record.updateTenantInfo(user);
record.setOrderNumber(orderNumber);
record.setType(EnumOrderType.MICROPAY.getCode());
record.setPayVendor(EnumPayWay.PAY_WAY_WECHAT_MA.getCode());
record.setPayVersion(EnumPayVersion.WX_PAY_V2.getCode());
record.setPayVendor(payWay.getCode());
record.setPayVersion(payVersion.getCode());
record.setProductId(user.getId());
record.setPaymentType(EnumPayType.PAY_PAYMENT.getCode());
record.setPayment(payment);
@@ -1194,6 +1195,7 @@ public class WxOrderServiceImpl implements WxOrderService {
order.updateTenantInfo(wxMerchant);
order.setPayment(payment);
order.setPayVendor(EnumPayWay.PAY_WAY_WECHAT_MA.getCode());
order.setPayVersion(EnumPayVersion.WX_PAY_V2.getCode());
order.setOrderType(EnumComposeOrder.SINGLE.getCode());
order.setCreateDate(new Date());
wxBatchOrderMapper.insert(order);
@@ -1250,6 +1252,7 @@ public class WxOrderServiceImpl implements WxOrderService {
order.updateTenantInfo(merchant);
order.setPayment(payment);
order.setPayVendor(EnumPayWay.PAY_WAY_PREPAIDCARD.getCode());
order.setPayVersion(EnumPayVersion.NO_VERSION.getCode());
order.setOrderType(EnumComposeOrder.SINGLE.getCode());
order.setCreateDate(new Date());
wxBatchOrderMapper.insert(order);


+ 1
- 6
mallinkService/src/main/java/com/iformall/service/impl/WxPayAccountServiceImpl.java View File

@@ -79,17 +79,12 @@ public class WxPayAccountServiceImpl implements WxPayAccountService {
wxPayAccountMapper.deleteById(id);
}

@Override
public WxPayAccount getByTenantId(String tenantId) {
return wxPayAccountMapper.getByTenantId(tenantId);
}

@Override
public WxPayService getWxPayService(String tenantId) {
TenantEntity tenantEntity = new TenantEntity();
tenantEntity.setTenantId(tenantId);
WxAppinfo cAppInfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumAppPlat.WX);
WxPayAccount payAccount = this.getByTenantId(tenantId);
WxPayAccount payAccount = this.getById(cAppInfo.getPayId());
if(cAppInfo != null && payAccount != null){
return maUtil.getWxPayService(cAppInfo,payAccount);
}else{


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java View File

@@ -751,7 +751,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
public ResultData payOrderClose(WxAppinfo appInfo, WxPayOrder record) {
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
try {
PayAdapterResult result = payServiceFactory.getPayAdapterService(record.getPayVendor(),payAccount.getPayVersion()).payOrderClose(appInfo, record, payAccount);
PayAdapterResult result = payServiceFactory.getPayAdapterService(record.getPayVendor(),record.getPayVersion()).payOrderClose(appInfo, record, payAccount);
if (result.isSuccess()) {
record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_CANCEL.getCode());
}else {
@@ -788,7 +788,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
WxAppinfo appInfo = wxAppinfoService.getCAppInfo(record,EnumPayWay.getEnum(record.getPayVendor()).getPlat());
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
try {
PayAdapterResult result = payServiceFactory.getPayAdapterService(record.getPayVendor(),payAccount.getPayVersion()).payOrderReverse(appInfo, record, payAccount);
PayAdapterResult result = payServiceFactory.getPayAdapterService(record.getPayVendor(),record.getPayVersion()).payOrderReverse(appInfo, record, payAccount);
if (result.isSuccess()) {
record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_REVERSE.getCode());
record.setUpdateTime(new Date());


Loading…
Cancel
Save