From 8e0accc6ff7d3e28c447162915913b36ead00b25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Thu, 8 May 2025 14:32:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AdvertisementController.java | 10 +++++---- .../admin/controller/DeviceController.java | 22 +++++++++++-------- .../admin/service/DeviceQRCodeService.java | 12 ++++++---- .../pojo/request/AdvertisementRequst.java | 4 ++++ .../repository/entity/Advertisement.java | 2 ++ .../mapper/AdvertisementMapper.java | 3 ++- .../service/IAdvertisementService.java | 4 +++- .../impl/AdvertisementServiceImpl.java | 15 +++++++++++-- .../resources/mapper/AdvertisementMapper.xml | 2 +- 9 files changed, 52 insertions(+), 22 deletions(-) diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdvertisementController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdvertisementController.java index ee0b4608..5487c5c1 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdvertisementController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/AdvertisementController.java @@ -3,8 +3,10 @@ package com.nflg.mobilebroken.admin.controller; import com.nflg.mobilebroken.admin.annotation.ApiMark; import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; +import com.nflg.mobilebroken.common.pojo.PageData; import com.nflg.mobilebroken.common.pojo.request.AdvertisementRequst; import com.nflg.mobilebroken.common.pojo.request.AdvertisementSaveRequest; +import com.nflg.mobilebroken.common.pojo.request.PageRequest; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementListVO; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementVO; import com.nflg.mobilebroken.repository.entity.DictionaryItem; @@ -81,9 +83,9 @@ public class AdvertisementController extends ControllerBase{ * 获取广告列表 * @return 广告列表 */ - @GetMapping("list") - public ApiResult getAdvertisementList(){ - return ApiResult.success(advertisementService.getList()); + @PostMapping("list") + public ApiResult> getAdvertisementList(@Valid @RequestBody @NotNull PageRequest request){ + return ApiResult.success(advertisementService.getList(request)); } /** @@ -91,7 +93,7 @@ public class AdvertisementController extends ControllerBase{ * @param request 请求参数 * @return 广告列表 */ - @GetMapping("getByType") + @PostMapping("getByType") @ApiMark(moduleName = "广告", apiName = "根据类型获取广告") public ApiResult getAdvertisement(@Valid @RequestBody @NotNull AdvertisementRequst request){ return ApiResult.success(advertisementService.getByType(request.getType(),request.getPosition())); diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java index b5948abe..cd6d42a8 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/controller/DeviceController.java @@ -27,6 +27,7 @@ import com.nflg.mobilebroken.repository.entity.*; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.annotation.MethodInfoMark; import com.nflg.mobilebroken.starter.service.FileUploadService; +import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; @@ -60,6 +61,7 @@ import java.util.zip.ZipOutputStream; /** * 设备管理 */ +@Slf4j @RestController @RequestMapping("/device") public class DeviceController extends ControllerBase { @@ -723,25 +725,26 @@ public class DeviceController extends ControllerBase { */ @PostMapping("exportImages") public ResponseEntity exportImages(@Valid @RequestBody IdPostRequest request){ - List devices=deviceService.listByIds(request.getIds()); - if (CollUtil.isNotEmpty(devices)){ + Collection deviceNos=deviceService.listByIds(request.getIds()).stream().map(Device::getDeviceNo).collect(Collectors.toSet()); + if (CollUtil.isNotEmpty(deviceNos)){ try { - if (devices.size()==1){ - byte[] bytes=deviceQRCodeService.generate(devices.get(0).getDeviceNo()); + if (deviceNos.size()==1){ + String deviceNo=deviceNos.stream().findFirst().get(); + byte[] bytes=deviceQRCodeService.generate(deviceNo); HttpHeaders headers = new HttpHeaders(); - headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ devices.get(0).getDeviceNo()+".jpg"); + headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename="+ deviceNo+".jpg"); return ResponseEntity.ok() .headers(headers) - .contentType(MediaType.IMAGE_JPEG) + .contentType(MediaType.APPLICATION_OCTET_STREAM) .body(bytes); }else { Path tempZipFile = Files.createTempFile("files", ".zip"); try (FileOutputStream fos = new FileOutputStream(tempZipFile.toFile()); ZipOutputStream zos = new ZipOutputStream(fos)) { - for (Device device : devices) { - ZipEntry zipEntry = new ZipEntry(device.getDeviceNo()+".jpg"); + for (String deviceNo : deviceNos) { + ZipEntry zipEntry = new ZipEntry(deviceNo+".jpg"); zos.putNextEntry(zipEntry); - byte[] bytes=deviceQRCodeService.generate(device.getDeviceNo()); + byte[] bytes=deviceQRCodeService.generate(deviceNo); zos.write(bytes, 0, bytes.length); zos.closeEntry(); } @@ -756,6 +759,7 @@ public class DeviceController extends ControllerBase { .body(zipContent); } }catch (Exception e) { + log.error("导出二维码出错",e); VUtils.trueThrowBusinessError(true).throwMessage("生成二维码出错"); } } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java index 43f43d3d..81de98d0 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/service/DeviceQRCodeService.java @@ -1,18 +1,22 @@ package com.nflg.mobilebroken.admin.service; import com.nflg.mobilebroken.common.util.QRCodeUtil; -import org.springframework.beans.factory.annotation.Value; +import com.nflg.mobilebroken.repository.entity.ParamConfig; +import com.nflg.mobilebroken.repository.service.IParamConfigService; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.stereotype.Component; +import javax.annotation.Resource; + @Component @RefreshScope public class DeviceQRCodeService { - @Value("${qrcode.device.url}") - private String deviceUrl; + @Resource + private IParamConfigService paramConfigService; public byte[] generate(String deviceNo) throws Exception { - return QRCodeUtil.generateDeviceQRCode(deviceNo ,deviceUrl + deviceNo,200, 200); + ParamConfig config = paramConfigService.lambdaQuery().eq(ParamConfig::getCode, "DeviceQRCodeHost").one(); + return QRCodeUtil.generateDeviceQRCode(deviceNo ,config.getValue() + deviceNo,200, 200); } } diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdvertisementRequst.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdvertisementRequst.java index d63fbeda..5eae1798 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdvertisementRequst.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/request/AdvertisementRequst.java @@ -2,16 +2,20 @@ package com.nflg.mobilebroken.common.pojo.request; import lombok.Data; +import javax.validation.constraints.NotBlank; + @Data public class AdvertisementRequst { /** * 广告类型 */ + @NotBlank private String type; /** * 广告位置 */ + @NotBlank private String position; } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Advertisement.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Advertisement.java index 207fc727..f1c31573 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Advertisement.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/entity/Advertisement.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.repository.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Getter; import lombok.Setter; @@ -40,6 +41,7 @@ public class Advertisement implements Serializable { /** * 间隔,单位秒 */ + @TableField("`interval`") private Integer interval; /** diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdvertisementMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdvertisementMapper.java index b7f8398e..a2efafe7 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdvertisementMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/AdvertisementMapper.java @@ -1,6 +1,7 @@ package com.nflg.mobilebroken.repository.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementListVO; import com.nflg.mobilebroken.repository.entity.Advertisement; @@ -17,5 +18,5 @@ public interface AdvertisementMapper extends BaseMapper { Advertisement getByType(String type,String position); - AdvertisementListVO getList(); + IPage getList(IPage page); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdvertisementService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdvertisementService.java index 6ea2f81f..472b8e76 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdvertisementService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IAdvertisementService.java @@ -1,7 +1,9 @@ package com.nflg.mobilebroken.repository.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.mobilebroken.common.pojo.request.AdvertisementSaveRequest; +import com.nflg.mobilebroken.common.pojo.request.PageRequest; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementListVO; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementVO; import com.nflg.mobilebroken.repository.entity.Advertisement; @@ -20,5 +22,5 @@ public interface IAdvertisementService extends IService { void save(AdvertisementSaveRequest request); - AdvertisementListVO getList(); + IPage getList(PageRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdvertisementServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdvertisementServiceImpl.java index 4c6b4a83..76e4fa5c 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdvertisementServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AdvertisementServiceImpl.java @@ -1,12 +1,16 @@ package com.nflg.mobilebroken.repository.service.impl; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nflg.mobilebroken.common.pojo.request.AdvertisementSaveRequest; +import com.nflg.mobilebroken.common.pojo.request.PageRequest; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementItemVO; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementListVO; import com.nflg.mobilebroken.common.pojo.vo.AdvertisementVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.Advertisement; import com.nflg.mobilebroken.repository.mapper.AdvertisementMapper; import com.nflg.mobilebroken.repository.service.IAdvertisementService; @@ -29,6 +33,9 @@ public class AdvertisementServiceImpl extends ServiceImpl getList(PageRequest request) { + return baseMapper.getList(new Page<>(request.getPage(),request.getPageSize())); } } diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/AdvertisementMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/AdvertisementMapper.xml index 5cf50010..7db1b774 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/AdvertisementMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/AdvertisementMapper.xml @@ -11,7 +11,7 @@