|
@@ -174,8 +174,24 @@ public class Api05Controller extends BladeController {
|
|
|
UserApp collectionUser = userAppMapper.selectOne(wrapper);
|
|
|
collectionAccount = collectionUser.getAlipayUserId();
|
|
|
}
|
|
|
+ //查询寄售商品
|
|
|
+ Consign consign = consignService.getById(orderConsign.getConsignId());
|
|
|
+ //收款金额 默认等于抢购金额
|
|
|
+ BigDecimal collectionPrice = new BigDecimal(consign.getConsignPrice());
|
|
|
+ //判断商品抢购价和进货价是否产生收益
|
|
|
+ if(consign.getObtainPrice() < consign.getConsignPrice()){
|
|
|
+ //收益金额
|
|
|
+ BigDecimal bigDecimal = new BigDecimal(consign.getConsignPrice()).subtract(new BigDecimal(consign.getObtainPrice())).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //税费金额
|
|
|
+ BigDecimal bigDecimal1 = bigDecimal.multiply(new BigDecimal(0.03)).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //收款金额需扣除税费
|
|
|
+ collectionPrice = new BigDecimal(consign.getConsignPrice()).subtract(bigDecimal1).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ //将税费扣除到平台账户
|
|
|
+ orderConsign(outTradeNo, request.getOrderNo(), properties.getPayeeUserId(), orderConsign.getConsignPrice());
|
|
|
+ }
|
|
|
+
|
|
|
//使用收款账户进行打款
|
|
|
- boolean flg = orderConsign(outTradeNo, request.getOrderNo(),collectionAccount);
|
|
|
+ boolean flg = orderConsign(outTradeNo, request.getOrderNo(), collectionAccount, collectionPrice.doubleValue());
|
|
|
if (flg){//是否发起统一收单
|
|
|
//修改授权状态
|
|
|
flg = orderGrantService.thaw(orderGrant);//flg = true
|
|
@@ -354,14 +370,16 @@ public class Api05Controller extends BladeController {
|
|
|
|
|
|
/**
|
|
|
* 预支付统一收单
|
|
|
- *
|
|
|
* @param outTradeNo 订单号
|
|
|
* @param orderNo 授权
|
|
|
+ * @param collectionAccount 收款账户
|
|
|
+ * @param price 打款金额
|
|
|
* @return R
|
|
|
*/
|
|
|
- public boolean orderConsign(String outTradeNo, String orderNo, String collectionAccount) {
|
|
|
+ public boolean orderConsign(String outTradeNo, String orderNo, String collectionAccount, Double price) {
|
|
|
//查询抢购订单数据
|
|
|
Order order = orderService.getOne(Wrappers.<Order>lambdaQuery().eq(Order::getOutTradeNo, outTradeNo));
|
|
|
+
|
|
|
if (ObjectUtil.isNull(order)){
|
|
|
return false;
|
|
|
}
|
|
@@ -376,7 +394,7 @@ public class Api05Controller extends BladeController {
|
|
|
UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, orderGrant.getUserId()));
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("out_trade_no", outTradeNo);
|
|
|
- data.put("total_amount", orderGrant.getPrice());
|
|
|
+ data.put("total_amount", price);
|
|
|
data.put("subject", "中宏酒业");
|
|
|
data.put("product_code", "PRE_AUTH_ONLINE");
|
|
|
data.put("auth_no", orderGrant.getAuthNo());
|