Forráskód Böngészése

添加删除无效作品数据方法

wuweihao 3 éve
szülő
commit
3f32fab34d

+ 1 - 1
720yun_fd_manage/gis_application/src/main/resources/application.properties

@@ -1,4 +1,4 @@
-server.port=8102
+server.port=8001
 
 spring.profiles.active=loc
 

+ 3 - 0
720yun_fd_manage/gis_common/src/main/java/com/gis/common/constant/RedisConstant.java

@@ -10,4 +10,7 @@ public class RedisConstant {
 
     /**作品编辑*/
     public static final String WORK_ID_EDIT = "workId:edit:";
+
+    /**定时删除空作品Key*/
+    public static final String WORK_DEL = "workDel";
 }

+ 0 - 8
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/FodderMapper.java

@@ -17,22 +17,14 @@ import java.util.List;
 @Mapper
 public interface FodderMapper extends IBaseMapper<FodderEntity, Long> {
 
-//    @Select("select * from tb_fodder where is_delete = 0 and user_id = #{userId} AND status = #{status} AND type = #{type}")
-//    List<FodderEntity> findByStatusAndTypeAndUserId(int status, String type, String userId);
-//
-//    @Select("select * from tb_fodder where is_delete = 0 and user_id = #{userId} AND type = #{type}")
-//    List<FodderEntity> findByType(String userId, String type);
 
     @SelectProvider(type = FodderProvider.class, method = "search")
     List<FodderEntity> search(FodderPageDto param, String userId);
 
-//    @Select("select * from tb_fodder where is_delete = 0 and scene_code = #{sceneCode} ")
-//    FodderEntity findBySceneCode(String sceneCode);
 
     @SelectProvider(type = FodderProvider.class, method = "searchPano")
     List<FodderEntity> searchPano(PageDto param, String userId);
 
     @SelectProvider(type = FodderProvider.class, method = "checkStatus")
-//    @Select("select * from tb_fodder where is_delete = 0 and user_id = #{userId} AND id in #{ids}")
     List<FodderEntity> checkStatus(String ids, String userId);
 }

+ 1 - 6
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/IconMapper.java

@@ -14,10 +14,5 @@ public interface IconMapper extends IBaseMapper<IconEntity, Long> {
 
 
 
-//    @SelectProvider(type = FodderProvider.class, method = "searchPano")
-//    List<FodderEntity> searchPano(PageDto param, String userId);
-//
-//    @SelectProvider(type = FodderProvider.class, method = "checkStatus")
-////    @Select("select * from tb_fodder where is_delete = 0 and user_id = #{userId} AND id in #{ids}")
-//    List<FodderEntity> checkStatus(String ids, String userId);
+
 }

+ 8 - 4
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkMapper.java

@@ -5,10 +5,7 @@ import com.gis.domain.dto.PageDto;
 import com.gis.domain.entity.SceneEntity;
 import com.gis.domain.entity.WorkEntity;
 import com.gis.mapper.provider.WorkProvider;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.apache.ibatis.annotations.SelectProvider;
-import org.apache.ibatis.annotations.Update;
+import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -40,4 +37,11 @@ public interface WorkMapper extends IBaseMapper<WorkEntity, Long> {
     WorkEntity findByIdForUpdate(Long id);
 
 
+    /***
+     * 2022-3-18
+     * 真删除无效时数据
+     * @param now
+     */
+    @Delete("delete from tb_work where is_delete=0 and status=0 and DATE_FORMAT( create_time, '%Y%m' ) <= DATE_FORMAT(#{now} , '%Y%m' )")
+    void delByTime(String now);
 }

+ 58 - 3
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -1,6 +1,7 @@
 package com.gis.service.impl;
 
 import cn.hutool.core.io.FileUtil;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.gis.common.constant.ConfigConstant;
 import com.gis.common.constant.MsgCode;
@@ -23,11 +24,13 @@ import com.gis.service.CatalogService;
 import com.gis.service.SceneService;
 import com.gis.service.WorkService;
 import com.gis.tree.CatalogTreeUtil;
+import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpResponse;
 import org.apache.http.util.EntityUtils;
+import org.junit.Test;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,6 +38,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.transaction.Transactional;
 import java.io.IOException;
+import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -49,7 +53,7 @@ import java.util.stream.Stream;
  */
 @Slf4j
 @Service
-//@Transactional
+@Transactional
 public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implements WorkService {
 
     @Autowired
@@ -122,9 +126,16 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
 
     @Override
     public Result<WorkEntity> entityAdd() {
+
+        // 删除无效作品数据
+        delByTime();
+
         WorkEntity entity = new WorkEntity();
         entity.setUserId(getUserNameForToken());
         this.save(entity);
+        Long id = entity.getId();
+        log.info("创建对象完成: {}", id);
+
 
         // 创建someData
         // 如基someData作出修改,记得把代码里的someData 跟服务器里的someData都修改
@@ -143,7 +154,7 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
         }
 
 
-        Long id = entity.getId();
+
 
         JSONObject jsonObject = JSONObject.parseObject(content);
         jsonObject.put("id", id + "");
@@ -168,6 +179,26 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
         return Result.success(entity);
     }
 
+    // 删除无效作品数据
+    private void delByTime() {
+        // 定时删除空作品数据,周期:一个月清一次
+        if (!redisUtil.hasKey(RedisConstant.WORK_DEL)) {
+
+            String now = LocalDate.now().minusMonths(1).toString();
+            log.info("执行删除 {} 月份之前的空作品数据:{}", now);
+            entityMapper.delByTime(now);
+            redisUtil.set(RedisConstant.WORK_DEL, now, 30, TimeUnit.DAYS);
+        }
+    }
+
+    @Test
+    public void test1(){
+        LocalDate now = LocalDate.now();
+        log.info("now : {}", now);
+        log.info("now-m : {}", now.minusMonths(3));
+
+    }
+
 
     @Override
     public Result remove(Long id) {
@@ -246,6 +277,8 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
 
     @Override
     public WorkEntity findByIdForUpdate(Long id) {
+        // 查询数据之前先清理分页缓存
+        PageHelper.clearPage();
         return entityMapper.findByIdForUpdate(id);
     }
 
@@ -309,7 +342,9 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
         entity.setQrCode(sd.getString("qrCode"));
         entity.setStatus(sd.getInteger("status"));
         entity.setPassword(sd.getString("password"));
-        entity.setSceneCodes(sd.getString("scenes"));
+//        entity.setSceneCodes(sd.getString("scenes"));
+        String scenes = sd.getString("scenes");
+        entity.setSceneCodes(getSceneCodes(scenes));
         // 更新logoQrCode
         Boolean logoChange = sd.getBoolean("logoChange");
         String logoUrl = sd.getString("logo");
@@ -330,6 +365,26 @@ public class WorkServiceImpl extends IBaseServiceImpl<WorkEntity, Long> implemen
     }
 
     /**
+     * 传入参数是一个数组json字符串
+     * @param param
+     */
+    private String getSceneCodes(String param){
+        JSONArray array = JSONArray.parseArray(param);
+        List<String> list = new ArrayList<>();
+        for (Object o : array) {
+            JSONObject parse = JSONObject.parseObject(o.toString());
+            String sceneCode = parse.getString("sceneCode");
+            list.add(sceneCode);
+        }
+
+        String join = StringUtils.join(list, ",");
+
+        return join;
+
+
+    }
+
+    /**
      * 更新二维码
      */
     private Boolean updateQrCode(Long id, String logoUrl) {

+ 2 - 0
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WebController.java

@@ -13,6 +13,7 @@ import com.gis.service.CatalogService;
 import com.gis.service.FodderService;
 import com.gis.service.SceneService;
 import com.gis.service.WorkService;
+import com.github.pagehelper.PageHelper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -74,6 +75,7 @@ public class WebController extends BaseController {
             return Result.success(flag);
         }
 
+        PageHelper.clearPage();
         WorkEntity entity = workService.findById(workId);
 
         if (entity != null) {

+ 2 - 1
720yun_fd_manage/gis_web/src/main/java/com/gis/web/controller/WorkController.java

@@ -12,6 +12,7 @@ import com.gis.domain.vo.WorkInfoVo;
 import com.gis.service.FodderService;
 import com.gis.service.SceneService;
 import com.gis.service.WorkService;
+import com.github.pagehelper.PageHelper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
@@ -135,7 +136,7 @@ public class WorkController extends BaseController {
             return Result.success();
         }
 
-
+        PageHelper.clearPage();
         WorkEntity entity = workService.findById(workId);
         if (entity == null) {
             return Result.failure("对象不存在: " + workId);