jyc 2 dni temu
rodzic
commit
47af14d4cd

+ 27 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeGroupBuyNameThaliVo.java

@@ -0,0 +1,27 @@
+package shop.alien.entity.store.vo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import shop.alien.entity.store.LifeGroupBuyThali;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 团购
+ */
+@Data
+@JsonInclude
+public class LifeGroupBuyNameThaliVo {
+
+    @ApiModelProperty(value = "groupName")
+    private String groupName;
+
+    @ApiModelProperty(value = "子信息")
+    private List<LifeGroupBuyThali> details;
+}

+ 2 - 1
alien-entity/src/main/java/shop/alien/entity/store/vo/LifeGroupBuyThaliVo.java

@@ -10,6 +10,7 @@ import shop.alien.entity.store.LifeGroupBuyThali;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 团购
@@ -241,5 +242,5 @@ public class LifeGroupBuyThaliVo {
     private Integer updatedUserId;
 
     @ApiModelProperty(value = "子信息")
-    private List<LifeGroupBuyThali> details;
+    private List<LifeGroupBuyNameThaliVo> details;
 }

+ 1 - 1
alien-store/src/main/java/shop/alien/store/controller/LifeGroupBuyController.java

@@ -28,7 +28,7 @@ public class LifeGroupBuyController {
 
     @ApiOperation("保存套餐团购")
     @PostMapping("/saveThali")
-    public R<Boolean> saveThali(@RequestBody LifeGroupBuyDto lifeGroupBuyDto) {
+    public R saveThali(@RequestBody LifeGroupBuyDto lifeGroupBuyDto) {
         log.info("LifeGroupBuyController.saveThali?lifeGroupBuyDto={}", lifeGroupBuyDto.toString());
         if (lifeGroupBuyService.saveThali(lifeGroupBuyDto)) {
             return R.success("成功");

+ 19 - 20
alien-store/src/main/java/shop/alien/store/service/impl/LifeGroupBuyServiceImpl.java

@@ -13,14 +13,13 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.store.*;
 import shop.alien.entity.store.dto.LifeGroupBuyDto;
+import shop.alien.entity.store.vo.LifeGroupBuyNameThaliVo;
 import shop.alien.entity.store.vo.LifeGroupBuyThaliVo;
 import shop.alien.entity.store.vo.StoreMenuVo;
 import shop.alien.mapper.*;
 import shop.alien.store.service.LifeGroupBuyService;
 
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -47,8 +46,10 @@ public class LifeGroupBuyServiceImpl extends ServiceImpl<LifeGroupBuyMainMapper,
         if (ObjectUtils.isEmpty(lifeGroupBuyMain.getId())) {
             lifeGroupBuyMainMapper.insert(lifeGroupBuyMain);
             if (ObjectUtils.isNotEmpty(lifeGroupBuyThalis)) {
-                for (LifeGroupBuyThali lifeGroupBuyThali : lifeGroupBuyThalis) {
+                for (int i = 0; i < lifeGroupBuyThalis.size(); i++) {
+                    LifeGroupBuyThali lifeGroupBuyThali = lifeGroupBuyThalis.get(i);
                     lifeGroupBuyThali.setParentId(lifeGroupBuyMain.getId().toString());
+                    lifeGroupBuyThali.setDetailSort(i + 1);
                     lifeGroupBuyThaliMapper.insert(lifeGroupBuyThali);
                 }
             }
@@ -57,8 +58,10 @@ public class LifeGroupBuyServiceImpl extends ServiceImpl<LifeGroupBuyMainMapper,
             lifeGroupBuyMainMapper.updateById(lifeGroupBuyMain);
             lifeGroupBuyThaliMapper.update(null, new LambdaUpdateWrapper<LifeGroupBuyThali>().eq(LifeGroupBuyThali::getParentId, lifeGroupBuyMain.getId()).set(LifeGroupBuyThali::getDeleteFlag, 1));
             if (ObjectUtils.isNotEmpty(lifeGroupBuyThalis)) {
-                for (LifeGroupBuyThali lifeGroupBuyThali : lifeGroupBuyThalis) {
+                for (int i = 0; i < lifeGroupBuyThalis.size(); i++) {
+                    LifeGroupBuyThali lifeGroupBuyThali = lifeGroupBuyThalis.get(i);
                     lifeGroupBuyThali.setParentId(lifeGroupBuyMain.getId().toString());
+                    lifeGroupBuyThali.setDetailSort(i + 1);
                     lifeGroupBuyThaliMapper.insert(lifeGroupBuyThali);
                 }
             }
@@ -76,19 +79,7 @@ public class LifeGroupBuyServiceImpl extends ServiceImpl<LifeGroupBuyMainMapper,
                 .eq("delete_flag", 0)
                 .orderByDesc("created_time");
         IPage<LifeGroupBuyThaliVo> lifeGroupBuyThaliVoIPage = new Page<>(page, size);
-        IPage<LifeGroupBuyThaliVo> lifeGroupBuyMainIPage = lifeGroupBuyMainMapper.selectPageByThaliVo(lifeGroupBuyThaliVoIPage, queryWrapper);
-        List<LifeGroupBuyThaliVo> records = lifeGroupBuyMainIPage.getRecords();
-        if (ObjectUtils.isNotEmpty(records)) {
-            List<Integer> collect = records.stream().map(LifeGroupBuyThaliVo::getId).collect(Collectors.toList());
-            List<LifeGroupBuyThali> lifeGroupBuyThalis = lifeGroupBuyThaliMapper.selectList(new LambdaQueryWrapper<LifeGroupBuyThali>().in(LifeGroupBuyThali::getParentId, collect).eq(LifeGroupBuyThali::getDeleteFlag, 0));
-            records.forEach(i -> i.setDetails(lifeGroupBuyThalis.stream().filter(d -> i.getId().toString().equals(d.getParentId())).collect(Collectors.toList())));
-            for (LifeGroupBuyThaliVo record : records) {
-                record.setDetails(lifeGroupBuyThalis.stream().filter(d -> record.getId().toString().equals(d.getParentId())).collect(Collectors.toList()));
-
-                getMainImgAndDisableDate(record);
-            }
-        }
-        return lifeGroupBuyMainIPage;
+        return lifeGroupBuyMainMapper.selectPageByThaliVo(lifeGroupBuyThaliVoIPage, queryWrapper);
     }
 
     @Override
@@ -113,8 +104,16 @@ public class LifeGroupBuyServiceImpl extends ServiceImpl<LifeGroupBuyMainMapper,
             }
         }
 
-        lifeGroupBuyThalis = lifeGroupBuyThalis.stream().sorted(Comparator.comparing(LifeGroupBuyThali::getDetailSort)).collect(Collectors.toList());
-        lifeGroupBuyThaliVo.setDetails(lifeGroupBuyThalis);
+        Map<String, List<LifeGroupBuyThali>> collect = lifeGroupBuyThalis.stream().collect(Collectors.groupingBy(LifeGroupBuyThali::getGroupName));
+        List<LifeGroupBuyNameThaliVo> resultMap = new ArrayList<>();
+        List<String> keys = collect.entrySet().stream().sorted(Comparator.comparingInt(i -> i.getValue().stream().map(LifeGroupBuyThali::getDetailSort).reduce(0, Integer::sum))).map(Map.Entry::getKey).collect(Collectors.toList());
+        for (String key : keys) {
+            LifeGroupBuyNameThaliVo lifeGroupBuyNameThaliVo = new LifeGroupBuyNameThaliVo();
+            lifeGroupBuyNameThaliVo.setGroupName(key);
+            lifeGroupBuyNameThaliVo.setDetails(collect.get(key).stream().sorted(Comparator.comparingInt(LifeGroupBuyThali::getDetailSort)).collect(Collectors.toList()));
+            resultMap.add(lifeGroupBuyNameThaliVo);
+        }
+        lifeGroupBuyThaliVo.setDetails(resultMap);
         getMainImgAndDisableDate(lifeGroupBuyThaliVo);
         return lifeGroupBuyThaliVo;
     }