Browse Source

作品过期

liujc 1 year ago
parent
commit
8bbd9b4f4f

+ 6 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/AdminFeignService.java

@@ -202,5 +202,11 @@ public interface AdminFeignService {
     @GetMapping("/task/sendTenantAlbumMessage")
     HttpResponseResult<Object> sendTenantAlbumMessage();
 
+    /**
+     * 作品过期设置
+     */
+    @GetMapping("/task/workOverdue")
+    HttpResponseResult<Object> workOverdue();
+
 
 }

+ 8 - 0
cooleshow-api/src/main/java/com/yonge/cooleshow/api/feign/fallback/AdminFeignServiceFallback.java

@@ -192,6 +192,14 @@ public class AdminFeignServiceFallback implements AdminFeignService {
         return null;
     }
 
+    /**
+     * 作品过期设置
+     */
+    @Override
+    public HttpResponseResult<Object> workOverdue() {
+        return null;
+    }
+
     @Override
     public ImUserInfo register(String userId, String clientType, String username, String avatar) {
         return null;

+ 12 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.admin.task;
 
 import com.alibaba.fastjson.JSONObject;
+import com.microsvc.toolkit.common.tools.ThreadPool;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -22,6 +23,7 @@ import springfox.documentation.annotations.ApiIgnore;
 import java.io.File;
 import java.net.URL;
 import java.util.Date;
+import java.util.concurrent.TimeUnit;
 
 /**
  * @Author: liweifan
@@ -78,6 +80,8 @@ public class TaskController extends BaseController {
     @Autowired
     private UserTenantAlbumRecordService userTenantAlbumRecordService;
 
+    @Autowired
+    private UserMusicService userMusicService;
     /***
      * 轮询用户订单
      * @author liweifan
@@ -246,4 +250,12 @@ public class TaskController extends BaseController {
         return HttpResponseResult.succeed();
     }
 
+
+    /**
+     * 作品过期设置
+     */
+    @GetMapping("/workOverdue")
+    public void workOverdue(){
+        userMusicService.workOverdue();
+    }
 }

+ 6 - 0
cooleshow-common/src/main/java/com/yonge/cooleshow/common/constant/SysConfigConstant.java

@@ -418,4 +418,10 @@ public interface SysConfigConstant {
      * 我的作品默认视频封面图
      */
     String USER_MUSIC_VIDEO_DEFAULT_URL = "user_music_video_default_url";
+
+
+    /**
+     * 草稿保存时长
+     */
+    String USER_MUSIC_DRAFT_TIME = "user_music_draft_time";
 }

+ 20 - 0
cooleshow-task/src/main/java/com/yonge/cooleshow/task/jobs/UserMusicOverdueTask.java

@@ -0,0 +1,20 @@
+package com.yonge.cooleshow.task.jobs;
+
+import com.yonge.cooleshow.api.feign.AdminFeignService;
+import com.yonge.cooleshow.api.feign.TeacherFeignService;
+import com.yonge.cooleshow.task.core.BaseTask;
+import com.yonge.cooleshow.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserMusicOverdueTask  extends BaseTask {
+
+    @Autowired
+    private AdminFeignService adminFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        adminFeignService.workOverdue();
+    }
+}

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserMusic.java

@@ -81,10 +81,17 @@ public class UserMusic implements Serializable {
 	@TableField(value = "del_flag_")
     private Boolean delFlag;
 
+    @ApiModelProperty("是否过期")
+    @TableField(value = "expire_flag_")
+    private Boolean expireFlag;
+
     @TableField(value = "submit_time_")
     private Date submitTime;
 
 	@TableField(value = "create_time_")
     private Date createTime;
 
+    @TableField(value = "update_time_")
+    private Date updateTime;
+
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/mapper/UserMusicMapper.java

@@ -25,4 +25,7 @@ public interface UserMusicMapper extends BaseMapper<UserMusic> {
 	List<UserMusicWrapper.UserMusic> selectPage(@Param("page") IPage<UserMusicWrapper.UserMusic> page, @Param("param") UserMusicWrapper.UserMusicQuery param);
 
     void updateStar(@Param("userMusicId") Long userMusicId);
+
+
+    void workOverdue(@Param("time") Integer time);
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/UserMusicService.java

@@ -63,4 +63,10 @@ public interface UserMusicService extends IService<UserMusic>  {
      *
      */
     IPage<UserMusicWrapper.UserMusic> selectPage(IPage<UserMusicWrapper.UserMusic> page, UserMusicWrapper.UserMusicQuery query, JwtUserInfo<?> userInfo);
+
+
+    /**
+     * 设置作品草稿过期
+     */
+    void workOverdue();
 }

+ 17 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserMusicServiceImpl.java

@@ -61,6 +61,9 @@ public class UserMusicServiceImpl extends ServiceImpl<UserMusicMapper, UserMusic
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private UserMusicMapper userMusicMapper;
+
 
     /**
      * 查询详情
@@ -326,4 +329,18 @@ public class UserMusicServiceImpl extends ServiceImpl<UserMusicMapper, UserMusic
 
         return userMusicIPage;
     }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void workOverdue() {
+        String value = sysConfigService.findConfigValue(SysConfigConstant.USER_MUSIC_DRAFT_TIME);
+        Integer time = 7;
+        try {
+            time = Integer.parseInt(value);
+        }catch (Exception e){
+            log.error("作品草稿过期时间配置错误");
+        }
+        userMusicMapper.workOverdue(time);
+    }
 }

+ 6 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserMusicMapper.xml

@@ -10,7 +10,7 @@
 		FROM user_music t
         left join music_sheet t1 on t1.id_ = t.music_sheet_id_
         <where>
-            t.del_flag_ = 0
+            t.del_flag_ = 0 and t.expire_flag_ = 0
             <if test="param.keyword != null and param.keyword != ''">
                 and t1.music_sheet_name_ like concat('%', #{param.keyword}, '%')
             </if>
@@ -43,4 +43,9 @@
     <update id="updateStar">
         update user_music set like_num_ =(select count(1) from  user_music_star where  user_music_id_ = #{userMusicId}) where id_ = #{userMusicId}
     </update>
+
+
+    <update id="workOverdue">
+        update user_music set expire_flag_ = 1 where date_add(update_time_,interval #{time} day ) &lt;= now() and type_ = 'DRAFT' and expire_flag_ = 0
+    </update>
 </mapper>