Browse Source

广告模块 增加广告查询接口

songfuqiang 2 years ago
parent
commit
9353b52265

+ 36 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/controller/AdvertisementController.java

@@ -0,0 +1,36 @@
+package cn.kdan.pdf.backend.core.controller;
+
+import cn.kdan.pdf.backend.core.params.QueryAdvertisementParam;
+import cn.kdan.pdf.backend.core.pojo.app.AdvertisementVo;
+import cn.kdan.pdf.backend.core.service.AdvertisementService;
+import constant.CommonConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import pojo.AppRequestParam;
+import pojo.AppResultMap;
+
+/**
+ * @author sfq
+ * @description
+ */
+@RestController
+@RequestMapping("/advertisement")
+public class AdvertisementController {
+
+    @Autowired
+    private AdvertisementService advertisementService;
+
+    /**
+     * 条件查询广告数据
+     * @param param 查询条件
+     * @return 广告信息
+     */
+    @PostMapping("/fetchOne")
+    public AppResultMap<AdvertisementVo> fetchOne(@RequestBody AppRequestParam<QueryAdvertisementParam> param){
+        return new AppResultMap<>(CommonConstant.SUCCESS,CommonConstant.CODE_SUCCESS,advertisementService.fetchOne(param.getData()));
+    }
+
+}

+ 27 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/controller/DeviceController.java

@@ -0,0 +1,27 @@
+package cn.kdan.pdf.backend.core.controller;
+
+import cn.kdan.pdf.backend.core.service.DeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import pojo.AppRequestParam;
+import pojo.AppResultMap;
+
+/**
+ * @author sfq
+ * @description
+ */
+@RestController
+@RequestMapping("/device")
+public class DeviceController {
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @PutMapping("/updateInfo")
+    public AppResultMap updateInfo(AppRequestParam param){
+        return new AppResultMap();
+    }
+
+}

+ 45 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/enums/LanguageEnum.java

@@ -0,0 +1,45 @@
+package cn.kdan.pdf.backend.core.enums;
+
+/**
+ * @author : sfq
+ * @date : 2022/12/14 19:47
+ * @description 'zh-CN': 0, 'en': 1
+ */
+public enum LanguageEnum {
+
+    /**
+     * web端
+     */
+    ZH_CN("zh-CN",0),
+    /**
+     * 安卓端
+     */
+    EN("en",1);
+
+    private final String name;
+    private final Integer value;
+
+    LanguageEnum(String name, Integer value){
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public Integer getValue() {
+        return value;
+    }
+
+    public static Integer getCodeByName(String name){
+        Integer value = 0;
+        for (LanguageEnum languageEnum : LanguageEnum.values()) {
+            if(languageEnum.getName().equals(name)){
+                value = languageEnum.getValue();
+            }
+        }
+        return value;
+    }
+
+}

+ 22 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/params/QueryAdvertisementParam.java

@@ -0,0 +1,22 @@
+package cn.kdan.pdf.backend.core.params;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @author sfq
+ * @description
+ */
+@Data
+public class QueryAdvertisementParam {
+
+    private String slug;
+
+    private String dimension;
+
+    private String language;
+
+    @JsonProperty("version_name")
+    private String versionName;
+
+}

+ 25 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/pojo/app/AdvertisementVo.java

@@ -0,0 +1,25 @@
+package cn.kdan.pdf.backend.core.pojo.app;
+
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * @author sfq
+ * @description
+ */
+@Data
+public class AdvertisementVo {
+
+    private String id;
+    private String slug;
+    private String language;
+    private String title;
+    private String dimension;
+    private String linkText;
+    private String linkUrl;
+    private String description;
+    private String imageUrl;
+    private Map<String, String> imageUrls;
+
+}

+ 19 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/AdvertisementService.java

@@ -0,0 +1,19 @@
+package cn.kdan.pdf.backend.core.service;
+
+import cn.kdan.pdf.backend.core.params.QueryAdvertisementParam;
+import cn.kdan.pdf.backend.core.pojo.app.AdvertisementVo;
+
+/**
+ * @author : sfq
+ * @date : 2022/12/14 17:45
+ */
+public interface AdvertisementService {
+
+    /**
+     * 查询广告数据
+     * @param param 查询条件
+     * @return 广告信息
+     */
+    AdvertisementVo fetchOne(QueryAdvertisementParam param);
+
+}

+ 48 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/AdvertisementServiceImpl.java

@@ -0,0 +1,48 @@
+package cn.kdan.pdf.backend.core.service.impl;
+
+import cn.kdan.pdf.backend.core.enums.LanguageEnum;
+import cn.kdan.pdf.backend.core.mapper.AdvertisementsMapper;
+import cn.kdan.pdf.backend.core.model.Advertisements;
+import cn.kdan.pdf.backend.core.model.AdvertisementsExample;
+import cn.kdan.pdf.backend.core.params.QueryAdvertisementParam;
+import cn.kdan.pdf.backend.core.pojo.app.AdvertisementVo;
+import cn.kdan.pdf.backend.core.service.AdvertisementService;
+import cn.kdan.pdf.backend.core.utils.CommonUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * @author sfq
+ * @description
+ */
+@Service
+public class AdvertisementServiceImpl implements AdvertisementService {
+
+    @Autowired
+    private AdvertisementsMapper advertisementsMapper;
+
+    @Override
+    public AdvertisementVo fetchOne(QueryAdvertisementParam param) {
+        AdvertisementVo vo = new AdvertisementVo();
+        String dimension = param.getDimension();
+        String slug = param.getSlug();
+        String versionName = param.getVersionName();
+        String language = param.getLanguage();
+        language = CommonUtils.judgeLanguage(language);
+        AdvertisementsExample example = new AdvertisementsExample();
+        example.createCriteria().andDimensionEqualTo(dimension).andSlugEqualTo(slug).andLanguageEqualTo(LanguageEnum.getCodeByName(language));
+        List<Advertisements> advertisementList = advertisementsMapper.selectByExample(example);
+        if(CollectionUtils.isEmpty(advertisementList)){
+            Advertisements adv = advertisementList.get(0);
+            BeanUtils.copyProperties(adv,vo);
+            vo.setImageUrl(adv.getImage());
+        }
+        return vo;
+    }
+
+}

+ 2 - 13
backend-core/src/main/java/cn/kdan/pdf/backend/core/service/impl/PricingServiceImpl.java

@@ -12,6 +12,7 @@ import cn.kdan.pdf.backend.core.service.MemberService;
 import cn.kdan.pdf.backend.core.service.PricingDiscountService;
 import cn.kdan.pdf.backend.core.service.PricingService;
 import cn.kdan.pdf.backend.core.service.SubscriptionService;
+import cn.kdan.pdf.backend.core.utils.CommonUtils;
 import enums.CommonEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -37,14 +38,6 @@ public class PricingServiceImpl implements PricingService {
     @Autowired
     private MemberService memberService;
 
-    /**
-     * 语言(zh、zh-CN、zh-Hans表示汉语,en表示英语)
-     */
-    private final static String ZH = "zh";
-    private final static String ZH_CN = "zh-CN";
-    private final static String ZH_HANS = "zh-Hans";
-    private final static String EN = "en";
-
     /**
      * 1个月
      */
@@ -61,11 +54,7 @@ public class PricingServiceImpl implements PricingService {
             client = ClientEnum.WEB.value();
         }
         String language = req.getLanguage();
-        if ("".equals(language) || ZH.equals(language) || ZH_CN.equals(language) || ZH_HANS.equals(language)) {
-            language = ZH_CN;
-        } else {
-            language = EN;
-        }
+        language = CommonUtils.judgeLanguage(language);
 
         Members member = memberService.getCurrentUser();
         PricingsExample example = new PricingsExample();

+ 36 - 0
backend-core/src/main/java/cn/kdan/pdf/backend/core/utils/CommonUtils.java

@@ -0,0 +1,36 @@
+package cn.kdan.pdf.backend.core.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author sfq
+ * @description
+ */
+@Component
+@Slf4j
+public class CommonUtils {
+
+    /**
+     * 语言(zh、zh-CN、zh-Hans表示汉语,en表示英语)
+     */
+    private final static String ZH = "zh";
+    private final static String ZH_CN = "zh-CN";
+    private final static String ZH_HANS = "zh-Hans";
+    private final static String EN = "en";
+
+    /**
+     * 判断语言
+     * @param language 语言类型
+     * @return 语言类型
+     */
+    public static String judgeLanguage(String language){
+        if ("".equals(language) || ZH.equals(language) || ZH_CN.equals(language) || ZH_HANS.equals(language)) {
+            language = ZH_CN;
+        } else {
+            language = EN;
+        }
+        return language;
+    }
+
+}