liujc 1 سال پیش
والد
کامیت
38224e1a31

+ 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

@@ -423,4 +423,10 @@ public interface SysConfigConstant {
      * sms_send_verify
      */
     String SMS_SEND_VERIFY = "sms_send_verify";
+
+
+    /**
+     * 草稿保存时长
+     */
+    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();
 }

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

@@ -21,6 +21,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -61,6 +65,9 @@ public class UserMusicServiceImpl extends ServiceImpl<UserMusicMapper, UserMusic
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private UserMusicMapper userMusicMapper;
+
 
     /**
      * 查询详情
@@ -220,6 +227,24 @@ public class UserMusicServiceImpl extends ServiceImpl<UserMusicMapper, UserMusic
             }
         }
 
+        // 草稿过期时间
+        SysConfig byParamName = sysConfigService.findByParamName(SysConfigConstant.USER_MUSIC_DRAFT_TIME);
+        Integer time = 7;
+        try {
+            time = Integer.parseInt(byParamName.getParamName());
+        }catch (Exception e){
+            log.error("作品草稿过期时间配置错误");
+        }
+
+        for (UserMusicWrapper.UserMusic record : records) {
+            if (record.getType() == EUserMusicType.DRAFT && record.getCreateTime() != null) {
+                LocalDate localDate = record.getCreateTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(time);
+                LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MAX);
+                record.setExpireTime(Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()));
+            }
+        }
+
+
         // 评测记录ID集合
         List<Long> musicPracticeRecordIds = records.stream()
             .map(UserMusicWrapper.UserMusic::getMusicPracticeRecordId).collect(Collectors.toList());
@@ -326,4 +351,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);
+    }
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/UserMusicWrapper.java

@@ -165,6 +165,8 @@ public class UserMusicWrapper {
         @ApiModelProperty("录制上传时间")
         private Date createTime;
 
+        @ApiModelProperty("过期时间")
+        private Date expireTime;
         public String jsonString() {
             return JSON.toJSONString(this);
         }

+ 21 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserMusicMapper.xml

@@ -5,12 +5,25 @@
 
 
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.wrapper.UserMusicWrapper$UserMusic">
-		SELECT
-            t.*
+        SELECT t.id_,
+        t.user_id_,
+        t.client_type_,
+        t.music_practice_record_id_,
+        t.music_sheet_id_,
+        t.accompany_url_,
+        t.type_,
+        t.img_,
+        t.video_img_,
+        t.desc_,
+        t.video_url_,
+        t.json_config_,
+        t.like_num_,
+        t.submit_time_,
+        t.update_time_ as createTime
 		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 +56,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>