Bladeren bron

spotify register free code

chenbiao 2 jaren geleden
bovenliggende
commit
6d4049b082

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/RegisterReq.java

@@ -46,4 +46,6 @@ public class RegisterReq {
     private String appleRegisterType;
 
     private AppleAutoRegisterData.CountryOrArea countryOrArea;
+
+    private String code;
 }

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/register/RegisterOrderDonService.java

@@ -19,7 +19,7 @@ import java.util.Map;
  */
 public interface RegisterOrderDonService extends IService<RegisterOrderDon> {
 
-    boolean isFree(long userId, String platform);
+    boolean isFree(long userId, String platform, String code);
 
     RegisterOrderDon saveOrder(long userId, RegisterReq req, boolean isFree) throws Exception;
 

+ 11 - 12
netflix-service/src/main/java/com/cyksj/service/register/impl/RegisterOrderDonServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
 import com.alipay.api.AlipayClient;
 import com.alipay.api.domain.AlipayTradeRefundModel;
 import com.alipay.api.internal.util.AlipaySignature;
@@ -112,21 +113,19 @@ public class RegisterOrderDonServiceImpl extends ServiceImpl<RegisterOrderDonMap
      * @date 2022-11-07 3:34 PM
      */
     @Override
-    public boolean isFree(long userId, String platform) {
-        int count = count(Wrappers.lambdaQuery(RegisterOrderDon.class)
-                .eq(RegisterOrderDon::getUserId, userId)
-                .ne(RegisterOrderDon::getStatus, RegisterOrderDon.Status.noPayment)
-                .eq(RegisterOrderDon::getIsFree, true));
-        if(count > 0){
+    public boolean isFree(long userId, String platform, String code) {
+
+        SysConfig sysConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "spotify_free_code"));
+        if (sysConfig == null) {
             return false;
-        }
-        Long num = redisService.decr(RedisKey.SPOTIFY_FREE_NUM, 1L);
-        if(num >= 0){
-            return true;
         }else {
-            redisService.incr(RedisKey.SPOTIFY_FREE_NUM, 1L);
+            if (JSONUtil.isJsonArray(sysConfig.getSysValue())) {
+                List<String> list = JSONUtil.parseArray(sysConfig.getSysValue()).toList(String.class);
+                return list.contains(code);
+            }else {
+                return false;
+            }
         }
-        return false;
     }
 
     /**

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/register/RegisterController.java

@@ -73,7 +73,7 @@ public class RegisterController {
         boolean isFree = false;
         //判断Spotify是否拥有免费资格
         if("spotify".equals(req.getPlatform())){
-            isFree = registerOrderDonService.isFree(userId,req.getPlatform());
+            isFree = registerOrderDonService.isFree(userId,req.getPlatform(),req.getCode());
         }
         RegisterOrderDon orderDon = registerOrderDonService.saveOrder(userId,req,isFree);