Переглянути джерело

Merge branch 'bugfix_0607' into dev

cup 2 роки тому
батько
коміт
c98a1bb72e

+ 17 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/open/LinkController.java

@@ -1,6 +1,8 @@
 package com.qs.mp.web.controller.api.open;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.mp.channel.domain.Channel;
+import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.redis.RedisCache;
 import com.qs.mp.common.utils.LogUtil;
@@ -15,6 +17,7 @@ import com.qs.mp.open.domain.IpWhitelist;
 import com.qs.mp.open.domain.param.SchemeParam;
 import com.qs.mp.open.service.IApiCallLogService;
 import com.qs.mp.open.service.IIpWhitelistService;
+import com.qs.mp.user.domain.vo.UserShareVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -28,6 +31,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -57,6 +61,9 @@ public class LinkController {
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private IChannelService channelService;
+
     @PostMapping("wx/scheme")
     @ApiOperation("微信小程序跳转链接")
     public AjaxResult wxScheme(@Validated @RequestBody SchemeParam schemeParam, HttpServletRequest request) {
@@ -88,8 +95,17 @@ public class LinkController {
             // 不为空则直接返回,不生成新的
             return AjaxResult.success("success",scheme);
         }
+
+        Channel channel = channelService.getById(schemeParam.getCallNo());
+        if (Objects.isNull(channel)) {
+            LogUtil.info(logger, "非法访问,callNo:{0},ip:{1}", schemeParam.getCallNo(), ipaddr);
+            return AjaxResult.error("非法访问");
+        }
+
+
+
         // 生成scheme,并缓存到redis中,1天过期
-        scheme = wxUrlLinkService.generateUrlSchema("", "", userAppId);
+        scheme = wxUrlLinkService.generateUrlSchema("", channel.getUserId() + "&" + UserShareVO.SHARE_TYPE_SITE, userAppId);
         redisCache.setCacheObject(key, scheme,1, TimeUnit.DAYS);
         LogUtil.info(logger, "生成的scheme码:{0}", scheme);
         return AjaxResult.success("success",scheme);