Преглед изворни кода

//shar

release_toaliyun_real
xhxu пре 3 година
родитељ
комит
a37b6af15f
1 измењених фајлова са 62 додато и 45 уклоњено
  1. +62
    -45
      mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java

+ 62
- 45
mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java Прегледај датотеку

@@ -150,12 +150,17 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
return wxAppinfo; return wxAppinfo;
} }


private WxMerchant getByMerchantAdmin(TenantEntity tenantEntity,EnumMerchantAdmin merchantAdmin){
private WxProfitSharingReceiver getByMerchantAdmin(TenantEntity tenantEntity,PayShareAdapterService payShareAdapterService,Long payMerchantId,
EnumMerchantAdmin merchantAdmin,Integer ttPayWay,Integer mchType){
WxMerchant merchantQ = new WxMerchant(); WxMerchant merchantQ = new WxMerchant();
merchantQ.updateTenantInfo(tenantEntity); merchantQ.updateTenantInfo(tenantEntity);
merchantQ.setIsAdmin(merchantAdmin.getCode()); merchantQ.setIsAdmin(merchantAdmin.getCode());
merchantQ.setStatus(EnumMerchantStatus.VALID.getCode()); merchantQ.setStatus(EnumMerchantStatus.VALID.getCode());
return wxMerchantService.findListOne(merchantQ);
WxMerchant merchant = wxMerchantService.findListOne(merchantQ);
if(merchant != null && !merchant.getId().equals(payMerchantId)){
return payShareAdapterService.getReceiver(tenantEntity, merchant.getId(), ttPayWay, mchType);
}
return null;
} }


private int getMallSumRate(TenantEntity tenantEntity,Long orderId){ private int getMallSumRate(TenantEntity tenantEntity,Long orderId){
@@ -179,9 +184,21 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
if(!EnumProfitSharingOrderStatus.shareStatus().contains(sharingOrder.getSharingStatus())){ if(!EnumProfitSharingOrderStatus.shareStatus().contains(sharingOrder.getSharingStatus())){
return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"分账状态不允许"); return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"分账状态不允许");
} }
Date currentDate = new Date();
if(EnumPayWay.PAY_WAY_WECHAT.getCode().equals(payOrder.getPayVendor())
&& DateUtils.daysBetween(payOrder.getCreateTime(),currentDate) > 30){
WxProfitSharingOrder updSharingOrder = new WxProfitSharingOrder();
updSharingOrder.updateTenantInfo(sharingOrder);
updSharingOrder.setId(sharingOrder.getId());
updSharingOrder.setSharingStatus(EnumProfitSharingOrderStatus.PROFIT_SHARING_FAILED.getCode());
updSharingOrder.setErrorMsg("微信支付超30天无法分账");
updSharingOrder.setUpdateTime(currentDate);
wxProfitSharingOrderMapper.updateById(updSharingOrder);
return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"微信支付超30天无法分账");
}


PayShareAdapterService payShareAdapterService = payServiceFactory.getPayShareAdapterService(payOrder.getPayVendor(),payOrder.getPayVersion()); PayShareAdapterService payShareAdapterService = payServiceFactory.getPayShareAdapterService(payOrder.getPayVendor(),payOrder.getPayVersion());
Date currentDate = new Date();
PayShareResult shareResult = null; PayShareResult shareResult = null;


//获取达人佣金 //获取达人佣金
@@ -225,43 +242,43 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
//销售抽点 //销售抽点
int sellerAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getSellRate(), false); int sellerAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getSellRate(), false);
wxComposeChildOrderShare.setSellerAmount(sellerAmount); wxComposeChildOrderShare.setSellerAmount(sellerAmount);
boolean isSeller = false;
if(sellerAmount > 0){ if(sellerAmount > 0){
WxMerchant sellMerchant = getByMerchantAdmin(payOrder,EnumMerchantAdmin.PRIVATE_SELL);
if(sellMerchant != null){
WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(payOrder, sellMerchant.getId(), payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", sellerAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}
WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SELL,payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", sellerAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}else{
isSeller = true;
} }
} }
//系统抽成 //系统抽成
// int systemAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getSystemRate(), false); // int systemAmount = PayUtils.getPayRate(wxComposeChildOrderShare.getRealPayMent(), payAccount.getSystemRate(), false);
int systemAmount = selSysAmount - sellerAmount; int systemAmount = selSysAmount - sellerAmount;
wxComposeChildOrderShare.setSystemAmount(systemAmount); wxComposeChildOrderShare.setSystemAmount(systemAmount);
if(sellerAmount > 0 && receivers.isEmpty()){
if(isSeller){
systemAmount += systemAmount; systemAmount += systemAmount;
} }
boolean isSystem = false;
if(systemAmount > 0){ if(systemAmount > 0){
WxMerchant sysMerchant = getByMerchantAdmin(payOrder,EnumMerchantAdmin.PRIVATE_SYSTEM);
if(sysMerchant != null){
WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(payOrder, sysMerchant.getId(), payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", systemAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}
WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PRIVATE_SYSTEM,payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", systemAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}else{
isSystem = true;
} }
} }
//总分佣 //总分佣
@@ -270,26 +287,26 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ
wxComposeChildOrderShare.setServiceAmount(serviceAmount); wxComposeChildOrderShare.setServiceAmount(serviceAmount);
//商场分成 //商场分成
int mallAmount = wxComposeChildOrderShare.getRateAmount(); int mallAmount = wxComposeChildOrderShare.getRateAmount();
if(systemAmount > 0 && receivers.isEmpty()){
if(isSystem){
mallAmount += systemAmount; mallAmount += systemAmount;
} }
boolean isMall = false;
if(mallAmount > 0){ if(mallAmount > 0){
WxMerchant adminMerchant = getByMerchantAdmin(payOrder,EnumMerchantAdmin.PUBLIC_ADMIN);
if(adminMerchant != null && !wxComposeChildOrderShare.getMerchantId().equals(adminMerchant.getId())){
WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(payOrder, adminMerchant.getId(), payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", mallAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}
WxProfitSharingReceiver receiver = getByMerchantAdmin(payOrder,payShareAdapterService,wxComposeChildOrderShare.getMerchantId(),EnumMerchantAdmin.PUBLIC_ADMIN,payOrder.getTtPayWay(), payOrder.getMchType());
if(receiver != null){
JSONObject jo = new JSONObject();
jo.put("type",payShareAdapterService.getShareAccount(receiver.getReceiverType()).getMessage());
jo.put("account",receiver.getReceiverAccount());
jo.put("amount", mallAmount);
jo.put("merchantId",receiver.getMerchantId());
jo.put("description",receiver.getId());
jo.put("isPrivate",EnumYesOrNo.YES.getCode());
receivers.add(jo);
}else{
isMall = true;
} }
} }
if(mallAmount > 0 && receivers.isEmpty()){
if(isMall){
surplus += mallAmount; surplus += mallAmount;
} }
}else{ }else{


Loading…
Откажи
Сачувај