yumeng 8 hodín pred
rodič
commit
f8e4b00203

+ 8 - 0
src/main/java/com/nuojing/media/auth/controller/MediaAuthController.java

@@ -3,10 +3,12 @@ package com.nuojing.media.auth.controller;
 import com.nuojing.admin.common.ApiResponse;
 import com.nuojing.media.auth.domain.dto.AuthUrlRequest;
 import com.nuojing.media.auth.domain.vo.AuthUrlVO;
+import com.nuojing.media.auth.domain.vo.MediaAdvertiserAccountVO;
 import com.nuojing.media.auth.domain.vo.MediaAuthConfigVO;
 import com.nuojing.media.auth.service.MediaAuthService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -26,4 +28,10 @@ public class MediaAuthController {
     public ApiResponse<AuthUrlVO> getAuthUrl(AuthUrlRequest request) {
         return ApiResponse.ok(mediaAuthService.getAuthUrl(request));
     }
+
+    @GetMapping({"/media/auth/advertiser/list", "/auth/advertiserList"})
+    public ApiResponse<List<MediaAdvertiserAccountVO>> advertiserAccounts(@RequestParam("mediaId") Integer mediaId,
+                                                                          @RequestParam(value = "adminAdvertiserId", required = false) Long adminAdvertiserId) {
+        return ApiResponse.ok(mediaAuthService.advertiserAccounts(mediaId, adminAdvertiserId));
+    }
 }

+ 20 - 0
src/main/java/com/nuojing/media/auth/domain/vo/MediaAdvertiserAccountVO.java

@@ -0,0 +1,20 @@
+package com.nuojing.media.auth.domain.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class MediaAdvertiserAccountVO {
+
+    private Long id;
+    private Integer mediaType;
+    private Long adminAdvertiserId;
+    private Long advertiserId;
+    private String advertiserName;
+    private String accountRole;
+    private Integer advertiserRole;
+    private Integer isValid;
+    private LocalDateTime createTime;
+    private LocalDateTime updateTime;
+}

+ 2 - 0
src/main/java/com/nuojing/media/auth/mapper/MediaAuthMapper.java

@@ -16,4 +16,6 @@ public interface MediaAuthMapper {
     int replaceAuthAccount(MediaAuthAccount account);
 
     int replaceAdvertiserAccount(MediaAdvertiserAccount account);
+
+    List<MediaAdvertiserAccount> selectAdvertiserAccounts(@Param("mediaType") Integer mediaType, @Param("adminAdvertiserId") Long adminAdvertiserId);
 }

+ 3 - 0
src/main/java/com/nuojing/media/auth/service/MediaAuthService.java

@@ -2,6 +2,7 @@ package com.nuojing.media.auth.service;
 
 import com.nuojing.media.auth.domain.dto.AuthUrlRequest;
 import com.nuojing.media.auth.domain.vo.AuthUrlVO;
+import com.nuojing.media.auth.domain.vo.MediaAdvertiserAccountVO;
 import com.nuojing.media.auth.domain.vo.MediaAuthConfigVO;
 import com.nuojing.media.callback.domain.vo.CallbackResultVO;
 
@@ -14,6 +15,8 @@ public interface MediaAuthService {
 
     AuthUrlVO getAuthUrl(AuthUrlRequest request);
 
+    List<MediaAdvertiserAccountVO> advertiserAccounts(Integer mediaType, Long adminAdvertiserId);
+
     CallbackResultVO handleCallback(Integer mediaId, Map<String, String> params);
 
     String buildReturnUrl(CallbackResultVO result);

+ 27 - 0
src/main/java/com/nuojing/media/auth/service/impl/MediaAuthServiceImpl.java

@@ -13,6 +13,7 @@ import com.nuojing.media.auth.domain.entity.MediaAdvertiserAccount;
 import com.nuojing.media.auth.domain.entity.MediaAuthAccount;
 import com.nuojing.media.auth.domain.entity.MediaAuthConfig;
 import com.nuojing.media.auth.domain.vo.AuthUrlVO;
+import com.nuojing.media.auth.domain.vo.MediaAdvertiserAccountVO;
 import com.nuojing.media.auth.domain.vo.MediaAuthConfigVO;
 import com.nuojing.media.auth.mapper.MediaAuthMapper;
 import com.nuojing.media.auth.service.MediaAuthService;
@@ -29,6 +30,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 
 @Slf4j
 @Service
@@ -108,6 +110,31 @@ public class MediaAuthServiceImpl implements MediaAuthService {
     }
 
     @Override
+    public List<MediaAdvertiserAccountVO> advertiserAccounts(Integer mediaType, Long adminAdvertiserId) {
+        if (mediaType == null) {
+            throw new BusinessException(400, "请输入媒体类型");
+        }
+        return mediaAuthMapper.selectAdvertiserAccounts(mediaType, adminAdvertiserId).stream()
+                .map(this::toAdvertiserAccountVO)
+                .collect(Collectors.toList());
+    }
+
+    private MediaAdvertiserAccountVO toAdvertiserAccountVO(MediaAdvertiserAccount account) {
+        MediaAdvertiserAccountVO vo = new MediaAdvertiserAccountVO();
+        vo.setId(account.getId());
+        vo.setMediaType(account.getMediaType());
+        vo.setAdminAdvertiserId(account.getAdminAdvertiserId());
+        vo.setAdvertiserId(account.getAdvertiserId());
+        vo.setAdvertiserName(account.getAdvertiserName());
+        vo.setAccountRole(account.getAccountRole());
+        vo.setAdvertiserRole(account.getAdvertiserRole());
+        vo.setIsValid(account.getIsValid());
+        vo.setCreateTime(account.getCreateTime());
+        vo.setUpdateTime(account.getUpdateTime());
+        return vo;
+    }
+
+    @Override
     public String buildReturnUrl(CallbackResultVO result) {
         String callbackReturnUrl = result.getCallbackReturnUrl();
         if (!StringUtils.hasText(callbackReturnUrl)) {

+ 28 - 0
src/main/resources/mapper/media/auth/MediaAuthMapper.xml

@@ -36,6 +36,34 @@
         limit 1
     </select>
 
+    <resultMap id="MediaAdvertiserAccountResultMap" type="com.nuojing.media.auth.domain.entity.MediaAdvertiserAccount">
+        <id column="id" property="id"/>
+        <result column="media_type" property="mediaType"/>
+        <result column="admin_advertiser_id" property="adminAdvertiserId"/>
+        <result column="advertiser_id" property="advertiserId"/>
+        <result column="advertiser_name" property="advertiserName"/>
+        <result column="account_role" property="accountRole"/>
+        <result column="advertiser_role" property="advertiserRole"/>
+        <result column="is_valid" property="isValid"/>
+        <result column="raw_response" property="rawResponse"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <select id="selectAdvertiserAccounts" resultMap="MediaAdvertiserAccountResultMap">
+        select id, media_type, admin_advertiser_id, advertiser_id, advertiser_name,
+               account_role, advertiser_role, is_valid, create_time, update_time
+        from media_advertiser_account
+        where is_valid = 1
+        <if test="mediaType != null">
+            and media_type = #{mediaType}
+        </if>
+        <if test="adminAdvertiserId != null">
+            and admin_advertiser_id = #{adminAdvertiserId}
+        </if>
+        order by admin_advertiser_id asc, advertiser_id asc
+    </select>
+
     <insert id="replaceAuthAccount">
         insert into media_auth_account(
             media_type, app_id, user_id, admin_advertiser_id, admin_advertiser_name,