|
@@ -5,8 +5,8 @@ import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
|
|
import com.fs.common.core.domain.R;
|
|
import com.fs.common.core.domain.R;
|
|
|
|
|
+import com.fs.common.core.redis.RedisCache;
|
|
|
import com.fs.common.utils.DateUtils;
|
|
import com.fs.common.utils.DateUtils;
|
|
|
import com.fs.common.utils.PubFun;
|
|
import com.fs.common.utils.PubFun;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
import com.fs.common.utils.StringUtils;
|
|
@@ -30,6 +30,7 @@ import com.fs.course.service.IFsUserCourseService;
|
|
|
import com.fs.his.config.FsSysConfig;
|
|
import com.fs.his.config.FsSysConfig;
|
|
|
import com.fs.his.utils.ConfigUtil;
|
|
import com.fs.his.utils.ConfigUtil;
|
|
|
import com.fs.his.utils.HttpUtil;
|
|
import com.fs.his.utils.HttpUtil;
|
|
|
|
|
+import com.fs.his.utils.RedisCacheUtil;
|
|
|
import com.fs.qw.domain.QwGroupChat;
|
|
import com.fs.qw.domain.QwGroupChat;
|
|
|
import com.fs.qw.domain.QwGroupChatUser;
|
|
import com.fs.qw.domain.QwGroupChatUser;
|
|
|
import com.fs.qw.domain.QwUser;
|
|
import com.fs.qw.domain.QwUser;
|
|
@@ -49,6 +50,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
|
|
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
import me.chanjar.weixin.mp.api.WxMpService;
|
|
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
import org.apache.http.HttpEntity;
|
|
import org.apache.http.HttpEntity;
|
|
|
import org.apache.http.client.ClientProtocolException;
|
|
import org.apache.http.client.ClientProtocolException;
|
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
@@ -71,6 +73,7 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
import java.time.ZoneId;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
import static com.fs.course.utils.LinkUtil.generateRandomStringWithLock;
|
|
import static com.fs.course.utils.LinkUtil.generateRandomStringWithLock;
|
|
|
import static com.fs.sop.service.impl.SopUserLogsInfoServiceImpl.convertStringToDate;
|
|
import static com.fs.sop.service.impl.SopUserLogsInfoServiceImpl.convertStringToDate;
|
|
@@ -124,11 +127,15 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private SysConfigMapper sysConfigMapper;
|
|
private SysConfigMapper sysConfigMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private RedisCache redisCache;
|
|
|
|
|
|
|
|
private static String TOKEN_VALID_CODE = "40001";
|
|
private static String TOKEN_VALID_CODE = "40001";
|
|
|
|
|
|
|
|
private volatile Integer version = 0;
|
|
private volatile Integer version = 0;
|
|
|
|
|
|
|
|
|
|
+ private static final String WX_URL_REDIS_PREFIX = "wx:link:";
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 查询短链
|
|
* 查询短链
|
|
@@ -772,6 +779,14 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
|
|
|
public String getGotoWxAppLink(String linkStr,String appId) {
|
|
public String getGotoWxAppLink(String linkStr,String appId) {
|
|
|
log.info("appid:{}", appId);
|
|
log.info("appid:{}", appId);
|
|
|
log.info("linkStr:{}", linkStr);
|
|
log.info("linkStr:{}", linkStr);
|
|
|
|
|
+ String key = "course=";
|
|
|
|
|
+ String linkStrJson = linkStr.substring(linkStr.indexOf(key) + key.length());
|
|
|
|
|
+ JSONObject json = JSON.parseObject(linkStrJson);
|
|
|
|
|
+ String wxAppLinkKey = String.format("%s%s%s%s%s%s%s",WX_URL_REDIS_PREFIX,json.get("companyId"),json.get("companyUserId"),json.get("projectId"),json.get("courseId"),json.get("videoId"),appId);
|
|
|
|
|
+ String linkCache = redisCache.getCacheObject(wxAppLinkKey);
|
|
|
|
|
+ if (StringUtils.isNotBlank(linkCache)) {
|
|
|
|
|
+ return linkCache;
|
|
|
|
|
+ }
|
|
|
CloseableHttpClient client = null;
|
|
CloseableHttpClient client = null;
|
|
|
try {
|
|
try {
|
|
|
client = HttpClients.createDefault();
|
|
client = HttpClients.createDefault();
|
|
@@ -823,7 +838,9 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if(null != jsonObject && !jsonObject.isEmpty() && jsonObject.containsKey("url_link")){
|
|
if(null != jsonObject && !jsonObject.isEmpty() && jsonObject.containsKey("url_link")){
|
|
|
- return jsonObject.getString("url_link");
|
|
|
|
|
|
|
+ String urlLink = jsonObject.getString("url_link");
|
|
|
|
|
+ redisCache.setCacheObject(wxAppLinkKey, urlLink,6, TimeUnit.HOURS);
|
|
|
|
|
+ return urlLink;
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
return "页面链接错误,获取失败";
|
|
return "页面链接错误,获取失败";
|