浏览代码

数据统计

lyhzzz 3 年之前
父节点
当前提交
6361b6543e
共有 42 个文件被更改,包括 739 次插入89 次删除
  1. 2 0
      src/main/java/com/cdf/CdfApplication.java
  2. 1 0
      src/main/java/com/cdf/aop/SysLog.java
  3. 7 7
      src/main/java/com/cdf/aop/SysLogAspect.java
  4. 1 2
      src/main/java/com/cdf/business/LoginService.java
  5. 21 0
      src/main/java/com/cdf/controller/TotalDataController.java
  6. 87 0
      src/main/java/com/cdf/controller/api/PageDataApiController.java
  7. 0 1
      src/main/java/com/cdf/controller/api/VideoApiController.java
  8. 1 0
      src/main/java/com/cdf/controller/back/CdfProductController.java
  9. 0 2
      src/main/java/com/cdf/controller/back/LoginController.java
  10. 34 32
      src/main/java/com/cdf/controller/back/SceneBackController.java
  11. 4 2
      src/main/java/com/cdf/controller/back/ShopBackController.java
  12. 4 5
      src/main/java/com/cdf/controller/back/ShopCategoryController.java
  13. 6 4
      src/main/java/com/cdf/controller/back/SysDeptController.java
  14. 4 2
      src/main/java/com/cdf/controller/back/SysMenuController.java
  15. 4 2
      src/main/java/com/cdf/controller/back/SysRoleController.java
  16. 29 9
      src/main/java/com/cdf/controller/back/SysUserController.java
  17. 14 0
      src/main/java/com/cdf/controller/back/TestController.java
  18. 10 2
      src/main/java/com/cdf/controller/back/VideoBackController.java
  19. 3 5
      src/main/java/com/cdf/entity/Dept.java
  20. 2 0
      src/main/java/com/cdf/entity/Log.java
  21. 72 0
      src/main/java/com/cdf/entity/PageData.java
  22. 2 2
      src/main/java/com/cdf/entity/ShopCategory.java
  23. 73 0
      src/main/java/com/cdf/entity/TotalData.java
  24. 1 1
      src/main/java/com/cdf/entity/Video.java
  25. 2 2
      src/main/java/com/cdf/generate/AutoGenerate.java
  26. 26 5
      src/main/java/com/cdf/httpClient/client/FdkkClient.java
  27. 17 0
      src/main/java/com/cdf/httpClient/request/FdkkSceneFolderRequest.java
  28. 2 2
      src/main/java/com/cdf/httpClient/request/FdkkSceneRequest.java
  29. 18 0
      src/main/java/com/cdf/mapper/IPageDataMapper.java
  30. 18 0
      src/main/java/com/cdf/mapper/ITotalDataMapper.java
  31. 1 1
      src/main/java/com/cdf/response/DeptVo.java
  32. 1 0
      src/main/java/com/cdf/response/UserVo.java
  33. 80 0
      src/main/java/com/cdf/schedule/ScheduleTask.java
  34. 16 0
      src/main/java/com/cdf/service/IPageDataService.java
  35. 16 0
      src/main/java/com/cdf/service/ITotalDataService.java
  36. 78 0
      src/main/java/com/cdf/service/impl/FdkkSceneService.java
  37. 20 0
      src/main/java/com/cdf/service/impl/PageDataServiceImpl.java
  38. 20 0
      src/main/java/com/cdf/service/impl/TotalDataServiceImpl.java
  39. 29 0
      src/main/java/com/cdf/util/DateUtil.java
  40. 3 1
      src/main/resources/application.yaml
  41. 5 0
      src/main/resources/mapper/PageDataMapper.xml
  42. 5 0
      src/main/resources/mapper/TotalDataMapper.xml

+ 2 - 0
src/main/java/com/cdf/CdfApplication.java

@@ -12,10 +12,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
 
 @SpringBootApplication
 @MapperScan("com.cdf.**.mapper")
 @ComponentScan(basePackages = {"com.cdf.*","com.fdkankan.*"})
+@EnableScheduling
 public class CdfApplication implements ApplicationContextAware {
 
     static { AspectLogEnhance.enhance();}//进行日志增强,自动判断日志框架

+ 1 - 0
src/main/java/com/cdf/aop/SysLog.java

@@ -15,4 +15,5 @@ import java.lang.annotation.*;
 public @interface SysLog {
 
     String value() default "操作日志";
+    String logType() default "操作日志";
 }

+ 7 - 7
src/main/java/com/cdf/aop/SysLogAspect.java

@@ -68,6 +68,7 @@ public class SysLogAspect {
         if (annotation != null) {
             //注解上的描述
             sysLog.setInfo(annotation.value());
+            sysLog.setLogType(annotation.logType());
         }
         sysLog.setMethod(className + "." + methodName + "()");
         sysLog.setParam(params);
@@ -80,15 +81,14 @@ public class SysLogAspect {
             sysLog.setResult(ResultCode.ERROR.msg);
         }
         String token = request.getHeader("token");
-        if(StringUtils.isBlank(token)){
-            token = jsonObject.getJSONObject("data").getString("token");
-        }
+        Integer id = null;
+        String phone = null;
         if(StringUtils.isNotBlank(token)){
-            Integer id = JwtUtil.getId(token);
-            String phone = JwtUtil.getPhone(token);
-            sysLog.setUserId(id);
-            sysLog.setPhone(phone);
+            id = JwtUtil.getId(token);
+            phone = JwtUtil.getPhone(token);
         }
+        sysLog.setUserId(id);
+        sysLog.setPhone(phone);
         logService.save(sysLog);
         return result;
     }

+ 1 - 2
src/main/java/com/cdf/business/LoginService.java

@@ -63,14 +63,13 @@ public class LoginService {
         Dept dept = deptService.getById(user.getDeptId());
         Role role = roleService.getById(user.getRoleId());
         loginResponse.setUserVo(user);
-
         loginResponse.getUserVo().setDeptName(dept.getDeptName());
         loginResponse.getUserVo().setRoleName(role.getRoleName());
 
         HashMap<String,Object> jwtMap = new HashMap<>();
         jwtMap.put("id",user.getId());
         jwtMap.put("phone",user.getPhone());
-        String token = JwtUtil.createJWT(30 * 60 * 1000, jwtMap);
+        String token = JwtUtil.createJWT(-1, jwtMap);
         loginResponse.setToken(token);
         if(fdkkuser.getToken() != null){
             FdkkResponse fdkkResponse = fdkkClient.checkToken(fdkkuser.getToken());

+ 21 - 0
src/main/java/com/cdf/controller/TotalDataController.java

@@ -0,0 +1,21 @@
+package com.cdf.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@RestController
+@RequestMapping("/totalData")
+public class TotalDataController {
+
+}
+

+ 87 - 0
src/main/java/com/cdf/controller/api/PageDataApiController.java

@@ -0,0 +1,87 @@
+package com.cdf.controller.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cdf.common.ResultData;
+import com.cdf.entity.PageData;
+import com.cdf.service.IPageDataService;
+import com.cdf.util.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.naming.ldap.PagedResultsControl;
+import java.util.Date;
+import java.util.List;
+
+
+@RestController
+@RequestMapping("/api")
+public class PageDataApiController {
+
+    @Autowired
+    IPageDataService pageDataService;
+
+    @GetMapping("/inPage")
+    public ResultData inPage(@RequestParam(required = false) String userId,
+                             @RequestParam(required = false) String accessToken,
+                             @RequestParam(required = false) String cookieId,
+                             @RequestParam(required = false) String isMiniApp,
+                             @RequestParam(required = false) String whereUrl){
+        PageData pageData = new PageData();
+        pageData.setCdfUserId(userId);
+        pageData.setCdfToken(accessToken);
+        pageData.setCdfCookieId(cookieId);
+        pageData.setIsMiniApp(isMiniApp);
+        pageData.setDay(DateUtil.getDay(new Date()));
+        pageData.setUrl(whereUrl);
+        pageDataService.save(pageData);
+        return ResultData.ok();
+    }
+
+    @GetMapping("/inOrOutPage")
+    public ResultData inOrOutPage(@RequestParam(required = false) String userId,
+                                  @RequestParam(required = false) String accessToken,
+                                  @RequestParam(required = false) String cookieId,
+                                  @RequestParam(required = false) String isMiniApp,
+                                  @RequestParam(required = false) String whereUrl,
+                                  @RequestParam(required = false) Integer type) throws Exception {
+        LambdaQueryWrapper<PageData> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PageData::getCdfCookieId,cookieId);
+        wrapper.eq(PageData::getDay,DateUtil.getDay(new Date()));
+        List<PageData> list = pageDataService.list(wrapper);
+        PageData pageData;
+        if(list.size() <=0){
+            pageData = new PageData();
+            pageData.setCdfUserId(userId);
+            pageData.setCdfToken(accessToken);
+            pageData.setCdfCookieId(cookieId);
+            pageData.setIsMiniApp(isMiniApp);
+            pageData.setDay(DateUtil.getDay(new Date()));
+            pageData.setUrl(whereUrl);
+        }else {
+            pageData = list.get(0);
+        }
+        if(!pageData.getUrl().equals(whereUrl) && pageData.getIsJump() ==1){
+            pageData.setIsJump(0);
+        }
+        pageData.setUrl(whereUrl);
+        if(type == 1){
+            long time = DateUtil.getDateTime(pageData.getCreateTime());
+            pageData.setStopTime(new Date().getTime() - time );
+        }
+        if(type == 2){
+            pageData.setIsClickGame(1);
+        }
+        if(type == 3){
+            pageData.setIsClickShop(1);
+        }
+        pageDataService.saveOrUpdate(pageData);
+        return ResultData.ok();
+    }
+
+}
+

+ 0 - 1
src/main/java/com/cdf/controller/api/VideoApiController.java

@@ -1,7 +1,6 @@
 package com.cdf.controller.api;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.Query;
 import com.cdf.common.ResultData;
 import com.cdf.entity.Video;
 import com.cdf.service.IVideoService;

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

@@ -1,5 +1,6 @@
 package com.cdf.controller.back;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cdf.common.PageInfo;
 import com.cdf.common.ResultData;
 import com.cdf.exception.BusinessException;

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

@@ -1,6 +1,5 @@
 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;
@@ -18,7 +17,6 @@ public class LoginController {
     private LoginService loginService;
 
     @PostMapping("/login")
-    @SysLog("登录")
     ResultData login(@RequestBody LoginRequest param){
         return ResultData.ok(loginService.login(param));
     }

+ 34 - 32
src/main/java/com/cdf/controller/back/SceneBackController.java

@@ -1,48 +1,50 @@
 package com.cdf.controller.back;
 
-import com.alibaba.fastjson.JSONObject;
-import com.cdf.common.PageInfo;
-import com.cdf.common.ResultCode;
+import com.cdf.aop.SysLog;
 import com.cdf.common.ResultData;
-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.FdkkSceneRequest;
+import com.cdf.httpClient.request.FdkkSceneFolderRequest;
+import com.cdf.httpClient.request.FdkkSceneListRequest;
 import com.cdf.httpClient.response.FdkkResponse;
-import com.cdf.service.IFdkkUserService;
-import com.cdf.service.IUserService;
-import com.cdf.util.JwtUtil;
+import com.cdf.service.impl.FdkkSceneService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
-
 @RestController
 @RequestMapping("/back/scene")
 public class SceneBackController {
 
-    @Resource
-    private FdkkClient fdkkClient;
-    @Autowired
-    private IFdkkUserService fdkkUserService;
+
     @Autowired
-    private IUserService userService;
+    private FdkkSceneService fdkkSceneService;
 
     @PostMapping("/list")
-    public ResultData list (@RequestBody FdkkSceneRequest param, @RequestHeader 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.sceneList(param, fdkkUser.getToken());
-        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
-            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
-        }
-        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData())).getJSONObject("pageInfo");
-        PageInfo pageInfo = PageInfo.PageInfo(jsonObject.getLong("pageNum"), jsonObject.getLong("pageSize"), jsonObject.getLong("total"), jsonObject.getJSONArray("list"));
-        return ResultData.ok(pageInfo);
+    public ResultData list (@RequestBody FdkkSceneListRequest param, @RequestHeader String token ){
+        return ResultData.ok(fdkkSceneService.list(param,token));
+    }
+
+    @PostMapping("/delete")
+    @SysLog(logType = "VR场景",value = "删除")
+    public ResultData delete (@RequestBody FdkkSceneFolderRequest param, @RequestHeader String token ){
+        fdkkSceneService.delete(param,token);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/findListTree")
+    public ResultData findListTree ( @RequestHeader String token ){
+        FdkkResponse fdkkResponse = fdkkSceneService.findListTree(token);
+        return ResultData.ok(fdkkResponse.getData());
+    }
+
+    @PostMapping("/folderSave")
+    @SysLog(logType = "VR场景",value = "新建文件夹")
+    public ResultData folderSave (@RequestBody FdkkSceneFolderRequest param, @RequestHeader String token ){
+        fdkkSceneService.folderSave(param,token);
+        return ResultData.ok();
+    }
+    @PostMapping("/move")
+    @SysLog(logType = "VR场景",value = "移动")
+    public ResultData move (@RequestBody FdkkSceneFolderRequest param, @RequestHeader String token ){
+        fdkkSceneService.move(param,token);
+        return ResultData.ok();
     }
 }

+ 4 - 2
src/main/java/com/cdf/controller/back/ShopBackController.java

@@ -37,8 +37,10 @@ public class ShopBackController {
     IShopCategoryService categoryService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("店铺新增或修改")
+    @SysLog(logType = "店铺管理",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody Shop shop){
+        shop.setCreateTime(null);
+        shop.setUpdateTime(null);
         shopService.saveOrUpdate(shop);
         return ResultData.ok();
     }
@@ -70,7 +72,7 @@ public class ShopBackController {
     }
 
     @PostMapping("/delete")
-    @SysLog("店铺删除")
+    @SysLog(logType = "店铺管理",value = "删除")
     public ResultData delete(@RequestBody ShopRequest param){
         shopService.removeById(param.getId());
         return ResultData.ok();

+ 4 - 5
src/main/java/com/cdf/controller/back/ShopCategoryController.java

@@ -5,12 +5,9 @@ import com.cdf.aop.SysLog;
 import com.cdf.common.PageInfo;
 import com.cdf.common.ResultCode;
 import com.cdf.common.ResultData;
-import com.cdf.entity.HotRelation;
 import com.cdf.entity.ShopCategory;
 import com.cdf.exception.BusinessException;
 import com.cdf.request.BaseRequest;
-import com.cdf.request.HotTypeRequest;
-import com.cdf.service.IHotRelationService;
 import com.cdf.service.IShopCategoryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -28,13 +25,15 @@ public class ShopCategoryController {
     private IShopCategoryService shopCategoryService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("店铺分类新增或修改")
+    @SysLog(logType = "店铺分类",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody ShopCategory shopCategory){
+        shopCategory.setCreateTime(null);
+        shopCategory.setUpdateTime(null);
         shopCategoryService.saveOrUpdate(shopCategory);
         return ResultData.ok();
     }
     @PostMapping("/delete")
-    @SysLog("店铺分类删除")
+    @SysLog(logType = "店铺分类",value = "删除")
     public ResultData delete(@RequestBody ShopCategory shopCategory){
         if(shopCategory.getId() == null){
             throw new BusinessException(ResultCode.PARAM_MISS);

+ 6 - 4
src/main/java/com/cdf/controller/back/SysDeptController.java

@@ -35,17 +35,19 @@ public class SysDeptController {
     private IUserService userService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("组织架构新增或修改")
+    @SysLog(logType = "组织架构",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody Dept dept){
-        if(dept.getId().equals(dept.getParentId())){
+        if(dept.getId()!=null && dept.getId().equals(dept.getParentId())){
             throw new BusinessException(ResultCode.ERROR);
         }
+        dept.setCreateTime(null);
+        dept.setUpdateTime(null);
         deptService.saveOrUpdate(dept);
-        return ResultData.ok();
+        return ResultData.ok(dept);
     }
 
     @PostMapping("/delete")
-    @SysLog("组织架构删除")
+    @SysLog(logType = "组织架构",value = "删除")
     public ResultData delete(@RequestBody Dept param){
         Dept dept = deptService.getById(param.getId());
         if(dept == null ){

+ 4 - 2
src/main/java/com/cdf/controller/back/SysMenuController.java

@@ -33,13 +33,15 @@ public class SysMenuController {
     private IUserService userService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("菜单新增或修改")
+    @SysLog(logType = "系统菜单",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody Menu menu){
+        menu.setCreateTime(null);
+        menu.setUpdateTime(null);
         menuService.saveOrUpdate(menu);
         return ResultData.ok();
     }
     @PostMapping("/delete")
-    @SysLog("菜单删除")
+    @SysLog(logType = "系统菜单",value = "删除")
     public ResultData delete(@RequestBody Menu menu){
         menuService.removeById(menu);
         return ResultData.ok();

+ 4 - 2
src/main/java/com/cdf/controller/back/SysRoleController.java

@@ -32,14 +32,16 @@ public class SysRoleController {
     private IRoleMenuService roleMenuService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("角色新增或修改")
+    @SysLog(logType = "系统角色",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody Role role){
+        role.setCreateTime(null);
+        role.setUpdateTime(null);
         roleService.saveOrUpdate(role);
         return ResultData.ok();
     }
 
     @PostMapping("/delete")
-    @SysLog("角色删除")
+    @SysLog(logType = "系统角色",value = "删除")
     public ResultData delete(@RequestBody Role role){
         roleService.removeById(role.getId());
         return ResultData.ok();

+ 29 - 9
src/main/java/com/cdf/controller/back/SysUserController.java

@@ -2,9 +2,6 @@ package com.cdf.controller.back;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cdf.aop.SysLog;
 import com.cdf.common.PageInfo;
 import com.cdf.common.ResultCode;
@@ -16,7 +13,9 @@ import com.cdf.response.UserVo;
 import com.cdf.service.IUserService;
 import com.cdf.util.Base64Converter;
 import com.cdf.util.SecurityUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 
@@ -27,9 +26,11 @@ public class SysUserController {
 
     @Autowired
     private IUserService userService;
+    @Value("${user.default-password}")
+    private String defaultPassword;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("系统用户新增修改")
+    @SysLog(logType = "系统用户",value = "新增修改")
     public ResultData saveOrUpdate(@RequestBody User user){
        if(user.getId() == null){
            LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper();
@@ -38,11 +39,18 @@ public class SysUserController {
            if(count >0){
                 throw  new BusinessException(ResultCode.PHONE_EXIST);
            }
+           if(StringUtils.isBlank(user.getPhone())||StringUtils.isBlank(user.getPassword())){
+               throw  new BusinessException(ResultCode.PARAM_MISS);
+           }
+           user.setFdkkUserId(1);
        }
-        String password = Base64Converter.decode(Base64Converter.subText(user.getPassword()));
-        String passwordMd5 = SecurityUtil.MD52(password);
-        user.setPassword(passwordMd5);
-        user.setFdkkUserId(1);
+       if(StringUtils.isNotBlank(user.getPassword())){
+           String password = Base64Converter.decode(Base64Converter.subText(user.getPassword()));
+           String passwordMd5 = SecurityUtil.MD52(password);
+           user.setPassword(passwordMd5);
+       }
+        user.setCreateTime(null);
+        user.setUpdateTime(null);
         userService.saveOrUpdate(user);
         return ResultData.ok();
     }
@@ -54,11 +62,23 @@ public class SysUserController {
     }
 
     @PostMapping("/delete")
-    @SysLog("用户删除")
+    @SysLog(logType = "系统用户",value = "删除")
     public ResultData delete(@RequestBody UserRequest param){
         userService.removeById(param.getId());
         return ResultData.ok();
     }
+    @PostMapping("/rePassword")
+    @SysLog(logType = "系统用户",value = "重置密码")
+    public ResultData rePassword(@RequestBody UserRequest param){
+        if(param.getId() == null){
+            throw new BusinessException(ResultCode.PARAM_MISS);
+        }
+        User user = userService.getById(param.getId());
+        String passwordMd5 = SecurityUtil.MD52(defaultPassword);
+        user.setPassword(passwordMd5);
+        userService.saveOrUpdate(user);
+        return ResultData.ok();
+    }
 
 
 }

+ 14 - 0
src/main/java/com/cdf/controller/back/TestController.java

@@ -5,7 +5,10 @@ import com.cdf.httpClient.client.CdfClient;
 import com.cdf.httpClient.response.cdf.CdfProduct;
 import com.cdf.httpClient.response.cdf.CdfProductListRequest;
 import com.cdf.httpClient.response.cdf.CdfProductVo;
+import com.cdf.schedule.ScheduleTask;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
+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;
@@ -19,6 +22,8 @@ public class TestController {
 
     @Resource
     CdfClient cdfClient;
+    @Autowired
+    private ScheduleTask scheduleTask;
 
     @RequestMapping("/test/getProductById")
     public ResultData getProductById(@RequestParam(required = false) String productId){
@@ -32,4 +37,13 @@ public class TestController {
     public ResultData getCatNum(){
         return ResultData.ok(cdfClient.getCatNum());
     }
+    @RequestMapping("/test/task")
+    public ResultData statisticsH5Data(@RequestParam(required = false) String day){
+        if(StringUtils.isNotBlank(day)){
+            ScheduleTask.day = day;
+        }
+        scheduleTask.statisticsH5Data();
+        ScheduleTask.day = null;
+        return ResultData.ok();
+    }
 }

+ 10 - 2
src/main/java/com/cdf/controller/back/VideoBackController.java

@@ -1,6 +1,7 @@
 package com.cdf.controller.back;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cdf.aop.SysLog;
 import com.cdf.common.PageInfo;
@@ -24,8 +25,15 @@ public class VideoBackController {
     private IVideoService videoService;
 
     @PostMapping("/saveOrUpdate")
-    @SysLog("开场视频新增或删除")
+    @SysLog(logType = "开场视频",value = "新增或修改")
     public ResultData saveOrUpdate(@RequestBody Video video){
+        if(video.getShowStatus() == 1){
+            LambdaUpdateWrapper<Video> wrapper = new LambdaUpdateWrapper<>();
+            wrapper.set(Video::getShowStatus, 0);
+            videoService.update(wrapper);
+        }
+        video.setUpdateTime(null);
+        video.setCreateTime(null);
         videoService.saveOrUpdate(video);
         return ResultData.ok();
     }
@@ -36,7 +44,7 @@ public class VideoBackController {
         return ResultData.ok(PageInfo.PageInfo(page));
     }
     @PostMapping("/delete")
-    @SysLog("开场视频删除")
+    @SysLog(logType = "开场视频",value = "删除")
     public ResultData delete (@RequestBody BaseRequest param){
         videoService.removeById(param.getId());
         return ResultData.ok();

+ 3 - 5
src/main/java/com/cdf/entity/Dept.java

@@ -1,9 +1,7 @@
 package com.cdf.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableLogic;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
 import java.util.Date;
 import lombok.Getter;
@@ -24,7 +22,7 @@ public class Dept implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @TableId("id")
+    @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
     @TableField("dept_name")

+ 2 - 0
src/main/java/com/cdf/entity/Log.java

@@ -67,6 +67,8 @@ public class Log implements Serializable {
 
     @TableField("result")
     private String result;
+    @TableField("log_type")
+    private String logType;
 
 
 }

+ 72 - 0
src/main/java/com/cdf/entity/PageData.java

@@ -0,0 +1,72 @@
+package com.cdf.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Getter
+@Setter
+@TableName("t_page_data")
+public class PageData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @TableField("cdf_user_id")
+    private String cdfUserId;
+
+    @TableField("cdf_token")
+    private String cdfToken;
+
+    @TableField("cdf_cookie_id")
+    private String cdfCookieId;
+
+    @TableField("is_mini_app")
+    private String isMiniApp;
+
+    @TableField("is_click_game")
+    private Integer isClickGame;
+
+    @TableField("is_click_shop")
+    private Integer isClickShop;
+
+    @TableField("is_jump")
+    private Integer isJump;
+
+    @TableField("stop_time")
+    private Long stopTime;
+
+    @TableField("url")
+    private String url;
+
+    @TableField("day")
+    private String day;
+
+    @TableField("tb_status")
+    @TableLogic
+    private Integer tbStatus;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+}

+ 2 - 2
src/main/java/com/cdf/entity/ShopCategory.java

@@ -36,10 +36,10 @@ public class ShopCategory implements Serializable {
     private Boolean tbStatus;
 
     @TableField("create_time")
-    private Date createTime;
+    private String createTime;
 
     @TableField("update_time")
-    private Date updateTime;
+    private String updateTime;
 
 
 }

+ 73 - 0
src/main/java/com/cdf/entity/TotalData.java

@@ -0,0 +1,73 @@
+package com.cdf.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Getter
+@Setter
+@TableName("t_total_data")
+public class TotalData implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("id")
+    private String id;
+
+    /**
+     * 平均停留时间
+     */
+    @TableField("avg_stop_time")
+    private Long avgStopTime;
+
+    /**
+     * 跳出率
+     */
+    @TableField("avg_jump")
+    private BigDecimal avgJump;
+
+    /**
+     * 寻宝游戏点击率
+     */
+    @TableField("avg_click_game")
+    private BigDecimal avgClickGame;
+
+    /**
+     * 商品详情点击率
+     */
+    @TableField("avg_click_shop")
+    private BigDecimal avgClickShop;
+
+    @TableField("create_time")
+    private String createTime;
+
+    @TableField("update_time")
+    private String updateTime;
+
+
+    @Override
+    public String toString() {
+        return "TotalData{" +
+                "id='" + id + '\'' +
+                ", avgStopTime=" + avgStopTime +
+                ", avgJump=" + avgJump +
+                ", avgClickGame=" + avgClickGame +
+                ", avgClickShop=" + avgClickShop +
+                ", createTime='" + createTime + '\'' +
+                ", updateTime='" + updateTime + '\'' +
+                '}';
+    }
+}

+ 1 - 1
src/main/java/com/cdf/entity/Video.java

@@ -44,7 +44,7 @@ public class Video implements Serializable {
      * 显示状态 0显示,1不显示
      */
     @TableField("show_status")
-    private Boolean showStatus;
+    private Integer showStatus;
 
     @TableField("tb_status")
     @TableLogic

+ 2 - 2
src/main/java/com/cdf/generate/AutoGenerate.java

@@ -20,7 +20,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"", getTables(new String[]{
-                "t_shop_category"
+                "t_total_data"
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -55,7 +55,7 @@ public class AutoGenerate {
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)
                             //.enableSwagger()           //开启swagger
                             .commentDate("yyyy-MM-dd")
-                            .dateType(DateType.ONLY_DATE)
+                            .dateType(DateType.TIME_PACK)
                             .fileOverride();            //开启覆盖之前生成的文件
 
                 })

+ 26 - 5
src/main/java/com/cdf/httpClient/client/FdkkClient.java

@@ -4,11 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.cdf.httpClient.request.*;
 import com.cdf.httpClient.response.FdkkResponse;
 import com.dtflys.forest.annotation.*;
-import org.springframework.web.bind.annotation.RequestHeader;
-import org.springframework.web.multipart.MultipartFile;
 
-import java.io.File;
-import java.nio.file.Files;
 import java.util.Map;
 
 /**
@@ -33,7 +29,31 @@ public interface FdkkClient {
      */
     @Post("/api/user/scene/newList")
     @Address(source = FdkkLoginAddressSource.class)
-    FdkkResponse sceneList(@JSONBody FdkkSceneRequest fdkkSceneRequest ,@Header("token")  String token);
+    FdkkResponse sceneList(@JSONBody FdkkSceneListRequest fdkkSceneRequest , @Header("token")  String token);
+    /**
+     * 删除场景
+     */
+    @Post("/api/user/scene/delete")
+    @Address(source = FdkkLoginAddressSource.class)
+    FdkkResponse sceneDelete(@JSONBody FdkkSceneFolderRequest fdkkSceneDeleteRequest , @Header("token")  String token);
+    /**
+     * 获取文件夹列表树
+     */
+    @Post("/api/user/folder/findListTree")
+    @Address(source = FdkkLoginAddressSource.class)
+    FdkkResponse findListTree(@JSONBody FdkkSceneFolderRequest fdkkSceneDeleteRequest , @Header("token")  String token);
+    /**
+     * 新建文件夹
+     */
+    @Post("/api/user/folder/save")
+    @Address(source = FdkkLoginAddressSource.class)
+    FdkkResponse folderSave(@JSONBody FdkkSceneFolderRequest fdkkSceneDeleteRequest , @Header("token")  String token);
+    /**
+     * 移动场景,文件夹
+     */
+    @Post("/api/user/folder/move")
+    @Address(source = FdkkLoginAddressSource.class)
+    FdkkResponse sceneMove(@JSONBody FdkkSceneFolderRequest fdkkSceneDeleteRequest , @Header("token")  String token);
     /**
      * 添加热点
      */
@@ -65,6 +85,7 @@ public interface FdkkClient {
     @Address(source = FdkkSceneAddressSource.class)
     FdkkResponse uploadFiles(@Query FdkkUploadRequest fdkkUploadRequest, @DataFile("files") String files, @Header("token")String token);
 
+
     @Post("{url}")
     @Address(source = FdkkSceneAddressSource.class)
     JSONObject sendPost(@Var("url") String url, @JSONBody JSONObject jsonObject, @Header("token")  String token);

+ 17 - 0
src/main/java/com/cdf/httpClient/request/FdkkSceneFolderRequest.java

@@ -0,0 +1,17 @@
+package com.cdf.httpClient.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class FdkkSceneFolderRequest {
+    private String sceneNum;    //删除场景使用
+    private Integer type = 2;       //获取场景列表使用
+    private Integer parentId;
+    private String folderIds;
+    private String sceneIds;
+    private String name;
+}

+ 2 - 2
src/main/java/com/cdf/httpClient/request/FdkkSceneRequest.java

@@ -3,11 +3,11 @@ package com.cdf.httpClient.request;
 import lombok.Data;
 
 @Data
-public class FdkkSceneRequest {
+public class FdkkSceneListRequest {
     private Integer cameraId;
     private Integer cameraType;
     private Integer folderId;
-    private Integer folderType;
+    private Integer folderType = 2;
     private Boolean isSetData = true;
     private String keywordType = "sceneName" ;
     private Integer pageNum = 1;

+ 18 - 0
src/main/java/com/cdf/mapper/IPageDataMapper.java

@@ -0,0 +1,18 @@
+package com.cdf.mapper;
+
+import com.cdf.entity.PageData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Mapper
+public interface IPageDataMapper extends BaseMapper<PageData> {
+
+}

+ 18 - 0
src/main/java/com/cdf/mapper/ITotalDataMapper.java

@@ -0,0 +1,18 @@
+package com.cdf.mapper;
+
+import com.cdf.entity.TotalData;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Mapper
+public interface ITotalDataMapper extends BaseMapper<TotalData> {
+
+}

+ 1 - 1
src/main/java/com/cdf/response/DeptVo.java

@@ -7,7 +7,7 @@ import java.util.List;
 @Data
 public class DeptVo {
     private Integer id;
-    private String name;
+    private String deptName;
     private Integer parentId;
     private List<DeptVo> children;
 }

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

@@ -11,4 +11,5 @@ public class UserVo {
     private String deptName;
     private Integer roleId;
     private String roleName;
+    private String createTime;
 }

+ 80 - 0
src/main/java/com/cdf/schedule/ScheduleTask.java

@@ -0,0 +1,80 @@
+package com.cdf.schedule;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.cdf.entity.PageData;
+import com.cdf.entity.TotalData;
+import com.cdf.service.IPageDataService;
+import com.cdf.service.ITotalDataService;
+import com.cdf.util.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.naming.ldap.PagedResultsControl;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class ScheduleTask {
+
+    @Autowired
+    IPageDataService pageDataService;
+    @Autowired
+    ITotalDataService totalDataService;
+
+    public static String day = null;
+
+    @Scheduled(cron = "0 0 0 * * ?")
+    public void statisticsH5Data() {
+        if(day == null){
+            day = DateUtil.getDay(new Date(), -1);
+        }
+        log.info("开始统计{}的数据,{}",day,DateUtil.getDateTime(new Date()));
+        LambdaQueryWrapper<PageData> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(PageData::getDay,day);
+        List<PageData> list = pageDataService.list(wrapper);
+        Long stopTimeCount = 0L;
+        BigDecimal jumpCount = BigDecimal.ZERO;
+        BigDecimal clickGameCount = BigDecimal.ZERO;
+        BigDecimal clickShopCount = BigDecimal.ZERO;
+        for (PageData pageData : list) {
+            stopTimeCount += pageData.getStopTime();
+            if(pageData.getIsJump() == 1){
+                jumpCount = jumpCount.add(new BigDecimal(1));
+            }
+            if(pageData.getIsClickGame() == 1){
+                clickGameCount = clickGameCount.add(new BigDecimal(1));
+            }
+            if(pageData.getIsClickShop() == 1){
+                clickShopCount = clickShopCount.add(new BigDecimal(1));
+            }
+        }
+        Long avgStopTime = 0L;
+        BigDecimal avgJump = BigDecimal.ZERO;
+        BigDecimal avgClickGame = BigDecimal.ZERO;
+        BigDecimal avgClickShop = BigDecimal.ZERO;
+        if(list.size()>0){
+            avgStopTime = (stopTimeCount / list.size())/1000;
+            avgJump = jumpCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
+            avgClickGame = clickGameCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
+            avgClickShop = clickShopCount.divide(new BigDecimal(list.size()),4,BigDecimal.ROUND_HALF_UP);
+        }
+        TotalData totalData = new TotalData();
+        totalData.setId(day);
+        totalData.setAvgStopTime(avgStopTime);
+        totalData.setAvgJump(avgJump);
+        totalData.setAvgClickGame(avgClickGame);
+        totalData.setAvgClickShop(avgClickShop);
+        totalDataService.saveOrUpdate(totalData);
+
+        log.info("{发送{}的统计结果{}给海鲲,{}",day,totalData,DateUtil.getDateTime(new Date()));
+
+        log.info("{结束统计{}的数据,{}",day,DateUtil.getDateTime(new Date()));
+
+    }
+
+}

+ 16 - 0
src/main/java/com/cdf/service/IPageDataService.java

@@ -0,0 +1,16 @@
+package com.cdf.service;
+
+import com.cdf.entity.PageData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+public interface IPageDataService extends IService<PageData> {
+
+}

+ 16 - 0
src/main/java/com/cdf/service/ITotalDataService.java

@@ -0,0 +1,16 @@
+package com.cdf.service;
+
+import com.cdf.entity.TotalData;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+public interface ITotalDataService extends IService<TotalData> {
+
+}

+ 78 - 0
src/main/java/com/cdf/service/impl/FdkkSceneService.java

@@ -0,0 +1,78 @@
+package com.cdf.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.cdf.common.PageInfo;
+import com.cdf.common.ResultCode;
+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.response.FdkkResponse;
+import com.cdf.service.IFdkkUserService;
+import com.cdf.service.IUserService;
+import com.cdf.util.JwtUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class FdkkSceneService {
+
+    @Resource
+    private FdkkClient fdkkClient;
+    @Autowired
+    private IFdkkUserService fdkkUserService;
+    @Autowired
+    private IUserService userService;
+
+    private 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());
+        return fdkkUser.getToken();
+    }
+
+    public PageInfo list(FdkkSceneListRequest param, String token){
+        FdkkResponse fdkkResponse = fdkkClient.sceneList(param, getFdkkToken(token));
+        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
+            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
+        }
+        JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(fdkkResponse.getData())).getJSONObject("pageInfo");
+        PageInfo pageInfo = PageInfo.PageInfo(jsonObject.getLong("pageNum"), jsonObject.getLong("pageSize"), jsonObject.getLong("total"), jsonObject.getJSONArray("list"));
+        return pageInfo;
+    }
+
+    public void delete(FdkkSceneFolderRequest param, String token) {
+        FdkkResponse fdkkResponse = fdkkClient.sceneDelete(param, getFdkkToken(token));
+        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
+            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
+        }
+    }
+
+    public FdkkResponse findListTree(String token) {
+        FdkkResponse fdkkResponse = fdkkClient.findListTree( new FdkkSceneFolderRequest(), getFdkkToken(token));
+        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
+            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
+        }
+        return fdkkResponse;
+    }
+
+    public void move(FdkkSceneFolderRequest param, String token) {
+        FdkkResponse fdkkResponse = fdkkClient.sceneMove( param, getFdkkToken(token));
+        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
+            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
+        }
+    }
+    public void folderSave(FdkkSceneFolderRequest param, String token) {
+        FdkkResponse fdkkResponse = fdkkClient.folderSave( param, getFdkkToken(token));
+        if(fdkkResponse.getCode() != ResultCode.SUCCESS.code){
+            throw new BusinessException(fdkkResponse.getCode(),fdkkResponse.getMsg());
+        }
+    }
+}

+ 20 - 0
src/main/java/com/cdf/service/impl/PageDataServiceImpl.java

@@ -0,0 +1,20 @@
+package com.cdf.service.impl;
+
+import com.cdf.entity.PageData;
+import com.cdf.mapper.IPageDataMapper;
+import com.cdf.service.IPageDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Service
+public class PageDataServiceImpl extends ServiceImpl<IPageDataMapper, PageData> implements IPageDataService {
+
+}

+ 20 - 0
src/main/java/com/cdf/service/impl/TotalDataServiceImpl.java

@@ -0,0 +1,20 @@
+package com.cdf.service.impl;
+
+import com.cdf.entity.TotalData;
+import com.cdf.mapper.ITotalDataMapper;
+import com.cdf.service.ITotalDataService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-05-18
+ */
+@Service
+public class TotalDataServiceImpl extends ServiceImpl<ITotalDataMapper, TotalData> implements ITotalDataService {
+
+}

+ 29 - 0
src/main/java/com/cdf/util/DateUtil.java

@@ -0,0 +1,29 @@
+package com.cdf.util;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+
+    public static String DAY_FORMAT = "yyyy-MM-dd";
+    public static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
+
+    public static String getDay(Date date){
+        return new SimpleDateFormat(DAY_FORMAT).format(date);
+    }
+    public static String getDay(Date date,int day){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_MONTH,-1);
+        return new SimpleDateFormat(DAY_FORMAT).format(calendar.getTime());
+    }
+
+    public static long getDateTime(String time) throws Exception {
+        return  new SimpleDateFormat(TIME_FORMAT).parse(time).getTime();
+    }
+    public static String getDateTime(Date time) {
+        return  new SimpleDateFormat(TIME_FORMAT).format(time);
+    }
+}

+ 3 - 1
src/main/resources/application.yaml

@@ -16,4 +16,6 @@ server:
     max-http-form-post-size: -1
 
 tlog:
-  enable-invoke-time-print: true
+  enable-invoke-time-print: true
+user:
+  default-password: 88888888

+ 5 - 0
src/main/resources/mapper/PageDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.cdf.mapper.IPageDataMapper">
+
+</mapper>

+ 5 - 0
src/main/resources/mapper/TotalDataMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.cdf.mapper.ITotalDataMapper">
+
+</mapper>