瀏覽代碼

新增税费扣除

简德馨 2 年之前
父節點
當前提交
84c1034119
共有 1 個文件被更改,包括 22 次插入4 次删除
  1. 22 4
      src/main/java/org/springblade/modules/api/controller/Api05Controller.java

+ 22 - 4
src/main/java/org/springblade/modules/api/controller/Api05Controller.java

@@ -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());