From 3579201658f94480a8421507c24d2ece83dbf0c7 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期一, 15 六月 2020 14:55:00 +0800 Subject: [PATCH] 云发单相关 --- fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java | 62 +++++++++++++++++++----------- 1 files changed, 39 insertions(+), 23 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java b/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java index e3f3981..3d60728 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/manger/alipay/UserCloudAlipayManager.java @@ -1,24 +1,25 @@ package com.yeshi.fanli.service.manger.alipay; -import java.util.HashMap; -import java.util.Map; - import javax.annotation.Resource; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import com.alipay.api.response.AlipayTradeQueryResponse; +import com.yeshi.fanli.dto.AlipayTradeWapPayDTO; import com.yeshi.fanli.entity.bus.user.cloud.CloudOrderMenuEnum; +import com.yeshi.fanli.entity.bus.user.cloud.UserCloud; import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.exception.user.cloud.UserCloudException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudGroupService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudManageService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService; import com.yeshi.fanli.service.inter.user.cloud.UserCloudService; +import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.alipay.AlipayApi; -import com.yeshi.fanli.util.alipay.AlipayWapConfig; /** * 浜戝彂鍗曟敮浠樼鐞� @@ -61,31 +62,36 @@ if (menuEnum == null) throw new UserCloudException(1, "濂楅绫诲瀷涓嶅尮閰�"); + UserCloud userCloud = userCloudService.getLastByUid(uid); + if (userCloud != null) { + // 缁垂 + boolean renew = false; + if (userCloud.getEndTime().getTime() > java.lang.System.currentTimeMillis()) + renew = true; + // 楠岃瘉濂楅鏄惁鐩稿悓 + if (renew && userCloud.getRobotType() != menuEnum.getRobotType()) { + LogHelper.cloudInfo("鏂规硶openCloud: [uid=" + uid + "]宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�"); + throw new UserCloudException(1, "宸叉湁鍏朵粬浜戝彂鍗曞椁愯繕鏈粨鏉�"); + } + } + // 璁㈠崟淇℃伅 UserCloudOrder cloudOrder = userCloudOrderService.addCloudOrder(uid, type); if (cloudOrder == null || cloudOrder.getId() == null) throw new UserCloudException(1, "鍒涘缓璁㈠崟淇℃伅澶辫触"); - // 寰呰姹傚弬鏁版暟缁� - Map<String, String> map = new HashMap<String, String>(); - map.put("seller_id", AlipayWapConfig.SELLER_ID);// 鏀舵鏂硅处鍙� - // 璁㈠崟鍙� - map.put("out_trade_no", TRADE_INDEX + cloudOrder.getId()); - // 璁㈠崟閲戦:0.01鍏冿紝绮惧噯鍒板垎 - map.put("total_amount", menuEnum.getMoney() + ""); - // 璁㈠崟鏍囬 - map.put("subject", "浜戝彂鍗曞厖鍊�"); - // 閿�鍞骇鍝佺爜锛屽晢瀹跺拰鏀粯瀹濈绾︾殑浜у搧鐮� - map.put("product_code", type); - // 璇ョ瑪璁㈠崟鍏佽鐨勬渶鏅氫粯娆炬椂闂达紝閫炬湡灏嗗叧闂氦鏄� 30鍒嗛挓 - map.put("timeout_express", "30m"); + AlipayTradeWapPayDTO payDTO = new AlipayTradeWapPayDTO(); + payDTO.setSubject("浜戝彂鍗曞厖鍊�"); + payDTO.setSellerId(Constant.alipayWapConfig.getSellerId()); + payDTO.setOutTradeNo(TRADE_INDEX + cloudOrder.getId()); + payDTO.setProductCode(type); + payDTO.setTotalAmount(menuEnum.getMoney() + ""); + payDTO.setTimeoutExpress("30m"); + payDTO.setReturnUrl(configService.get(ConfigKeyEnum.cloudAlipayReturnLink.getKey())); + payDTO.setNotifyUrl(configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?id=" +cloudOrder.getId()); - // 鏀粯鎴愬姛鍚庤繑鍥炲摢涓墠绔〉闈� - String returnUrl = configService.get(ConfigKeyEnum.cloudAlipayReturnLink.getKey()); - // 鏀粯鎴愬姛鍚庡洖璋冨湴鍧� - String notifyUrl = configService.get(ConfigKeyEnum.cloudAlipayNotifyLink.getKey()) +"?id=" +cloudOrder.getId(); // 鑾峰彇鏀粯form - return AlipayApi.tradeWapPayRequest(map, returnUrl, notifyUrl); + return AlipayApi.tradeWapPayRequest(payDTO); } @@ -95,7 +101,17 @@ * @throws Exception */ public void tradeQueryByOrderId(Long orderId) throws Exception { - boolean result = AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null); + boolean result = false; + AlipayTradeQueryResponse response = AlipayApi.tradeQuery(TRADE_INDEX + orderId, null, null, null); + if(response != null && response.isSuccess()){ + // 鐩稿簲鎴愬姛 + if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { + result = true; + } else if ("TRADE_FINISHED".equals(response.getTradeStatus())) { + result = true; // 锛堜氦鏄撶粨鏉燂紝涓嶅彲閫�娆撅級 + } + } + // 鏀粯鎴愬姛 if (result) { userCloudOrderService.cloudPayCloudSuccess(orderId); -- Gitblit v1.8.0