xuqiang 1 год назад
Родитель
Сommit
3e986ac482

+ 17 - 17
authentication/src/main/resources/logback-spring.xml

@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 
-    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
-        <!-- Graylog server 的主机名或 IP 地址 -->
-        <graylogHost>192.168.0.250</graylogHost>
-        <!-- Graylog 服务器端口,通常为 12201(UDP)或 12202(TCP) -->
-        <graylogPort>12201</graylogPort>
-        <!-- 可选项:指定协议,默认使用 UDP -->
-        <transport>UDP</transport>
-        <!-- 发送日志时是否压缩 -->
-        <compress>true</compress>
-        <!-- 是否在 GELF 消息中加入时间戳 -->
-        <includeTimestamp>true</includeTimestamp>
-        <!-- 日志内容最大字节数 -->
-        <maxMessageSize>32768</maxMessageSize>
-        <!-- 设置自定义字段 -->
-        <additionalFields>
-        </additionalFields>
-    </appender>
+<!--    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">-->
+<!--        &lt;!&ndash; Graylog server 的主机名或 IP 地址 &ndash;&gt;-->
+<!--        <graylogHost>192.168.0.250</graylogHost>-->
+<!--        &lt;!&ndash; Graylog 服务器端口,通常为 12201(UDP)或 12202(TCP) &ndash;&gt;-->
+<!--        <graylogPort>12201</graylogPort>-->
+<!--        &lt;!&ndash; 可选项:指定协议,默认使用 UDP &ndash;&gt;-->
+<!--        <transport>UDP</transport>-->
+<!--        &lt;!&ndash; 发送日志时是否压缩 &ndash;&gt;-->
+<!--        <compress>true</compress>-->
+<!--        &lt;!&ndash; 是否在 GELF 消息中加入时间戳 &ndash;&gt;-->
+<!--        <includeTimestamp>true</includeTimestamp>-->
+<!--        &lt;!&ndash; 日志内容最大字节数 &ndash;&gt;-->
+<!--        <maxMessageSize>32768</maxMessageSize>-->
+<!--        &lt;!&ndash; 设置自定义字段 &ndash;&gt;-->
+<!--        <additionalFields>-->
+<!--        </additionalFields>-->
+<!--    </appender>-->
 
     <!-- 排除启动日志 -->
     <logger name="org.springframework.boot" level="WARN" additivity="false">

+ 45 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysPosterVo.java

@@ -0,0 +1,45 @@
+package com.jzg.commons.entity.vo;
+
+import com.jzg.commons.core.base.BaseModel;
+import com.jzg.commons.entity.po.SysUploadFiles;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@Schema(description = "广告位VO")
+public class SysPosterVo extends BaseModel {
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "标题")
+    private String title;
+
+    @Schema(description = "所属机构id")
+    private String orgId;
+
+    @Schema(description = "广告链接")
+    private String url;
+
+    @Schema(description = "是否是首页轮播图")
+    private int isLevel;
+
+    @Schema(description = "图片")
+    private String image;
+
+    @Schema(description = "系统编码")
+    private String previewUrl;
+
+    private String systemCode;
+
+    @Schema(description = "所属机构名称")
+    private String deptName;
+
+    private List<String> orgIds;
+
+    private SysUploadFiles uploadFiles;
+
+
+}

+ 1 - 1
gateway/src/main/resources/application-dev.yml

@@ -15,6 +15,6 @@ spring:
         - id: tenant_route
           uri: http://localhost:8084/
           predicates:
-            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**
+            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**
 
 

+ 1 - 1
gateway/src/main/resources/application-test.yml

@@ -16,7 +16,7 @@ spring:
         - id: tenant_route
           uri: http://172.24.144.223:9084/
           predicates:
-            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**
+            - Path=/tenant/**,/dept/**,/area/**,/dict/**,/userInfo/**,/sysOrganization/**,/activity/**,/message/**,/messageNotice/**,/poster/**
 
 
 

+ 11 - 0
tenant/organization/src/main/java/com/jzg/organization/controller/PosterController.java

@@ -13,6 +13,7 @@ import com.jzg.organization.mapper.PosterOrgMapper;
 import com.jzg.organization.service.PosterService;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.constraints.NotBlank;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
@@ -40,6 +41,7 @@ public class PosterController {
     }
 
 
+    @Schema(description = "保存广告位")
     @PostMapping("/save")
     public HttpResult save(@RequestBody PosterAdd  posterAdd) {
         SysPoster sysPoster = BeanUtil.copyProperties(posterAdd, SysPoster.class);
@@ -51,6 +53,7 @@ public class PosterController {
     }
 
 
+    @Schema(description = "修改广告位")
     @PostMapping("/updateById")
     public HttpResult updateById(@RequestBody PosterEnd posterEnd) {
         boolean updated = posterService.updateById(BeanUtil.copyProperties(posterEnd, SysPoster.class));
@@ -74,9 +77,17 @@ public class PosterController {
         posterOrgMapper.insertOrUpdate(list);
     }
 
+    @Schema(description = "删除广告位")
     @PostMapping("/delete/{id}")
     public HttpResult delete(@PathVariable String id) {
         return posterService.removeById(id) ? HttpResult.ok("删除成功") : HttpResult.error("删除失败");
     }
 
+
+    @Schema(description = "获取详情")
+    @GetMapping("/getById")
+    public HttpResult getById(@NotBlank(message = "id不能为空") String id){
+        return posterService.queryById(id);
+    }
+
 }

+ 26 - 5
tenant/organization/src/main/java/com/jzg/organization/mapper/PosterMapper.java

@@ -6,15 +6,36 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.po.SysPoster;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
+import com.jzg.commons.entity.po.SysUploadFiles;
+import com.jzg.commons.entity.vo.SysPosterVo;
+import org.apache.ibatis.annotations.*;
 
 @Mapper
 public interface PosterMapper extends BaseMapper<SysPoster> {
 
 
 
-    @Select("select  * from  sys_poster ${ew.customSqlSegment}")
-    Page<SysPoster> queryPage(Page page, @Param(Constants.WRAPPER) Wrapper<SysPoster> queryWrapper);
+    @Select("select  p.*,f.file_name,f.file_type,f.bucket_name,f.id as fileId,(SELECT d.name FROM sys_dept d WHERE d.id = p.org_id) deptName from  sys_poster p LEFT JOIN sys_upload_files f ON f.id = p.image  ${ew.customSqlSegment}")
+    @Results({
+            @Result(column = "fileId", property = "uploadFiles.id"),
+            @Result(column = "file_name", property = "uploadFiles.fileName"),
+            @Result(column = "file_type", property = "uploadFiles.fileType"),
+            @Result(column = "bucket_name", property = "uploadFiles.bucketName"),
+            @Result(column = "deptName", property = "deptName")
+    })
+    Page<SysPosterVo> queryPage(Page page, @Param(Constants.WRAPPER) Wrapper<SysPoster> queryWrapper);
+
+
+
+
+    @Select("select  p.*,f.file_name,f.file_type,f.bucket_name,f.id as fileId,(SELECT d.name FROM sys_dept d WHERE d.id = p.org_id) deptName from  sys_poster p LEFT JOIN sys_upload_files f ON f.id = p.image where p.id = #{id}")
+    @Results({
+            @Result(column = "fileId", property = "uploadFiles.id"),
+            @Result(column = "file_name", property = "uploadFiles.fileName"),
+            @Result(column = "file_type", property = "uploadFiles.fileType"),
+            @Result(column = "bucket_name", property = "uploadFiles.bucketName"),
+            @Result(column = "deptName", property = "deptName")
+    })
+    SysPosterVo queryById(@Param("id") String id);
+
 }

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/service/PosterService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.PosterParam;
 import com.jzg.commons.entity.po.SysPoster;
+import jakarta.validation.constraints.NotBlank;
 
 public interface PosterService extends IService<SysPoster> {
 
@@ -11,4 +12,5 @@ public interface PosterService extends IService<SysPoster> {
 
     HttpResult queryPage(PosterParam posterParam);
 
+    HttpResult queryById(@NotBlank(message = "id不能为空") String id);
 }

+ 38 - 6
tenant/organization/src/main/java/com/jzg/organization/service/impl/PosterServiceImpl.java

@@ -1,27 +1,59 @@
 package com.jzg.organization.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.PosterParam;
 import com.jzg.commons.entity.po.SysPoster;
+import com.jzg.commons.entity.po.SysUploadFiles;
+import com.jzg.commons.entity.vo.SysPosterVo;
+import com.jzg.commons.util.MinioUtils;
 import com.jzg.commons.util.StringUtils;
 import com.jzg.organization.mapper.PosterMapper;
 import com.jzg.organization.service.PosterService;
 import org.springframework.stereotype.Service;
 
+
 @Service
 public class PosterServiceImpl extends ServiceImpl<PosterMapper, SysPoster> implements PosterService {
 
 
     @Override
     public HttpResult queryPage(PosterParam posterParam) {
-
-        LambdaQueryWrapper<SysPoster> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        lambdaQueryWrapper.like(StringUtils.isNotEmpty(posterParam.getTitle()), SysPoster::getTitle, posterParam.getTitle());
-        lambdaQueryWrapper.like(StringUtils.isNotEmpty(posterParam.getOrgName()), SysPoster::getOrgName, posterParam.getOrgName());
-        Page page = baseMapper.queryPage(posterParam.getPage(), lambdaQueryWrapper);
+        QueryWrapper<SysPoster> queryWrapper = new QueryWrapper<>();
+        queryWrapper.like(StringUtils.isNotEmpty(posterParam.getTitle()), "p.title", posterParam.getTitle());
+        queryWrapper.like(StringUtils.isNotEmpty(posterParam.getOrgName()), "orgName", posterParam.getOrgName());
+        queryWrapper.eq("p.is_delete", 0);
+        queryWrapper.orderByDesc("p.create_time");
+        Page<SysPosterVo> page = baseMapper.queryPage(posterParam.getPage(), queryWrapper);
+        page.getRecords().forEach(sysPosterVo -> {
+            sysPosterVo.setPreviewUrl(getPosterUrl(sysPosterVo.getUploadFiles()));
+        });
         return HttpResult.ok(page);
     }
+
+    @Override
+    public HttpResult queryById(String id) {
+        SysPosterVo sysPosterVo = baseMapper.queryById(id);
+        if (ObjectUtil.isNotEmpty(sysPosterVo)) {
+            sysPosterVo.setPreviewUrl(getPosterUrl(sysPosterVo.getUploadFiles()));
+            return HttpResult.ok(sysPosterVo);
+        }
+        return HttpResult.ok();
+    }
+
+
+
+    public String getPosterUrl(SysUploadFiles  uploadFiles){
+        if (ObjectUtil.isNotEmpty(uploadFiles)) {
+            if (StringUtils.isNotEmpty(uploadFiles.getBucketName()) && StringUtils.isNotEmpty(uploadFiles.getFileName())){
+                return  MinioUtils.getPresignedObjectUrl(uploadFiles.getBucketName(), uploadFiles.getFileName());
+            }
+        }
+        return null;
+    }
+
+
 }