From 595b7935a30e84fba1bc3561d05f9d19d3e32e1f Mon Sep 17 00:00:00 2001 From: Administrator <1101184511@qq.com> Date: 星期三, 23 四月 2025 00:45:48 +0800 Subject: [PATCH] 后台管理页面完成 --- src/main/java/com/taoke/autopay/controller/client/OrderController.java | 102 ++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 77 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/taoke/autopay/controller/client/OrderController.java b/src/main/java/com/taoke/autopay/controller/client/OrderController.java index ace4e56..dc44d01 100644 --- a/src/main/java/com/taoke/autopay/controller/client/OrderController.java +++ b/src/main/java/com/taoke/autopay/controller/client/OrderController.java @@ -15,6 +15,7 @@ import com.taoke.autopay.exception.WxOrderCountException; import com.taoke.autopay.factory.OrderFactory; import com.taoke.autopay.manager.OrderPayFailProcessor; +import com.taoke.autopay.manager.PayCountVerifyManager; import com.taoke.autopay.service.*; import com.taoke.autopay.utils.*; import com.taoke.autopay.utils.order.DYOrderApi; @@ -94,6 +95,9 @@ @Resource private UserSettingService userSettingService; + + @Resource + private PayCountVerifyManager payCountVerifyManager; @ResponseBody @@ -177,7 +181,7 @@ @ResponseBody @RequestMapping("setOrderNoV2") public String setOrderNoV2(AcceptData acceptData, String id, String orderNoDesc, String orderStatus, String money) { - loggerPay.info("setOrderNo: {}-{}-{}-{}", id, orderNoDesc, orderStatus, money); + loggerPay.info("setOrderNo[{}]: {}-{}-{}-{}", acceptData.getUid(), id, orderNoDesc, orderStatus, money); if (StringUtil.isNullOrEmpty(id)) { return JsonUtil.loadFalseResult("璇蜂笂浼爄d"); } @@ -229,19 +233,14 @@ OrderChannelEnum orderChannel = null; if (dyOrderDto != null) { - orderChannel =OrderChannelUtil.getChannelByKey(dyOrderDto.getOrderChannel()); - }else{ + orderChannel = OrderChannelUtil.getChannelByKey(dyOrderDto.getOrderChannel()); + } else { orderChannel = OrderChannelEnum.unknown; } - // 楠岃瘉娓犻亾鏀粯娆℃暟鏄惁杈惧埌涓婇檺 + // 楠岃瘉娓犻亾鏀粯娆℃暟鏄惁杈惧埌涓婇檺 if (order.getUid() != null) { - long todayCount = wxUserOrderCountService.sum(order.getUid(), null,orderChannel, TimeUtil.getGernalTime(System.currentTimeMillis(), Constant.DB_DAY_FORMAT)); - long totalCount = wxUserOrderCountService.sum(order.getUid(), null,orderChannel,null); - int maxPayCount = userSettingService.getLimitCountByTotalCount(totalCount, orderChannel); - if(todayCount>=maxPayCount){ - throw new Exception( String.format("鑰侀搧浠婃棩宸茶揪鏀粯娆℃暟(%s)涓婇檺锛�%s" ,orderChannel.getName(), maxPayCount)); - } + payCountVerifyManager.verifyPayCount(order.getUid(), orderType, orderChannel); } // 璁剧疆杩涘叆 @@ -284,10 +283,20 @@ } } + /** + * @author hxh + * @description 璁剧疆鍟嗗鏄惁鍙敮浠� + * @date 1:26 2025/2/8 + * @param: acceptData + * @param: id + * @param: merchant + * @return java.lang.String + **/ + @ResponseBody @RequestMapping("isMerchantCanPay") public String isMerchantCanPay(AcceptData acceptData, String id, String merchant) { - loggerPay.info("isMerchantCanPay: {}-{}", id, merchant); + loggerPay.info("isMerchantCanPay[{}]: {}-{}", acceptData.getUid(), id, merchant); // 鍒ゆ柇鏄惁涓哄崱閲戦 KeyOrder keyOrder = keyOrderService.selectById(id); if (keyOrder == null) { @@ -295,30 +304,73 @@ } OrderChannelEnum orderChannel = OrderChannelUtil.getChannelByKey(keyOrder.getOrderChannel()); if (orderChannel != OrderChannelEnum.unknown) { - // 涓嶆槸鍗¢噾棰濈殑璁㈠崟鍙洿鎺ユ敮浠� + // 纭畾娓犻亾鐨勮鍗曞彲鐩存帴鏀粯 return JsonUtil.loadTrueResult(""); } // 鑾峰彇鍗¢噾棰濈殑璁剧疆淇℃伅 - PayMoneySetting payMoneySetting = payMoneySettingService.getSettingByMoney(keyOrder.getOrderMoney()); - if(payMoneySetting == null){ - return JsonUtil.loadFalseResult("璇ラ噾棰濅笉灞炰簬鍗¢噾棰濊寖鍥�"); + PayMoneySetting payMoneySetting = payMoneySettingService.getSettingByMoney(keyOrder.getOrderMoney()); + if (payMoneySetting == null) { + keyOrderService.rejectPay(keyOrder.getId(),"浠樻閲戦涓嶅睘浜庡崱閲戦鑼冨洿"); + return JsonUtil.loadFalseResult("浠樻閲戦涓嶅睘浜庡崱閲戦鑼冨洿"); } - if(payMoneySetting.getVerifyMerchantChannel()==null||payMoneySetting.getVerifyMerchantChannel()==OrderChannelEnum.unknown){ + if (payMoneySetting.getVerifyMerchantChannel() == null || payMoneySetting.getVerifyMerchantChannel() == OrderChannelEnum.unknown) { // 娌℃湁璁剧疆鏍¢獙娓犻亾 return JsonUtil.loadTrueResult(""); } try { // 鐩墠鍙垽鏂秴浜剑 - boolean isCanPay = OrderChannelApiUtil.isMerchantCanPay(payMoneySetting.getVerifyMerchantChannel(), merchant); - if(isCanPay){ + boolean isCanPay = OrderChannelApiUtil.isMerchantCanPay(payMoneySetting.getVerifyMerchantChannel(), merchant, keyOrder.getOrderMoney()); + if (isCanPay) { + // 閫氳繃鍟嗗鏍¢獙 + try { + payCountVerifyManager.verifyPayCount(keyOrder.getUid(), keyOrder.getOrderType(), payMoneySetting.getVerifyMerchantChannel()); + }catch (KeyOrderException ee){ + // 鎷掔粷鏀粯 + keyOrderService.rejectPay(keyOrder.getId(), ee.getMessage()); + return JsonUtil.loadFalseResult(ee.getMessage()); + }finally { + // 鏇存柊娓犻亾 + KeyOrder update = new KeyOrder(); + update.setId(keyOrder.getId()); + update.setOrderChannel(payMoneySetting.getVerifyMerchantChannel().getKey()); + keyOrderService.update(update); + } return JsonUtil.loadTrueResult(""); - }else{ + } else { + // 鏈�氳繃鍟嗗鏍¢獙 + keyOrderService.rejectPay(keyOrder.getId(),"鍟嗗鏍¢獙鏈�氳繃"); return JsonUtil.loadFalseResult("鍟嗗鏍¢獙鏈�氳繃"); } } catch (UnsupportedEncodingException e) { - e.printStackTrace(); + return JsonUtil.loadFalseResult(e.getMessage()); + } + } + + /** + * @return java.lang.String + * @author hxh + * @description 鏄惁鍙互鎵ц鏀粯 + * @date 0:22 2024/12/28 + * @param: acceptData + * @param: id + **/ + @ResponseBody + @RequestMapping("canExcutePay") + public String canExcutePay(AcceptData acceptData, String id) { + try { + KeyOrder keyOrder = keyOrderService.selectByIdForUpdate(id); + if (keyOrder == null) { + throw new Exception("璁㈠崟涓嶅瓨鍦�"); + } + if (keyOrder.getState() == KeyOrder.STATE_PAY) { + throw new Exception("璁㈠崟宸叉敮浠�"); + } + loggerPay.info("canExcutePay[{}]: {}-{}", acceptData.getUid(), id, "鍙互鏀粯"); + return JsonUtil.loadTrueResult(""); + } catch (Exception e) { + loggerPay.error("canExcutePay[{}]: {}-{}", acceptData.getUid(), id, "涓嶅彲浠ユ敮浠橈細" + e.getMessage()); return JsonUtil.loadFalseResult(e.getMessage()); } } @@ -326,8 +378,8 @@ @ResponseBody @RequestMapping("setPayResult") - public String setPayResult(AcceptData acceptData, String id, boolean paySuccess, String msg,String payMerchant) { - loggerPay.info("setPayResult: {}-{}-{}-{}", id, paySuccess, msg, payMerchant); + public String setPayResult(AcceptData acceptData, String id, boolean paySuccess, String msg, String payMerchant) { + loggerPay.info("setPayResult[{}]: {}-{}-{}-{}", acceptData.getUid(), id, paySuccess, msg, payMerchant); if (StringUtil.isNullOrEmpty(id)) { return JsonUtil.loadFalseResult("璇蜂笂浼爄d"); } @@ -349,7 +401,7 @@ KeyOrder orderUpdate = new KeyOrder(); orderUpdate.setId(id); orderUpdate.setState(KeyOrder.STATE_NOT_PAY); - orderUpdate.setStateDesc("鏀粯澶辫触锛�"+msg); + orderUpdate.setStateDesc("鏀粯澶辫触锛�" + msg); orderUpdate.setPayMerchant(payMerchant); keyOrderService.update(orderUpdate); } @@ -371,8 +423,8 @@ @ResponseBody @RequestMapping("rejectPay") - public String rejectPay(AcceptData acceptData, Long uid, String id) { - loggerPay.info("rejectPay: {}-{}", uid, id); + public String rejectPay(AcceptData acceptData, String id) { + loggerPay.info("rejectPay: {}-{}", acceptData.getUid(), id); if (StringUtil.isNullOrEmpty(id)) { return JsonUtil.loadFalseResult("璇蜂笂浼爄d"); } -- Gitblit v1.8.0