From 7653218c8e6b1e82cd6231cbaf998bf95d886052 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Fri, 27 Jun 2025 17:51:13 +0800 Subject: [PATCH] 1 --- .../busi/controller/BusiNewController.java | 130 +++++++ .../busi/controller/BusiProdController.java | 45 ++- .../com/ruoyi/busi/domain/BusiProdNew.java | 8 +- .../com/ruoyi/busi/domain/BusiProdRandom.java | 43 +++ .../ruoyi/busi/mapper/BusiProdNewMapper.java | 2 +- .../busi/mapper/BusiProdRandomMapper.java | 30 ++ .../busi/service/IBusiProdNewService.java | 2 +- .../busi/service/IBusiProdRandomService.java | 27 ++ .../service/impl/BusiProdNewServiceImpl.java | 11 +- .../impl/BusiProdRandomServiceImpl.java | 44 +++ .../java/com/ruoyi/busi/vo/ProdNewVO.java | 8 + .../java/com/ruoyi/busi/vo/ProdRandomVO.java | 14 + .../com/ruoyi/constant/DictConstants.java | 13 + .../mapper/busi/BusiProdNewMapper.xml | 21 +- .../mapper/busi/BusiProdRandomMapper.xml | 45 +++ dl_vue/src/api/busi/new.js | 53 +++ dl_vue/src/api/busi/prod.js | 18 + dl_vue/src/router/index.js | 14 + dl_vue/src/views/busi/new/index.vue | 308 ++++++++++++++++ dl_vue/src/views/busi/new/newForm.vue | 226 ++++++++++++ dl_vue/src/views/busi/prod/index.vue | 346 ++++++++++++++++-- dl_vue/src/views/busi/prod/prodForm.vue | 24 +- 22 files changed, 1383 insertions(+), 49 deletions(-) create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdRandom.java create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdRandomMapper.java create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdRandomService.java create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdRandomServiceImpl.java create mode 100644 dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdRandomVO.java create mode 100644 dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiProdRandomMapper.xml create mode 100644 dl_vue/src/api/busi/new.js create mode 100644 dl_vue/src/views/busi/new/index.vue create mode 100644 dl_vue/src/views/busi/new/newForm.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 new file mode 100644 index 0000000..7f68197 --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/controller/BusiNewController.java @@ -0,0 +1,130 @@ +package com.ruoyi.busi.controller; + +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.service.IBusiProdNewService; +import com.ruoyi.busi.vo.ProdNewVO; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import static com.ruoyi.constant.DictConstants.FILE_TYPE_PRODUCT; + +/** + * 产品Controller + * + * @author vinjor-m + * @date 2025-06-25 + */ +@RestController +@RequestMapping("/busi/new") +public class BusiNewController extends BaseController +{ + @Autowired + private IBusiProdNewService busiProdNewService; + @Autowired + private IBasePicsService basePicsService; + + /** + * 查询产品列表 + */ + @PreAuthorize("@ss.hasPermi('busi:new:list')") + @GetMapping("/list") + public AjaxResult list(ProdNewVO busiProdNew, + @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) + { + Page page = new Page<>(pageNum, pageSize); + IPage list = busiProdNewService.queryListPage(busiProdNew,page); + return success(list); + } + + /** + * 导出产品列表 + */ + @PreAuthorize("@ss.hasPermi('busi:new: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, "产品、文章数据"); + } + + /** + * 获取产品详细信息 + */ + @PreAuthorize("@ss.hasPermi('busi:new:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return success(busiProdNewService.getById(id)); + } + + /** + * 获取产品表当前最大排序 + */ + @GetMapping(value = "/getMaxSort") + public AjaxResult getMaxSort(String tenantId) + { + return success(busiProdNewService.getMaxSort(tenantId)); + } + + /** + * 新增产品 + */ + @PreAuthorize("@ss.hasPermi('busi:new:add')") + @Log(title = "产品", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProdNewVO prodNewVO){ + busiProdNewService.save(prodNewVO); + if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ + prodNewVO.getFileList().forEach(item->{ + item.setTenantId(prodNewVO.getTenantId()); + item.setFileType(FILE_TYPE_PRODUCT); + }); + } + return success(); + } + + /** + * 修改产品 + */ + @PreAuthorize("@ss.hasPermi('busi:new:edit')") + @Log(title = "产品", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProdNewVO prodNewVO){ + busiProdNewService.updateById(prodNewVO); + if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ + prodNewVO.getFileList().forEach(item->{ + item.setTenantId(prodNewVO.getTenantId()); + item.setFileType(FILE_TYPE_PRODUCT); + }); + } + return success(); + } + + /** + * 删除产品 + */ + @PreAuthorize("@ss.hasPermi('busi:new:remove')") + @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)); + } +} 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 00c8b34..b1a2b74 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 @@ -7,7 +7,10 @@ import javax.servlet.http.HttpServletResponse; 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.BusiProdRandom; +import com.ruoyi.busi.service.IBusiProdRandomService; import com.ruoyi.busi.vo.ProdNewVO; +import com.ruoyi.busi.vo.ProdRandomVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -28,6 +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; /** @@ -44,21 +48,37 @@ public class BusiProdController extends BaseController private IBusiProdNewService busiProdNewService; @Autowired private IBasePicsService basePicsService; + @Autowired + private IBusiProdRandomService prodRandomService; /** * 查询产品列表 */ @PreAuthorize("@ss.hasPermi('busi:prod:list')") @GetMapping("/list") - public AjaxResult list(BusiProdNew busiProdNew, + public AjaxResult list(ProdNewVO busiProdNew, @RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { Page page = new Page<>(pageNum, pageSize); + //只查产品 + busiProdNew.setDataType(DATA_TYPE_PRODUCT); 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)); + } + /** * 导出产品列表 */ @@ -98,6 +118,7 @@ public class BusiProdController extends BaseController @Log(title = "产品", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody ProdNewVO prodNewVO){ + prodNewVO.setDataType(DATA_TYPE_PRODUCT); busiProdNewService.save(prodNewVO); if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ prodNewVO.getFileList().forEach(item->{ @@ -115,6 +136,7 @@ public class BusiProdController extends BaseController @Log(title = "产品", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody ProdNewVO prodNewVO){ + prodNewVO.setDataType(DATA_TYPE_PRODUCT); busiProdNewService.updateById(prodNewVO); if(null!=prodNewVO.getFileList() && !prodNewVO.getFileList().isEmpty()){ prodNewVO.getFileList().forEach(item->{ @@ -135,4 +157,25 @@ public class BusiProdController extends BaseController List list = new ArrayList<>(Arrays.asList(ids)); return toAjax(busiProdNewService.removeByIds(list)); } + + /** + * 保存产品关联的随机产品 + * @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(); + } } 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 171737f..042d4c9 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 @@ -32,6 +32,10 @@ public class BusiProdNew extends DlBaseEntity @Excel(name = "所属栏目id") private String catgId; + /** 数据类型 */ + @Excel(name = "数据类型") + private String dataType; + /** 产品名称或文章标题 */ @Excel(name = "产品名称或文章标题") private String title; @@ -72,11 +76,11 @@ public class BusiProdNew extends DlBaseEntity /** 是否首页推荐显示 */ @Excel(name = "是否首页推荐显示") - private Integer ifReco; + private Boolean ifReco; /** 是否发布(未发布的在草稿箱) */ @Excel(name = "是否发布", readConverterExp = "未=发布的在草稿箱") - private Integer ifPublic; + private Boolean ifPublic; /** 站点唯一编码(租户id) */ private String tenantId; diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdRandom.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdRandom.java new file mode 100644 index 0000000..ec4556d --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/domain/BusiProdRandom.java @@ -0,0 +1,43 @@ +package com.ruoyi.busi.domain; + +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; +import com.ruoyi.common.core.domain.DlBaseEntity; + +/** + * 随机产品关联关系对象 dl_busi_prod_random + * + * @author vinjor-m + * @date 2025-06-27 + */ +@TableName("dl_busi_prod_random") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BusiProdRandom extends DlBaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + @TableId(type = IdType.ASSIGN_UUID) + private String id; + + /** 产品或文章id */ + @Excel(name = "产品或文章id") + private String prodId; + + /** 关联的随机产品id */ + @Excel(name = "关联的随机产品id") + private String randomId; + + /** 站点唯一编码(租户id) */ + @Excel(name = "站点唯一编码", readConverterExp = "租=户id") + private String tenantId; + +} 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 25fbc02..c1d3bde 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 @@ -18,7 +18,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BusiProdNewMapper extends BaseMapper { - IPage queryListPage(@Param("entity") BusiProdNew entity, Page page); + IPage queryListPage(@Param("entity") ProdNewVO entity, Page page); Long selectMaxSort(@Param("tenantId")String tenantId); } diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdRandomMapper.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdRandomMapper.java new file mode 100644 index 0000000..c2572cd --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/mapper/BusiProdRandomMapper.java @@ -0,0 +1,30 @@ +package com.ruoyi.busi.mapper; + +import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.busi.domain.BusiProdRandom; +import com.ruoyi.busi.vo.ProdNewVO; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 随机产品关联关系Mapper接口 + * + * @author vinjor-m + * @date 2025-06-27 + */ +@Mapper +public interface BusiProdRandomMapper extends BaseMapper +{ + IPage queryListPage(@Param("entity") BusiProdRandom entity, Page page); + + /** + * 查某产品管理的随机产品 + * @author vinjor-M + * @date 16:36 2025/6/27 + * @return java.util.List + **/ + List selectRandomList(@Param("map") BusiProdRandom prodRandom); +} 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 04363eb..bb6c3c0 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 @@ -15,7 +15,7 @@ import com.ruoyi.busi.vo.ProdNewVO; */ public interface IBusiProdNewService extends IService { - IPage queryListPage(BusiProdNew pageReqVO, Page page); + IPage queryListPage(ProdNewVO pageReqVO, Page page); /** * 获取产品表当前最大排序 diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdRandomService.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdRandomService.java new file mode 100644 index 0000000..7d265cf --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/IBusiProdRandomService.java @@ -0,0 +1,27 @@ +package com.ruoyi.busi.service; + +import java.util.List; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.busi.domain.BusiProdRandom; +import com.ruoyi.busi.vo.ProdNewVO; + +/** + * 随机产品关联关系Service接口 + * + * @author vinjor-m + * @date 2025-06-27 + */ +public interface IBusiProdRandomService extends IService +{ + IPage queryListPage(BusiProdRandom pageReqVO, Page page); + + /** + * 查某产品的随机关联产品 + * @author vinjor-M + * @date 16:35 2025/6/27 + * @return java.util.List + **/ + List randomList(BusiProdRandom prodRandom); +} 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 4a84ba6..bd12f9f 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 @@ -26,8 +26,15 @@ public class BusiProdNewServiceImpl extends ServiceImpl queryListPage(BusiProdNew pageReqVO, Page page) { - return busiProdNewMapper.queryListPage(pageReqVO, page); + public IPage queryListPage(ProdNewVO pageReqVO, Page page) { + IPage newVOIPage = busiProdNewMapper.queryListPage(pageReqVO, page); + newVOIPage.getRecords().forEach(item->{ + if(null!=item.getPics() && !item.getPics().isEmpty()){ + //将附图追加到主图中 + item.setMainPic(item.getMainPic()+","+item.getPics()); + } + }); + return newVOIPage; } /** diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdRandomServiceImpl.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdRandomServiceImpl.java new file mode 100644 index 0000000..0a9463e --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiProdRandomServiceImpl.java @@ -0,0 +1,44 @@ +package com.ruoyi.busi.service.impl; + +import java.util.List; + +import com.ruoyi.busi.vo.ProdNewVO; +import com.ruoyi.common.utils.DateUtils; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.busi.mapper.BusiProdRandomMapper; +import com.ruoyi.busi.domain.BusiProdRandom; +import com.ruoyi.busi.service.IBusiProdRandomService; + +/** + * 随机产品关联关系Service业务层处理 + * + * @author vinjor-m + * @date 2025-06-27 + */ +@Service +public class BusiProdRandomServiceImpl extends ServiceImpl implements IBusiProdRandomService +{ + @Autowired + private BusiProdRandomMapper busiProdRandomMapper; + + @Override + public IPage queryListPage(BusiProdRandom pageReqVO, Page page) { + return busiProdRandomMapper.queryListPage(pageReqVO, page); + } + + /** + * 查某产品的随机关联产品 + * + * @return java.util.List + * @author vinjor-M + * @date 16:35 2025/6/27 + **/ + @Override + public List randomList(BusiProdRandom prodRandom) { + return busiProdRandomMapper.selectRandomList(prodRandom); + } +} diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdNewVO.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdNewVO.java index 3403a2e..4cc4ab6 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdNewVO.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdNewVO.java @@ -16,6 +16,11 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) @Data public class ProdNewVO extends BusiProdNew { + /** 查询使用-需要排除的产品id,多个英文逗号隔开 */ + private String excludeProdId; + + /** 默认不可编辑-表格行内编辑标识 */ + private Boolean flag; /** 所属栏目名称 */ @Excel(name = "所属栏目名称") @@ -25,6 +30,9 @@ public class ProdNewVO extends BusiProdNew { @Excel(name = "产品发布者") private String userName; + /** 随机产品数量 */ + private Integer randomNum; + /** * 批量传的图片 **/ diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdRandomVO.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdRandomVO.java new file mode 100644 index 0000000..83a58ab --- /dev/null +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/busi/vo/ProdRandomVO.java @@ -0,0 +1,14 @@ +package com.ruoyi.busi.vo; + +import com.ruoyi.busi.domain.BusiProdRandom; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Data +public class ProdRandomVO extends BusiProdRandom { + /** 新增的关联产品id数组 */ + private List randomIdList; +} diff --git a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java index b4f7814..234e2c0 100644 --- a/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java +++ b/dl_admin/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java @@ -29,6 +29,19 @@ public class DictConstants */ public static final String FILE_TYPE_OTHER ="other"; + /** + * 数据类型字典-KEY + */ + public static final String DATA_TYPE_KEY ="data_type"; + /** + * 数据类型字典-产品 + */ + public static final String DATA_TYPE_PRODUCT ="product"; + /** + * 数据类型字典-新闻 + */ + public static final String DATA_TYPE_NEWS ="news"; + /** * 是否字典--是 diff --git a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiProdNewMapper.xml b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiProdNewMapper.xml index 766b22d..678c48d 100644 --- a/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiProdNewMapper.xml +++ b/dl_admin/ruoyi-admin/src/main/resources/mapper/busi/BusiProdNewMapper.xml @@ -28,6 +28,8 @@ + + @@ -57,12 +59,16 @@ + + + and prod_id = #{entity.prodId} + and random_id = #{entity.randomId} + and tenant_id = #{entity.tenantId} + + + + \ No newline at end of file diff --git a/dl_vue/src/api/busi/new.js b/dl_vue/src/api/busi/new.js new file mode 100644 index 0000000..2ad236a --- /dev/null +++ b/dl_vue/src/api/busi/new.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询产品、文章列表 +export function listProdNew(query) { + return request({ + url: '/busi/new/list', + method: 'get', + params: query + }) +} + +// 查询产品、文章列表 +export function getMaxSort(query) { + return request({ + url: '/busi/new/getMaxSort', + method: 'get', + params: query + }) +} + +// 查询产品、文章详细 +export function getProdNew(id) { + return request({ + url: '/busi/new/' + id, + method: 'get' + }) +} + +// 新增产品、文章 +export function addProdNew(data) { + return request({ + url: '/busi/new', + method: 'post', + data: data + }) +} + +// 修改产品、文章 +export function updateProdNew(data) { + return request({ + url: '/busi/new', + method: 'put', + data: data + }) +} + +// 删除产品、文章 +export function delProdNew(id) { + return request({ + url: '/busi/new/' + id, + method: 'delete' + }) +} diff --git a/dl_vue/src/api/busi/prod.js b/dl_vue/src/api/busi/prod.js index 74f2aaf..f7f4a75 100644 --- a/dl_vue/src/api/busi/prod.js +++ b/dl_vue/src/api/busi/prod.js @@ -9,6 +9,15 @@ export function listProdNew(query) { }) } +// 查询随机管理产品列表 +export function listRandomProd(query) { + return request({ + url: '/busi/prod/randomList', + method: 'get', + params: query + }) +} + // 查询产品、文章列表 export function getMaxSort(query) { return request({ @@ -51,3 +60,12 @@ export function delProdNew(id) { method: 'delete' }) } + +// 保存产品管理的随机产品 +export function saveRandom(data) { + return request({ + url: '/busi/prod/saveRandom', + method: 'post', + data: data + }) +} diff --git a/dl_vue/src/router/index.js b/dl_vue/src/router/index.js index 2649035..3712ada 100644 --- a/dl_vue/src/router/index.js +++ b/dl_vue/src/router/index.js @@ -102,6 +102,20 @@ export const constantRoutes = [ } ] }, + { + path: '/new', + component: Layout, + hidden: true, + redirect: 'noredirect', + children: [ + { + path: 'newForm', + component: () => import('@/views/busi/new/newForm'), + name: 'NewForm', + meta: { title: '文章详情' } + } + ] + }, { path: '/category', component: Layout, diff --git a/dl_vue/src/views/busi/new/index.vue b/dl_vue/src/views/busi/new/index.vue new file mode 100644 index 0000000..255b2b1 --- /dev/null +++ b/dl_vue/src/views/busi/new/index.vue @@ -0,0 +1,308 @@ + + + diff --git a/dl_vue/src/views/busi/new/newForm.vue b/dl_vue/src/views/busi/new/newForm.vue new file mode 100644 index 0000000..d86f896 --- /dev/null +++ b/dl_vue/src/views/busi/new/newForm.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/dl_vue/src/views/busi/prod/index.vue b/dl_vue/src/views/busi/prod/index.vue index 5bcedc5..eeb444a 100644 --- a/dl_vue/src/views/busi/prod/index.vue +++ b/dl_vue/src/views/busi/prod/index.vue @@ -61,34 +61,75 @@ - + - - - + + + - - - - + + - + - + + + + + + + + + + + + + + + diff --git a/dl_vue/src/views/busi/prod/prodForm.vue b/dl_vue/src/views/busi/prod/prodForm.vue index a680a3d..f184638 100644 --- a/dl_vue/src/views/busi/prod/prodForm.vue +++ b/dl_vue/src/views/busi/prod/prodForm.vue @@ -65,14 +65,10 @@ - - {{ dict.label }} - - + + @@ -96,7 +92,6 @@ import { listProdNew, getProdNew, delProdNew,getMaxSort, addProdNew, updateProdN export default { name: 'prodForm', - dicts: ['true_or_false'], data() { return { //光标位置--简介 @@ -147,7 +142,11 @@ export default { } }, mounted() { - this.initData() + if(this.$route.query.id){ + this.getProdInfo(this.$route.query.id) + }else{ + this.initData() + } }, methods: { initData(){ @@ -155,6 +154,11 @@ export default { this.form.sort = response.data }) }, + getProdInfo(id){ + getProdNew(id).then(response => { + this.form= response.data + }) + }, /** * 返回上一页 */