jin преди 3 месеца
родител
ревизия
a21293d11b

+ 4 - 4
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/WxUser.java

@@ -48,8 +48,8 @@ public class WxUser extends BaseEntity
     private String lastLoginIp;
 
     /** 用户层级 0 普通用户,1 VIP用户 */
-    @Excel(name = "用户层级 0 普通用户,1 VIP用户")
-    private Long userLevel;
+    @Excel(name = "用户层级 0 普通用户,1 VIP月卡用户,2 VIP季卡用户, 3 VIP年卡用户")
+    private Integer userLevel;
 
     /** 用户昵称或网络名称 */
     @Excel(name = "用户昵称或网络名称")
@@ -157,12 +157,12 @@ public class WxUser extends BaseEntity
     {
         return lastLoginIp;
     }
-    public void setUserLevel(Long userLevel)
+    public void setUserLevel(Integer userLevel)
     {
         this.userLevel = userLevel;
     }
 
-    public Long getUserLevel()
+    public Integer getUserLevel()
     {
         return userLevel;
     }

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/WxLoginService.java

@@ -54,7 +54,7 @@ public class WxLoginService {
             wxUser.setUsername(String.valueOf(jsonObject.get("openid")));
             wxUser.setGender(1L);
             wxUser.setStatus(0L);
-            wxUser.setUserLevel(0L);
+            wxUser.setUserLevel(0);
             wxUserService.insertWxUser(wxUser);
             wxUser = wxUserService.selectWxUSerByOpenid(String.valueOf(jsonObject.get("openid")));
         }

+ 24 - 0
ruoyi-wx/src/main/java/com/ruoyi/wx/web/controller/WxPayController.java

@@ -1,6 +1,8 @@
 package com.ruoyi.wx.web.controller;
 
 
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateUtil;
 import com.github.binarywang.wxpay.bean.notify.OriginNotifyResponse;
 import com.github.binarywang.wxpay.bean.notify.SignatureHeader;
 import com.github.binarywang.wxpay.bean.notify.WxPayNotifyV3Result;
@@ -150,6 +152,10 @@ public class WxPayController {
         wxRecharge.setUserId(wxUser.getId());
         wxRecharge.setUserName(wxUser.getUsername());
         wxRechargeService.insertWxRecharge(wxRecharge);
+        wxUser.setUserLevel(dto.getVipLv());
+        wxUser.setVipStartTime(new Date());
+        wxUser.setVipEndTime(defDate(new Date(), dto.getVipLv()));
+        wxUserService.updateWxUser(wxUser);
         result.put("appId", orderV3.getAppId());
         result.put("timeStamp", orderV3.getTimeStamp());
         result.put("nonceStr", orderV3.getNonceStr());
@@ -211,4 +217,22 @@ public class WxPayController {
         }
         return AjaxResult.success();
     }
+
+    private Date defDate(Date now, Integer offset) {
+        Date defDate = new Date();
+        switch (offset) {
+            case 1:
+                defDate = DateUtil.offset(now, DateField.MONTH, 1);
+                break;
+            case 2:
+                defDate = DateUtil.offset(now, DateField.MONTH, 3);
+                break;
+            case 3:
+                defDate = DateUtil.offset(now, DateField.MONTH, 12);
+                break;
+            default:
+                break;
+        }
+        return defDate;
+    }
 }

+ 22 - 7
ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/dto/WxPayDto.java

@@ -24,6 +24,11 @@ public class WxPayDto {
      */
     private String openId;
 
+    /**
+     * 会员等级:1.月卡,2.季卡,3.年卡
+     */
+    private Integer vipLv;
+
     /**
      * 总金额
      */
@@ -69,14 +74,24 @@ public class WxPayDto {
         this.tBal = tBal;
     }
 
+    public Integer getVipLv() {
+        return vipLv;
+    }
+
+    public void setVipLv(Integer vipLv) {
+        this.vipLv = vipLv;
+    }
+
     @Override
     public String toString() {
-        return "WxPayDto{" +
-                "points=" + points +
-                ", discount='" + discount + '\'' +
-                ", money='" + money + '\'' +
-                ", openId='" + openId + '\'' +
-                ", tBal='" + tBal + '\'' +
-                '}';
+        final StringBuffer sb = new StringBuffer("WxPayDto{");
+        sb.append("points=").append(points);
+        sb.append(", discount='").append(discount).append('\'');
+        sb.append(", money='").append(money).append('\'');
+        sb.append(", openId='").append(openId).append('\'');
+        sb.append(", vipLv=").append(vipLv);
+        sb.append(", tBal='").append(tBal).append('\'');
+        sb.append('}');
+        return sb.toString();
     }
 }