diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java index 32d5cf9e2..753c3ba7e 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java @@ -23,9 +23,11 @@ import com.simple.service.WxOrderService; import com.simple.service.WxPayOrderService; import com.simple.utils.*; import io.swagger.models.auth.In; +import jdk.nashorn.internal.ir.IdentNode; import me.chanjar.weixin.common.error.WxErrorException; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; +import org.omg.PortableInterceptor.SYSTEM_EXCEPTION; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.simple.common.IdWorker; @@ -154,8 +156,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { record.setShare(isShare.getCode()); if (isShare == EnumPayShare.YES) { // 分账金额 - Float dChargeFee = record.getPayAmount()*1.0f*payAccount.getRate()/1000; - Integer share_amount = record.getPayAmount() - Math.round(dChargeFee.floatValue()); + Double dChargeFee = Math.ceil(record.getPayAmount()*1.0D*payAccount.getRate()/1000); + Integer share_amount = record.getPayAmount() - dChargeFee.intValue(); record.setShareAmount(share_amount); } @@ -914,4 +916,12 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { throw new MallinkException(ErrorCode.TEMPLATE_SEND_FAILED); } } + + public static void main(String [] args) { + Integer v = 500; + Integer rate = 6; + Double dChargeFee = Math.ceil(v*1.0D*6/1000); + Integer share_amount = v - dChargeFee.intValue(); + System.out.println("share value " + share_amount); + } }