Browse Source

Merge branch 'master' into pre

zoujiajian 2 năm trước cách đây
mục cha
commit
4f7d6d5515

+ 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;
 }

+ 25 - 0
netflix-dao/src/main/java/com/cyksj/model/views/OrderDonBuyerView.java

@@ -0,0 +1,25 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: OrderDonBuyerView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/8 11:42
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_don o",
+		where = "o.buyer_id is not null",
+distinct = true)
+public class OrderDonBuyerView {
+	@DbField("o.user_id")
+	private Long userId;
+
+	@DbField("o.buyer_id")
+	private String buyerId;
+}

+ 27 - 0
netflix-dao/src/main/java/com/cyksj/model/views/OrderDonLocationRelateView.java

@@ -0,0 +1,27 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 项目名: yhlxj
+ * 文件名: OrderDonLocationRelateView
+ * 创建者: JavaZou
+ * 创建时间:2024/7/8 11:35
+ */
+@Getter
+@Setter
+@SearchBean(tables = "(select id,user_id from order_don :userId:) o inner join order_don_location_relate ocr on ocr.order_id = o.id",
+		groupBy = "ocr.ip")
+public class OrderDonLocationRelateView {
+	@DbField("any_value(o.user_id)")
+	private Long uid;
+
+	@DbField("ocr.ip")
+	private String ip;
+
+	@DbField("concat(max(ocr.country),max(ocr.province),max(ocr.city))")
+	private String address;
+}

+ 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;
 

+ 16 - 8
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,28 @@ public class RegisterOrderDonServiceImpl extends ServiceImpl<RegisterOrderDonMap
      * @date 2022-11-07 3:34 PM
      */
     @Override
-    public boolean isFree(long userId, String platform) {
+    public boolean isFree(long userId, String platform, String code) {
+        if (StringUtils.isBlank(code)) {
+            return false;
+        }
         int count = count(Wrappers.lambdaQuery(RegisterOrderDon.class)
                 .eq(RegisterOrderDon::getUserId, userId)
-                .ne(RegisterOrderDon::getStatus, RegisterOrderDon.Status.noPayment)
+                .notIn(RegisterOrderDon::getStatus, List.of(RegisterOrderDon.Status.noPayment, RegisterOrderDon.Status.error))
                 .eq(RegisterOrderDon::getIsFree, true));
         if(count > 0){
-            return false;
+            throw BusinessRuntimeException.getInstance("您已使用过注册码进行注册过啦,如需再次注册请清除注册码再提交哦");
         }
-        Long num = redisService.decr(RedisKey.SPOTIFY_FREE_NUM, 1L);
-        if(num >= 0){
-            return true;
+        SysConfig sysConfig = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, "spotify_free_code"));
+        if (sysConfig == null) {
+            return false;
         }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;
     }
 
     /**

+ 26 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java

@@ -475,4 +475,30 @@ public class CmsUserController{
         Integer newConsumerCount = userMapper.getNewMaliceUser(beginOfDay);
         return GatewayResponse.SUCCESS.newBuilder().toResult(newConsumerCount > 0 ? true : false);
     }
+
+    /**
+     * 用户ip列表
+     */
+    @GetMapping("/get/ip/list")
+    public Result<SearchResult<OrderDonLocationRelateView>> orderDonLocationRelateResult(Long userId) {
+        if (userId == null) {
+            return GatewayResponse.SUCCESS.newBuilder().toResult();
+        }
+        List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+        SearchResult<OrderDonLocationRelateView> search = beanSearcher.search(OrderDonLocationRelateView.class, MapUtils.flatBuilder(request.getParameterMap()).put("userId", String.format("where user_id in (%s)", userIdList.toString().replaceAll("\\[", "").replaceAll("]", ""))).build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+    }
+
+    /**
+     * 用户支付宝列表
+     */
+    @GetMapping("/get/zfb/list")
+    public Result<List<OrderDonBuyerView>> getZfbBuyers(Long userId) {
+        if (userId == null) {
+            return GatewayResponse.SUCCESS.newBuilder().toResult();
+        }
+        List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+        List<OrderDonBuyerView> orderDonBuyerViews = beanSearcher.searchAll(OrderDonBuyerView.class, MapUtils.flatBuilder(request.getParameterMap()).field(OrderDonBuyerView::getUserId, userIdList).op(Operator.InList).build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonBuyerViews);
+    }
 }

+ 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);