Răsfoiți Sursa

元宇宙资源点赞

sunkean 2 ani în urmă
părinte
comite
79f5476cb2

+ 3 - 0
src/main/java/com/izouma/nineth/domain/MetaResources.java

@@ -31,4 +31,7 @@ public class MetaResources extends BaseEntity {
     @ApiModelProperty("文件")
     @Column(columnDefinition = "TEXT")
     private String value;
+
+    @ApiModelProperty("点赞数量")
+    private int likeNum;
 }

+ 23 - 0
src/main/java/com/izouma/nineth/domain/MetaResourcesLikeRecord.java

@@ -0,0 +1,23 @@
+package com.izouma.nineth.domain;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Entity;
+import java.time.LocalDate;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Entity
+@ApiModel("元宇宙资源点赞记录")
+public class MetaResourcesLikeRecord extends BaseEntity {
+
+    private Long metaResourcesId;
+
+    private Long userId;
+
+    private LocalDate likeTime;
+}

+ 12 - 0
src/main/java/com/izouma/nineth/repo/MetaResourcesLikeRecordRepo.java

@@ -0,0 +1,12 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.MetaResourcesLikeRecord;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import java.time.LocalDate;
+
+public interface MetaResourcesLikeRecordRepo extends JpaRepository<MetaResourcesLikeRecord, Long>, JpaSpecificationExecutor<MetaResourcesLikeRecord> {
+
+    MetaResourcesLikeRecord findByMetaResourcesIdAndUserIdAndLikeTime(Long metaResourcesId, Long userId, LocalDate likeTime);
+}

+ 1 - 0
src/main/java/com/izouma/nineth/security/WebSecurityConfig.java

@@ -180,6 +180,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 .antMatchers("/metaSwitch/*/findSwitch").permitAll()
                 .antMatchers("/metaResources/getUrl").permitAll()
                 .antMatchers("/news/newsInfo").permitAll()
+                .antMatchers("/metaResources/like").permitAll()
                 // all other requests need to be authenticated
                 .anyRequest().authenticated().and()
                 // make sure we use stateless session; session won't be used to

+ 28 - 6
src/main/java/com/izouma/nineth/web/MetaResourcesController.java

@@ -1,12 +1,14 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.MetaResources;
+import com.izouma.nineth.domain.MetaResourcesLikeRecord;
 import com.izouma.nineth.dto.MetaRestResult;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
-import com.izouma.nineth.repo.AssetRepo;
+import com.izouma.nineth.repo.MetaResourcesLikeRecordRepo;
 import com.izouma.nineth.repo.MetaResourcesRepo;
 import com.izouma.nineth.service.MetaResourcesService;
+import com.izouma.nineth.utils.DateTimeUtils;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
@@ -16,6 +18,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Objects;
 
@@ -25,7 +29,8 @@ import java.util.Objects;
 public class MetaResourcesController extends BaseController {
     private MetaResourcesService metaResourcesService;
     private MetaResourcesRepo metaResourcesRepo;
-    private AssetRepo assetRepo;
+
+    private MetaResourcesLikeRecordRepo metaResourcesLikeRecordRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -78,9 +83,26 @@ public class MetaResourcesController extends BaseController {
         return MetaRestResult.returnSuccess("查询成功", metaResources.getValue());
     }
 
-//    @GetMapping
-//    public MetaRestResult<Long> getUserId(String name) {
-//        assetRepo.findByNameLike
-//    }
+    @PostMapping("/like")
+    public MetaRestResult<Integer> like(Long id, Long userId) {
+        MetaResources metaResources = metaResourcesRepo.findById(id).orElse(null);
+        if (Objects.isNull(metaResources)) {
+            return MetaRestResult.returnError("当前资源不存在!");
+        }
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DateTimeUtils.DATE_FORMAT);
+        LocalDate likeTime = LocalDate.parse(LocalDate.now().format(formatter), formatter);
+        MetaResourcesLikeRecord metaResourcesLikeRecord = metaResourcesLikeRecordRepo.findByMetaResourcesIdAndUserIdAndLikeTime(id, userId, likeTime);
+        if (Objects.nonNull(metaResourcesLikeRecord)) {
+            return MetaRestResult.returnError("该资源今天已经点过赞,不可重复点赞");
+        }
+        metaResourcesLikeRecord = new MetaResourcesLikeRecord();
+        metaResourcesLikeRecord.setMetaResourcesId(id);
+        metaResourcesLikeRecord.setUserId(userId);
+        metaResourcesLikeRecord.setLikeTime(likeTime);
+        metaResourcesLikeRecordRepo.save(metaResourcesLikeRecord);
+        metaResources.setLikeNum(metaResources.getLikeNum() + 1);
+        metaResourcesRepo.save(metaResources);
+        return MetaRestResult.returnSuccess(metaResources.getLikeNum());
+    }
 }