From cf5fd216fecb430af2097244ee009ab9c86248b5 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Tue, 1 Jul 2025 17:30:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=93=81=E3=80=81=E6=96=B0=E9=97=BB?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/controller/BusiNewController.java | 94 ++++++-- .../busi/controller/BusiProdController.java | 5 +- .../com/ruoyi/busi/domain/BusiProdNew.java | 5 + .../ruoyi/busi/mapper/BusiProdNewMapper.java | 2 +- .../busi/service/IBusiProdNewService.java | 2 +- .../service/impl/BusiProdNewServiceImpl.java | 4 +- .../mapper/busi/BusiProdNewMapper.xml | 3 + .../mapper/busi/BusiProdRandomMapper.xml | 4 +- dl_vue/src/api/busi/new.js | 41 +++- dl_vue/src/views/base/pics/selectPic.vue | 6 + dl_vue/src/views/busi/new/index.vue | 186 +++++++++++++--- dl_vue/src/views/busi/new/newForm.vue | 177 +++++++++++++--- dl_vue/src/views/busi/prod/index.vue | 200 +++--------------- dl_vue/src/views/busi/prod/prodForm.vue | 10 +- dl_vue/src/views/busi/prod/randomProduct.vue | 111 ++++++++++ dl_vue/src/views/busi/prod/selectProduct.vue | 125 +++++++++++ 16 files changed, 711 insertions(+), 264 deletions(-) create mode 100644 dl_vue/src/views/busi/prod/randomProduct.vue create mode 100644 dl_vue/src/views/busi/prod/selectProduct.vue diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java index 7f68197..e425103 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.base.service.IBasePicsService; import com.ruoyi.busi.domain.BusiProdNew; +import com.ruoyi.busi.domain.BusiProdRandom; import com.ruoyi.busi.service.IBusiProdNewService; +import com.ruoyi.busi.service.IBusiProdRandomService; import com.ruoyi.busi.vo.ProdNewVO; +import com.ruoyi.busi.vo.ProdRandomVO; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; @@ -20,10 +23,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import static com.ruoyi.constant.DictConstants.FILE_TYPE_PRODUCT; +import static com.ruoyi.constant.DictConstants.*; /** - * 产品Controller + * 新闻Controller * * @author vinjor-m * @date 2025-06-25 @@ -36,9 +39,11 @@ public class BusiNewController extends BaseController private IBusiProdNewService busiProdNewService; @Autowired private IBasePicsService basePicsService; + @Autowired + private IBusiProdRandomService prodRandomService; /** - * 查询产品列表 + * 查询新闻列表 */ @PreAuthorize("@ss.hasPermi('busi:new:list')") @GetMapping("/list") @@ -47,25 +52,39 @@ public class BusiNewController extends BaseController @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); + //只查新闻 + busiProdNew.setDataType(DATA_TYPE_NEWS); IPage list = busiProdNewService.queryListPage(busiProdNew,page); return success(list); } /** - * 导出产品列表 + * 查某新闻的随机关联产品 + * @author vinjor-M + * @date 16:35 2025/6/27 + * @return com.ruoyi.common.core.domain.AjaxResult + * + **/ + @GetMapping("/randomList") + public AjaxResult randomList(BusiProdRandom prodRandom){ + return success(prodRandomService.randomList(prodRandom)); + } + + /** + * 导出新闻列表 */ @PreAuthorize("@ss.hasPermi('busi:new:export')") - @Log(title = "产品", businessType = BusinessType.EXPORT) + @Log(title = "新闻", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, BusiProdNew busiProdNew) { List list = busiProdNewService.list(); ExcelUtil util = new ExcelUtil(BusiProdNew.class); - util.exportExcel(response, list, "产品、文章数据"); + util.exportExcel(response, list, "文章数据"); } /** - * 获取产品详细信息 + * 获取新闻详细信息 */ @PreAuthorize("@ss.hasPermi('busi:new:query')") @GetMapping(value = "/{id}") @@ -75,56 +94,95 @@ public class BusiNewController extends BaseController } /** - * 获取产品表当前最大排序 + * 获取新闻表当前最大排序 */ @GetMapping(value = "/getMaxSort") public AjaxResult getMaxSort(String tenantId) { - return success(busiProdNewService.getMaxSort(tenantId)); + return success(busiProdNewService.getMaxSort(tenantId,DATA_TYPE_NEWS)); } /** - * 新增产品 + * 新增新闻 */ @PreAuthorize("@ss.hasPermi('busi:new:add')") - @Log(title = "产品", businessType = BusinessType.INSERT) + @Log(title = "新闻", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ProdNewVO prodNewVO){ + prodNewVO.setDataType(DATA_TYPE_NEWS); busiProdNewService.save(prodNewVO); if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ prodNewVO.getFileList().forEach(item->{ item.setTenantId(prodNewVO.getTenantId()); - item.setFileType(FILE_TYPE_PRODUCT); + item.setFileType(FILE_TYPE_NEWS); }); } + busiProdNewService.setAmount(prodNewVO.getTenantId()); return success(); } /** - * 修改产品 + * 修改新闻 */ @PreAuthorize("@ss.hasPermi('busi:new:edit')") - @Log(title = "产品", businessType = BusinessType.UPDATE) + @Log(title = "新闻", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ProdNewVO prodNewVO){ + prodNewVO.setDataType(DATA_TYPE_NEWS); busiProdNewService.updateById(prodNewVO); if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ prodNewVO.getFileList().forEach(item->{ item.setTenantId(prodNewVO.getTenantId()); - item.setFileType(FILE_TYPE_PRODUCT); + item.setFileType(FILE_TYPE_NEWS); }); } return success(); } /** - * 删除产品 + * 删除新闻 */ @PreAuthorize("@ss.hasPermi('busi:new:remove')") - @Log(title = "产品", businessType = BusinessType.DELETE) + @Log(title = "新闻", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids){ List list = new ArrayList<>(Arrays.asList(ids)); - return toAjax(busiProdNewService.removeByIds(list)); + BusiProdNew prodNew = busiProdNewService.getById(list.get(0)); + busiProdNewService.removeByIds(list); + busiProdNewService.setAmount(prodNew.getTenantId()); + return success(); + } + + /** + * 保存新闻关联的随机产品 + * @author vinjor-M + * @date 17:41 2025/6/27 + * @param randomVO TODO + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + @PostMapping("/saveRandom") + public AjaxResult add(@RequestBody ProdRandomVO randomVO){ + List randomList = new ArrayList<>(); + randomVO.getRandomIdList().forEach(item->{ + BusiProdRandom random = new ProdRandomVO(); + random.setProdId(randomVO.getProdId()); + random.setRandomId(item); + random.setTenantId(randomVO.getTenantId()); + randomList.add(random); + }); + prodRandomService.saveBatch(randomList); + return success(); + } + + /** + * 删除新闻关联的随机产品 + * @author vinjor-M + * @date 9:38 2025/6/30 + * @return com.ruoyi.common.core.domain.AjaxResult + **/ + @PostMapping("/delProdRandom") + public AjaxResult delProdRandom(@RequestBody ProdRandomVO randomVO){ + prodRandomService.delProdRandom(randomVO.getProdId(),randomVO.getRandomId(),randomVO.getTenantId()); + return success(); } } diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProdController.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProdController.java index ab0b145..1b4bf45 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProdController.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiProdController.java @@ -31,8 +31,7 @@ import com.ruoyi.busi.service.IBusiProdNewService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; -import static com.ruoyi.constant.DictConstants.DATA_TYPE_PRODUCT; -import static com.ruoyi.constant.DictConstants.FILE_TYPE_PRODUCT; +import static com.ruoyi.constant.DictConstants.*; /** * 产品Controller @@ -108,7 +107,7 @@ public class BusiProdController extends BaseController @GetMapping(value = "/getMaxSort") public AjaxResult getMaxSort(String tenantId) { - return success(busiProdNewService.getMaxSort(tenantId)); + return success(busiProdNewService.getMaxSort(tenantId,DATA_TYPE_PRODUCT)); } /** diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdNew.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdNew.java index 042d4c9..47d3299 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdNew.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdNew.java @@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import com.ruoyi.common.core.domain.DlBaseEntity; +import java.util.Date; + /** * 产品、文章对象 dl_busi_prod_new * @@ -55,6 +57,9 @@ public class BusiProdNew extends DlBaseEntity /** 文章来源 */ @Excel(name = "文章来源") private String newsFrom; + /** 文章发布日期 */ + @Excel(name = "文章发布日期") + private Date publicDate; /** 产品主图或文章图片 */ @Excel(name = "产品主图或文章图片") diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdNewMapper.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdNewMapper.java index 88d1503..4a9aa90 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdNewMapper.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdNewMapper.java @@ -20,7 +20,7 @@ public interface BusiProdNewMapper extends BaseMapper { IPage queryListPage(@Param("entity") ProdNewVO entity, Page page); - Long selectMaxSort(@Param("tenantId")String tenantId); + Long selectMaxSort(@Param("tenantId")String tenantId,@Param("dataType")String dataType); /** * 统计分类下产品数量 diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdNewService.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdNewService.java index c5a6ce9..bf87cea 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdNewService.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdNewService.java @@ -24,7 +24,7 @@ public interface IBusiProdNewService extends IService * @param tenantId 站点id * @return java.lang.Long **/ - Long getMaxSort(String tenantId); + Long getMaxSort(String tenantId,String dataType); /** diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdNewServiceImpl.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdNewServiceImpl.java index 45e343b..195a412 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdNewServiceImpl.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdNewServiceImpl.java @@ -49,8 +49,8 @@ public class BusiProdNewServiceImpl extends ServiceImpl + @@ -42,6 +43,7 @@ prod_keyword, prod_description, news_from, + public_date, main_pic, pics, description, @@ -117,6 +119,7 @@ WHERE del_flag = '0' AND tenant_id = #{tenantId} + AND data_type=#{dataType}