فهرست منبع

UploadToOssUtil ,登录

lyhzzz 3 سال پیش
والد
کامیت
649c93c444
25فایلهای تغییر یافته به همراه1300 افزوده شده و 71 حذف شده
  1. 14 5
      pom.xml
  2. 12 1
      src/main/java/com/cdf/aop/SysLogAspect.java
  3. 5 17
      src/main/java/com/cdf/business/LoginService.java
  4. 3 1
      src/main/java/com/cdf/controller/api/ShopApiController.java
  5. 1 1
      src/main/java/com/cdf/controller/back/CdfProductController.java
  6. 2 0
      src/main/java/com/cdf/controller/back/LoginController.java
  7. 9 0
      src/main/java/com/cdf/controller/back/SceneBackController.java
  8. 9 6
      src/main/java/com/cdf/controller/back/TestController.java
  9. 1 1
      src/main/java/com/cdf/controller/back/UploadController.java
  10. 5 4
      src/main/java/com/cdf/controller/service/FdkkSceneEditController.java
  11. 11 2
      src/main/java/com/cdf/httpClient/client/FdkkClient.java
  12. 11 0
      src/main/java/com/cdf/httpClient/request/FdkkAllSceneRequest.java
  13. 1 1
      src/main/java/com/cdf/httpClient/request/FdkkHotData.java
  14. 4 0
      src/main/java/com/cdf/httpClient/response/cdf/CdfProduct.java
  15. 13 1
      src/main/java/com/cdf/interceptor/SceneInterceptor.java
  16. 1 0
      src/main/java/com/cdf/response/LogVo.java
  17. 2 1
      src/main/java/com/cdf/schedule/ScheduleTask.java
  18. 43 23
      src/main/java/com/cdf/service/impl/FdkkSceneEditService.java
  19. 27 3
      src/main/java/com/cdf/service/impl/FdkkSceneService.java
  20. 21 0
      src/main/java/com/cdf/util/FileUtils.java
  21. 37 0
      src/main/java/com/cdf/util/StorageType.java
  22. 1058 0
      src/main/java/com/cdf/util/UploadToOssUtil.java
  23. 4 2
      src/main/resources/application-dev.yaml
  24. 2 0
      src/main/resources/application-local.yaml
  25. 4 2
      src/main/resources/application-prod.yaml

+ 14 - 5
pom.xml

@@ -23,11 +23,6 @@
             <version>2.0.0-SNAPSHOT</version>
         </dependency>
 
-        <dependency>
-            <groupId>com.fdkankan</groupId>
-            <artifactId>4dkankan-utils-fyun</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
-        </dependency>
 
         <dependency>
             <groupId>org.projectlombok</groupId>
@@ -61,11 +56,25 @@
             <artifactId>jjwt</artifactId>
             <version>0.9.1</version>
         </dependency>
+
         <dependency>
             <groupId>com.yomahub</groupId>
             <artifactId>tlog-all-spring-boot-starter</artifactId>
             <version>1.4.0</version>
         </dependency>
+
+        <!--        uploadToOssUtil-->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>2.8.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.amazonaws</groupId>
+            <artifactId>aws-java-sdk</artifactId>
+            <version>1.11.327</version>
+        </dependency>
     </dependencies>
 
 

+ 12 - 1
src/main/java/com/cdf/aop/SysLogAspect.java

@@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.cdf.common.ResultCode;
 import com.cdf.entity.Log;
 import com.cdf.service.ILogService;
+import com.cdf.service.IUserService;
 import com.cdf.util.IPUtils;
 import com.cdf.util.JwtUtil;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.JoinPoint;
@@ -83,7 +85,16 @@ public class SysLogAspect {
         String token = request.getHeader("token");
         Integer id = null;
         String phone = null;
-        if(StringUtils.isNotBlank(token)){
+        if(request.getRequestURI().contains("login")){
+            if(sysLog.getResult().equals(ResultCode.SUCCESS.msg)){
+                JSONObject userObj = jsonObject.getJSONObject("data").getJSONObject("userVo");
+                id = userObj.getInteger("id");
+                phone = userObj.getString("phone");
+            }else {
+                JSONObject obj = JSONObject.parseObject(params);
+                phone = obj.getString("phone");
+            }
+        }else if(StringUtils.isNotBlank(token)){
             id = JwtUtil.getId(token);
             phone = JwtUtil.getPhone(token);
         }

+ 5 - 17
src/main/java/com/cdf/business/LoginService.java

@@ -11,6 +11,7 @@ import com.cdf.request.LoginRequest;
 import com.cdf.common.ResultCode;
 import com.cdf.response.LoginResponse;
 import com.cdf.service.*;
+import com.cdf.service.impl.FdkkSceneService;
 import com.cdf.util.Base64Converter;
 import com.cdf.util.JwtUtil;
 import com.cdf.util.SecurityUtil;
@@ -38,6 +39,8 @@ public class LoginService {
     private IRoleService roleService;
     @Autowired
     private IUserTokenService userTokenService;
+    @Autowired
+    private FdkkSceneService fdkkSceneService;
 
     public LoginResponse  login(LoginRequest param) {
         //对前端传的密码解密
@@ -68,28 +71,13 @@ public class LoginService {
         String token = JwtUtil.createJWT(-1, jwtMap);
         loginResponse.setToken(token);
 
+        fdkkSceneService.getFdkkToken(token);
+
         UserToken userToken = new UserToken();
         userToken.setUserId(user.getId());
         userToken.setLoginToken(token);
         userTokenService.saveOrUpdate(userToken);
 
-        if(fdkkuser.getToken() != null){
-            FdkkResponse fdkkResponse = fdkkClient.checkToken(fdkkuser.getToken());
-            if(fdkkResponse.getCode() == 0){
-                return loginResponse;
-            }
-        }
-        //调用四维看看登录
-        String fdPassword = Base64Converter.getEncode(Base64Converter.encode(fdkkuser.getPassword()));
-        FdkkResponse fdkkResponse = fdkkClient.fdkkLogin(new FdkkLoginRequest(fdkkuser.getUserName(), fdPassword));
-        if(fdkkResponse.getCode() != 0){
-            throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
-        }
-        log.info("调用四维看看登录结果为:{}", fdkkResponse);
-        Object data = fdkkResponse.getData();
-        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(data));
-        fdkkuser.setToken(jsonObject.getString("token"));
-        fdkkUserService.updateById(fdkkuser);
         return loginResponse;
     }
 

+ 3 - 1
src/main/java/com/cdf/controller/api/ShopApiController.java

@@ -31,7 +31,9 @@ public class ShopApiController {
     @GetMapping("/getShopByCategory")
     public ResultData getShopByCategory(@RequestParam(required = false) Integer categoryId){
         LambdaQueryWrapper<Shop> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Shop::getCategoryId,categoryId);
+        if(categoryId != null){
+            wrapper.eq(Shop::getCategoryId,categoryId);
+        }
         return ResultData.ok(shopService.list(wrapper));
     }
 }

+ 1 - 1
src/main/java/com/cdf/controller/back/CdfProductController.java

@@ -26,7 +26,7 @@ public class CdfProductController {
         if(productList.getSearchResult().getType() != 0 ){
             throw new BusinessException(productList.getSearchResult().getType(),productList.getSearchResult().getDesc());
         }
-        PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, productList.getCount(), productList.getList());
+        PageInfo pageInfo = PageInfo.PageInfo(param.getPageIndex(), 20L, productList.getCount()*20, productList.getList());
         return ResultData.ok(pageInfo);
     }
 }

+ 2 - 0
src/main/java/com/cdf/controller/back/LoginController.java

@@ -1,5 +1,6 @@
 package com.cdf.controller.back;
 
+import com.cdf.aop.SysLog;
 import com.cdf.business.LoginService;
 import com.cdf.common.ResultData;
 import com.cdf.request.LoginRequest;
@@ -14,6 +15,7 @@ public class LoginController {
     private LoginService loginService;
 
     @PostMapping("/login")
+    @SysLog("登录")
     ResultData login(@RequestBody LoginRequest param){
         return ResultData.ok(loginService.login(param));
     }

+ 9 - 0
src/main/java/com/cdf/controller/back/SceneBackController.java

@@ -1,11 +1,14 @@
 package com.cdf.controller.back;
 
+import com.alibaba.fastjson.JSONObject;
 import com.cdf.aop.SysLog;
 import com.cdf.common.ResultData;
+import com.cdf.httpClient.request.FdkkAllSceneRequest;
 import com.cdf.httpClient.request.FdkkSceneFolderRequest;
 import com.cdf.httpClient.request.FdkkSceneListRequest;
 import com.cdf.httpClient.response.FdkkResponse;
 import com.cdf.service.impl.FdkkSceneService;
+import com.dtflys.forest.annotation.Post;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -21,6 +24,12 @@ public class SceneBackController {
     public ResultData list (@RequestBody FdkkSceneListRequest param, @RequestHeader String token ){
         return ResultData.ok(fdkkSceneService.list(param,token));
     }
+    @PostMapping("/allList")
+    public ResultData allList(@RequestBody FdkkAllSceneRequest param, @RequestHeader String token ){
+        FdkkResponse fdkkResponse = fdkkSceneService.allList(param,token);
+        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData()));
+        return ResultData.ok(fdkkResponse.getMsg(),jsonObject.get("list"));
+    }
 
     @PostMapping("/delete")
     @SysLog(logType = "VR场景",value = "删除")

+ 9 - 6
src/main/java/com/cdf/controller/back/TestController.java

@@ -2,14 +2,14 @@ package com.cdf.controller.back;
 
 import com.cdf.common.ResultData;
 import com.cdf.httpClient.client.CdfClient;
+import com.cdf.httpClient.client.FdkkClient;
+import com.cdf.httpClient.request.FdkkAllSceneRequest;
+import com.cdf.httpClient.response.FdkkResponse;
 import com.cdf.httpClient.response.cdf.CdfProductListRequest;
 import com.cdf.schedule.ScheduleTask;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -21,6 +21,8 @@ public class TestController {
     CdfClient cdfClient;
     @Autowired
     private ScheduleTask scheduleTask;
+    @Autowired
+    FdkkClient fdkkClient;
 
     @RequestMapping("/test/getProductById")
     public ResultData getProductById(@RequestParam(required = false) String productId){
@@ -46,7 +48,8 @@ public class TestController {
     }
 
     @RequestMapping("/test/one")
-    public ResultData test1() throws Exception{
-        return ResultData.ok();
+    public ResultData test1(@RequestHeader String token) throws Exception{
+        FdkkResponse allScene = fdkkClient.getAllScene(new FdkkAllSceneRequest() ,token);
+        return ResultData.ok(allScene);
     }
 }

+ 1 - 1
src/main/java/com/cdf/controller/back/UploadController.java

@@ -3,7 +3,7 @@ package com.cdf.controller.back;
 import com.cdf.common.ResultCode;
 import com.cdf.common.ResultData;
 import com.cdf.exception.BusinessException;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.cdf.util.UploadToOssUtil;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 5 - 4
src/main/java/com/cdf/controller/service/FdkkSceneEditController.java

@@ -21,8 +21,9 @@ public class FdkkSceneEditController {
 
     @PostMapping("/tag/save")
     @SysLog(logType = "VR场景",value = "热点新增或编辑")
-    public FdkkResponse save(@RequestBody FdkkHotRequest fdkkHotRequest, @RequestHeader String token){
-        return fdkkSceneEditService.saveTag(fdkkHotRequest,token);
+    public ResultData save(@RequestBody FdkkHotRequest fdkkHotRequest, @RequestHeader String token){
+        FdkkResponse fdkkResponse = fdkkSceneEditService.saveTag(fdkkHotRequest, token);
+        return ResultData.ok(fdkkResponse.getMsg(),fdkkResponse.getData());
     }
 
     @PostMapping("/tag/delete")
@@ -39,12 +40,12 @@ public class FdkkSceneEditController {
 
     @PostMapping("/tag/getHotJson")
     public ResultData getHotJson (@RequestParam(required = false) String num,@RequestHeader String token){
-        return ResultData.ok( fdkkSceneEditService.getHotJson(num,token));
+        return ResultData.ok( fdkkSceneEditService.getCdfHotJson(num));
     }
 
     @PostMapping("publicScene")
     @SysLog(logType = "VR场景",value = "发布场景")
-    public ResultData scenePublicScene(@RequestBody FdkkHotRequest fdkkHotRequest ,@RequestHeader String token){
+    public ResultData scenePublicScene(@RequestBody FdkkHotRequest fdkkHotRequest ,@RequestHeader String token) throws Exception{
         fdkkSceneEditService.publicScene(fdkkHotRequest,token);
         return ResultData.ok();
     }

+ 11 - 2
src/main/java/com/cdf/httpClient/client/FdkkClient.java

@@ -89,18 +89,27 @@ public interface FdkkClient {
      */
     @Post("/service/scene/edit/publicScene")
     @Address(source = FdkkSceneAddressSource.class)
-    FdkkResponse scenePublicScene(@JSONBody String num, @Header("token")  String token);
+    FdkkResponse scenePublicScene(@JSONBody SceneRequest sceneRequest, @Header("token")  String token);
     /**
      * 文件上传
      */
     @Post("/service/scene/edit/upload/files")
     @Address(source = FdkkSceneAddressSource.class)
     FdkkResponse uploadFiles(@Query FdkkUploadRequest fdkkUploadRequest, @DataFile("files") String files, @Header("token")String token);
+    /**
+     * 全部场景列表
+     */
+    @Post("/api/user/scene/list")
+    @Address(source = FdkkLoginAddressSource.class)
+    FdkkResponse getAllScene(@JSONBody FdkkAllSceneRequest fdkkAllSceneRequest,@Header("token")String token);
 
+    @Post("{url}")
+    @Address(source = FdkkSceneAddressSource.class)
+    JSONObject sendPostJson(@Var("url") String url, @JSONBody JSONObject jsonObject, @Header("token")  String token);
 
     @Post("{url}")
     @Address(source = FdkkSceneAddressSource.class)
-    JSONObject sendPost(@Var("url") String url, @JSONBody JSONObject jsonObject, @Header("token")  String token);
+    JSONObject sendPost(@Var("url") String url, @Body  Map<String,String> param, @Header("token")  String token);
 
 
     @Get(url = "{url}")

+ 11 - 0
src/main/java/com/cdf/httpClient/request/FdkkAllSceneRequest.java

@@ -0,0 +1,11 @@
+package com.cdf.httpClient.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+public class FdkkAllSceneRequest {
+    private Integer pageNum =1;
+    private Integer pageSize = 10;
+    private String searchKey;
+}

+ 1 - 1
src/main/java/com/cdf/httpClient/request/FdkkHotData.java

@@ -11,5 +11,5 @@ public class FdkkHotData {
     private List<String> icons;
     private Integer hotType;
     private List<String> relationIds;
-    private String content;
+    private String hotContent;
 }

+ 4 - 0
src/main/java/com/cdf/httpClient/response/cdf/CdfProduct.java

@@ -2,6 +2,8 @@ package com.cdf.httpClient.response.cdf;
 
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class CdfProduct {
     private String id;      //商品id
@@ -11,4 +13,6 @@ public class CdfProduct {
     private Integer price;  //商品当前售价
     private String symbol;  //货币符号,如¥或MOP$
     private Integer stock;  //库存数量
+
+    private List<CdfSkus> skus;
 }

+ 13 - 1
src/main/java/com/cdf/interceptor/SceneInterceptor.java

@@ -65,7 +65,19 @@ public class SceneInterceptor implements HandlerInterceptor {
 			response.getWriter().append(JSONObject.toJSONString(send));
 			return false;
 		}
-		JSONObject send = fdkkClient.sendPost(requestURI, JSONObject.parseObject(ReadAsChars(request)), fdkkUser.getToken());
+		JSONObject send;
+		if(request.getContentType().contains("application/json")){
+			 send = fdkkClient.sendPostJson(requestURI, JSONObject.parseObject(ReadAsChars(request)), fdkkUser.getToken());
+		}else {
+			Enumeration<String> parameterNames = request.getParameterNames();
+			HashMap<String,String> map = new HashMap<>();
+			while (parameterNames.hasMoreElements()) {
+				String key =  parameterNames.nextElement();
+				String value = request.getParameter(key);
+				map.put(key,value);
+			}
+			send = fdkkClient.sendPost(requestURI, map, fdkkUser.getToken());
+		}
 		response.getWriter().append(JSONObject.toJSONString(send));
 		return false;
 	}

+ 1 - 0
src/main/java/com/cdf/response/LogVo.java

@@ -15,5 +15,6 @@ public class LogVo  {
     private String info;
     private String result;
     private String createTime;
+    private String logType;
 
 }

+ 2 - 1
src/main/java/com/cdf/schedule/ScheduleTask.java

@@ -29,6 +29,7 @@ public class ScheduleTask {
     public static String day = null;
 
     @Scheduled(cron = "0 0 0 * * ?")
+    //@Scheduled(cron = "30 * * * * ?")
     public void statisticsH5Data() {
         if(day == null){
             day = DateUtil.getDay(new Date(), -1);
@@ -72,7 +73,7 @@ public class ScheduleTask {
         totalDataService.saveOrUpdate(totalData);
 
         log.info("{发送{}的统计结果{}给海鲲,{}",day,totalData,DateUtil.getDateTime(new Date()));
-
+        //待添加传输
         log.info("{结束统计{}的数据,{}",day,DateUtil.getDateTime(new Date()));
 
     }

+ 43 - 23
src/main/java/com/cdf/service/impl/FdkkSceneEditService.java

@@ -19,8 +19,9 @@ import com.cdf.httpClient.response.cdf.CdfProductListResponse;
 import com.cdf.httpClient.response.cdf.CdfProductVo;
 import com.cdf.service.IFdkkUserService;
 import com.cdf.service.IHotRelationService;
+import com.cdf.util.FileUtils;
 import com.cdf.util.JwtUtil;
-import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.cdf.util.UploadToOssUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -30,9 +31,8 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class FdkkSceneEditService {
@@ -42,6 +42,10 @@ public class FdkkSceneEditService {
     private String bucket;
     @Value("${fdkk.hot-path}")
     private String hotPath;
+    @Value("${fdkk.hot-cdf-path}")
+    private String hotCdfPath;
+    @Value("${fdkk.hot-local-path}")
+    private String hotLocalPath;
     @Resource
     private FdkkClient fdkkClient;
     @Resource
@@ -70,6 +74,9 @@ public class FdkkSceneEditService {
             List<String> relationIds = fdkkHotData.getRelationIds();
             String sid = fdkkHotData.getSid();
             Integer type = fdkkHotData.getHotType();
+            if(type == null){
+                continue;
+            }
             HotRelation hotRelation = new HotRelation();
             hotRelation.setHotId(sid);
             hotRelation.setHotType(type);
@@ -77,7 +84,7 @@ public class FdkkSceneEditService {
                 hotRelation.setRelationIds(JSONArray.toJSONString(relationIds));
             }
             hotRelation.setNum(fdkkHotRequest.getNum());
-            hotRelation.setContent(fdkkHotData.getContent());
+            hotRelation.setContent(fdkkHotData.getHotContent());
             hotRelationService.saveOrUpdate(hotRelation);
         }
         return fdkkResponse;
@@ -103,7 +110,7 @@ public class FdkkSceneEditService {
         return jsonObject;
     }
 
-    public JSONArray getHotJson(String num, String token) {
+    public JSONArray getHotJson(String num) {
         String data = uploadToOssUtil.getObjectContent(bucket, String.format(hotPath, num));
         if(StringUtils.isBlank(data)){
             throw new BusinessException(ResultCode.NOT_RECORD);
@@ -112,6 +119,14 @@ public class FdkkSceneEditService {
         return getProductByJsonObj(tags);
     }
 
+    public JSONArray getCdfHotJson(String num) {
+        String data = uploadToOssUtil.getObjectContent(bucket, String.format(hotCdfPath, num));
+        if(StringUtils.isBlank(data)){
+            throw new BusinessException(ResultCode.NOT_RECORD);
+        }
+        return JSONObject.parseArray(data);
+    }
+
     private JSONArray getProductByJsonObj(JSONArray tags){
         for (Object obj : tags) {
             JSONObject tag = (JSONObject) obj;
@@ -121,9 +136,12 @@ public class FdkkSceneEditService {
                 continue;
             }
             tag.put("hotType",hotRelation.getHotType());
-            //0商品,1优惠劵,2第三方跳转,3瀑布流
+            //0商品,1优惠劵,2第三方跳转,3瀑布流 ,场景关联
+            if(hotRelation.getHotType() == null){
+                continue;
+            }
             if(hotRelation.getHotType() == 1 || hotRelation.getHotType() == 2){
-                tag.put("hotJumpUrl", hotRelation.getContent());
+                tag.put("hotContent", hotRelation.getContent());
                 continue;
             }
             String relationIds = hotRelation.getRelationIds();
@@ -131,41 +149,43 @@ public class FdkkSceneEditService {
                 continue;
             }
             JSONArray jsonArray = JSONObject.parseArray(relationIds);
-            List<CdfProductVo> products = new ArrayList<>();
+            List<CdfProduct> products = new ArrayList<>();
             for (Object o : jsonArray) {
                 String productId = (String) o;
                 CdfProductListRequest param = new CdfProductListRequest();
                 param.setKeyword(productId);
+                CdfProductListResponse productList = cdfClient.getProductList(param);
+                if(productList == null || productList.getSearchResult()==null || productList.getSearchResult().getType()!=0){
+                    continue;
+                }
                 CdfProductVo cdfProductVo = cdfClient.getProductById(productId);
                 if(cdfProductVo == null || cdfProductVo.getState()==null || cdfProductVo.getState()!=0){
                     continue;
                 }
-                products.add(cdfProductVo);
+                List<CdfProduct> list = productList.getList();
+                for (CdfProduct cdfProduct : list) {
+                    cdfProduct.setSkus(cdfProductVo.getSkus());
+                }
+                products.addAll(list);
             }
             if(products.size() >0){
                 tag.put("products",products);
             }
         }
+
         return tags;
     }
 
 
-    public void publicScene(FdkkHotRequest fdkkHotRequest, String token) {
-        FdkkResponse fdkkResponse = fdkkClient.scenePublicScene(fdkkHotRequest.getNum(),getFdkkToken(token));
+    public void publicScene(FdkkHotRequest fdkkHotRequest, String token) throws Exception {
+        FdkkResponse fdkkResponse = fdkkClient.scenePublicScene(new SceneRequest(fdkkHotRequest.getNum()),getFdkkToken(token));
         if(fdkkResponse.getCode() !=0){
             throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
         }
-        String content = uploadToOssUtil.getObjectContent(bucket, String.format(hotPath, fdkkHotRequest.getNum()));
-        JSONArray jsonArray = JSONObject.parseArray(content);
-        if(jsonArray == null){
-            return ;
-        }
-        for (Object obj : jsonArray) {
-            JSONObject jsonObject= (JSONObject) obj;
-            String sid = jsonObject.getString("sid");
-            HotRelation hotRelation = hotRelationService.getById(sid);
-            jsonObject.put("hotRelation",hotRelation);
-        }
+        JSONArray hotJson = getHotJson(fdkkHotRequest.getNum());
+        String path = String.format(hotLocalPath, fdkkHotRequest.getNum());
+        FileUtils.writeFile(path, hotJson.toJSONString());
+        uploadToOssUtil.upload(path,String.format(hotCdfPath, fdkkHotRequest.getNum()));
     }
 
     public FdkkResponse uploadFiles(FdkkUploadRequest fdkkUploadRequest, MultipartFile files, String token) throws IOException {

+ 27 - 3
src/main/java/com/cdf/service/impl/FdkkSceneService.java

@@ -7,18 +7,20 @@ import com.cdf.entity.FdkkUser;
 import com.cdf.entity.User;
 import com.cdf.exception.BusinessException;
 import com.cdf.httpClient.client.FdkkClient;
-import com.cdf.httpClient.request.FdkkSceneFolderRequest;
-import com.cdf.httpClient.request.FdkkSceneListRequest;
+import com.cdf.httpClient.request.*;
 import com.cdf.httpClient.response.FdkkResponse;
 import com.cdf.service.IFdkkUserService;
 import com.cdf.service.IUserService;
+import com.cdf.util.Base64Converter;
 import com.cdf.util.JwtUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 
 @Service
+@Slf4j
 public class FdkkSceneService {
 
     @Resource
@@ -28,16 +30,34 @@ public class FdkkSceneService {
     @Autowired
     private IUserService userService;
 
-    private String getFdkkToken(String token){
+    public String getFdkkToken(String token){
         Integer userId = JwtUtil.getId(token);
         User user = userService.getById(userId);
         if(user == null || user.getFdkkUserId() == null){
             throw new BusinessException(ResultCode.USER_NOT_EXIST);
         }
         FdkkUser fdkkUser = fdkkUserService.getById(user.getFdkkUserId());
+        FdkkResponse fdkkResponse = fdkkClient.checkToken(fdkkUser.getToken());
+        if(fdkkResponse.getCode() == 0){
+            return fdkkUser.getToken();
+        }
+        if(fdkkUser.getToken() == null){
+            String fdPassword = Base64Converter.getEncode(Base64Converter.encode(fdkkUser.getPassword()));
+            FdkkLoginRequest fdkkLoginRequest = new FdkkLoginRequest(fdkkUser.getUserName(), fdPassword);
+            fdkkResponse = fdkkClient.fdkkLogin(fdkkLoginRequest);
+            if(fdkkResponse.getCode() != 0){
+                throw new BusinessException(fdkkResponse.getCode(), fdkkResponse.getMsg());
+            }
+            log.info("调用四维看看登录结果为:{}", fdkkResponse);
+            Object data = fdkkResponse.getData();
+            JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(data));
+            fdkkUser.setToken(jsonObject.getString("token"));
+        }
+        fdkkUserService.updateById(fdkkUser);
         return fdkkUser.getToken();
     }
 
+
     public PageInfo list(FdkkSceneListRequest param, String token){
         FdkkResponse fdkkResponse = fdkkClient.sceneList(param, getFdkkToken(token));
         if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
@@ -87,4 +107,8 @@ public class FdkkSceneService {
             throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
         }
     }
+
+    public FdkkResponse allList(FdkkAllSceneRequest param,String token) {
+        return fdkkClient.getAllScene(param, getFdkkToken(token));
+    }
 }

+ 21 - 0
src/main/java/com/cdf/util/FileUtils.java

@@ -0,0 +1,21 @@
+package com.cdf.util;
+
+import java.io.*;
+
+public class FileUtils {
+    public static void writeFile(String filePath, String str) throws IOException {
+        File fout = new File(filePath);
+        if (!fout.getParentFile().exists()) {
+            fout.getParentFile().mkdirs();
+        }
+
+        if (!fout.exists()) {
+            fout.createNewFile();
+        }
+
+        FileOutputStream fos = new FileOutputStream(fout);
+        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
+        bw.write(str);
+        bw.close();
+    }
+}

+ 37 - 0
src/main/java/com/cdf/util/StorageType.java

@@ -0,0 +1,37 @@
+package com.cdf.util;
+
+public enum StorageType {
+
+    OSS("oss", "阿里云"),
+    AWS("aws", "亚马逊"),
+    LOCAL("local", "本地");
+
+    private String code;
+    private String message;
+
+    private StorageType(String code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public String code() {
+        return code;
+    }
+
+    public String message() {
+        return message;
+    }
+
+    public static StorageType get(String code){
+        StorageType[] values = StorageType.values();
+        String enumValue = null;
+        for(StorageType eachValue : values){
+            enumValue = eachValue.code();
+            if(enumValue.equals(code)){
+                return eachValue;
+            }
+        }
+        return null;
+    }
+
+}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1058 - 0
src/main/java/com/cdf/util/UploadToOssUtil.java


+ 4 - 2
src/main/resources/application-dev.yaml

@@ -5,7 +5,7 @@ spring:
     druid:
       url: jdbc:mysql://127.0.0.1:3306/cdf_gm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowMultiQueries=true
       username: root
-      password: 123456
+      password: 4Dage@zhongmian#@168
 logging:
   config: classpath:logback-spring.xml
 mybatis-plus:
@@ -14,9 +14,11 @@ mybatis-plus:
 
 
 fdkk:
-  login-path: http://test.4dkankan.com
+  login-path: http://eur.4dkankan.com
   scene-path: http://v4-test.4dkankan.com
   hot-path: scene_view_data/%s/user/hot.json
+  hot-cdf-path: cdf/hot/%s/hot.json
+  hot-local-path: /home/cdf/fdkk/%s/hot.json
 #    type: oss      阿里云 oss
 #    type: aws      亚马逊 s3
 #    type: local    本地化

+ 2 - 0
src/main/resources/application-local.yaml

@@ -17,6 +17,8 @@ fdkk:
   login-path: http://test.4dkankan.com
   scene-path: http://v4-test.4dkankan.com
   hot-path: scene_view_data/%s/user/hot.json
+  hot-cdf-path: cdf/hot/%s/hot.json
+  hot-local-path: D:\temp/%s/hot.json
 #    type: oss      阿里云 oss
 #    type: aws      亚马逊 s3
 #    type: local    本地化

+ 4 - 2
src/main/resources/application-prod.yaml

@@ -5,7 +5,7 @@ spring:
     druid:
       url: jdbc:mysql://127.0.0.1:3306/cdf_gm?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowMultiQueries=true
       username: root
-      password: 123456
+      password: 4Dage@zhongmian#@168
 logging:
   config: classpath:logback-spring.xml
 mybatis-plus:
@@ -14,9 +14,11 @@ mybatis-plus:
 
 
 fdkk:
-  login-path: http://test.4dkankan.com
+  login-path: http://eur.4dkankan.com
   scene-path: http://v4-test.4dkankan.com
   hot-path: scene_view_data/%s/user/hot.json
+  hot-cdf-path: cdf/hot/%s/hot.json
+  hot-local-path: /home/fdkk/temp/%s/hot.json
 #    type: oss      阿里云 oss
 #    type: aws      亚马逊 s3
 #    type: local    本地化