Jelajahi Sumber

1.增加应用接口
2.增加广告渠道接口

marxjaw 5 bulan lalu
induk
melakukan
282eaf894c

+ 2 - 1
yt-advertise/advertise-feign/src/main/java/com/ytpm/feign/AdvertiseFeign.java

@@ -5,9 +5,10 @@ import com.ytpm.advertise.view.AddAppResponse;
 import com.ytpm.general.Result;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 @FeignClient(name = "advertise-service")
 public interface AdvertiseFeign {
     @PostMapping("/advertise/addApp")
-    Result<AddAppResponse> addApp(AddAppParam param);
+    Result<AddAppResponse> addApp(@RequestBody AddAppParam param);
 }

+ 3 - 2
yt-advertise/advertise-service/src/main/java/com/ytpm/controller/AdvertiseController.java

@@ -12,6 +12,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 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;
 
@@ -28,7 +29,7 @@ public class AdvertiseController {
      */
     @ApiOperation("Taku应用关联广告平台")
     @PostMapping("/relativePlatform")
-    public Result<?> relativePlatform(ChannelParam channelParam) {
+    public Result<?> relativePlatform(@RequestBody ChannelParam channelParam) {
         return takuApiService.relativePlatform(channelParam);
     }
 
@@ -46,7 +47,7 @@ public class AdvertiseController {
      */
     @ApiOperation("新增应用")
     @PostMapping("/addApp")
-    public Result<AddAppResponse> addApp(AddAppParam param) {
+    public Result<AddAppResponse> addApp(@RequestBody AddAppParam param) {
         return takuApiService.addApps(param);
     }
 }

+ 1 - 2
yt-advertise/advertise-service/src/main/java/com/ytpm/service/impl/TakuApiServiceImpl.java

@@ -1,6 +1,5 @@
 package com.ytpm.service.impl;
 
-import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -20,7 +19,7 @@ import com.ytpm.advertise.view.UnitsListView;
 import com.ytpm.advertise.view.UnitsUpdateResponse;
 import com.ytpm.advertise.view.UnitsView;
 import com.ytpm.agent.param.ChannelParam;
-import com.ytpm.enums.OpenReportEnum;
+import com.ytpm.advertise.enums.OpenReportEnum;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;

+ 9 - 13
yt-advertise/advertise-service/src/main/java/com/ytpm/util/TakuRequestUtil.java

@@ -2,18 +2,6 @@ package com.ytpm.util;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ytpm.advertise.param.AddPlacementParam;
-import com.ytpm.advertise.param.AppAuthContent;
-import com.ytpm.advertise.param.AuthContent;
-import com.ytpm.advertise.param.Network;
-import com.ytpm.advertise.param.NetworkAppInfo;
-import com.ytpm.advertise.param.PlacementListParam;
-import com.ytpm.advertise.param.PlacementParam;
-import com.ytpm.enums.AdPlatformTypeEnum;
-import com.ytpm.enums.AndroidFirstCategoryEnum;
-import com.ytpm.enums.AndroidSecondCategoryEnum;
-import com.ytpm.advertise.param.AddAppParam;
-import com.ytpm.enums.OpenReportEnum;
 import com.ytpm.handle.CustomerException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.codec.digest.DigestUtils;
@@ -28,6 +16,8 @@ import org.apache.http.impl.client.HttpClients;
 import org.apache.http.util.EntityUtils;
 
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 @Slf4j(topic = "Taku请求工具类")
@@ -38,7 +28,13 @@ public class TakuRequestUtil {
     public final static String PUBLISHER_KEY = "d4b80bef5f946f618c9e781070aedbf2b1a073d4";
 
     public static void main(String[] args){
-        System.err.println(doRequest(HttpGet.METHOD_NAME, DOMAIN+"/v1/networks", ""));
+        JSONObject object = new JSONObject();
+        List<String> ids = new ArrayList<>();
+        ids.add("b1ghj3bl9ul87l");
+        ids.add("b1ghj3bl94rcfn");
+        ids.add("b1ghj2utl8fm56");
+        object.put("placement_ids",ids);
+        TakuRequestUtil.doRequest(HttpPost.METHOD_NAME, DOMAIN+"/v1/del_placements", object.toJSONString());
     }
 
     public static String doRequest(String httpMethod, String reqUrl, String reqBody) {

+ 14 - 2
yt-agent/agent-service/src/main/java/com/ytpm/controller/AppController.java

@@ -1,6 +1,8 @@
 package com.ytpm.controller;
 
 import com.ytpm.advertise.param.AddAppParam;
+import com.ytpm.agent.param.AppParam;
+import com.ytpm.agent.param.ChannelParam;
 import com.ytpm.agent.view.AgentEnableAppView;
 import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.app.view.YtAppListView;
@@ -9,6 +11,7 @@ import com.ytpm.general.ResultTable;
 import com.ytpm.service.AgentAppService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -41,7 +44,16 @@ public class AppController {
      */
     @ApiOperation("新增应用")
     @PostMapping("/addApp")
-    public Result<?> addApp(@RequestBody AddAppParam param){
-        return agentAppService.addApp(param);
+    public Result<?> addApp(@RequestBody AppParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo) {
+        return agentAppService.addApp(param,userInfo.getUserId());
+    }
+
+    /**
+     * 新增广告渠道
+     */
+    @ApiOperation("新增广告渠道")
+    @PostMapping("/addChannel")
+    public Result<?> addChannel(@RequestBody ChannelParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo) {
+        return agentAppService.addChannel(param,userInfo.getUserId());
     }
 }

+ 12 - 0
yt-agent/agent-service/src/main/java/com/ytpm/dao/AppMapper.java

@@ -0,0 +1,12 @@
+package com.ytpm.dao;
+
+import com.ytpm.agent.model.YtApp;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface AppMapper {
+    /**
+     * 新增应用信息
+     */
+    void insertOne(YtApp app);
+}

+ 8 - 1
yt-agent/agent-service/src/main/java/com/ytpm/service/AgentAppService.java

@@ -1,6 +1,8 @@
 package com.ytpm.service;
 
 import com.ytpm.advertise.param.AddAppParam;
+import com.ytpm.agent.param.AppParam;
+import com.ytpm.agent.param.ChannelParam;
 import com.ytpm.agent.view.AgentEnableAppView;
 import com.ytpm.app.view.YtAppListView;
 import com.ytpm.general.Result;
@@ -20,5 +22,10 @@ public interface AgentAppService {
     /**
      * 新增应用
      */
-    Result<?> addApp(AddAppParam param);
+    Result<?> addApp(AppParam param, String userId);
+
+    /**
+     * 新增广告渠道
+     */
+    Result<?> addChannel(ChannelParam param, String userId);
 }

+ 44 - 3
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/AgentAppServiceImpl.java

@@ -1,15 +1,26 @@
 package com.ytpm.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.IdUtil;
 import com.github.pagehelper.PageInfo;
+import com.ytpm.advertise.enums.AdPlatformTypeEnum;
 import com.ytpm.advertise.param.AddAppParam;
 import com.ytpm.advertise.view.AddAppResponse;
+import com.ytpm.agent.model.YtApp;
+import com.ytpm.agent.model.YtChannel;
+import com.ytpm.agent.param.AppParam;
+import com.ytpm.agent.param.ChannelParam;
 import com.ytpm.agent.view.AgentEnableAppView;
 import com.ytpm.app.view.YtAppListView;
 import com.ytpm.dao.AgentAppMapper;
+import com.ytpm.dao.AppMapper;
+import com.ytpm.dao.ChannelMapper;
 import com.ytpm.feign.AdvertiseFeign;
+import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.AgentAppService;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -21,6 +32,10 @@ public class AgentAppServiceImpl implements AgentAppService {
     private AgentAppMapper agentAppMapper;
     @Resource
     private AdvertiseFeign advertiseFeign;
+    @Resource
+    private AppMapper appMapper;
+    @Resource
+    private ChannelMapper channelMapper;
 
     /**
      * 查询渠道启用的应用列表
@@ -43,11 +58,37 @@ public class AgentAppServiceImpl implements AgentAppService {
      * 新增应用
      */
     @Override
-    public Result<?> addApp(AddAppParam param) {
+    public Result<?> addApp(AppParam param, String userId) {
         //调用广告平台API 增加应用
         Result<AddAppResponse> result = advertiseFeign.addApp(param);
-        //TODO 数据库存储应用信息
+        //数据库存储应用信息
+        AddAppResponse data = result.getData();
+        YtApp app = new YtApp();
+        app.setAppId(data.getUuid());
+        app.setAppKey(data.getApp_key());
+        app.setAppName(param.getName());
+        app.setAppType(param.getPlatform());
+        app.setUserId(userId);
+        app.setEnabled(1);
+        app.setApkUrl(param.getApkUrl());
+        app.setQrCode(param.getQrCode());
+        app.setVersionCode(param.getVersionCode());
+        app.setUpdateTips(param.getUpdateTips());
+        //前端上传apk后返回链接,链接生成二维码图片后上传返回二维码链接
+        appMapper.insertOne(app);
+        return Result.resultOk(RepMessage.ADD_SUCCESS);
+    }
 
-        return null;
+    /**
+     * 新增广告渠道
+     */
+    @Override
+    public Result<?> addChannel(ChannelParam param, String userId) {
+        YtChannel channel = new YtChannel();
+        BeanUtil.copyProperties(param, channel);
+        channel.setChannelId(IdUtil.fastSimpleUUID());
+        channel.setChannelName(AdPlatformTypeEnum.getDesc(param.getAdPlatformType()));
+        channelMapper.insert(channel);
+        return Result.resultOk(RepMessage.ADD_SUCCESS);
     }
 }

+ 37 - 0
yt-agent/agent-service/src/main/resources/mapper/AppMapper.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.dao.AppMapper">
+
+    <insert id="insertOne">
+        insert into yt_app
+        (
+         app_id,
+         app_key,
+         app_name,
+         channel_id,
+         channel_name,
+         user_id,
+         app_type,
+         parent_id,
+         apk_url,
+         qr_code,
+         version_code,
+         update_tips
+        )
+        values
+        (
+         #{appId},
+         #{appKey},
+         #{appName},
+         #{channelId},
+         #{channelName},
+         #{userId},
+         #{appType},
+         #{parentId},
+         #{apkUrl},
+         #{qrCode},
+         #{versionCode},
+         #{updateTips}
+        )
+    </insert>
+</mapper>

+ 10 - 1
yt-advertise/advertise-service/src/main/java/com/ytpm/enums/AdPlatformTypeEnum.java → yt-common/src/main/java/com/ytpm/advertise/enums/AdPlatformTypeEnum.java

@@ -1,4 +1,4 @@
-package com.ytpm.enums;
+package com.ytpm.advertise.enums;
 
 import lombok.Getter;
 
@@ -17,4 +17,13 @@ public enum AdPlatformTypeEnum {
         this.code = code;
         this.desc = desc;
     }
+
+    public static String getDesc(int code) {
+        for (AdPlatformTypeEnum value : AdPlatformTypeEnum.values()) {
+            if(code == value.code) {
+                return value.desc;
+            }
+        }
+        return "";
+    }
 }

+ 1 - 1
yt-advertise/advertise-service/src/main/java/com/ytpm/enums/AndroidFirstCategoryEnum.java → yt-common/src/main/java/com/ytpm/advertise/enums/AndroidFirstCategoryEnum.java

@@ -1,4 +1,4 @@
-package com.ytpm.enums;
+package com.ytpm.advertise.enums;
 
 import lombok.Getter;
 

+ 1 - 1
yt-advertise/advertise-service/src/main/java/com/ytpm/enums/AndroidSecondCategoryEnum.java → yt-common/src/main/java/com/ytpm/advertise/enums/AndroidSecondCategoryEnum.java

@@ -1,4 +1,4 @@
-package com.ytpm.enums;
+package com.ytpm.advertise.enums;
 
 import lombok.Getter;
 

+ 1 - 1
yt-advertise/advertise-service/src/main/java/com/ytpm/enums/OpenReportEnum.java → yt-common/src/main/java/com/ytpm/advertise/enums/OpenReportEnum.java

@@ -1,4 +1,4 @@
-package com.ytpm.enums;
+package com.ytpm.advertise.enums;
 
 import lombok.Getter;
 

+ 1 - 1
yt-advertise/advertise-service/src/main/java/com/ytpm/enums/StoreTypeEnum.java → yt-common/src/main/java/com/ytpm/advertise/enums/StoreTypeEnum.java

@@ -1,4 +1,4 @@
-package com.ytpm.enums;
+package com.ytpm.advertise.enums;
 
 public enum StoreTypeEnum {
     IOS(1,"iOS App Store"),

+ 33 - 0
yt-common/src/main/java/com/ytpm/agent/model/YtApp.java

@@ -0,0 +1,33 @@
+package com.ytpm.agent.model;
+
+import lombok.Data;
+
+@Data
+public class YtApp {
+    /** 应用ID */
+    private String appId;
+    /** 应用名称 */
+    private String appName;
+    /** 应用秘钥 */
+    private String appKey;
+    /** 广告渠道ID */
+    private String channelId;
+    /** 广告渠道名称 */
+    private String channelName;
+    /** 平台加盟商ID */
+    private String userId;
+    /** 应用类型 1-Android 2-IOS */
+    private Integer appType;
+    /** 父级应用包ID */
+    private String parentId;
+    /** 安装包链接 */
+    private String apkUrl;
+    /** 二维码 */
+    private String qrCode;
+    /** 版本号 */
+    private String versionCode;
+    /** 更新提示 */
+    private String updateTips;
+    /** 启用状态 */
+    private Integer enabled;
+}

+ 13 - 0
yt-common/src/main/java/com/ytpm/agent/model/YtChannel.java

@@ -1,17 +1,30 @@
 package com.ytpm.agent.model;
 
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 @Data
+@ApiModel("广告渠道表")
 public class YtChannel {
+    @ApiModelProperty("渠道ID")
     private String channelId;
+    @ApiModelProperty("渠道名称")
     private String channelName;
+    @ApiModelProperty("登录类型")
     private Integer loginType;
+    @ApiModelProperty("渠道账号")
     private String channelAccount;
+    @ApiModelProperty("渠道密码")
     private String channelPwd;
+    @ApiModelProperty("渠道状态")
     private Integer channelStatus;
+    @ApiModelProperty("公钥")
     private String apiKey;
+    @ApiModelProperty("秘钥")
     private String apiSecret;
+    @ApiModelProperty("备注")
     private String remark;
+    @ApiModelProperty("是否启用")
     private Integer enabled;
 }

+ 25 - 0
yt-common/src/main/java/com/ytpm/agent/param/AppParam.java

@@ -0,0 +1,25 @@
+package com.ytpm.agent.param;
+
+import com.ytpm.advertise.param.AddAppParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("新增应用参数")
+public class AppParam extends AddAppParam {
+    @ApiModelProperty("二维码链接")
+    private String qrCode;
+    @ApiModelProperty("apk应用包地址")
+    private String apkUrl;
+    @ApiModelProperty("版本号")
+    private String versionCode;
+    @ApiModelProperty("更新提示")
+    private String updateTips;
+}