From 554de444b87aab5f93cb1593a8095612cf9479a7 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期二, 09 六月 2020 17:34:30 +0800 Subject: [PATCH] 订单 --- fanli/src/main/java/com/yeshi/fanli/service/impl/money/extract/ExtractServiceImpl.java | 60 ++++++++++++++++++++++++++++-------------------------------- 1 files changed, 28 insertions(+), 32 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 adc548f..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 { @@ -424,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)); } @@ -523,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()); @@ -546,14 +533,10 @@ } 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(updateExtract, alipayNo); + detailNew = UserMoneyDetailFactory.createExtract(extract, alipayNo); } catch (UserMoneyDetailException e) { e.printStackTrace(); } @@ -603,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(); @@ -624,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 @@ -658,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) @@ -673,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()); } @@ -690,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); @@ -741,7 +726,7 @@ @Override public void testExtractSuccess(Long id) { Extract extract = extractMapper.selectByPrimaryKey(id); - extractSuccess(extract); + extractSuccess(extract,null); Long uid = extract.getUserInfo().getId(); // 鏇存柊瀹℃牳璁板綍 @@ -1352,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