From 3e4ef41ffacd7f5fda2e81c3810cd11a6375b83c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 15 六月 2020 16:32:35 +0800
Subject: [PATCH] 好单库转链支持

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java |   47 ++++++++++++-----------------------------------
 1 files changed, 12 insertions(+), 35 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java
index 967335b..c10d9f9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/BindingAccountServiceImpl.java
@@ -4,7 +4,6 @@
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 
 import javax.annotation.Resource;
 
@@ -14,8 +13,9 @@
 import com.alipay.api.AlipayApiException;
 import com.alipay.api.AlipayClient;
 import com.alipay.api.DefaultAlipayClient;
-import com.alipay.api.request.AlipayFundTransToaccountTransferRequest;
+import com.alipay.api.request.AlipayFundTransUniTransferRequest;
 import com.alipay.api.response.AlipayFundTransToaccountTransferResponse;
+import com.alipay.api.response.AlipayFundTransUniTransferResponse;
 import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
 import com.yeshi.fanli.dao.mybatis.BindingAccountMapper;
 import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
@@ -38,8 +38,10 @@
 import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
 import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
 import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
+import com.yeshi.fanli.util.AlipayUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
 
 import net.sf.json.JSONObject;
@@ -116,7 +118,7 @@
 		return bindingAccountMapper.deleteByPrimaryKey(id);
 	}
 
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	@Override
 	public void validAlipayAccount(Long uid, String account, String name)
 			throws AlipayTransferException, AlipayApiException, AlipayAccountException {
@@ -134,7 +136,6 @@
 						"璇ユ敮浠樺疂璐﹀彿宸茶鍏朵粬璐﹀彿缁戝畾锛岃鏇存崲鍏朵粬鐨勬敮浠樺疂璐﹀彿鏉ョ粦瀹�");
 		}
 
-		// TODO 鍋氶鐜囬獙璇�-姣忔湀楠岃瘉涓�娆�
 		AlipayAccountValidNormalHistory latest = alipayAccountValidNormalHistoryMapper.selectLatestByUid(uid);
 		if (latest != null) {
 			Calendar caLatest = Calendar.getInstance();
@@ -176,7 +177,7 @@
 		if (userInfo.getMyHongBao().compareTo(money) >= 0) {
 			// 鎵f
 			userMoneyService.subUserMoney(uid, money, userMoneyDetail);
-			userMoneyMsgNotificationService.alipayAccountValid(history);
+			userMoneyMsgNotificationService.alipayAccountValid(history,"1涓湀",latest!=null);
 		} else {// 浣欓涓嶈冻锛屾殏鏃朵笉鎵f锛屽姞鍏ュ�熻捶鍏崇郴
 			UserMoneyDebt debt = new UserMoneyDebt();
 			debt.setCreateTime(new Date());
@@ -197,34 +198,12 @@
 
 	private void transferAlipayWithVerify(String account, String name)
 			throws AlipayTransferException, AlipayApiException {
-		String privateKey = Constant.alipayConfig.getPrivateKey();
-		AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",
-				Constant.alipayConfig.getAppId(), privateKey, "json", "gbk", null, "RSA2");
-		AlipayFundTransToaccountTransferRequest request = new AlipayFundTransToaccountTransferRequest();
-		String uuid = UUID.randomUUID().toString().replace("-", "");
+		String outBizNo=StringUtil.Md5(account)+TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyyMMdd");
 		String appName = Constant.systemCommonConfig.getProjectChineseName();
-		JSONObject json = new JSONObject();
-		json.put("out_biz_no", uuid);
-		json.put("payee_type", "ALIPAY_LOGONID");
-		json.put("payee_account", account);
-		json.put("amount", "0.1");
-		json.put("payer_show_name", appName + "鏀粯瀹濋獙璇�");
-		json.put("payee_real_name", name);
-		json.put("remark", "鏉ヨ嚜" + appName + "鐨勬敮浠樺疂楠岃瘉鎵撴");
-		request.setBizContent(json.toString());
-		AlipayFundTransToaccountTransferResponse response = null;
-		response = alipayClient.execute(request);
-		// 鎴愬姛杞处
-		if (response != null && response.isSuccess() && "10000".equals(response.getCode())) {
-			return;
-		} else// 杞处澶辫触
-		{
-			throw new AlipayTransferException(Integer.parseInt(response.getCode()), response.getSubCode(),
-					response.getSubMsg());
-		}
+		AlipayUtil.transfer(outBizNo, account, name, new BigDecimal("0.1"), appName + "鏀粯瀹濋獙璇�", "鏉ヨ嚜" + appName + "鐨勬敮浠樺疂楠岃瘉鎵撴");
 	}
 
-	@Transactional
+	@Transactional(rollbackFor=Exception.class)
 	@Override
 	public BindingAccount changeAlipayBindingWithVerify(Long uid, String name, String account)
 			throws AlipayTransferException, AlipayApiException, AlipayAccountException {
@@ -236,7 +215,7 @@
 			// 鎵嬫満鍙锋洿鎹㈢粦瀹氱殑7澶╁唴涓嶈兘鎻愮幇
 			if (history != null && !history.getFirst()
 					&& (System.currentTimeMillis() - history.getCreateTime().getTime()) < 1000 * 60 * 60 * 24 * 7L) {
-				throw new AlipayAccountException(111, "淇敼鎵嬫満鍙�7澶╁唴涓嶅厑璁镐慨鏀规敮浠樺疂璐﹀彿");
+				throw new AlipayAccountException(111, "淇敼鎵嬫満鍙峰悗锛�7澶╁唴鏃犳硶鏇存崲鎻愮幇璐﹀彿");
 			}
 		}
 
@@ -283,10 +262,8 @@
 		}
 		AlipayAccountValidNormalHistory latest = alipayAccountValidNormalHistoryMapper.selectLatestByUid(uid);
 		if (latest != null) {
-			Calendar caLatest = Calendar.getInstance();
-			caLatest.setTimeInMillis(latest.getCreateTime().getTime());
-			Calendar nowLatest = Calendar.getInstance();
-			if (caLatest.get(Calendar.MONTH) == nowLatest.get(Calendar.MONTH))// 涓婃鏇存敼鍜岀幇鍦ㄦ槸鍚屼竴涓湀
+			if (TimeUtil.getGernalTime(System.currentTimeMillis(), "yyyy-MM")
+					.equalsIgnoreCase(TimeUtil.getGernalTime(latest.getCreateTime().getTime(), "yyyy-MM")))// 涓婃鏇存敼鍜岀幇鍦ㄦ槸鍚屼竴骞村悓涓�涓湀
 				throw new BindingAccountException(2, "姣忔湀浠呭彲淇敼1娆℃彁鐜拌处鍙凤紝璇蜂笅鏈堝啀璇曞惂銆�");
 		}
 		return true;

--
Gitblit v1.8.0