From 6e365a48a83e628759df3a5f25b3db97009c9f26 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 16 四月 2021 19:49:49 +0800 Subject: [PATCH] 影视豆系统完善 --- src/main/java/com/yeshi/buwan/controller/api/VIPController.java | 84 +++++++++++++++++++----------------------- 1 files changed, 38 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java index c860709..378611d 100644 --- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java +++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java @@ -1,13 +1,16 @@ package com.yeshi.buwan.controller.api; import com.google.gson.*; -import com.yeshi.buwan.domain.system.SystemConfig; import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.domain.vip.*; +import com.yeshi.buwan.dto.order.PPTVVideoPrice; +import com.yeshi.buwan.dto.order.PayWayInfoDTO; +import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.goldcorn.GoldCornException; import com.yeshi.buwan.exception.order.OrderException; import com.yeshi.buwan.exception.order.PayException; import com.yeshi.buwan.exception.vip.VIPException; +import com.yeshi.buwan.pptv.entity.PPTVSeries; import com.yeshi.buwan.pptv.entity.VideoPPTVMap; import com.yeshi.buwan.service.inter.LoginUserService; import com.yeshi.buwan.service.inter.juhe.PPTVService; @@ -31,6 +34,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Type; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.List; import java.util.UUID; @@ -127,12 +132,12 @@ }).create(); JSONObject root = new JSONObject(); - List<VIPOrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount); - for (VIPOrderRecord record : list) { + List<OrderRecord> list = orderService.listOrderRecord(loginUid, OrderType.vip, null, page, Constant.pageCount); + for (OrderRecord record : list) { record.setIpInfo(null); record.setUpdateTime(null); } - long count = orderService.countOrderRecord(loginUid, null); + long count = orderService.countOrderRecord(loginUid, OrderType.vip, null); root.put("list", gson.toJson(list)); root.put("count", count); return JsonUtilV2.loadTrueJson(root.toString()); @@ -175,13 +180,21 @@ String ip = IPUtil.getRemotIP(request); + OrderRecord record = new OrderRecord(); + VIPPrice vipPrice = null; + if (orderType == OrderType.video) { //瑙嗛 VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId); if (map == null) { return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�"); } + PPTVSeries pptvSeries = pptvService.selectSeriesByInfoId(infoId); + if (pptvSeries == null) { + return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�"); + } + record.setRemarks(pptvSeries.getName()); } else { vipPrice = vipPriceService.selectByPrimaryKey(priceId); if (vipPrice == null) { @@ -189,17 +202,21 @@ } } - VIPOrderRecord record = new VIPOrderRecord(); + record.setUid(loginUid); - if (vipPrice != null) + if (vipPrice != null) { record.setType(vipPrice.getType()); + record.setMoney(vipPrice.getActualPrice()); + } else { + PPTVVideoPrice price = new Gson().fromJson(systemConfigService.getConfigValueByKeyCache("videoPrice"), PPTVVideoPrice.class); + record.setMoney(price.getActualPrice().subtract(new BigDecimal(goldCorn).divide(new BigDecimal(100), 2, RoundingMode.UP))); + } record.setOrderType(orderType); record.setVideoInfoId(infoId); record.setGoldCorn(goldCorn); - record.setMoney(vipPrice.getActualPrice()); record.setPayWay(payWay); - record.setState(VIPOrderRecord.STATE_NOT_PAY); + record.setState(OrderRecord.STATE_NOT_PAY); record.setIpInfo(IPUtil.getRemotIP(request) + ":" + IPUtil.getRemotePort(request)); try { orderService.createOrder(record); @@ -209,49 +226,24 @@ } + PayWayInfoDTO payResult = null; + try { - orderService.payOrder(record); + payResult = orderService.payOrder(record); } catch (OrderException e) { - e.printStackTrace(); + return JsonUtilV2.loadFalseJson(e.getMessage()); } catch (GoldCornException e) { e.printStackTrace(); + return JsonUtilV2.loadFalseJson(e.getMessage()); } catch (PayException e) { e.printStackTrace(); + return JsonUtilV2.loadFalseJson(e.getMessage()); + } catch (VIPException e) { + return JsonUtilV2.loadFalseJson(e.getMessage()); + } catch (PPTVException e) { + return JsonUtilV2.loadFalseJson(e.getMessage()); } - - String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); - switch (payWay) { - case VIPOrderRecord - .PAY_WAY_ALIPAY: { - //鐢熸垚鏀粯瀹濇敮浠樿鍗� - String form = VipUtil.getVipChargeAlipayForm(record.getId(), orderNo, record.getMoney()); - //鏆傚瓨2鍒嗛挓 - String id = StringUtil.Md5(UUID.randomUUID().toString() + "#" + System.currentTimeMillis()); - redisManager.cacheCommonString(id, form, 120); - org.json.JSONObject data = new org.json.JSONObject(); - data.put("payUrl", Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id); - data.put("payWay", payWay); - return JsonUtilV2.loadTrueJson(data.toString()); - } - - - case VIPOrderRecord - .PAY_WAY_WX: { - //鐢熸垚寰俊鏀粯璁㈠崟 - try { - String payUrl = VipUtil.createWXOrder(record.getId(), ip, orderNo, vipPrice.getActualPrice(), "褰辫澶у叏VIP-" + vipPrice.getType().getName()); - org.json.JSONObject data = new org.json.JSONObject(); - data.put("payUrl", payUrl); - data.put("payWay", payWay); - return JsonUtilV2.loadTrueJson(data.toString()); - } catch (Exception e) { - logger.error("鐢熸垚寰俊鏀粯璁㈠崟鍑洪敊", e); - return JsonUtilV2.loadFalseJson("鐢熸垚寰俊鏀粯璁㈠崟鍑洪敊"); - } - } - } - - return JsonUtilV2.loadFalseJson("璇烽�夋嫨鏀粯鏂瑰紡"); + return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult)); } /** @@ -266,14 +258,14 @@ @ResponseBody @RequestSerializableByKey(key = "'vip-checkPay-'+#id") public String checkPay(AcceptData acceptData, String loginUid, String id) { - VIPOrderRecord record = orderService.getOrderRecord(id); + OrderRecord record = orderService.getOrderRecord(id); if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) { return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟"); } record = orderService.checkOrderPayState(id); //鏈敮浠� - if (record != null && record.getState() != VIPOrderRecord.STATE_PAY) { + if (record != null && record.getState() != OrderRecord.STATE_PAY) { return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�"); } -- Gitblit v1.8.0