From f788607ff771a47bc60d6a86e00b3433c40f3d2c Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 24 九月 2021 15:22:03 +0800 Subject: [PATCH] 接入视频直播 --- src/main/java/com/yeshi/buwan/controller/api/VIPController.java | 92 +++++++++++++++++++++++++++++---------------- 1 files changed, 59 insertions(+), 33 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 378611d..ed0912e 100644 --- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java +++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java @@ -10,8 +10,9 @@ 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.exception.vip.VideoBuyRecordException; +import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; +import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; import com.yeshi.buwan.service.inter.LoginUserService; import com.yeshi.buwan.service.inter.juhe.PPTVService; import com.yeshi.buwan.service.inter.order.OrderService; @@ -19,10 +20,9 @@ import com.yeshi.buwan.service.inter.vip.VIPPriceService; import com.yeshi.buwan.service.inter.vip.VIPService; import com.yeshi.buwan.util.*; -import com.yeshi.buwan.util.user.VipUtil; -import com.yeshi.buwan.util.vip.VIPOrderUtil; import com.yeshi.buwan.vo.AcceptData; import com.yeshi.buwan.vo.client.user.UserInfoVO; +import com.yeshi.buwan.vo.order.OrderInfoVO; import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,9 +36,9 @@ import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.UUID; @Controller @RequestMapping("api/v2/vip") @@ -108,9 +108,9 @@ } - @RequestMapping("getVIPOrderList") + @RequestMapping("getOrderList") @ResponseBody - public String getVIPOrderList(AcceptData acceptData, String loginUid, int page) { + public String getOrderList(AcceptData acceptData, String loginUid, String type, int page) { Gson gson = new GsonBuilder().registerTypeAdapter(VIPPriceType.class, new JsonSerializer<VIPPriceType>() { @Override public JsonElement serialize(VIPPriceType value, Type theType, JsonSerializationContext context) { @@ -132,13 +132,14 @@ }).create(); JSONObject root = new JSONObject(); - List<OrderRecord> list = orderService.listOrderRecord(loginUid, OrderType.vip, null, page, Constant.pageCount); + List<OrderRecord> list = orderService.listOrderRecord(loginUid, type == null ? null : OrderType.valueOf(type), null, page, Constant.pageCount); + + List<OrderInfoVO> voList = new ArrayList<>(); for (OrderRecord record : list) { - record.setIpInfo(null); - record.setUpdateTime(null); + voList.add(OrderInfoVO.create(record)); } - long count = orderService.countOrderRecord(loginUid, OrderType.vip, null); - root.put("list", gson.toJson(list)); + long count = orderService.countOrderRecord(loginUid, type == null ? null : OrderType.valueOf(type), null); + root.put("list", gson.toJson(voList)); root.put("count", count); return JsonUtilV2.loadTrueJson(root.toString()); } @@ -152,7 +153,7 @@ */ @RequestMapping("createOrder") @ResponseBody - public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String infoId, Integer goldCorn, int payWay) { + public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String cid, String vid, Integer goldCorn, int payWay) { if (StringUtil.isNullOrEmpty(loginUid)) { return JsonUtilV2.loadFalseJson("鐢ㄦ埛鏈櫥褰�"); @@ -163,17 +164,20 @@ return JsonUtilV2.loadFalseJson("鐢ㄦ埛涓嶅瓨鍦�"); } - if (StringUtil.isNullOrEmpty(user.getPhone())) { + if (StringUtil.isNullOrEmpty(user.getPhone()) && payWay != OrderRecord.PAY_WAY_IAPP) { return JsonUtilV2.loadFalseJson(10001, "璇风粦瀹氱數璇濆彿鐮�"); } - if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(infoId)) { + if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(cid)) { return JsonUtilV2.loadFalseJson("璇烽�夋嫨璐拱绫诲瀷"); } + if (goldCorn == null) + goldCorn = 0; + OrderType orderType = OrderType.vip; - if (!StringUtil.isNullOrEmpty(infoId)) { + if (!StringUtil.isNullOrEmpty(cid)) { orderType = OrderType.video; } @@ -185,13 +189,13 @@ VIPPrice vipPrice = null; if (orderType == OrderType.video) { - //瑙嗛 - VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId); - if (map == null) { + PPTVSeries pptvSeries = pptvService.selectSeriesBySeriesCode(cid); + if (pptvSeries == null) { return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�"); } - PPTVSeries pptvSeries = pptvService.selectSeriesByInfoId(infoId); - if (pptvSeries == null) { + //瑙嗛 + VideoPPTVMap map = pptvService.selectVideoPPTVMapByPPInfo(pptvSeries.getInfoID(), vid); + if (map == null) { return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�"); } record.setRemarks(pptvSeries.getName()); @@ -213,7 +217,8 @@ } record.setOrderType(orderType); - record.setVideoInfoId(infoId); + record.setVideoCid(cid); + record.setVideoVid(vid); record.setGoldCorn(goldCorn); record.setPayWay(payWay); record.setState(OrderRecord.STATE_NOT_PAY); @@ -242,9 +247,20 @@ return JsonUtilV2.loadFalseJson(e.getMessage()); } catch (PPTVException e) { return JsonUtilV2.loadFalseJson(e.getMessage()); + } catch (VideoBuyRecordException e) { + return JsonUtilV2.loadFalseJson("鍗曠墖璐拱澶辫触"); } - return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult)); + if (payResult.getPayWay() == OrderRecord.PAY_WAY_IAPP) { + //鑻规灉鍐呰喘 + JSONObject root = new JSONObject(); + root.put("orderNo", record.getId()); + root.put("productId", vipPrice.getIosProductId()); + return JsonUtilV2.loadTrueJson(root.toString()); + } else { + return JsonUtilV2.loadTrueJson(new Gson().toJson(payResult)); + } } + /** * 妫�鏌ユ槸鍚︽敮浠� @@ -252,27 +268,37 @@ * @param acceptData * @param loginUid * @param id + * @param receipt -ios鏀粯缁撴灉receipt * @return */ @RequestMapping("checkPay") @ResponseBody @RequestSerializableByKey(key = "'vip-checkPay-'+#id") - public String checkPay(AcceptData acceptData, String loginUid, String id) { + public String checkPay(AcceptData acceptData, String loginUid, String id, String receipt) { OrderRecord record = orderService.getOrderRecord(id); if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) { return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟"); } - record = orderService.checkOrderPayState(id); - //鏈敮浠� - if (record != null && record.getState() != OrderRecord.STATE_PAY) { - return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�"); + if (record.getPayWay() == OrderRecord.PAY_WAY_IAPP) { + try { + orderService.checkApplePay(record.getId(), receipt); + JSONObject data = new JSONObject(); + return JsonUtilV2.loadTrueJson(data.toString()); + } catch (Exception e) { + return JsonUtilV2.loadFalseJson(e.getMessage()); + } + } else { + record = orderService.checkOrderPayState(id); + //鏈敮浠� + if (record != null && record.getState() != OrderRecord.STATE_PAY) { + return JsonUtilV2.loadFalseJson(1, "鏀粯鏈畬鎴�"); + } + + JSONObject data = new JSONObject(); + data.put("money", record.getPayMoney() == null ? record.getMoney() : record.getPayMoney()); + return JsonUtilV2.loadTrueJson(data.toString()); } - - JSONObject data = new JSONObject(); - data.put("money", record.getPayMoney() == null ? record.getMoney() : record.getPayMoney()); - - return JsonUtilV2.loadTrueJson(data.toString()); } -- Gitblit v1.8.0