Просмотр исходного кода

Merge branch 'release_toaliyun_real_202208' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real_202208

release_toaliyun_real
zhengfangyuan 3 лет назад
Родитель
Сommit
b2e0b437a2
6 измененных файлов: 92 добавлений и 32 удалений
  1. +40
    -0
      mallinkBApi/src/main/java/com/iformall/controller/WxProfitSharingReceiverApplyController.java
  2. +24
    -25
      mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java
  3. +6
    -1
      mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java
  4. +17
    -4
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java
  5. +2
    -2
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java
  6. +3
    -0
      mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java

+ 40
- 0
mallinkBApi/src/main/java/com/iformall/controller/WxProfitSharingReceiverApplyController.java Просмотреть файл

@@ -24,7 +24,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

@@ -247,4 +249,42 @@ public class WxProfitSharingReceiverApplyController extends BaseController {
}
}

@PostMapping(value = "/getYwsqh_v2")
@ApiOperation("获取图片")
public void getYwsqh_v2(@RequestBody Map<String, String> param, HttpServletResponse response) {
logger.info("[" + getIpAddr() + "] WxMerchantMediaUploadController::getYwsqh_v2");

logger.info("getYwsqh---"+JSON.toJSONString(param));
TenantEntity tenantEntity = getTenantInfo();

String contact_name = param.get("contact_name");
String contact_id_number = param.get("contact_id_number");
String contact_department = param.get("contact_department");
String contact_job = param.get("contact_job");
String legal_person = param.get("legal_person");
String id_card_number = param.get("id_card_number");
String card_period_begin = param.get("card_period_begin");
String card_period_end = param.get("card_period_end");
Boolean isSeal = "true".equals(param.get("is_seal"))?true:false;
String merchant_name = param.get("merchant_name");

byte[] bytes = ImgYwsqhUtil.imgCeate(contact_name, contact_id_number, contact_department, contact_job,
legal_person, id_card_number, card_period_begin, card_period_end, isSeal, merchant_name);
try{
if(bytes == null){
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json");
ResultData resultData = new ResultData(ResultData.UNLOGIN,"用户未登录");
response.getWriter().write(JSON.toJSONString(resultData));
}else{
response.setContentType("image/jpeg");
OutputStream os=response.getOutputStream();
os.write(bytes);
}
}catch(Exception e){
logger.error("返回授权函异常"+e.getMessage());
}

}

}

+ 24
- 25
mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java Просмотреть файл

@@ -546,6 +546,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
return new ResultData(ErrorCode.PAY_ORDER_IS_NOT_PAYMENT);
}
WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId());
PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion());
EnumPayShare paySHareEnum = EnumPayShare.getEnum(payAccount.getShare());
if (paySHareEnum != null) {
isShare = paySHareEnum;
@@ -574,23 +575,34 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
record.setPayAmount(record.getPayAmount());
record.setPayVendor(payWay.getCode());
record.setPayVersion(payAccount.getPayVersion());
record.setMchType(payAccount.getMchType());
record.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode());
record.setShare(isShare.getCode());
record.setComposeOrder(EnumComposeOrder.SINGLE.getCode());
if (isShare == EnumPayShare.YES) {
// 分账金额
int iChargeFee = OrderHelper.getMallCharge(record.getPayAmount(), payAccount);
Integer share_amount = record.getPayAmount() - iChargeFee;
record.setShareAmount(share_amount);
if(payAccount.getRealRate() != null) {
int iRealChargeFee = PayUtils.getPayRate(record.getPayAmount(), payAccount.getRealRate(), true);
record.setRateAmount(iRealChargeFee);
}
if (share_amount <= 0) {
isShare = EnumPayShare.NO;
record.setShare(isShare.getCode());

Map<String,WxComposeChildOrderShare> childShares = new HashMap<String,WxComposeChildOrderShare>();
Long merchant_id = null;
String merchant_uid = "";
if(EnumPayMchType.DIRECT.getCode().equals(record.getMchType())){//直连模式记录收款商户
merchant_id = user.getMerchantId();
WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchant_id, null, record.getMchType());
// merchant_uid = wxCouponChannelService.getCouponOneMerchantUid(payWay,merchant_id,o.getTenantId());
// if(null == merchant_id || StringUtils.isBlank(merchant_uid)){
if(receiver == null){
throw new MallinkException(ErrorCode.PAY_ORDER_MERCHANT_UID_ERROR);
}
merchant_uid = receiver.getReceiverAccount();
}
int rate = payShareServie.getOfficialCommission(order,payAccount);//抖音分佣率
logger.info("抖音分佣率"+rate);
PayShareCalculateAmount oShareAmount = payShareServie.calculateAmount(order.getPayment(),rate, payAccount);
logger.info("佣金明细"+ JSON.toJSONString(oShareAmount));
int share_amount = oShareAmount.getShareAmount();
int rate_amount = oShareAmount.getRateAmount();
childShares.put(String.valueOf(order.getId()), new WxComposeChildOrderShare(oShareAmount,merchant_id,merchant_uid,order.getId()));
record.setShareAmount(share_amount);
record.setRateAmount(rate_amount);
record.setChildOrderShare(JSON.toJSONString(childShares));

int sqlRow = wxPayOrderMapper.insert(record);
if (sqlRow != 1) {
@@ -599,19 +611,6 @@ public class WxPayOrderServiceImpl implements WxPayOrderService {
}
} else {
record = list.get(0);
if (null == record.getShare()) {
if (isShare == EnumPayShare.YES) {
int iChargeFee = OrderHelper.getMallCharge(record.getPayAmount(), payAccount);
Integer share_amount = record.getPayAmount() - iChargeFee;
if (share_amount <= 0) {
isShare = EnumPayShare.NO;
}
}
record.setShare(isShare.getCode());
}else {
isShare = EnumPayShare.getEnum(record.getShare());
}
payOrderNo = String.valueOf(record.getId());
}

logger.debug("wxPayRecord md5 before:"+record.toString());


+ 6
- 1
mallinkService/src/main/java/com/iformall/service/order/impl/batch/MulityNumberOneOrderBatchOrderAdapterService.java Просмотреть файл

@@ -54,7 +54,12 @@ public class MulityNumberOneOrderBatchOrderAdapterService extends BaseBatchOrder
@Override
public WxComposeOrder getComposeOrder(Long mainOrderId, String tenantId) {
return super.getComposeOrder(mainOrderId, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH);
WxComposeOrder composeOrder = super.getComposeOrder(mainOrderId, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH);
List<WxOrder> orders = super.getChildOrders(composeOrder, tenantId, EnumComposeOrder.MULITY_NUMBER_ORDER_BATCH);
if (null != orders && orders.size() > 0 ) {
composeOrder.setSingleOrder(orders.get(0));
}
return composeOrder;
}

@Override


+ 17
- 4
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v2/miniApp/maPay/WxMiniMaPayAdapterService.java Просмотреть файл

@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;

import com.iformall.domain.po.*;
import com.iformall.service.order.entity.WxComposeChildOrderShare;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -43,6 +44,11 @@ import me.chanjar.weixin.common.error.WxErrorException;
@Service
public class WxMiniMaPayAdapterService extends BaseWxPayV2AdapterService implements CPassivePayService{

protected String getMerchantUid(WxPayOrder payOrder,WxOrder order) {
WxComposeChildOrderShare share = payOrder.getChildOrderShare(order.getId());
return share.getMerchantUid();
}

private WxMicroPayOrderP generateWxMicroPayOrderP(WxPayAccount payAccount, WxComposeOrder composeOrder, String productName,WxPayOrder record, EnumPayShare isShare,
WxAppinfo appInfo, Date currentDate,String bAppId,String bUserPhone) throws Exception {
String noncestr = Utility.generate32UUID();
@@ -104,7 +110,14 @@ public class WxMiniMaPayAdapterService extends BaseWxPayV2AdapterService impleme
wxPayOrderSP.setAppid(appInfo.getParentAppId());
wxPayOrderSP.setMch_id(payAccount.getMchId());
wxPayOrderSP.setSub_appid(appInfo.getAppId());
wxPayOrderSP.setSub_mch_id(payAccount.getSubMchId());
if (record.getMchType() == EnumPayMchType.DIRECT.getCode()) {
wxPayOrderSP.setSub_mch_id(getMerchantUid(record,composeOrder.getSingleOrder()));
//总分
}else if (record.getMchType() == EnumPayMchType.TOTAL.getCode()) {
wxPayOrderSP.setSub_mch_id(payAccount.getSubMchId());
}else {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"当前支付模式非法");
}
wxPayOrderSP.setDevice_info(bUserPhone);
wxPayOrderSP.setNonce_str(noncestr);
wxPayOrderSP.setBody(productName);
@@ -163,9 +176,9 @@ public class WxMiniMaPayAdapterService extends BaseWxPayV2AdapterService impleme
String productName, EnumPayShare isShare,WxAppinfo appInfo, Date currentDate, PayExtraParam params) throws Exception {
//2.0版本未对接直连模式, 小商户进件成为特约商户号
if (payAccount.getMchType() == EnumPayMchType.DIRECT.getCode()) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"当前支付版本不支持直连模式");
}
// if (payAccount.getMchType() == EnumPayMchType.DIRECT.getCode()) {
// throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"当前支付版本不支持直连模式");
// }
if (payAccount.getType() == EnumPayMode.MCH.getCode()) {
// 扫码支付 普通商户模式
String bAppId = (String) params.getValue("bAppId");


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/pay/service/pay/wx/v3/miniApp/appPay/WxMiniAppPayV3AdapterService.java Просмотреть файл

@@ -77,10 +77,10 @@ public class WxMiniAppPayV3AdapterService extends BaseWxPayV3AdapterService impl
req.setSp_mchid(payAccount.getMchId());
req.setSub_appid(appInfo.getAppId());
//直连
if (payAccount.getMchType() == EnumPayMchType.DIRECT.getCode()) {
if (record.getMchType() == EnumPayMchType.DIRECT.getCode()) {
req.setSub_mchid(getMerchantUid(record,composeOrder.getSingleOrder()));
//总分
}else if (payAccount.getMchType() == EnumPayMchType.TOTAL.getCode()) {
}else if (record.getMchType() == EnumPayMchType.TOTAL.getCode()) {
req.setSub_mchid(payAccount.getSubMchId());
}else {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"当前支付模式非法");


+ 3
- 0
mallinkService/src/main/java/com/iformall/service/pay/service/share/douyin/TtPayShareService.java Просмотреть файл

@@ -267,6 +267,9 @@ public class TtPayShareService extends PayShareBaseAdapterService{

@Override
public int getOfficialCommission(WxOrder o, WxPayAccount payAccount) {
if(!EnumOrderType.COUPON.getCode().equals(o.getType())){
return 0;
}
Long couponId = wxCouponChannelMapper.findCouponIdById(o.getCouponChannelId(), o.getTenantId());
Integer categoryId = wxCouponMapper.findCategoryIdById(couponId,o.getTenantId());
if(categoryId != null){


Загрузка…
Отмена
Сохранить