2 Incheckningar cf0054f603 ... 700011ba9e

Upphovsman SHA1 Meddelande Datum
  ct 700011ba9e Merge remote-tracking branch 'origin/master' 1 vecka sedan
  ct aae5217d66 红包0优化,小程序页面跳转短链更新 1 vecka sedan

+ 20 - 29
fs-service-system/src/main/java/com/fs/course/service/impl/FsCourseLinkServiceImpl.java

@@ -82,6 +82,10 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
     @Autowired
     CloudHostProper cloudHostProper;
 
+    private static String TOKEN_VALID_CODE = "40001";
+
+    private volatile Integer version = 0;
+
 
     /**
      * 查询短链
@@ -329,12 +333,10 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
                 if (StringUtils.isBlank(miniprogramAppid)) {
                     return "未配置点播小程序id";
                 }
-//                if(StringUtils.isBlank(code)){
-//                    return "参数错误,请传入code";
-//                }
                 //获取微信token
                 final WxMaService wxService = WxMaConfiguration.getMaService(appId);
                 String token = wxService.getAccessToken();
+                log.info("小程序TOKEN值-------->刷新前TOKEN:{}", token);
                 HttpPost httpPost = new HttpPost("https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + token);
                 JSONObject bodyObj = new JSONObject();
                 bodyObj.put("path", pageUrl);
@@ -343,10 +345,25 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
                 StringEntity entity = new StringEntity(bodyObj.toJSONString(),"UTF-8");
                 httpPost.setEntity(entity);
                 httpPost.setHeader("Content-type", "application/json");
+                httpPost.setHeader("cache-control","max-age=0");
                 HttpEntity response = client.execute(httpPost).getEntity();
                 String responseString = EntityUtils.toString(response);
                 log.info("微信小程序接口响应数据:{}", responseString);
                 JSONObject jsonObject = JSONObject.parseObject(responseString);
+
+                if(TOKEN_VALID_CODE.equals(jsonObject.getString("errcode"))){
+                    Integer curVersion =  Integer.valueOf(version);
+                    synchronized (TOKEN_VALID_CODE){
+                        if(curVersion.equals(version)){
+                            log.info("小程序TOKEN:40001进入强制刷新-------->刷新前TOKEN:{}", token);
+                            wxService.getAccessToken(true);
+                            version = version.equals(Integer.MAX_VALUE) ? 0 : curVersion + 1;
+                            log.info("小程序TOKEN:40001进入强制刷新-------->刷新后TOKEN:{}", wxService.getAccessToken());
+                        }
+                        return getGotoWxAppLink(linkStr,appId);
+                    }
+                }
+
                 if(null != jsonObject && !jsonObject.isEmpty() && jsonObject.containsKey("url_link")){
                     return jsonObject.getString("url_link");
                 }
@@ -361,32 +378,6 @@ public class FsCourseLinkServiceImpl implements IFsCourseLinkService
         } catch (IOException e) {
             throw new RuntimeException(e);
         }
-//        String json = configService.selectConfigByKey("course.config");
-//        CourseConfig config = JSON.parseObject(json, CourseConfig.class);
-//        String miniprogramAppid = config.getMiniprogramAppid();
-//        if (StringUtils.isBlank(miniprogramAppid)) {
-//                    return "未配置点播小程序id";
-//                }
-////        String envVersion = "trial";
-////        String envVersion = version;
-//        if (StringUtils.isNotBlank(linkStr)) {
-//            //解析pageLink
-//            String[] split = linkStr.split("\\?");
-//            if (split.length == 2 && split[0].length() > 0 && split[1].length() > 0) {
-//                //处理页面路径
-//                String pageUrl =split[0];
-//                if(pageUrl.startsWith("/")){
-//                    pageUrl = pageUrl.substring(1);
-//                }
-//                //处理参数
-//                String query = split[1];
-////                query = query.replace("\\u003d", "=");
-//                String wxAppLink = getWxAppLink(miniprogramAppid, pageUrl, query);
-//                return wxAppLink;
-//            } else {
-//                return "页面链接错误,获取失败";
-//            }
-//        }
         return "";
     }
 

+ 2 - 1
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -868,7 +868,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             redPacketLog.setCompanyId(param.getCompanyId());
             redPacketLog.setUserId(param.getUserId());
             redPacketLog.setVideoId(param.getVideoId());
-            redPacketLog.setStatus(0);
+            redPacketLog.setStatus(1);//直接设置发送成功
+            redPacketLog.setResult("{\"msg\":\"发送0红包成功\",\"code\":200,\"isNew\":1}");
             redPacketLog.setQwUserId(param.getQwUserId() != null ? param.getQwUserId() : null);
             redPacketLog.setCompanyUserId(param.getCompanyUserId());
             redPacketLog.setCreateTime(new Date());