diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseOceanEngineToken.java b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseOceanEngineToken.java index 891af259..0cc69b0b 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseOceanEngineToken.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/entity/BaseOceanEngineToken.java @@ -9,6 +9,7 @@ import javax.persistence.Column; import javax.persistence.Convert; import javax.persistence.EntityListeners; import javax.persistence.MappedSuperclass; +import java.util.Date; import java.util.List; /** @@ -56,6 +57,8 @@ public class BaseOceanEngineToken { @ApiModelProperty(value = "refreshToken剩余有效时间,单位(秒)") private Long refreshTokenExpiresIn; + @ApiModelProperty(value = "授权时间") + private Date authorizeTime; } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/OceanEngineTokenDto.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/OceanEngineTokenDto.java index 246dcc83..4e0f27a9 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/OceanEngineTokenDto.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/OceanEngineTokenDto.java @@ -1,8 +1,13 @@ package com.baiye.modules.system.domain; +import cn.hutool.core.date.DatePattern; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.Date; /** * @author Enzo @@ -11,10 +16,22 @@ import java.io.Serializable; @Data public class OceanEngineTokenDto implements Serializable { private static final long serialVersionUID = -7107014280197393381L; + private Long userId; + + private Long expiresIn; + + @NotNull + private Long companyId; private Integer status; - private Long userId; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN, timezone = "GMT+8") + private Date authorizeTime; + + @NotBlank private String authorizeName; - private Long expiresIn; + private Long refreshTokenExpiresIn; + + } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/OceanEngineRepository.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/OceanEngineRepository.java index 28d48d11..f3856115 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/OceanEngineRepository.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/OceanEngineRepository.java @@ -6,6 +6,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; +import java.util.Date; import java.util.List; /** @@ -38,6 +39,7 @@ public interface OceanEngineRepository extends JpaRepository query(Long id,String authorizeName) { - return new ResponseEntity<>(oceanEngineService.buildAuthorizationUrl(id, authorizeName), HttpStatus.OK); + public ResponseEntity query(Long companyId,String authorizeName) { + return new ResponseEntity<>(oceanEngineService.buildAuthorizationUrl(companyId, authorizeName), HttpStatus.OK); } + @ApiOperation("新增授权账号") + @PostMapping("/add") + public ResponseEntity save(@Validated @RequestBody OceanEngineTokenDto oceanEngineTokenDto) { + + String url = oceanEngineService.save(oceanEngineTokenDto); + return new ResponseEntity<>(url, HttpStatus.OK); + } + + + + @ApiOperation("查询授权列表") @GetMapping("/page") public ResponseEntity query(OceanEngineQueryCriteria criteria, Pageable pageable){ diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/OceanEngineService.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/OceanEngineService.java index 969cd99f..ac923ad2 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/OceanEngineService.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/OceanEngineService.java @@ -2,6 +2,7 @@ package com.baiye.modules.system.service; import com.baiye.modules.auth.RefreshTokenResponse; import com.baiye.modules.system.domain.OceanEngineToken; +import com.baiye.modules.system.domain.OceanEngineTokenDto; import com.baiye.modules.system.service.dto.OceanEngineQueryCriteria; import org.springframework.data.domain.Pageable; @@ -91,4 +92,11 @@ public interface OceanEngineService { * @param id */ void updateAuthorizationStatus(Integer status, Long id); + + /** + * 保存并返回url + * @param oceanEngineTokenDto dto + * @return + */ + String save(OceanEngineTokenDto oceanEngineTokenDto); } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/OceanEngineServiceImpl.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/OceanEngineServiceImpl.java index f3e17e15..ef091213 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/OceanEngineServiceImpl.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/OceanEngineServiceImpl.java @@ -1,19 +1,24 @@ package com.baiye.modules.system.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.StrPool; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.druid.sql.visitor.functions.If; import com.baiye.config.properties.OceanEngineConfig; import com.baiye.constant.AdPlatFormConstants; import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.UrlConstants; +import com.baiye.exception.BadRequestException; import com.baiye.modules.auth.AccessTokenRequest; import com.baiye.modules.auth.AccessTokenResponse; import com.baiye.modules.auth.RefreshTokenRequest; import com.baiye.modules.auth.RefreshTokenResponse; import com.baiye.modules.system.domain.OceanEngineToken; +import com.baiye.modules.system.domain.OceanEngineTokenDto; import com.baiye.modules.system.repository.OceanEngineRepository; import com.baiye.modules.system.service.CompanyService; import com.baiye.modules.system.service.OceanEngineService; @@ -48,13 +53,11 @@ public class OceanEngineServiceImpl implements OceanEngineService { private final CompanyService companyService; - private final OceanEngineConfig oceanEngineConfig; - - private final OceanEngineMapper oceanEngineMapper; - private final OceanEngineRepository oceanEngineRepository; + private final OceanEngineConfig oceanEngineConfig; + private final OceanEngineRepository oceanEngineRepository; @Override @@ -62,9 +65,8 @@ public class OceanEngineServiceImpl implements OceanEngineService { return String.format (UrlConstants.CONNECT_OAUTH2_AUTHORIZE_URL, oceanEngineConfig.getAppId(), - AESUtils.encrypt(id.toString(). - concat(StrPool.COLON). - concat(authorizeName), + AESUtils.encrypt(id.toString().concat(StrPool.COLON). + concat(authorizeName), AdPlatFormConstants.AD_PLATFORM), oceanEngineConfig.getRedirectUrl()); } @@ -90,7 +92,7 @@ public class OceanEngineServiceImpl implements OceanEngineService { if (split.length > DefaultNumberConstants.ONE_NUMBER) { long parseLong = Long.parseLong(split[DefaultNumberConstants.ZERO_NUMBER]); String authorizeName = split[DefaultNumberConstants.ONE_NUMBER]; - OceanEngineToken byCompanyId = oceanEngineRepository.findByCompanyIdAndAndAuthorizeName(parseLong,authorizeName); + OceanEngineToken byCompanyId = oceanEngineRepository.findByCompanyIdAndAndAuthorizeName(parseLong, authorizeName); CompanyDto companyById = companyService.findCompanyById(parseLong); if (ObjectUtil.isNull(byCompanyId) && ObjectUtil.isNotNull(companyById)) { if (ObjectUtil.isNull(companyById.getUserId())) { @@ -114,9 +116,10 @@ public class OceanEngineServiceImpl implements OceanEngineService { companyService.updateCompanyAuthorizationStatus(Boolean.TRUE, companyById.getId()); oceanEngineRepository.updateOceanEngin (data.getAccessToken(), data.getRefreshToken(), data.getExpiresIn(), - data.getRefreshTokenExpiresIn(), JSONUtil.toJsonStr(data.getAdvertiserIds()), byCompanyId.getId()); - } + data.getRefreshTokenExpiresIn(), JSONUtil.toJsonStr(data.getAdvertiserIds()), + companyById.getUserId(), DateUtil.date(),DefaultNumberConstants.ONE_NUMBER, byCompanyId.getId()); + } } } } @@ -124,7 +127,7 @@ public class OceanEngineServiceImpl implements OceanEngineService { @Override - public Map queryAll(OceanEngineQueryCriteria dict, Pageable pageable){ + public Map queryAll(OceanEngineQueryCriteria dict, Pageable pageable) { Page page = oceanEngineRepository.findAll ((root, query, cb) -> QueryHelp.getPredicate(root, dict, cb), pageable); return PageUtil.toPage(page.map(oceanEngineMapper::toDto)); @@ -152,7 +155,7 @@ public class OceanEngineServiceImpl implements OceanEngineService { @Override @Cacheable(value = "oceanEnginCache", key = "'companyId:' + #companyId") - public OceanEngineToken getOceanEnginByCompanyId(Long companyId,String authorizeName) { + public OceanEngineToken getOceanEnginByCompanyId(Long companyId, String authorizeName) { return oceanEngineRepository.findByCompanyIdAndAndAuthorizeName(companyId, authorizeName); } @@ -191,4 +194,26 @@ public class OceanEngineServiceImpl implements OceanEngineService { // 修改状态 oceanEngineRepository.updateAuthorizationStatusById(status, id); } + + @Override + public String save(OceanEngineTokenDto oceanEngineTokenDto) { + Long companyId = oceanEngineTokenDto.getCompanyId(); + String authorizeName = oceanEngineTokenDto.getAuthorizeName(); + // 修改状态 + OceanEngineToken byCompanyIdAndAndAuthorizeName = + oceanEngineRepository.findByCompanyIdAndAndAuthorizeName(companyId, authorizeName); + if (ObjectUtil.isNotNull(byCompanyIdAndAndAuthorizeName)) { + throw new BadRequestException("该授权名称已存在"); + } + CompanyDto companyById = companyService.findCompanyById(companyId); + if (ObjectUtil.isNotNull(companyById) && ObjectUtil.isNotNull(companyById.getUserId())) { + OceanEngineToken token = new OceanEngineToken(); + token.setCompanyId(companyId); + token.setAuthorizeName(authorizeName); + token.setStatus(DefaultNumberConstants.MINUS_ONE_NUMBER); + oceanEngineRepository.save(token); + return this.buildAuthorizationUrl(companyId, authorizeName); + } + return CharSequenceUtil.EMPTY; + } } diff --git a/manage/ad-platform-management/src/test/java/com/baiye/OceanEngineTest.java b/manage/ad-platform-management/src/test/java/com/baiye/OceanEngineTest.java index ea26c882..91b3a5f2 100644 --- a/manage/ad-platform-management/src/test/java/com/baiye/OceanEngineTest.java +++ b/manage/ad-platform-management/src/test/java/com/baiye/OceanEngineTest.java @@ -1,11 +1,8 @@ package com.baiye; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONUtil; import com.baiye.modules.system.service.OceanEngineService; import lombok.extern.slf4j.Slf4j; import net.minidev.json.JSONObject; -import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; @@ -42,7 +39,7 @@ public class OceanEngineTest { @Test public void getSetting() { - String s = oceanEngineService.buildAuthorizationUrl(888L); + String s = oceanEngineService.buildAuthorizationUrl(888L, ""); String accessToken = getClueList(); log.info("========= the accessToken as {} ==============", accessToken); @@ -54,10 +51,10 @@ public class OceanEngineTest { - String access_token = "2dd63ff8c5518f1be2a58a89127f309ff1fffad3"; - final String[] advertiser_ids = new String[]{"1741649024454664"}; - final String start_time = "2022-06-17"; - final String end_time = "2022-09-17"; + String access_token = "244a329b7f23136a25848b2dbe48977855cec2e1"; + final String[] advertiser_ids = new String[]{"1744088313742350"}; + final String start_time = "2022-09-23 07:14:00"; + final String end_time = "2022-09-23 07:15:00"; // 请求地址 String open_api_url_prefix = "https://ad.oceanengine.com/open_api/2/"; diff --git a/manage/ad-platform-management/src/test/java/com/baiye/OrganizeTest.java b/manage/ad-platform-management/src/test/java/com/baiye/OrganizeTest.java index f34e12aa..f693e151 100644 --- a/manage/ad-platform-management/src/test/java/com/baiye/OrganizeTest.java +++ b/manage/ad-platform-management/src/test/java/com/baiye/OrganizeTest.java @@ -1,7 +1,9 @@ package com.baiye; +import com.baiye.model.dto.wechat.WeChatFriendDTO; import com.baiye.modules.system.repository.OrganizeUserRepository; import com.baiye.modules.system.service.RoleService; +import com.baiye.modules.system.service.WeChatUserService; import lombok.extern.slf4j.Slf4j; import net.minidev.json.JSONObject; import org.apache.hc.client5.http.classic.methods.HttpGet; @@ -38,6 +40,9 @@ public class OrganizeTest { @Resource private RoleService roleService; + @Resource + private WeChatUserService weChatUserService; + @Test @Transactional(rollbackFor = Exception.class) @@ -57,9 +62,9 @@ public class OrganizeTest { // 请求参数 Map data = new HashMap() { { - put("app_id", 1744002574259247L); - put("secret", "f1bef553cd635b7cd8057052654ebaaa30fa92a5"); - put("access_token", "2dd63ff8c5518f1be2a58a89127f309ff1fffad3"); + put("app_id", 1744388966125614L); + put("secret", "9acbefb56efa51e16130f88badda1405119fa073"); + put("access_token", "244a329b7f23136a25848b2dbe48977855cec2e1"); } }; @@ -105,8 +110,8 @@ public class OrganizeTest { public static String getAdvertiser() { - String access_token = "2dd63ff8c5518f1be2a58a89127f309ff1fffad3"; - final Long advertiser_id = 1741649030315008L; + String access_token = "244a329b7f23136a25848b2dbe48977855cec2e1"; + final Long advertiser_id = 1744088319063051L; // 请求地址 String open_api_url_prefix = "https://ad.oceanengine.com/open_api/2/"; @@ -164,4 +169,5 @@ public class OrganizeTest { + } diff --git a/manage/ad-platform-management/src/test/java/com/baiye/PayTest.java b/manage/ad-platform-management/src/test/java/com/baiye/PayTest.java index 8e03a5a9..25b7477a 100644 --- a/manage/ad-platform-management/src/test/java/com/baiye/PayTest.java +++ b/manage/ad-platform-management/src/test/java/com/baiye/PayTest.java @@ -36,13 +36,5 @@ public class PayTest { aliPayService.aliPayPc(aliPayPcDTO); } - @Test - @Transactional(rollbackFor = Exception.class) - public void addFriend() { - WeChatFriendDTO weChatFriendDTO = new WeChatFriendDTO(); - weChatFriendDTO.setType(1); - weChatFriendDTO.setTagetWxId("15168138353"); - weChatUserService.addFriend(weChatFriendDTO); - } }