Browse Source

设备页面返回添加设备图片

LuoDLeo 7 months ago
parent
commit
7c279ad4de

+ 20 - 0
src/main/java/org/springblade/modules/api/controller/ApiFacilityController.java

@@ -2,6 +2,7 @@ package org.springblade.modules.api.controller;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -19,6 +20,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.business.entity.Facility;
+import org.springblade.modules.business.entity.FacilityModel;
+import org.springblade.modules.business.service.IFacilityModelService;
 import org.springblade.modules.business.service.IFacilityService;
 import org.springblade.modules.business.service.IShopService;
 import org.springblade.modules.business.vo.FacilityVO;
@@ -28,6 +31,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @RestController
 @AllArgsConstructor
@@ -36,6 +41,7 @@ import java.util.List;
 public class ApiFacilityController extends BaseController {
 
     private final IFacilityService iFacilityService;
+    private final IFacilityModelService iFacilityModelService;
     private final IShopService iShopService;
     private final IUserMerchantService iUserMerchantService;
 
@@ -65,6 +71,20 @@ public class ApiFacilityController extends BaseController {
             wrapper.in(Facility::getShopId, authShopId);
         }
         IPage<Facility> pages = iFacilityService.page(Condition.getPage(query), wrapper);
+
+        //补充设备图片
+        if (CollectionUtil.isNotEmpty(pages.getRecords())) {
+            //获取所有设备型号
+            List<Long> facilityTypeIds = pages.getRecords().stream().map(Facility::getFacilityType).distinct().collect(Collectors.toList());
+            //查询设备型号图片
+            List<FacilityModel> facilityModels = iFacilityModelService.lambdaQuery().in(FacilityModel::getId, facilityTypeIds).list();
+            //按型号分组
+            Map<Long, String> facilityModelMap = facilityModels.stream().collect(Collectors.toMap(FacilityModel::getId, FacilityModel::getFacilityImage));
+            pages.getRecords().forEach(facility -> {
+                facility.setFacilityImage(facilityModelMap.get(facility.getFacilityType()));
+            });
+        }
+
         return R.data(FacilityWrapper.build().pageVO(pages));
     }
 

+ 8 - 0
src/main/java/org/springblade/modules/business/entity/Facility.java

@@ -1,5 +1,6 @@
 package org.springblade.modules.business.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -86,4 +87,11 @@ public class Facility extends BaseEntity {
 	@ApiModelProperty(value = "添加时间")
 	private LocalDateTime addTime;
 
+	/**
+	 * 设备图片
+	 */
+	@TableField(exist = false)
+	@ApiModelProperty(value = "设备图片")
+	private String facilityImage;
+
 }

+ 8 - 0
src/main/java/org/springblade/modules/business/vo/FacilityVO.java

@@ -38,6 +38,14 @@ public class FacilityVO extends Facility {
      */
     private double distance;
 
+    /**
+     * 型号图片
+     */
+    private String facilityImage;
+
+    /**
+     * 设备二维码
+     */
     private String qrCode;
 
 }