From 5129d2c63fbef70c6ee45ba5ec12654937e05231 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 12 四月 2021 19:05:57 +0800 Subject: [PATCH] seata集成 --- src/main/java/com/yeshi/buwan/controller/api/VIPController.java | 126 ++++++++++++++++++++++++++++++++++------- 1 files changed, 103 insertions(+), 23 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 e1d6c43..8b72b47 100644 --- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java +++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java @@ -1,14 +1,15 @@ 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.UserVIPInfo; -import com.yeshi.buwan.domain.vip.VIPOrderRecord; -import com.yeshi.buwan.domain.vip.VIPPrice; -import com.yeshi.buwan.domain.vip.VIPPriceType; -import com.yeshi.buwan.exception.vip.VIPException; +import com.yeshi.buwan.domain.vip.*; +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.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; import com.yeshi.buwan.service.inter.system.SystemConfigService; import com.yeshi.buwan.service.inter.vip.VIPPriceService; import com.yeshi.buwan.service.inter.vip.VIPService; @@ -28,6 +29,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Type; +import java.util.Date; import java.util.List; import java.util.UUID; @@ -44,6 +46,9 @@ private VIPService vipService; @Resource + private OrderService orderService; + + @Resource private LoginUserService loginUserService; @Resource @@ -51,6 +56,9 @@ @Resource private SystemConfigService systemConfigService; + + @Resource + private PPTVService pptvService; @RequestMapping("getVIPPriceList") @@ -92,6 +100,42 @@ return JsonUtilV2.loadTrueJson(root.toString()); } + + @RequestMapping("getVIPOrderList") + @ResponseBody + public String getVIPOrderList(AcceptData acceptData, String loginUid, int page) { + Gson gson = new GsonBuilder().registerTypeAdapter(VIPPriceType.class, new JsonSerializer<VIPPriceType>() { + @Override + public JsonElement serialize(VIPPriceType value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(value.getName()); + } + } + }).registerTypeAdapter(Date.class, new JsonSerializer<Date>() { + @Override + public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) { + if (value == null) { + return new JsonPrimitive(""); + } else { + return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm")); + } + } + }).create(); + JSONObject root = new JSONObject(); + + List<OrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount); + for (OrderRecord record : list) { + record.setIpInfo(null); + record.setUpdateTime(null); + } + long count = orderService.countOrderRecord(loginUid, null); + root.put("list", gson.toJson(list)); + root.put("count", count); + return JsonUtilV2.loadTrueJson(root.toString()); + } + /** * 鐢熸垚璁㈠崟 * @@ -101,7 +145,7 @@ */ @RequestMapping("createOrder") @ResponseBody - public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, int payWay) { + public String createOrder(AcceptData acceptData, HttpServletRequest request, String loginUid, String priceId, String infoId, Integer goldCorn, int payWay) { if (StringUtil.isNullOrEmpty(loginUid)) { return JsonUtilV2.loadFalseJson("鐢ㄦ埛鏈櫥褰�"); @@ -116,30 +160,66 @@ return JsonUtilV2.loadFalseJson(10001, "璇风粦瀹氱數璇濆彿鐮�"); } - - String ip = IPUtil.getRemotIP(request); - VIPPrice vipPrice = vipPriceService.selectByPrimaryKey(priceId); - if (vipPrice == null) { - return JsonUtilV2.loadFalseJson("濂楅涓嶅瓨鍦�"); + if (StringUtil.isNullOrEmpty(priceId) && StringUtil.isNullOrEmpty(infoId)) { + return JsonUtilV2.loadFalseJson("璇烽�夋嫨璐拱绫诲瀷"); } - VIPOrderRecord record = new VIPOrderRecord(); + OrderType orderType = OrderType.vip; + + if (!StringUtil.isNullOrEmpty(infoId)) { + orderType = OrderType.video; + } + + + String ip = IPUtil.getRemotIP(request); + + VIPPrice vipPrice = null; + if (orderType == OrderType.video) { + //瑙嗛 + VideoPPTVMap map = pptvService.selectVideoPPTVMapByInfoId(infoId); + if (map == null) { + return JsonUtilV2.loadFalseJson("褰辩墖涓嶅瓨鍦�"); + } + } else { + vipPrice = vipPriceService.selectByPrimaryKey(priceId); + if (vipPrice == null) { + return JsonUtilV2.loadFalseJson("濂楅涓嶅瓨鍦�"); + } + } + + OrderRecord record = new OrderRecord(); record.setUid(loginUid); - record.setType(vipPrice.getType()); + if (vipPrice != null) + record.setType(vipPrice.getType()); + + 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 { - vipService.addVIPRecord(record); - } catch (VIPException e) { + orderService.createOrder(record); + } catch (OrderException e) { logger.error("鐢熸垚璁㈠崟鍑洪敊", e); return JsonUtilV2.loadFalseJson("鐢熸垚璁㈠崟鍑洪敊"); } - String orderNo = VIPOrderUtil.getOutOrderNo(record.getId()); + + try { + orderService.payOrder(record); + } catch (OrderException e) { + e.printStackTrace(); + } catch (GoldCornException e) { + e.printStackTrace(); + } catch (PayException e) { + e.printStackTrace(); + } + + String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); switch (payWay) { - case VIPOrderRecord + case OrderRecord .PAY_WAY_ALIPAY: { //鐢熸垚鏀粯瀹濇敮浠樿鍗� String form = VipUtil.getVipChargeAlipayForm(record.getId(), orderNo, record.getMoney()); @@ -153,7 +233,7 @@ } - case VIPOrderRecord + case OrderRecord .PAY_WAY_WX: { //鐢熸垚寰俊鏀粯璁㈠崟 try { @@ -184,14 +264,14 @@ @ResponseBody @RequestSerializableByKey(key = "'vip-checkPay-'+#id") public String checkPay(AcceptData acceptData, String loginUid, String id) { - VIPOrderRecord record = vipService.getOrderRecord(id); + OrderRecord record = orderService.getOrderRecord(id); if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) { return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟"); } - record = vipService.checkOrderPayState(id); + 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