licailing пре 3 година
родитељ
комит
b7410e09ca

+ 5 - 0
src/main/java/com/izouma/nineth/domain/Coupon.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.domain;
 
 import com.izouma.nineth.converter.LongArrayConverter;
+import com.izouma.nineth.dto.GeneralDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -11,6 +12,7 @@ import lombok.NoArgsConstructor;
 import javax.persistence.Column;
 import javax.persistence.Convert;
 import javax.persistence.Entity;
+import javax.persistence.Transient;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -41,4 +43,7 @@ public class Coupon extends BaseEntity {
     private LocalDateTime expiration;
 
     private int projectId;
+
+    @Transient
+    private List<GeneralDTO> collections;
 }

+ 10 - 0
src/main/java/com/izouma/nineth/dto/GeneralDTO.java

@@ -0,0 +1,10 @@
+package com.izouma.nineth.dto;
+
+import lombok.Data;
+
+@Data
+public class GeneralDTO {
+    private Long id;
+
+    private String name;
+}

+ 2 - 0
src/main/java/com/izouma/nineth/repo/CollectionRepo.java

@@ -143,4 +143,6 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
             "c.owner_avatar = ?5, c.detail = ?6 where c.id = ?1", nativeQuery = true)
     int updateCDN(Long id, String pic, String model3d, String minterAvatar,
                   String ownerAvatar, String detail);
+
+    List<Collection> findAllByIdIn(java.util.Collection<Long> ids);
 }

+ 23 - 5
src/main/java/com/izouma/nineth/web/CouponController.java

@@ -1,26 +1,31 @@
 package com.izouma.nineth.web;
+
 import com.izouma.nineth.domain.Coupon;
-import com.izouma.nineth.service.CouponService;
+import com.izouma.nineth.dto.GeneralDTO;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.CollectionRepo;
 import com.izouma.nineth.repo.CouponRepo;
+import com.izouma.nineth.service.CouponService;
 import com.izouma.nineth.utils.ObjUtils;
 import com.izouma.nineth.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/coupon")
 @AllArgsConstructor
 public class CouponController extends BaseController {
-    private CouponService couponService;
-    private CouponRepo couponRepo;
+    private CouponService  couponService;
+    private CouponRepo     couponRepo;
+    private CollectionRepo collectionRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -42,7 +47,20 @@ public class CouponController extends BaseController {
 
     @GetMapping("/get/{id}")
     public Coupon get(@PathVariable Long id) {
-        return couponRepo.findById(id).orElseThrow(new BusinessException("无记录"));
+        Coupon coupon = couponRepo.findById(id).orElseThrow(new BusinessException("无记录"));
+        if (CollectionUtils.isNotEmpty(coupon.getCollectionIds())) {
+            List<GeneralDTO> dtos = collectionRepo.findAllByIdIn(coupon.getCollectionIds())
+                    .stream()
+                    .map(collection -> {
+                        GeneralDTO dto = new GeneralDTO();
+                        dto.setId(collection.getId());
+                        dto.setName(collection.getName());
+                        return dto;
+                    })
+                    .collect(Collectors.toList());
+            coupon.setCollections(dtos);
+        }
+        return coupon;
     }
 
     @PostMapping("/del/{id}")

+ 4 - 0
src/main/vue/src/views/CouponEdit.vue

@@ -91,6 +91,9 @@ export default {
                 .get('coupon/get/' + this.$route.query.id)
                 .then(res => {
                     this.formData = res;
+                    if (res.collectionIds) {
+                        this.collections = res.collections;
+                    }
                 })
                 .catch(e => {
                     console.log(e);
@@ -166,6 +169,7 @@ export default {
         },
         submit() {
             let data = { ...this.formData };
+            data.collections = null;
 
             this.saving = true;
             this.$http