fix: 修复一些问题
This commit is contained in:
parent
25e19717a2
commit
8e0accc6ff
|
|
@ -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<AdvertisementListVO> getAdvertisementList(){
|
||||
return ApiResult.success(advertisementService.getList());
|
||||
@PostMapping("list")
|
||||
public ApiResult<PageData<AdvertisementListVO>> 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<AdvertisementVO> getAdvertisement(@Valid @RequestBody @NotNull AdvertisementRequst request){
|
||||
return ApiResult.success(advertisementService.getByType(request.getType(),request.getPosition()));
|
||||
|
|
|
|||
|
|
@ -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<byte[]> exportImages(@Valid @RequestBody IdPostRequest request){
|
||||
List<Device> devices=deviceService.listByIds(request.getIds());
|
||||
if (CollUtil.isNotEmpty(devices)){
|
||||
Collection<String> 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("生成二维码出错");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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> {
|
|||
|
||||
Advertisement getByType(String type,String position);
|
||||
|
||||
AdvertisementListVO getList();
|
||||
IPage<AdvertisementListVO> getList(IPage<?> page);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Advertisement> {
|
|||
|
||||
void save(AdvertisementSaveRequest request);
|
||||
|
||||
AdvertisementListVO getList();
|
||||
IPage<AdvertisementListVO> getList(PageRequest request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<AdvertisementMapper, A
|
|||
@Override
|
||||
public AdvertisementVO getByType(String type,String position) {
|
||||
Advertisement ad=baseMapper.getByType(type,position);
|
||||
if (Objects.isNull(ad)){
|
||||
return null;
|
||||
}
|
||||
AdvertisementVO vo=new AdvertisementVO();
|
||||
vo.setInterval(ad.getInterval());
|
||||
vo.setItems(JSONUtil.toList(ad.getContent(), AdvertisementItemVO.class));
|
||||
|
|
@ -38,6 +45,10 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
|||
@Override
|
||||
public void save(AdvertisementSaveRequest request) {
|
||||
if (Objects.isNull(request.getId())){
|
||||
VUtils.trueThrowBusinessError(lambdaQuery().eq(Advertisement::getType,request.getType())
|
||||
.eq(Advertisement::getPosition,request.getPosition())
|
||||
.exists())
|
||||
.throwMessage("已存在相同位置的广告");
|
||||
Advertisement ad=new Advertisement()
|
||||
.setType(request.getType())
|
||||
.setPosition(request.getPosition())
|
||||
|
|
@ -60,7 +71,7 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
|||
}
|
||||
|
||||
@Override
|
||||
public AdvertisementListVO getList() {
|
||||
return baseMapper.getList();
|
||||
public IPage<AdvertisementListVO> getList(PageRequest request) {
|
||||
return baseMapper.getList(new Page<>(request.getPage(),request.getPageSize()));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
</select>
|
||||
|
||||
<select id="getList" resultType="com.nflg.mobilebroken.common.pojo.vo.AdvertisementListVO">
|
||||
SELECT ad.*,di1.`code` AS 'typeName',di2.`code` AS 'positionName'
|
||||
SELECT ad.*,di1.`value` AS 'typeName',di2.`value` AS 'positionName'
|
||||
FROM advertisement ad
|
||||
INNER JOIN dictionary_item di1 ON ad.type=di1.id
|
||||
INNER JOIN dictionary_item di2 ON ad.position=di2.id
|
||||
|
|
|
|||
Loading…
Reference in New Issue