Browse Source

营销:装修模板APP接口

owen 1 year ago
parent
commit
9996608da6

+ 60 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/diy/AppDiyTemplateController.java

@@ -0,0 +1,60 @@
+package cn.iocoder.yudao.module.promotion.controller.app.diy;
+
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.module.promotion.controller.app.diy.vo.AppDiyTemplatePropertyRespVO;
+import cn.iocoder.yudao.module.promotion.convert.diy.DiyTemplateConvert;
+import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;
+import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyTemplateDO;
+import cn.iocoder.yudao.module.promotion.service.diy.DiyPageService;
+import cn.iocoder.yudao.module.promotion.service.diy.DiyTemplateService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+
+@Tag(name = "用户 APP - 装修模板")
+@RestController
+@RequestMapping("/promotion/diy-template")
+@Validated
+public class AppDiyTemplateController {
+
+    @Resource
+    private DiyTemplateService diyTemplateService;
+    @Resource
+    private DiyPageService diyPageService;
+
+    @GetMapping("/used")
+    @Operation(summary = "使用中的装修模板")
+    public CommonResult<AppDiyTemplatePropertyRespVO> getDiyTemplateProperty() {
+        DiyTemplateDO diyTemplate = diyTemplateService.getUsedTemplate();
+        return success(buildVo(diyTemplate));
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得装修模板")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    public CommonResult<AppDiyTemplatePropertyRespVO> getDiyTemplate(@RequestParam("id") Long id) {
+        DiyTemplateDO diyTemplate = diyTemplateService.getDiyTemplate(id);
+        return success(buildVo(diyTemplate));
+    }
+
+    private AppDiyTemplatePropertyRespVO buildVo(DiyTemplateDO diyTemplate) {
+        if (diyTemplate == null) {
+            return null;
+        }
+        // 查询模板下的页面
+        List<DiyPageDO> pages = diyPageService.getDiyPageByTemplateId(diyTemplate.getId());
+        // 拼接返回
+        return DiyTemplateConvert.INSTANCE.convertPropertyVo2(diyTemplate, pages);
+    }
+
+}

+ 21 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/diy/vo/AppDiyPagePropertyRespVO.java

@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.promotion.controller.app.diy.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+@Schema(description = "用户 App - 装修页面属性 Response VO")
+@Data
+@ToString(callSuper = true)
+public class AppDiyPagePropertyRespVO {
+
+    @Schema(description = "装修页面编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31209")
+    private Long id;
+
+    @Schema(description = "页面名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
+    private String name;
+
+    @Schema(description = "页面属性", example = "[]")
+    private String property;
+
+}

+ 27 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/diy/vo/AppDiyTemplatePropertyRespVO.java

@@ -0,0 +1,27 @@
+package cn.iocoder.yudao.module.promotion.controller.app.diy.vo;
+
+import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.page.DiyPagePropertyRespVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.ToString;
+
+import java.util.List;
+
+@Schema(description = "用户 App - 装修模板属性 Response VO")
+@Data
+@ToString(callSuper = true)
+public class AppDiyTemplatePropertyRespVO {
+
+    @Schema(description = "装修模板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31209")
+    private Long id;
+
+    @Schema(description = "模板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "默认主题")
+    private String name;
+
+    @Schema(description = "模板属性,JSON 格式", requiredMode = Schema.RequiredMode.REQUIRED, example = "{}")
+    private String property;
+
+    @Schema(description = "模板页面", requiredMode = Schema.RequiredMode.REQUIRED, example = "[]")
+    private List<DiyPagePropertyRespVO> pages;
+
+}

+ 3 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/diy/DiyTemplateConvert.java

@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.promotion.convert.diy;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.promotion.controller.admin.diy.vo.template.*;
+import cn.iocoder.yudao.module.promotion.controller.app.diy.vo.AppDiyTemplatePropertyRespVO;
 import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyPageDO;
 import cn.iocoder.yudao.module.promotion.dal.dataobject.diy.DiyTemplateDO;
 import org.mapstruct.Mapper;
@@ -31,6 +32,8 @@ public interface DiyTemplateConvert {
 
     DiyTemplatePropertyRespVO convertPropertyVo(DiyTemplateDO diyTemplate, List<DiyPageDO> pages);
 
+    AppDiyTemplatePropertyRespVO convertPropertyVo2(DiyTemplateDO diyTemplate, List<DiyPageDO> pages);
+
     DiyTemplateDO convert(DiyTemplatePropertyUpdateRequestVO updateReqVO);
 
 }

+ 7 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/diy/DiyTemplateService.java

@@ -68,4 +68,11 @@ public interface DiyTemplateService {
      */
     void updateDiyTemplateProperty(DiyTemplatePropertyUpdateRequestVO updateReqVO);
 
+    /**
+     * 获取使用中的装修模板
+     *
+     * @return 装修模板
+     */
+    DiyTemplateDO getUsedTemplate();
+
 }

+ 5 - 0
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/diy/DiyTemplateServiceImpl.java

@@ -146,6 +146,11 @@ public class DiyTemplateServiceImpl implements DiyTemplateService {
         diyTemplateMapper.updateById(updateObj);
     }
 
+    @Override
+    public DiyTemplateDO getUsedTemplate() {
+        return diyTemplateMapper.selectByUsed(true);
+    }
+
     /**
      * 更新模板是否使用
      *