Explorar el Código

新增用户签到接口;新增系统配置属性;

woody hace 1 año
padre
commit
c453acdf33

+ 23 - 2
src/main/java/com/chelvc/cloud/maintain/controller/IndexController.java

@@ -4,11 +4,13 @@ import javax.validation.Valid;
 
 import com.chelvc.cloud.maintain.copier.MerchantCopier;
 import com.chelvc.cloud.maintain.param.CustomerIndexParam;
+import com.chelvc.cloud.maintain.vo.ConfigurationVO;
 import com.chelvc.cloud.maintain.vo.CustomerIndexVO;
 import com.chelvc.cloud.uc.api.service.UsageService;
 import com.chelvc.cloud.vehicle.api.param.NearbyQueryParam;
 import com.chelvc.cloud.vehicle.api.service.MerchantService;
 import com.chelvc.framework.base.annotation.UnifiedResponseBody;
+import com.chelvc.framework.base.context.ApplicationContextHolder;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -31,11 +33,29 @@ public class IndexController {
     @DubboReference
     private MerchantService merchantService;
 
+    /**
+     * 获取附近距离配置
+     *
+     * @return 距离(米)
+     */
+    private int getNearbyDistance() {
+        return ApplicationContextHolder.getProperty("platform.nearby.distance", int.class, 20000);
+    }
+
+    /**
+     * 获取系统配置
+     *
+     * @return 配置信息
+     */
+    private ConfigurationVO getConfiguration() {
+        return ConfigurationVO.builder().build();
+    }
+
     /**
      * 刷新用户使用记录
      */
     @PostMapping("/usage")
-    public void refreshUsage() {
+    public void using() {
         this.usageService.refresh();
     }
 
@@ -48,8 +68,9 @@ public class IndexController {
     @GetMapping("/customer/index")
     public CustomerIndexVO getCustomerIndex(@Valid CustomerIndexParam param) {
         NearbyQueryParam query = NearbyQueryParam.builder().longitude(param.getLongitude())
-                .latitude(param.getLatitude()).distance(10000).build();
+                .latitude(param.getLatitude()).distance(this.getNearbyDistance()).build();
         CustomerIndexVO index = CustomerIndexVO.builder().build();
+        index.setConfiguration(this.getConfiguration());
         index.setRecommendMerchants(
                 MerchantCopier.INSTANCE.copying(this.merchantService.listRecommendMerchants(query, 4))
         );

+ 30 - 0
src/main/java/com/chelvc/cloud/maintain/controller/SignController.java

@@ -0,0 +1,30 @@
+package com.chelvc.cloud.maintain.controller;
+
+import com.chelvc.cloud.uc.api.service.SignService;
+import com.chelvc.framework.base.annotation.UnifiedResponseBody;
+import org.apache.dubbo.config.annotation.DubboReference;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 签到接口
+ *
+ * @author Woody
+ * @date 2023/5/7
+ */
+@Validated
+@RestController
+@UnifiedResponseBody
+public class SignController {
+    @DubboReference
+    private SignService signService;
+
+    /**
+     * 用户签到
+     */
+    @PostMapping("/sign")
+    public void sign() {
+        this.signService.sign();
+    }
+}

+ 42 - 0
src/main/java/com/chelvc/cloud/maintain/vo/AdvertisementVO.java

@@ -0,0 +1,42 @@
+package com.chelvc.cloud.maintain.vo;
+
+import java.io.Serializable;
+
+import com.chelvc.cloud.vehicle.api.constant.Adsource;
+import com.chelvc.cloud.vehicle.api.constant.Adtype;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 广告配置
+ *
+ * @author Woody
+ * @date 2023/5/7
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdvertisementVO implements Serializable {
+    /**
+     * 广告类型
+     */
+    private Adtype type;
+
+    /**
+     * 广告来源
+     */
+    private Adsource source;
+
+    /**
+     * 广告图片
+     */
+    private String image;
+
+    /**
+     * 跳转地址
+     */
+    private String redirect;
+}

+ 14 - 0
src/main/java/com/chelvc/cloud/maintain/vo/ConfigurationVO.java

@@ -1,6 +1,12 @@
 package com.chelvc.cloud.maintain.vo;
 
 import java.io.Serializable;
+import java.util.List;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
 
 /**
  * 系统配置信息
@@ -8,5 +14,13 @@ import java.io.Serializable;
  * @author Woody
  * @date 2023/5/4
  */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
 public class ConfigurationVO implements Serializable {
+    /**
+     * 广告列表
+     */
+    private List<AdvertisementVO> banners;
 }