Browse Source

处理管理平台需要审核的问题。
处理直接转账给卖家时,卖家应收没有记录

yujia 7 năm trước cách đây
mục cha
commit
b3f93e378b

+ 1 - 1
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankInfoServiceImpl.java

@@ -85,7 +85,7 @@ public class BankInfoServiceImpl implements BankInfoService {
 				bankInfo.setNum(count + 1);
 			}
 		}
-		if (AccountType.RECEIVE_TYPE.equals(bankInfo.getAccountType())) {
+		if (AccountType.RECEIVE_TYPE.equals(bankInfo.getAccountType()) && (!sysConf.getEnUU().equals(bankInfo.getEnuu()))) {
 			bankInfo.setStatus(Status.SUBMITTED.value());
 		}
 

+ 28 - 27
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2c.fa.payment.service.impl;
 
 import com.uas.platform.b2c.common.account.dao.EnterpriseDao;
 import com.uas.platform.b2c.common.account.model.Enterprise;
+import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
@@ -38,6 +39,7 @@ import com.uas.platform.core.persistence.criteria.CriterionExpression;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Sort;
@@ -275,7 +277,19 @@ public class BankTransferServiceImpl implements BankTransferService {
 		// 将转账信息的ID保存到订单类型中
 		String[] orderIds = order.split("-");
 		BankTransfer saveBankTransfer = new BankTransfer();
-
+        User user = SystemSession.getUser();
+        bankTransfer.setPayUseruu(user.getUserUU());
+        bankTransfer.setPayenuu(user.getEnterprise() != null ? user.getEnterprise().getUu() : null);
+        if (bankTransfer.getPayenuu() == null) {
+            bankTransfer.setDissociative(Type.PERSONAL.value());
+        } else {
+            bankTransfer.setDissociative(Type.ENTERPRISING.value());
+        }
+        bankTransfer.setTransferTime(new Date());
+        bankTransfer.setTranferCreateTime(new Date());
+        bankTransfer.setBuyername(user.getUserName());
+        bankTransfer.setBuyerentername(user.getEnterprise().getEnName());
+        bankTransfer.setOrderid(order);
 		if (com.uas.platform.b2c.core.constant.Type.PAIDTOVENDOR.name().equals(bankTransfer.getType())) {// 付款类型为分期付款
 			if (orderIds.length > 1)
 				throw new IllegalOperatorException("多张订单合并付款只能向平台支付,如需直接支付给卖家,请前往 订单中心 进行单张支付");
@@ -287,15 +301,13 @@ public class BankTransferServiceImpl implements BankTransferService {
 				throw new IllegalOperatorException("您操作的订单不在待付款状态:" + orderIds[0]);
 			}
 
-			bankTransfer.setPayUseruu(SystemSession.getUser().getUserUU());
-			bankTransfer.setPayenuu(SystemSession.getUser().getEnterprise() != null ? SystemSession.getUser().getEnterprise().getUu() : null);
-			if (bankTransfer.getPayenuu() == null) {
-				bankTransfer.setDissociative(Type.PERSONAL.value());
-			} else {
-				bankTransfer.setDissociative(Type.ENTERPRISING.value());
-			}
-
-			List<BankInfo> bankInfos = bankInfoService.getEnterpriseBankInfoContainsStatus(Type.SUP.value(), Status.ALLOW.value(), orderN.getSellerenuu());
+            List<Purchase> purchaseList = purchaseDao.findByOrderid(orderN.getOrderid());
+            String puid = "";
+            for (Purchase purchase : purchaseList) {
+                puid += ("," + purchase.getPurchaseid());
+            }
+            puid = puid.substring(1);
+            List<BankInfo> bankInfos = bankInfoService.getEnterpriseBankInfoContainsStatus(Type.SUP.value(), Status.ALLOW.value(), orderN.getSellerenuu());
 			if (CollectionUtils.isEmpty(bankInfos))
 				throw new IllegalOperatorException("卖家收款账户不存在,请联系卖家");
 			Enterprise enterprise = enterpriseDao.findByUu(orderN.getSellerenuu());
@@ -304,11 +316,11 @@ public class BankTransferServiceImpl implements BankTransferService {
 
 			bankTransfer.setCollectUseruu(enterprise.getEnAdminuu());
 			bankTransfer.setCollectenuu(orderN.getSellerenuu());
+            bankTransfer.setJsonReceive(FlexJsonUtils.toJson(bankInfos.get(0)));
 
 			bankTransfer.setBanktranssn(EncodingRulesConstant.BANKTRANSFER.replace("_TIMESTAP_NUMBER", createNumberService.getTimeNumber("trade$bank_transfer", 8)));
-			bankTransfer.setTranferCreateTime(new Date());
 			bankTransfer.setOperateType(Type.SUP.value());
-
+            bankTransfer.setPuid(puid);
 			saveBankTransfer = bankTransferDao.save(bankTransfer);
 
 			BankTransAssociate bankTransAssociate = new BankTransAssociate();
@@ -317,7 +329,7 @@ public class BankTransferServiceImpl implements BankTransferService {
 			btaDao.save(bankTransAssociate);
 
 			orderN.setBanktfid(saveBankTransfer.getId());
-			Long userUU = SystemSession.getUser().getUserUU();
+			Long userUU = user.getUserUU();
 			orderN.setStatusPaid(userUU);
 			Set<OrderDetail> orderDetails = orderN.getOrderDetails();
 			for (OrderDetail orderDetail : orderDetails) {
@@ -333,8 +345,7 @@ public class BankTransferServiceImpl implements BankTransferService {
 			orderN.setPaytype(Type.Payment_CompanyTransfer_Code.value());
 
 			//修改采购单的状态
-			List<Purchase> purchases = purchaseDao.findByOrderid(orderN.getOrderid());
-			for (Purchase purchase : purchases) {
+			for (Purchase purchase : purchaseList) {
 				if(purchase.getStatus().intValue() == Status.TOBECONFIRMED.value()) {
 					Set<PurchaseDetail> purchaseDetails = purchase.getPurchaseDetails();
 					for (PurchaseDetail purchaseDetail : purchaseDetails) {
@@ -345,24 +356,15 @@ public class BankTransferServiceImpl implements BankTransferService {
 					purchase.setStatusPaid(userUU);
 				}
 			}
-			purchaseDao.save(purchases);
+			purchaseDao.save(purchaseList);
 			orderDao.save(orderN);
 			// 单期分期付款
 			installmentService.paidInstallment(bankTransfer, orderN.getId());
 		} else {
-			bankTransfer.setPayUseruu(SystemSession.getUser().getUserUU());
-			bankTransfer.setPayenuu(SystemSession.getUser().getEnterprise() != null ? SystemSession.getUser().getEnterprise().getUu() : null);
-			if (bankTransfer.getPayenuu() == null) {
-				bankTransfer.setDissociative(Type.PERSONAL.value());
-			} else {
-				bankTransfer.setDissociative(Type.ENTERPRISING.value());
-			}
-
 			bankTransfer.setCollectUseruu(sysConf.getAdminUU()); // 收款方 设置为应鹏账号
 			bankTransfer.setCollectenuu(sysConf.getEnUU()); // 收款方设置为B2C的uu
 
 			bankTransfer.setBanktranssn(EncodingRulesConstant.BANKTRANSFER.replace("_TIMESTAP_NUMBER", createNumberService.getTimeNumber("trade$bank_transfer", 8)));
-			bankTransfer.setTranferCreateTime(new Date());
 			bankTransfer.setOperateType(Type.MALL.value());
 
 			saveBankTransfer = bankTransferDao.save(bankTransfer);
@@ -383,14 +385,13 @@ public class BankTransferServiceImpl implements BankTransferService {
 				btaDao.save(bankTransAssociate);
 
 				orderN.setBanktfid(saveBankTransfer.getId());
-				Long userUU = SystemSession.getUser().getUserUU();
+				Long userUU = user.getUserUU();
 				orderN.setStatusPaid(userUU);
 				Set<OrderDetail> orderDetails = orderN.getOrderDetails();
 				for (OrderDetail orderDetail : orderDetails) {
 					if(orderDetail.getStatus().intValue() == Status.TOBEPAID.value()) {
 						orderDetail.setStatusPaid(userUU);
 					}
-
 				}
 				orderN.setRemitteeType(bankTransfer.getType());
 				orderN.setBuyaccount(bankTransfer.getJsonPament());