增加授权账号

master
bynt 2 years ago
parent af2635be89
commit f1fbc9ec4f

@ -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;
}

@ -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;
}

@ -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<OceanEngineToken, L
* @return
*/
OceanEngineToken findByUserIdAndStatus(Long userId,Integer status);
/**
* token
*
@ -47,11 +49,16 @@ public interface OceanEngineRepository extends JpaRepository<OceanEngineToken, L
* @param refreshTokenExpiresIn
* @param id
* @param ids
* @param userId
* @param time
* @param status
* @return
*/
@Modifying
@Query("UPDATE OceanEngineToken o set o.accessToken = ?1,o.refreshToken = ?2,o.expiresIn=?3,o.refreshTokenExpiresIn=?4,o.advertiserIds = ?5 where o.id = ?6")
int updateOceanEngin(String accessToken, String refreshToken, Long expiresIn, Long refreshTokenExpiresIn, String ids, Long id);
@Query("UPDATE OceanEngineToken o set o.accessToken = ?1,o.refreshToken = ?2,o.expiresIn=?3,o.refreshTokenExpiresIn=?4,o.advertiserIds = ?5,o.userId = ?6,o.authorizeTime = ?7,o.status = ?8 where o.id = ?9")
int updateOceanEngin(String accessToken, String refreshToken, Long expiresIn, Long refreshTokenExpiresIn, String ids, Long userId, Date time, Integer status, Long id);
/**

@ -1,11 +1,15 @@
package com.baiye.modules.system.rest;
import cn.hutool.json.JSONUtil;
import com.baiye.http.CommonResponse;
import com.baiye.modules.system.domain.Job;
import com.baiye.modules.system.domain.LabelOrganize;
import com.baiye.modules.system.domain.OceanEngineToken;
import com.baiye.modules.system.domain.OceanEngineTokenDto;
import com.baiye.modules.system.service.OceanEngineService;
import com.baiye.modules.system.service.dto.JobQueryCriteria;
import com.baiye.modules.system.service.dto.OceanEngineQueryCriteria;
import com.baiye.valid.AddGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@ -41,11 +45,22 @@ public class OceanEngineController {
@ApiOperation("获取投放请求")
@GetMapping(value = "/url")
public ResponseEntity<String> query(Long id,String authorizeName) {
return new ResponseEntity<>(oceanEngineService.buildAuthorizationUrl(id, authorizeName), HttpStatus.OK);
public ResponseEntity<String> query(Long companyId,String authorizeName) {
return new ResponseEntity<>(oceanEngineService.buildAuthorizationUrl(companyId, authorizeName), HttpStatus.OK);
}
@ApiOperation("新增授权账号")
@PostMapping("/add")
public ResponseEntity<Object> save(@Validated @RequestBody OceanEngineTokenDto oceanEngineTokenDto) {
String url = oceanEngineService.save(oceanEngineTokenDto);
return new ResponseEntity<>(url, HttpStatus.OK);
}
@ApiOperation("查询授权列表")
@GetMapping("/page")
public ResponseEntity<Object> query(OceanEngineQueryCriteria criteria, Pageable pageable){

@ -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);
}

@ -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,8 +65,7 @@ public class OceanEngineServiceImpl implements OceanEngineService {
return String.format
(UrlConstants.CONNECT_OAUTH2_AUTHORIZE_URL,
oceanEngineConfig.getAppId(),
AESUtils.encrypt(id.toString().
concat(StrPool.COLON).
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,17 +116,18 @@ 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());
}
}
}
}
}
@Override
public Map<String, Object> queryAll(OceanEngineQueryCriteria dict, Pageable pageable){
public Map<String, Object> queryAll(OceanEngineQueryCriteria dict, Pageable pageable) {
Page<OceanEngineToken> 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;
}
}

@ -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/";

@ -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 {
}

@ -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);
}
}

Loading…
Cancel
Save