Преглед на файлове

更新2.3.4配置版本

wuweihao преди 4 години
родител
ревизия
c5790d0fce

+ 2 - 1
gis_application/pom.xml

@@ -37,7 +37,8 @@
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
         </plugins>
-        <finalName>museum_dali</finalName>
+        <!--<finalName>museum_dali</finalName>-->
+        <finalName>${parent.artifactId}</finalName>
     </build>
 
 

+ 4 - 0
gis_application/src/main/resources/application.properties

@@ -13,6 +13,10 @@ redis.prefix=${project.en}_token_
 # \u8BBF\u95EE\u9759\u6001\u8D44\u6E90\u8BBE\u7F6E
 spring.resources.static-locations=classpath:templates/,classpath:static/,classpath:web/
 
+# open-in-view \u662F\u6307\u5EF6\u65F6\u52A0\u8F7D\u7684\u4E00\u4E9B\u5C5E\u6027\u6570\u636E\uFF0C\u53EF\u4EE5\u5728\u9875\u9762\u5C55\u73B0\u7684\u65F6\u5019\uFF0C\u4FDD\u6301session\u4E0D\u5173\u95ED\uFF0C\u4ECE\u800C\u4FDD\u8BC1\u80FD\u5728\u9875\u9762\u8FDB\u884C\u5EF6\u65F6\u52A0\u8F7D
+# \u5173\u95ED\u8B66\u544A
+spring.jpa.open-in-view=false
+
 #\u4E0A\u4F20\u6587\u4EF6\u5927\u5C0F
 spring.servlet.multipart.enabled=true
 spring.servlet.multipart.max-file-size=2048MB

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/dto/ActivityDto.java

@@ -19,7 +19,7 @@ public class ActivityDto {
     private String name;
 
     @NotBlank(message = "类型不能为空")
-    @ApiModelProperty(value = "类型", required = true)
+    @ApiModelProperty(value = "类型, 类型, online:线上, volunteer:志愿者", required = true)
     private String type;
 
     @ApiModelProperty(value = "内容")

+ 1 - 1
gis_domain/src/main/java/com/gis/domain/po/ActivityEntity.java

@@ -16,7 +16,7 @@ public class ActivityEntity extends BaseEntity {
     @ApiModelProperty(value = "标题")
     private String name;
 
-    @ApiModelProperty(value = "类型")
+    @ApiModelProperty(value = "类型, online:线上, volunteer:志愿者")
     private String type;
 
     @ApiModelProperty(value = "发布用户")

+ 2 - 2
gis_domain/src/main/java/com/gis/domain/po/VisitEntity.java

@@ -16,6 +16,6 @@ public class VisitEntity extends BaseEntity {
     @ApiModelProperty(value = "模块" )
     private String module;
 
-    @ApiModelProperty(value = "模块Id")
-    private Long moduleId;
+//    @ApiModelProperty(value = "模块Id")
+//    private Long moduleId;
 }

+ 39 - 0
gis_domain/src/main/java/com/gis/domain/vo/StatsVo.java

@@ -0,0 +1,39 @@
+package com.gis.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 留言评论
+ */
+@Data
+public class StatsVo implements Serializable {
+
+    private static final long serialVersionUID = -8093446477743493946L;
+
+    @ApiModelProperty(value = "合计")
+    private Integer total;
+
+    @ApiModelProperty(value = "今天")
+    private Integer today;
+
+    @ApiModelProperty(value = "昨天")
+    private Integer yesterday;
+
+    @ApiModelProperty(value = "类型")
+    private String type;
+
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+
+
+
+
+
+
+
+
+}

+ 5 - 0
gis_mapper/src/main/java/com/gis/mapper/NewsMapper.java

@@ -1,9 +1,11 @@
 package com.gis.mapper;
 
 
+import com.gis.common.util.Result;
 import com.gis.domain.po.NewsEntity;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -16,4 +18,7 @@ public interface NewsMapper extends IBaseMapper<NewsEntity, Long> {
 
     @Select("SELECT id, name, visit FROM tb_news WHERE is_delete = 0 AND type = #{type} ORDER BY visit DESC limit 10 ")
     List<NewsEntity> newsSort(String type);
+
+    @Update("update tb_news set visit = visit + 1 , update_time = NOW() where is_delete = 0 AND id = #{id}")
+    Result addVisit(Long id);
 }

+ 10 - 0
gis_mapper/src/main/java/com/gis/mapper/VisitMapper.java

@@ -3,14 +3,24 @@ package com.gis.mapper;
 
 import com.gis.domain.po.VisitEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Component;
 
+import java.time.LocalDate;
+import java.util.List;
 
 
 @Component
 @Mapper
 public interface VisitMapper extends IBaseMapper<VisitEntity, Long> {
 
+    @Select("select COUNT(id) as count, DATE_FORMAT( create_time, '%H' ) as time from tb_visit " +
+            "where is_delete = 0 AND  module = #{module} AND DATE_FORMAT( create_time, '%Y%m%d' ) = DATE_FORMAT(#{date} , '%Y%m%d' ) GROUP BY time ORDER BY time")
+    List<VisitEntity> trend(String date, String module);
 
+    @Select("select COUNT(id) from tb_visit where is_delete = 0 AND module = #{type}")
+    Integer countTotal(String type);
 
+    @Select("select COUNT(id) from tb_visit where is_delete = 0 AND module = #{type} AND  DATE_FORMAT( create_time, '%Y%m%d' ) = DATE_FORMAT(#{date} , '%Y%m%d' ) ")
+    Integer countByDate(LocalDate date, String type);
 }

+ 2 - 0
gis_service/src/main/java/com/gis/service/NewsService.java

@@ -28,4 +28,6 @@ public interface NewsService extends IBaseService<NewsEntity, Long> {
     List<NewsEntity> newsSort(String type);
 
     Result upload(MultipartFile file, String code);
+
+    Result addVisit(Long id);
 }

+ 1 - 1
gis_service/src/main/java/com/gis/service/StatsService.java

@@ -11,7 +11,7 @@ public interface StatsService {
 
     Result flowCount();
 
-    Result trend();
+    Result trend(String date, String module);
 
     Result newsSort(String type);
 }

+ 6 - 0
gis_service/src/main/java/com/gis/service/VisitService.java

@@ -1,8 +1,10 @@
 package com.gis.service;
 
 
+import com.gis.common.util.Result;
 import com.gis.domain.po.VisitEntity;
 
+import java.time.LocalDate;
 
 
 /**
@@ -11,5 +13,9 @@ import com.gis.domain.po.VisitEntity;
 public interface VisitService extends IBaseService<VisitEntity, Long> {
 
 
+    Result trend(String date, String module);
 
+    Integer countTotal(String type);
+
+    Integer countByDate(LocalDate now, String type);
 }

+ 1 - 1
gis_service/src/main/java/com/gis/service/impl/CommentServiceImpl.java

@@ -3,7 +3,6 @@ package com.gis.service.impl;
 import com.gis.common.util.Result;
 import com.gis.domain.dto.PageDateDto;
 import com.gis.domain.po.CommentEntity;
-import com.gis.domain.po.SysUserEntity;
 import com.gis.mapper.CommentMapper;
 import com.gis.mapper.IBaseMapper;
 import com.gis.service.CommentService;
@@ -45,6 +44,7 @@ public class CommentServiceImpl extends IBaseServiceImpl<CommentEntity, Long> im
         String startTime = param.getStartTime();
         String endTime = param.getEndTime();
         if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime) ) {
+            // 时间参数其中一个不传的话, 会导致between语句不执行(有时间的查询,还是建议拼接sql)
             condition.and().andBetween("createTime", startTime, endTime);
         }
 

+ 5 - 0
gis_service/src/main/java/com/gis/service/impl/NewsServiceImpl.java

@@ -124,5 +124,10 @@ public class NewsServiceImpl extends IBaseServiceImpl<NewsEntity, Long> implemen
         return Result.success(result);
     }
 
+    @Override
+    public Result addVisit(Long id) {
+        return entityMapper.addVisit(id);
+    }
+
 
 }

+ 42 - 48
gis_service/src/main/java/com/gis/service/impl/StatsServiceImpl.java

@@ -2,14 +2,12 @@ package com.gis.service.impl;
 
 import com.gis.common.util.Result;
 import com.gis.domain.po.NewsEntity;
-import com.gis.service.CommentService;
-import com.gis.service.NewsService;
-import com.gis.service.SceneService;
-import com.gis.service.StatsService;
+import com.gis.domain.vo.StatsVo;
+import com.gis.service.*;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Condition;
 
 import java.time.LocalDate;
 import java.util.ArrayList;
@@ -32,68 +30,64 @@ public class StatsServiceImpl implements StatsService {
     @Autowired
     NewsService newsService;
 
+    @Autowired
+    VisitService visitService;
+
 
 
     @Override
     public Result flowCount() {
         List result = new ArrayList<>();
-//
-//        // 线上史馆
-//        StatsVo sceneCount = new StatsVo();
-//        sceneCount.setType("scene");
-//        sceneCount.setSort(1);
-//        sceneCount.setTotal(sceneService.countTotal());
-//        LocalDate now = LocalDate.now();
-//        sceneCount.setToday(sceneService.countFindByDate(now));
-//        sceneCount.setYesterday(sceneService.countFindByDate(now.minusDays(1)));
-//
-//        // 弹幕
-//        StatsVo barrageCount = new StatsVo();
-//        barrageCount.setType("barrage");
-//        barrageCount.setSort(2);
-//        barrageCount.setTotal(barrageService.findAll().size());
-//        barrageCount.setToday(barrageService.countFindByDate(now));
-//        barrageCount.setYesterday(barrageService.countFindByDate(now.minusDays(1)));
-//
-//
-//        // 留言
-//        StatsVo commentCount = new StatsVo();
-//        commentCount.setType("comment");
-//        commentCount.setSort(3);
-//        commentCount.setTotal(commentService.findAll().size());
-//        commentCount.setToday(commentService.countFindByDate(now));
-//        commentCount.setYesterday(commentService.countFindByDate(now.minusDays(1)));
-//
-//
-//        // 礼物
-//        StatsVo giftCount = new StatsVo();
-//        giftCount.setType("gift");
-//        giftCount.setSort(3);
-//        giftCount.setTotal(giftService.findAll().size());
-//        giftCount.setToday(giftService.countFindByDate(now));
-//        giftCount.setYesterday(giftService.countFindByDate(now.minusDays(1)));
+        LocalDate now = LocalDate.now();
+
+        // 官网
+        StatsVo webCount = new StatsVo();
+        webCount.setType("web");
+        webCount.setSort(1);
+        webCount.setTotal(visitService.countTotal(webCount.getType()));
+        webCount.setToday(visitService.countByDate(now, webCount.getType()));
+        webCount.setYesterday(visitService.countByDate(now.minusDays(1),  webCount.getType()));
+
+        // 线上史馆
+        StatsVo sceneCount = new StatsVo();
+        sceneCount.setType("scene");
+        sceneCount.setSort(2);
+        sceneCount.setTotal(visitService.countTotal(sceneCount.getType()));
+        sceneCount.setToday(visitService.countByDate(now, sceneCount.getType()));
+        sceneCount.setYesterday(visitService.countByDate(now.minusDays(1),  sceneCount.getType()));
+
+
+        // 留言
+        StatsVo commentCount = new StatsVo();
+        commentCount.setType("comment");
+        commentCount.setSort(3);
+        commentCount.setTotal(commentService.findAll().size());
+        commentCount.setToday(commentService.countFindByDate(now));
+        commentCount.setYesterday(commentService.countFindByDate(now.minusDays(1)));
+
 
 
         // todo 目前缺官网,不知道数据从那里来, 可能在tb_scene_visit 加一个字段来区分是场景、官网数据
 
-//        result.add(sceneCount);
-//        result.add(barrageCount);
-//        result.add(commentCount);
-//        result.add(giftCount);
+        result.add(webCount);
+        result.add(sceneCount);
+        result.add(commentCount);
 
         return Result.success(result);
     }
 
     @Override
-    public Result trend() {
-//        return sceneService.trend(LocalDate.now());
-        return null;
+    public Result trend(String date, String module) {
+        if (StringUtils.isBlank(date)) {
+            date = LocalDate.now().toString();
+        }
+        return visitService.trend(date, module);
     }
 
     @Override
     public Result newsSort(String type) {
         List<NewsEntity> list = newsService.newsSort(type);
-        return null;
+        return Result.success(list);
     }
 
 

+ 16 - 7
gis_service/src/main/java/com/gis/service/impl/VisitServiceImpl.java

@@ -1,5 +1,6 @@
 package com.gis.service.impl;
 
+import com.gis.common.util.Result;
 import com.gis.domain.po.VisitEntity;
 import com.gis.mapper.IBaseMapper;
 import com.gis.mapper.VisitMapper;
@@ -7,6 +8,8 @@ import com.gis.service.VisitService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.util.List;
 
 
 /**
@@ -24,13 +27,19 @@ public class VisitServiceImpl extends IBaseServiceImpl<VisitEntity, Long> implem
     }
 
 
+    @Override
+    public Result trend(String date, String module) {
+        List<VisitEntity> list = entityMapper.trend(date, module);
+        return Result.success(list);
+    }
 
+    @Override
+    public Integer countTotal(String type) {
+        return entityMapper.countTotal(type);
+    }
 
-
-
-
-
-
-
-
+    @Override
+    public Integer countByDate(LocalDate now, String type) {
+        return entityMapper.countByDate(now, type);
+    }
 }

+ 5 - 5
gis_web/src/main/java/com/gis/web/controller/StatsController.java

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 /**
- * Created by owen on 2021/4/20 0018 12:17
+ * Created by owen on 2021/6/10 0018 12:17
  */
 @Slf4j
 @Api(tags = "数据统计")
@@ -31,10 +31,10 @@ public class StatsController extends BaseController {
         return statsService.flowCount();
     }
 
-    @ApiOperation("时间趋势")
-    @GetMapping("trend")
-    public Result trend() {
-        return statsService.trend();
+    @ApiOperation(value = "时间趋势", notes = "date: yyyy-mm-dd")
+    @GetMapping("trend/{module}")
+    public Result trend(String date, @PathVariable String module) {
+        return statsService.trend(date, module);
     }
 
 

+ 19 - 42
gis_web/src/main/java/com/gis/web/controller/WebController.java

@@ -8,9 +8,8 @@ import com.gis.domain.dto.MaterialDeteleDto;
 import com.gis.domain.dto.MaterialDto;
 import com.gis.domain.po.GoodsEntity;
 import com.gis.domain.po.ActivityEntity;
-import com.gis.service.FileService;
-import com.gis.service.GoodsService;
-import com.gis.service.ActivityService;
+import com.gis.domain.po.VisitEntity;
+import com.gis.service.*;
 import com.gis.service.aop.WebControllerLog;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -44,52 +43,30 @@ public class WebController {
     @Autowired
     FileService fileService;
 
+    @Autowired
+    VisitService visitService;
 
-    @ApiOperation("文物列表")
-    @PostMapping("goodsList")
-    public Result<GoodsEntity> list(@RequestBody GoodsPageDto param) {
-        return goodsService.search(param);
+    @Autowired
+    NewsService newsService;
+
+    @ApiOperation(value = "保存网站访问记录", notes = "type, web:管网, scene:线上史馆")
+    @GetMapping("addVisitWeb/{type}")
+    public Result addVisitWeb(@PathVariable String type) {
+        VisitEntity entity = new VisitEntity();
+        entity.setModule(type);
+        visitService.save(entity);
+        return Result.success();
     }
 
+    @ApiOperation(value = "保存新闻访问记录", notes = "type, news:新闻, activity:活动")
+    @GetMapping("addVisitNews/{id}")
+    public Result addVisitNews(@PathVariable Long id) {
+        return newsService.addVisit(id);
+    }
 
 
 
-    @ApiOperation(value = "史料-获取上传码")
-    @GetMapping("material/getCode")
-    public Result materialGetCode() {
-        Object code = DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS");
-        log.info("返回码:{}", code);
-        return Result.success(code);
-    }
 
-    @WebControllerLog(description = "展示页-史料删除")
-    @ApiOperation(value = "史料-删除")
-    @PostMapping("material/delete")
-    public Result materialDelete(@Valid @RequestBody MaterialDeteleDto param ) {
-        String path = param.getPath();
-        log.info("删除地址:{}", path);
-        FileUtil.del(path);
-        return Result.success();
-    }
 
-    @WebControllerLog(description = "展示页-史料保存", addDb = true)
-    @ApiOperation(value = "史料-保存", notes = "把上传文件都放到code目录里")
-    @PostMapping("material/save")
-    public Result materialSave(@Valid @RequestBody MaterialDto param) {
-        ActivityEntity entity = new ActivityEntity();
-        BeanUtils.copyProperties(param, entity);
-        materialService.save(entity);
-        return Result.success();
-    }
 
-//    @GetMapping("up")
-//    public Result tst(){
-//        String fileIds = "1,2,3";
-//        Long moduleId = 10L;
-//
-//        String module = "1";
-//
-//        fileService.addModuleIdToFile(fileIds, moduleId, module);
-//        return Result.success();
-//    }
 }

+ 2 - 1
pom.xml

@@ -34,7 +34,8 @@
         <java.version>1.8</java.version>
         <spring.boot.version>2.3.4.RELEASE</spring.boot.version>
         <gis.version>1.0.0</gis.version>
-        <druid.version>1.2.4</druid.version>
+        <!--<druid.version>1.2.4</druid.version>-->
+        <druid.version>1.1.14</druid.version>
         <hutool.version>5.3.3</hutool.version>
         <lombok.version>1.18.2</lombok.version>
         <fastjson.version>1.2.75</fastjson.version>