From ad3ac53da1c3a11a96ae62d790aa61a81b9eab91 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 20 三月 2021 18:47:23 +0800
Subject: [PATCH] 完善APP首页顶部标签栏兼容,初步处理推送

---
 src/main/java/com/yeshi/buwan/controller/api/VIPController.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 84 insertions(+), 5 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 762c037..2ff98fc 100644
--- a/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
+++ b/src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -1,6 +1,7 @@
 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;
@@ -8,6 +9,7 @@
 import com.yeshi.buwan.domain.vip.VIPPriceType;
 import com.yeshi.buwan.exception.vip.VIPException;
 import com.yeshi.buwan.service.inter.LoginUserService;
+import com.yeshi.buwan.service.inter.system.SystemConfigService;
 import com.yeshi.buwan.service.inter.vip.VIPPriceService;
 import com.yeshi.buwan.service.inter.vip.VIPService;
 import com.yeshi.buwan.util.*;
@@ -21,10 +23,12 @@
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.yeshi.utils.annotation.RequestSerializableByKey;
 
 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;
 
@@ -45,6 +49,9 @@
 
     @Resource
     private VIPPriceService vipPriceService;
+
+    @Resource
+    private SystemConfigService systemConfigService;
 
 
     @RequestMapping("getVIPPriceList")
@@ -71,6 +78,11 @@
             userInfoVO.setId(user.getId());
             userInfoVO.setNickName(user.getName());
             userInfoVO.setPortrait(user.getPortrait());
+            if (StringUtil.isNullOrEmpty(userInfoVO.getPortrait())) {
+                String portrait = systemConfigService.getConfigValueByKeyCache("default_portrait");
+                userInfoVO.setPortrait(portrait);
+            }
+
             if (vipInfo != null && vipInfo.getExpireDate() != null)
                 userInfoVO.setVipExpireTime(vipInfo.getExpireDate().getTime());
             root.put("user", new Gson().toJson(userInfoVO));
@@ -78,6 +90,42 @@
 
         List<VIPPrice> vipPriceList = vipPriceService.listValidPrice();
         root.put("list", gson.toJson(vipPriceList));
+        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<VIPOrderRecord> list = vipService.listOrderRecord(loginUid, null, page, Constant.pageCount);
+        for (VIPOrderRecord record : list) {
+            record.setIpInfo(null);
+            record.setUpdateTime(null);
+        }
+        long count = vipService.countOrderRecord(loginUid, null);
+        root.put("list", gson.toJson(list));
+        root.put("count", count);
         return JsonUtilV2.loadTrueJson(root.toString());
     }
 
@@ -102,7 +150,7 @@
         }
 
         if (StringUtil.isNullOrEmpty(user.getPhone())) {
-            return JsonUtilV2.loadFalseJson(10001,"璇风粦瀹氱數璇濆彿鐮�");
+            return JsonUtilV2.loadFalseJson(10001, "璇风粦瀹氱數璇濆彿鐮�");
         }
 
 
@@ -115,8 +163,10 @@
         VIPOrderRecord record = new VIPOrderRecord();
         record.setUid(loginUid);
         record.setType(vipPrice.getType());
-        record.setMoney(vipPrice.getPrice());
+        record.setMoney(vipPrice.getActualPrice());
+        record.setPayWay(payWay);
         record.setState(VIPOrderRecord.STATE_NOT_PAY);
+        record.setIpInfo(IPUtil.getRemotIP(request) + ":" + IPUtil.getRemotePort(request));
         try {
             vipService.addVIPRecord(record);
         } catch (VIPException e) {
@@ -129,12 +179,12 @@
             case VIPOrderRecord
                     .PAY_WAY_ALIPAY: {
                 //鐢熸垚鏀粯瀹濇敮浠樿鍗�
-                String form = VipUtil.getVipChargeAlipayForm(orderNo, record.getMoney());
+                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", "http://api.ysdq.yeshitv.com:8089/BuWan/alipay/printPayForm?formId=" + id);
+                data.put("payUrl", Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id);
                 data.put("payWay", payWay);
                 return JsonUtilV2.loadTrueJson(data.toString());
             }
@@ -144,7 +194,7 @@
                     .PAY_WAY_WX: {
                 //鐢熸垚寰俊鏀粯璁㈠崟
                 try {
-                    String payUrl = VipUtil.createWXOrder(ip, orderNo, vipPrice.getPrice(), "褰辫澶у叏VIP-" + vipPrice.getType().getName());
+                    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);
@@ -159,5 +209,34 @@
         return JsonUtilV2.loadFalseJson("璇烽�夋嫨鏀粯鏂瑰紡");
     }
 
+    /**
+     * 妫�鏌ユ槸鍚︽敮浠�
+     *
+     * @param acceptData
+     * @param loginUid
+     * @param id
+     * @return
+     */
+    @RequestMapping("checkPay")
+    @ResponseBody
+    @RequestSerializableByKey(key = "'vip-checkPay-'+#id")
+    public String checkPay(AcceptData acceptData, String loginUid, String id) {
+        VIPOrderRecord record = vipService.getOrderRecord(id);
+        if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) {
+            return JsonUtilV2.loadFalseJson("璁板綍涓嶅瓨鍦�/涓嶆槸鎮ㄧ殑璁㈠崟");
+        }
+
+        record = vipService.checkOrderPayState(id);
+        //鏈敮浠�
+        if (record != null && record.getState() != VIPOrderRecord.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());
+    }
+
 
 }

--
Gitblit v1.8.0