Explorar o código

平台兜底,付款修改状态v02

简德馨 %!s(int64=2) %!d(string=hai) anos
pai
achega
98a84935a8

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

@@ -206,7 +206,10 @@ public class Api05Controller extends BladeController {
 		if(0 == payRequest.getPayType()){//等于0时进行打款操作
 			List<Consign> consigns = consignService.listByIds(payRequest.getConsignId());
 			for (Consign consign : consigns) {
-				iTradeService.transfer(consign);
+				if(consign.getConsignState() == 2){
+					UserApp userApp = userAppMapper.selectById(consign.getConsignUserId());
+					iTradeService.transfer(userApp, consign.getConsignPrice().toString(), consign.getConsignConfigId());
+				}
 			}
 			return R.success("确认付款成功");
 		} else {

+ 9 - 0
src/main/java/org/springblade/modules/api/service/ITradeService.java

@@ -39,6 +39,15 @@ public interface ITradeService {
 	 */
 	void transfer(Consign consign);
 
+	/**
+	 * 用户仓单收款
+	 * 1、向用户打款
+	 * 2、修改寄售订单金额
+	 * @param user 用户
+	 * @param transAmount 金额
+	 * @param orderConsignId 寄售(进货)Id
+	 */
+	void transfer(UserApp user, String transAmount, Long orderConsignId);
 
 	/**
 	 * 寄售用户

+ 96 - 0
src/main/java/org/springblade/modules/api/service/impl/TradeServiceImpl.java

@@ -173,6 +173,102 @@ public class TradeServiceImpl implements ITradeService {
 
 	}
 
+	/**
+	 * 用户仓单收款
+	 * 1、向用户打款
+	 * 2、修改寄售订单金额
+	 * @param user 用户
+	 * @param transAmount 金额
+	 * @param orderConsignId 寄售(进货)Id
+	 */
+	@Override
+	public void transfer(UserApp user, String transAmount, Long orderConsignId){
+		OrderConsign orderConsign = new OrderConsign();
+		orderConsign.setId(orderConsignId);
+		orderConsign.setConfirmTime(DateUtil.now());
+		if (user == null){
+			orderConsign.setIsConfirm(3);//异常
+			orderConsign.setBody("该用户不存在");
+			orderConsignService.updateById(orderConsign);
+			return;
+		}
+		if (StringUtil.isEmpty(user.getAlipayUserId())){
+			orderConsign.setIsConfirm(3);//异常
+			orderConsign.setBody("用户【" + user.getUserId() +" 】无支付宝账号数据");
+			orderConsignService.updateById(orderConsign);
+			return;
+		}
+		User u = userService.getById(user.getUserId());
+		if (u == null){
+			orderConsign.setIsConfirm(3);//异常
+			orderConsign.setBody("该用户不存在,可能被删除或者冻结");
+			orderConsignService.updateById(orderConsign);
+			return;
+		}
+		if (StringUtil.isEmpty(u.getRealName())){
+			orderConsign.setIsConfirm(3);//异常
+			orderConsign.setBody("该用户无法获取真实名字");
+			orderConsignService.updateById(orderConsign);
+			return;
+		}
+		String identity = user.getAlipayUserId();
+		String name = u.getRealName();
+		try {
+			String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCU4XTbNjnNOmuEnwBEgUBOVLK5CaUiUFKEkVW1/2sTlijARZzLtzwXfbkvzHEhCSu+E+OA1Futbh5HwNAC06bvqYDS+TXrFuZ0LcDaU92lk5Hp/ed8NhRXtm0gss1TS0vebOq+3kejErIvVCg9kNMrYMrmdf8G0+zKlCp3vrfdM37IeLXp3GoOckNzHh/LT7rLd7/9QcdSCPixPSwusrfCusw3H093cuWkV9WX4Go/zHTL9rAEwJPOn36OhyVc1oG113ZJiVg7KgsZGOCJJyh9BvlKq2vuKxnylQwq9Kh5e+BfP2FSWs7a1XMj/79JsZTxztJ9tFqcSXQh99vq1nd1AgMBAAECggEAVglIT5oxoxEcq0J7lBshf2Lg+Z/CR2clmKioYImfZm1DVYGlD/DvECA+kYnS4qV7GthBg+S0qi/V3d9mFgwcD6nj4YfVCets+Dyskz8d+p6iFxf820IhVWL+A4Rwta7wxDQrIGwx9+JJCKLYsmNsNUg1WSNdYqO71oHzXMnhVTmYJ6sKOrrBucyI4Ydu9UbfN+DRRGD9seL+Nxh1V2PPXs4ftk2kRlG18LaTPgFba1g8QBIpGDR9gFqM+DvBHUxAWsPRnL1+q0c6o5Ndk7W5f7Ob1zxF/lgqHudiG38jItkwc7MLMOYjbV5wiJPZc93nsHS1CKPSEX9/snNLnx2LQQKBgQDMyLBVVasfTMQpMjyi+Jof9JLHPiRP3dEHwZECUgfdWhPoidLjK9y1wszmCLrcg01842WufrpbJ1QXs+g8x6+DhLHvcKum1znsvQKWdy/2V6a2eahNHsYi1Qus+N0dFgotfZwfElfkIU/jAwh6OnYPCXQCVmdvoxzmdk81L04d5QKBgQC6HY6EZ8o4mo4CzDss2qxT2oKuiI0clnbDPC9LJzkRBVbHosx6AO+C3RyfREZxMzNhYW3XnozifDyRw6rlvI6toE3l9ku71dJS1aKZwbH/h0rdHXXqDHARYc9rdwCzOM2t2Kve/PgXxCDQdwY/m0deXM22oKdOlb7miz2YTGLaUQKBgEg8qucPNzPtUmztybH7W/LVxUj/RLPfnTLNNyfIY/nTIp6ur3NvL4X2V2z1u2S59IWPeXjaP0aUUvehgNSf4+vSzSmXZxWNamN2MQl+ta6CMM7Bj3rU1jPHTz0O9ICkG6b8Xiwfvl082v9LPJxRLwAS55dDf21D7pflN/+c1kN5AoGARaRHrt3TeojCuONJBUiyERKDseFgxCC9QeLkY3/Cx86yoTMWxlRRSyuHyUTYAwXApSC65GLsntcUJwsLiLmcvfVtEK6vuhKRh/Nuy5ACFfa/Gawrci/DQ43Q+opmFaoctH+OGHuaLfJywO64xNZKx1F8nGjTEgHQlB3oJ3P1zXECgYBW/GRUU+SevGeLjZTZ9WqG+ztseItnmEwmar9tGhR9TNv3vDiL5/fsAfI8ApMiIzDe6+QfS5Lxx5rD6V4Et/zBpsf8JzqP2eDiTe9UiHxDr2v5NIxelf404VZcdRh83u84lCJTa/ZYanFu94UW6h70MHhDWtiWddtFR3EXt5hD9w==";
+			String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhIxPBQL0OKBc6fcU/9PdVTMA7L2s314oU2w1q06ywQSDdhF3RY1Bo0Eqh4Zg8QpPirFeyAc4rhFjyKZRlngQXrybcAhUfswD86QQGodObe3aA9bbWdXiTt10Q5CBk5GImadNiEW6Adh+0bY5ezf1RbxIjbGDfH6x5gatZnpjPswiHMQnskZtg9JSfE2u8WEKuSaH8yhnkllHpIHWnWvFvXwNVNycXdmDrEe7gIB1yCouNK6/DZ7IQH2AajSuvbxmCqO0MzywEfgvLqE0GFVsKKmXvgJebRAnW9RmGhmrxvEIceXCjR3tbxM9gX8lioDlqKnBootTgAbjIJ5VrPvKPwIDAQAB";
+			AlipayConfig alipayConfig = new AlipayConfig();
+			alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
+			alipayConfig.setAppId("2021003125657245");
+			alipayConfig.setPrivateKey(privateKey);
+			alipayConfig.setFormat("json");
+			alipayConfig.setAlipayPublicKey(alipayPublicKey);
+			alipayConfig.setCharset("UTF8");
+			alipayConfig.setSignType("RSA2");
+			//设置应用公钥证书路径//appCertPublicKey_2021003125657245
+			alipayConfig.setAppCertPath(properties.getAppCertPath());
+			//设置支付宝公钥证书路径//alipayCertPublicKey_RSA2
+			alipayConfig.setAlipayPublicCertPath(properties.getAliPayCertPath());
+			//设置支付宝根证书路径
+			alipayConfig.setRootCertPath(properties.getAliPayRootCertPath());
+			AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
+			AlipayFundTransUniTransferModel model = new AlipayFundTransUniTransferModel();
+			model.setOutBizNo(CommonUtil.genTimeID());
+			model.setRemark("贵州中宏科技有限公司进货仓单收款");
+			model.setBusinessParams("{\"payer_show_name_use_alias\":\"true\"}");
+			model.setBizScene("DIRECT_TRANSFER");
+			Participant payeeInfo = new Participant();
+			payeeInfo.setIdentity(identity);
+			payeeInfo.setIdentityType("ALIPAY_USER_ID");
+			payeeInfo.setName(name);
+			model.setPayeeInfo(payeeInfo);
+			model.setTransAmount(transAmount);
+			model.setProductCode("TRANS_ACCOUNT_NO_PWD");
+			model.setOrderTitle("进货仓单收款");
+			AlipayFundTransUniTransferRequest request = new AlipayFundTransUniTransferRequest();
+			request.setBizModel(model);
+			AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
+			if (!response.isSuccess()){
+				log.info("向用户【" + name +" 】打款失败,打款账号:"  + identity);
+				logger.info("打款失败", ",打款人:" + name + "支付宝账号:" + identity);
+				orderConsign.setBody("向用户【" + name +" 】打款失败,打款账号:"  + identity);
+				orderConsign.setIsConfirm(3);//异常
+			}else{
+				log.info("向用户【" + name +" 】打款成功,打款账号:"  + identity);
+				logger.info("打款成功", ",打款人:" + name + "支付宝账号:" + identity);
+				orderConsign.setBody("向用户【" + name +" 】打款成功,打款账号:"  + identity);
+				orderConsign.setIsConfirm(2);//确认
+			}
+			orderConsignService.updateById(orderConsign);
+		} catch (AlipayApiException e) {
+			e.printStackTrace();
+			logger.info("打款失败", ",打款人:" + name + "支付宝账号:" + identity);
+			orderConsign.setIsConfirm(3);//异常
+			orderConsign.setBody(e.getMessage());
+			orderConsignService.updateById(orderConsign);
+		}
+
+	}
+
 	@Override
 	public boolean platformReceipt(Long consignId) {
 		//查询未抢的单