From e7920b14a9baab97035a1a529da85d124a2bcacd Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 16 六月 2020 10:54:29 +0800
Subject: [PATCH] 云发单对测试用户显示

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java |   89 +++++++++++++++++++++++---------------------
 1 files changed, 46 insertions(+), 43 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
index 2f11736..deb88e6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java
@@ -25,10 +25,8 @@
 import org.yeshi.utils.wx.WXPayUtil;
 
 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.response.AlipayFundTransToaccountTransferResponse;
+import com.alipay.api.response.AlipayFundTransUniTransferResponse;
 import com.google.gson.Gson;
 import com.yeshi.fanli.dao.mybatis.AccountMessageMapper;
 import com.yeshi.fanli.dao.mybatis.AlipayAccountValidNormalHistoryMapper;
@@ -58,6 +56,7 @@
 import com.yeshi.fanli.exception.NotExistObjectException;
 import com.yeshi.fanli.exception.ObjectStateException;
 import com.yeshi.fanli.exception.money.UserMoneyDetailException;
+import com.yeshi.fanli.exception.user.AlipayTransferException;
 import com.yeshi.fanli.log.LogHelper;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemConfigService;
@@ -74,6 +73,7 @@
 import com.yeshi.fanli.service.inter.push.PushService;
 import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.util.AlipayUtil;
 import com.yeshi.fanli.util.CMQManager;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
@@ -82,8 +82,6 @@
 import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
-
-import net.sf.json.JSONObject;
 
 @Service
 public class ExtractServiceImpl implements ExtractService {
@@ -178,7 +176,6 @@
 		updateExtract.setId(id);
 		updateExtract.setState(Extract.STATE_PROCESSING);
 		extractMapper.updateByPrimaryKeySelective(updateExtract);
-		// TODO 鏂扮増閮ㄧ讲鍚庡垹闄�
 		// 鏀瑰彉璧勯噾璁板綍鐘舵��
 		UserMoneyDetail detail = userMoneyDetailService.selectByTypeAndUidAndIdentifyCode(
 				UserMoneyDetailTypeEnum.extract, find.getUserInfo().getId(), find.getId());
@@ -327,7 +324,7 @@
 		// 鏂扮増璧勯噾璇︽儏
 		UserMoneyDetail userMoneyDetail = null;
 		try {
-			userMoneyDetail = UserMoneyDetailFactory.createExtract(extract);
+			userMoneyDetail = UserMoneyDetailFactory.createExtract(extract, null);
 		} catch (UserMoneyDetailException e2) {
 			try {
 				LogHelper.errorDetailInfo(e2);
@@ -425,25 +422,14 @@
 	@Transactional
 	private void extractByZhiFuBao(Extract extract, AdminUser adminUser) {
 		LogHelper.userErrorInfo("鎻愮幇:寮�濮嬮�氳繃鎻愮幇-" + extract.getId());
-		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 appName = Constant.systemCommonConfig.getProjectChineseName();
-		JSONObject json = new JSONObject();
-		json.put("out_biz_no", "widthdraw_" + extract.getId());// 鏈�闀块暱搴�64浣嶏紝鏀寔鑻辨枃锛屼笅鍒掔嚎锛屾暟瀛�
-		json.put("payee_type", "ALIPAY_LOGONID");
-		json.put("payee_account", extract.getAccount());
-		json.put("amount", extract.getMoney());
-		json.put("payer_show_name", appName + "App" + "鎻愮幇");
-		json.put("payee_real_name", extract.getName());
-		json.put("remark", "鏉ヨ嚜" + appName + "App" + "鐨勬彁鐜�");
-		request.setBizContent(json.toString());
-		AlipayFundTransToaccountTransferResponse response = null;
+		AlipayFundTransUniTransferResponse response = null;
 		try {
-			response = alipayClient.execute(request);
+			response = AlipayUtil.transfer("widthdraw_" + extract.getId(), extract.getAccount(),  extract.getName(),  extract.getMoney(), "鏉挎牀蹇渷鎻愮幇鍒拌处", "鏉ヨ嚜鏉挎牀蹇渷鐨勬彁鐜�");
 			LogHelper.userErrorInfo("鎻愮幇:鏀粯瀹濋�氳繃鎻愮幇鎴愬姛-" + extract.getId());
 		} catch (AlipayApiException e) {
+			LogHelper.errorDetailInfo(e, "鏀粯瀹濊浆璐﹀紓甯�:" + extract.getId(), "");
+			LogHelper.userErrorInfo("鎻愮幇:鏀粯瀹濇彁鐜板紓甯革細" + response + ",鎻愮幇淇℃伅" + GsonUtil.toJson(extract));
+		}catch(AlipayTransferException e){
 			LogHelper.errorDetailInfo(e, "鏀粯瀹濊浆璐﹀紓甯�:" + extract.getId(), "");
 			LogHelper.userErrorInfo("鎻愮幇:鏀粯瀹濇彁鐜板紓甯革細" + response + ",鎻愮幇淇℃伅" + GsonUtil.toJson(extract));
 		}
@@ -524,7 +510,7 @@
 	 * @param session
 	 */
 	@Transactional
-	private void extractSuccess(Extract extract) {
+	private void extractSuccess(Extract extract,String alipayNo) {
 		// 鑰佺増鏈姛鑳�
 		// List<MoneyRecord> list = moneyRecordDao.list("from MoneyRecord mr
 		// where mr.extract.id = " + extract.getId());
@@ -547,11 +533,25 @@
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
-		List<PayInfo> payInfoList = payInfoMapper.getListbyExtractId(extract.getId());
-		String alipayNo = "";
-		if (payInfoList != null && payInfoList.size() > 0)
-			alipayNo = payInfoList.get(0).getOrderId();
 
+		UserMoneyDetail detailNew = null;
+		try {
+			detailNew = UserMoneyDetailFactory.createExtract(extract, alipayNo);
+		} catch (UserMoneyDetailException e) {
+			e.printStackTrace();
+		}
+
+		// 澶栨樉璐︽埛鏄庣粏
+		UserMoneyDetail userMoneyDetail = userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(
+				UserMoneyDetailTypeEnum.extractNew, extract.getUserInfo().getId(), extract.getId());
+		if (userMoneyDetail != null) {
+			UserMoneyDetail detail = new UserMoneyDetail(userMoneyDetail.getId());
+			detail.setShow(true);
+			detail.setUpdateTime(new Date());
+			if (detailNew != null)
+				detail.setDescInfo(detailNew.getDescInfo());
+			userMoneyDetailMapper.updateByPrimaryKeySelective(detail);
+		}
 		// 鏂扮増閫氱煡
 		userMoneyMsgNotificationService.extractSuccess(extract, alipayNo);
 	}
@@ -586,8 +586,10 @@
 		// 鑾峰彇鎻愮幇锛岃幏鍙栨彁鐜伴獙璇�
 		List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
 		typeList.add(UserMoneyDetailTypeEnum.extract);
+		typeList.add(UserMoneyDetailTypeEnum.extractNew);
 		typeList.add(UserMoneyDetailTypeEnum.extractReject);
 		typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+		typeList.add(UserMoneyDetailTypeEnum.extractVerifyNew);
 		BigDecimal extractMoney = userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, new Date(0),
 				now);
 		extractMoney = extractMoney.abs();
@@ -607,7 +609,7 @@
 		BigDecimal after = hongBaoMoney.subtract(extractMoney.add(weiqaunMoney).add(balance).add(compensateMoney));
 
 		if (after.compareTo(new BigDecimal("0")) != 0)
-			throw new ExtractException(2, "缁撶畻璧勯噾寮傚父");
+			throw new ExtractException(2, "缁撶畻璧勯噾寮傚父锛�" + after);
 	}
 
 	@Override
@@ -641,7 +643,7 @@
 	public void processExtractResult(AlipayTransferResultInfo info) {
 		if (info == null)
 			return;
-		AlipayFundTransToaccountTransferResponse response = info.getAlipayFundTransToaccountTransferResponse();
+		AlipayFundTransUniTransferResponse response = info.getAlipayFundTransUniTransferResponse();
 		Extract extract = info.getExtract();
 		AdminUser admin = info.getAdminUser();
 		if (response == null)
@@ -656,7 +658,7 @@
 		if (response.isSuccess()) {
 			String code = response.getCode();
 			if ("10000".equals(code)) {
-				extractSuccess(extract);
+				extractSuccess(extract,response.getOrderId());
 			} else {
 				extractFail(extract, response.getSubMsg());
 			}
@@ -673,7 +675,7 @@
 			payInfo.setState(2);
 		}
 		payInfo.setOrderId(response.getOrderId());
-		payInfo.setOrdertime(response.getPayDate());
+		payInfo.setOrdertime(response.getTransDate());
 		payInfo.setInfo(response.getSubMsg());
 		payInfoMapper.insertSelective(payInfo);
 
@@ -718,23 +720,13 @@
 			extractAuditRecordMapper.updateByPrimaryKeySelective(auditRecord);
 		}
 
-		// 澶栨樉璐︽埛鏄庣粏
-		UserMoneyDetail userMoneyDetail = userMoneyDetailMapper.selectByTypeAndUidAndIdentifyCode(
-				UserMoneyDetailTypeEnum.extract, extract.getUserInfo().getId(), extract.getId());
-		if (userMoneyDetail != null) {
-			UserMoneyDetail detail = new UserMoneyDetail(userMoneyDetail.getId());
-			detail.setShow(true);
-			detail.setUpdateTime(new Date());
-			userMoneyDetailMapper.updateByPrimaryKeySelective(detail);
-		}
-
 	}
 
 	@Transactional
 	@Override
 	public void testExtractSuccess(Long id) {
 		Extract extract = extractMapper.selectByPrimaryKey(id);
-		extractSuccess(extract);
+		extractSuccess(extract,null);
 		Long uid = extract.getUserInfo().getId();
 
 		// 鏇存柊瀹℃牳璁板綍
@@ -1345,4 +1337,15 @@
 		}
 	}
 
+	
+	@Override
+	public List<Extract> getExtractSucceedRecord(int page, int pageSize, Long uid) {
+		return extractMapper.getExtractSucceedRecord((page-1)*pageSize, pageSize, uid);
+	}
+	
+	@Override
+	public long countExtractSucceedRecord(Long uid) {
+       Long count = extractMapper.countExtractSucceedRecord(uid);
+       return count== null? 0 : count;
+	}
 }

--
Gitblit v1.8.0