Selaa lähdekoodia

fix(advert): 修复广告管理相关查询和插入逻辑

- 在 getHotSchemeList 方法中添加按 manageSerial 排序功能
- 重新排序 SysAdContentServiceImpl 中的 import 语句
- 在 insertByBo 方法中添加异常处理,防止重复广告记录插入
- 将查询排序字段从 id 改为 manageSerial 以确保正确顺序
- 修复代码中的空格和格式问题
hurx 1 päivä sitten
vanhempi
sitoutus
304510a14d

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/pc/IndexSystemController.java

@@ -217,7 +217,7 @@ public class IndexSystemController {
     @GetMapping("/getHotSchemeList")
     public R<List<SysFloorAdvertManage>> getHotSchemeList() {
         List<SysFloorAdvertManage> list = sysFloorAdvertManageService.list(Wrappers.lambdaQuery(SysFloorAdvertManage.class)
-            .eq(SysFloorAdvertManage::getAdvertPosition, 3)
+            .eq(SysFloorAdvertManage::getAdvertPosition, 3).orderByAsc(SysFloorAdvertManage::getManageSerial)
         );
         return R.ok(list);
     }

+ 22 - 16
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysAdContentServiceImpl.java

@@ -1,25 +1,26 @@
 package org.dromara.system.service.impl;
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.SysAdContent;
 import org.dromara.system.domain.bo.SysAdContentBo;
 import org.dromara.system.domain.vo.SysAdContentVo;
-import org.dromara.system.domain.SysAdContent;
 import org.dromara.system.mapper.SysAdContentMapper;
 import org.dromara.system.service.ISysAdContentService;
+import org.springframework.stereotype.Service;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 
 /**
  * 广告内容(多类型统一存)Service业务层处理
@@ -30,7 +31,7 @@ import java.util.Collection;
 @Slf4j
 @RequiredArgsConstructor
 @Service
-public class SysAdContentServiceImpl  extends ServiceImpl<SysAdContentMapper, SysAdContent> implements ISysAdContentService {
+public class SysAdContentServiceImpl extends ServiceImpl<SysAdContentMapper, SysAdContent> implements ISysAdContentService {
 
     private final SysAdContentMapper baseMapper;
 
@@ -41,7 +42,7 @@ public class SysAdContentServiceImpl  extends ServiceImpl<SysAdContentMapper, Sy
      * @return 广告内容(多类型统一存)
      */
     @Override
-    public SysAdContentVo queryById(Long id){
+    public SysAdContentVo queryById(Long id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -99,9 +100,14 @@ public class SysAdContentServiceImpl  extends ServiceImpl<SysAdContentMapper, Sy
     public Boolean insertByBo(SysAdContentBo bo) {
         SysAdContent add = MapstructUtils.convert(bo, SysAdContent.class);
         validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setId(add.getId());
+        boolean flag = false;
+        try {
+            flag = baseMapper.insert(add) > 0;
+            if (flag) {
+                bo.setId(add.getId());
+            }
+        } catch (Exception e) {
+            throw new ServiceException(String.format("已存在相同平台、租户、广告类型、标题的广告记录"));
         }
         return flag;
     }
@@ -122,7 +128,7 @@ public class SysAdContentServiceImpl  extends ServiceImpl<SysAdContentMapper, Sy
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(SysAdContent entity){
+    private void validEntityBeforeSave(SysAdContent entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -135,7 +141,7 @@ public class SysAdContentServiceImpl  extends ServiceImpl<SysAdContentMapper, Sy
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteByIds(ids) > 0;

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysFloorAdvertManageServiceImpl.java

@@ -74,7 +74,7 @@ public class SysFloorAdvertManageServiceImpl  extends ServiceImpl<SysFloorAdvert
     private LambdaQueryWrapper<SysFloorAdvertManage> buildQueryWrapper(SysFloorAdvertManageBo bo) {
         Map<String, Object> params = bo.getParams();
         LambdaQueryWrapper<SysFloorAdvertManage> lqw = Wrappers.lambdaQuery();
-        lqw.orderByAsc(SysFloorAdvertManage::getId);
+        lqw.orderByAsc(SysFloorAdvertManage::getManageSerial);
         lqw.eq(StringUtils.isNotBlank(bo.getManageNo()), SysFloorAdvertManage::getManageNo, bo.getManageNo());
         lqw.eq(StringUtils.isNotBlank(bo.getCoverImage()), SysFloorAdvertManage::getCoverImage, bo.getCoverImage());
         lqw.eq(StringUtils.isNotBlank(bo.getAdvertTitle()), SysFloorAdvertManage::getAdvertTitle, bo.getAdvertTitle());