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

修改付款方式为平台解冻

简德馨 2 лет назад
Родитель
Сommit
8b08dd31a8

+ 21 - 3
src/main/java/org/springblade/modules/api/controller/Api05Controller.java

@@ -48,6 +48,7 @@ import org.springblade.modules.api.request.OrderTakeRequest;
 import org.springblade.modules.api.response.ConsignResponse;
 import org.springblade.modules.auth.utils.TokenUtil;
 import org.springblade.modules.finance.entity.Order;
+import org.springblade.modules.finance.entity.OrderConsign;
 import org.springblade.modules.finance.entity.OrderGrant;
 import org.springblade.modules.finance.entity.PlatformAuthorization;
 import org.springblade.modules.finance.mapper.PlatformAuthorizationMapper;
@@ -63,6 +64,7 @@ import org.springblade.modules.shopping.vo.ConsignListVO;
 import org.springblade.modules.shopping.vo.ConsignVO;
 import org.springblade.modules.shopping.wrapper.ConsignWrapper;
 import org.springblade.modules.system.entity.UserApp;
+import org.springblade.modules.system.mapper.UserAppMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -97,6 +99,9 @@ public class Api05Controller extends BladeController {
 	@Resource
 	private PlatformAuthorizationMapper paMapper;
 
+	@Resource
+	private UserAppMapper userAppMapper;
+
 	//抢购
 	private static final String TRADE_URL = "/api/v1/aliPay/sdk/trade_notify_url";
 	@Autowired
@@ -158,7 +163,19 @@ public class Api05Controller extends BladeController {
 				response = orderService.consignGrant(query, request.getConsignConfigId(), request.getOrderNo());
 				//返回订单号
 				response.setOutTradeNo(outTradeNo);
-				boolean flg = orderConsign(outTradeNo, request.getOrderNo());
+				//获取当前订单信息
+				OrderConsign orderConsign = orderConsignService.getOne(Wrappers.lambdaQuery(OrderConsign.class).eq(OrderConsign::getOutTradeNo,outTradeNo));
+				String collectionAccount = properties.getPayeeUserId();//默认为系统收单庄户
+				if (0 != orderConsign.getConsignUserId()){//如果为用户单则修改收款账户单为用户支付宝账户
+					//等于用户单时进行用户打款操作
+					//获取寄售用户支付至账号进行打款
+					LambdaQueryWrapper<UserApp> wrapper = Wrappers.lambdaQuery(UserApp.class);
+					wrapper.eq(UserApp::getUserId,orderConsign.getConsignUserId());
+					UserApp collectionUser = userAppMapper.selectOne(wrapper);
+					collectionAccount = collectionUser.getAlipayUserId();
+				}
+				//使用收款账户进行打款
+				boolean flg = orderConsign(outTradeNo, request.getOrderNo(),collectionAccount);
 				if (flg){//是否发起统一收单
 					//修改授权状态
 					flg = orderGrantService.thaw(orderGrant);//flg = true
@@ -342,7 +359,7 @@ public class Api05Controller extends BladeController {
 	 * @param orderNo 授权
 	 * @return R
 	 */
-	public boolean orderConsign(String outTradeNo, String orderNo) {
+	public boolean orderConsign(String outTradeNo, String orderNo, String collectionAccount) {
 		//查询抢购订单数据
 		Order order = orderService.getOne(Wrappers.<Order>lambdaQuery().eq(Order::getOutTradeNo, outTradeNo));
 		if (ObjectUtil.isNull(order)){
@@ -371,7 +388,8 @@ public class Api05Controller extends BladeController {
 			//授权数量不为1时,交易继续,只进行收单操作
 			data.put("auth_confirm_mode", "NOT_COMPLETE");//不解冻
 		}
-		data.put("seller_id", properties.getPayeeUserId()); //收款方
+		data.put("seller_id", collectionAccount); //收款方
+//		data.put("seller_id", properties.getPayeeUserId()); //收款方
 		data.put("buyer_id", query.getAlipayUserId()); //买家ID //2088012801069195
 		//APP支付
 		AlipayTradePayRequest request = new AlipayTradePayRequest();