Browse Source

聆听记录计算用时

zsf 2 months ago
parent
commit
f6f666eaae

+ 9 - 0
src/main/java/com/zzys/lightting/user/dao/model/UserListenRecord.java

@@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 
 /**
  * @Description:用户聆听记录
@@ -47,6 +48,10 @@ public class UserListenRecord extends BaseEntity {
     @Column(name = "type_id",columnDefinition = "varchar(36) not null comment '音乐类型ID'")
     private String typeId;
 
+    @ApiModelProperty(name = "聆听状态",required = false,hidden = true)
+    @Column(name = "listen_status",columnDefinition = "varchar(10) not null comment '状态0结束1正在进行'")
+    private String listenStatus;
+
     @ApiModelProperty(name = "创建时间",required = false,hidden = true)
     @Column(name = "create_time",columnDefinition = "varchar(30) not null comment '创建时间'")
     private String createTime;
@@ -54,4 +59,8 @@ public class UserListenRecord extends BaseEntity {
     @ApiModelProperty(name = "更新时间",required = false,hidden = true)
     @Column(name = "update_time",columnDefinition = "varchar(30)  comment '更新时间'")
     private String updateTime;
+
+    @ApiModelProperty(name = "聆听用时",required = false,hidden = true)
+    @Transient
+    private String listenTime;
 }

+ 18 - 4
src/main/java/com/zzys/lightting/user/service/impl/UserListenRecordServiceImpl.java

@@ -5,8 +5,10 @@ import cn.hutool.core.util.PageUtil;
 import com.zzys.lightting.user.dao.model.UserListenRecord;
 import com.zzys.lightting.user.dao.repository.UserListenRecordRepository;
 import com.zzys.lightting.user.service.UserListenRecordService;
+import com.zzys.lightting.utils.Constant;
 import com.zzys.lightting.utils.EscapeUtil;
 import com.zzys.lightting.utils.PageRequestUtil;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -36,6 +38,7 @@ public class UserListenRecordServiceImpl implements UserListenRecordService {
     @Override
     public UserListenRecord saveRecord(UserListenRecord record) {
         record.setCreateTime(DateUtil.now());
+        record.setListenStatus(Constant.DEFAULT_VALUE_ONE);
         return repository.save(record);
     }
 
@@ -47,13 +50,16 @@ public class UserListenRecordServiceImpl implements UserListenRecordService {
     @Override
     public UserListenRecord finishRecord(UserListenRecord record) {
         record.setUpdateTime(DateUtil.now());
+        record.setListenStatus(Constant.DEFAULT_VALUE_ZERO);
         return repository.save(record);
     }
 
     @Override
     public Page<UserListenRecord> findListByPage(UserListenRecord record, int pageSize, int pageNum) {
+
+        Page<UserListenRecord> page = null;
         if (record == null){
-            return repository.findAll(PageRequestUtil.of(pageNum,pageSize));
+            page = repository.findAll(PageRequestUtil.of(pageNum,pageSize));
         }else {
             //处理条件
             Specification<UserListenRecord> specification = ((root, query, criteriaBuilder) -> {
@@ -77,13 +83,21 @@ public class UserListenRecordServiceImpl implements UserListenRecordService {
                     list.add(criteriaBuilder.like(root.get("userName"),"%"+userName2+"%"));
                 }
 
-                //list.add(criteriaBuilder.equal(root.get("userStatus"), Constant.DEFAULT_VALUE_ONE));
+                list.add(criteriaBuilder.equal(root.get("listenStatus"), Constant.DEFAULT_VALUE_ONE));
                 query.where(criteriaBuilder.and(list.toArray(new Predicate[list.size()])));
                 query.orderBy(criteriaBuilder.asc(root.get("createTime")));
                 return query.getRestriction();
             });
-            return repository.findAll(specification,PageRequestUtil.of(pageNum,pageSize));
+            page = repository.findAll(specification,PageRequestUtil.of(pageNum,pageSize));
         }
-
+        //处理时间
+        if (CollectionUtils.isNotEmpty(page.getContent())){
+            for (UserListenRecord userListenRecord : page.getContent()) {
+                //计算用时
+                String userTime = DateUtil.formatBetween(DateUtil.parse(userListenRecord.getCreateTime()),DateUtil.parse(userListenRecord.getUpdateTime()));
+                userListenRecord.setListenTime(userTime);
+            }
+        }
+        return page;
     }
 }

+ 10 - 0
src/main/java/com/zzys/lightting/utils/Constant.java

@@ -8,4 +8,14 @@ package com.zzys.lightting.utils;
 public class Constant {
     public static final String USER_TYPE_C = "0";//C端用户
     public static final String USER_TYPE_B = "1";//B端用户
+
+    /**
+     * 部分字段默认值
+     */
+    public static final String DEFAULT_VALUE_ZERO ="0";
+
+    /**
+     * 部分字段默认值
+     */
+    public static final String DEFAULT_VALUE_ONE ="1";
 }