小程序数据导出时同步活动数据
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
4aeafd0dbd
commit
d1ac2e379d
@ -0,0 +1,101 @@
|
||||
package com.ruoyi.flyingbook.LarkHelper;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.lark.oapi.core.response.RawResponse;
|
||||
import com.lark.oapi.core.token.AccessTokenType;
|
||||
import com.lark.oapi.service.sheets.v3.model.*;
|
||||
import com.ruoyi.flyingbook.domain.lark.LarkException;
|
||||
import com.ruoyi.flyingbook.domain.lark.LarkTableSheetRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* @author yuxiangyong
|
||||
* @create 2023-03-12 18:10
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class LarkTableSheetHelper extends LarkHelper {
|
||||
|
||||
static String spreadsheetToken = "LDGnspdy1hYJawtjUOCcXVTZnuc";
|
||||
static String sheetID = "2XYmks";
|
||||
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
LarkTableSheetHelper bk = new LarkTableSheetHelper();
|
||||
LarkTableSheetRequest query = new LarkTableSheetRequest("cli_a482a8572cbc9013", "lZNXbCLlOslWbwBIVc4qvgxOdnfA8Mos", spreadsheetToken);
|
||||
QuerySpreadsheetSheetRespBody spreadsheets = bk.getSpreadsheets(query);
|
||||
Sheet[] sheets = spreadsheets.getSheets();
|
||||
query.setSheetId(sheetID);
|
||||
List<String> arr = bk.getSpreadsheetDetails(query).stream()
|
||||
.filter(r -> {
|
||||
String mid = String.valueOf(r);
|
||||
return !mid.equals("[null]");
|
||||
})
|
||||
.map(r -> {
|
||||
return String.valueOf(r).replace("[","").replace("]","").replace("\"","");
|
||||
})
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
int i = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取工作表
|
||||
*/
|
||||
public QuerySpreadsheetSheetRespBody getSpreadsheets(LarkTableSheetRequest request) {
|
||||
QuerySpreadsheetSheetResp query = null;
|
||||
try {
|
||||
query = buildClient(request).sheets()
|
||||
.spreadsheetSheet()
|
||||
.query(
|
||||
QuerySpreadsheetSheetReq.newBuilder()
|
||||
.spreadsheetToken(request.getSpreadsheetToken())
|
||||
.build()
|
||||
);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(new LarkException("LarkTableSheetHelper.getSpreadsheets", e.getMessage(), request).getErrorMessageBody());
|
||||
}
|
||||
if (query != null && query.getCode() == 0) {
|
||||
return query.getData();
|
||||
} else {
|
||||
throw new RuntimeException(new LarkException("LarkTableSheetHelper.getSpreadsheets", query.getMsg(), request).getErrorMessageBody());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工作表
|
||||
*/
|
||||
public JSONArray getSpreadsheetDetails(LarkTableSheetRequest request) {
|
||||
JSONObject result = null;
|
||||
try {
|
||||
RawResponse response = buildClient(request).get(request.getUrl(), null, AccessTokenType.Tenant);
|
||||
result = JSONObject.parseObject(new String(response.getBody()));
|
||||
JSONObject testV = new JSONObject();
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(new LarkException("LarkTableSheetHelper.getSpreadsheetDetails", e.getMessage(), request).getErrorMessageBody());
|
||||
}
|
||||
if (result != null && result.getInteger("code") == 0) {
|
||||
JSONObject data = result.getJSONObject("data");
|
||||
if (data != null) {
|
||||
JSONObject valueRange = data.getJSONObject("valueRange");
|
||||
if (valueRange != null) {
|
||||
return valueRange.getJSONArray("values");
|
||||
}
|
||||
}
|
||||
return null;
|
||||
} else {
|
||||
throw new RuntimeException(new LarkException("LarkTableSheetHelper.getSpreadsheetDetails", result.getString("msg"), request).getErrorMessageBody());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package com.ruoyi.flyingbook.domain.lark;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
/**
|
||||
* @author yuxiangyong
|
||||
* @create 2023-03-18 0:12
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class LarkTableSheetRequest extends LarkRequest{
|
||||
|
||||
private String spreadsheetToken;
|
||||
private String sheetId;
|
||||
|
||||
|
||||
public LarkTableSheetRequest(String appId, String appSecret, String spreadsheetToken) {
|
||||
super(appId,appSecret);
|
||||
this.spreadsheetToken = spreadsheetToken;
|
||||
}
|
||||
|
||||
|
||||
public LarkTableSheetRequest(String appId, String appSecret, String spreadsheetToken, String sheetId) {
|
||||
super(appId,appSecret);
|
||||
this.spreadsheetToken = spreadsheetToken;
|
||||
this.sheetId = sheetId;
|
||||
}
|
||||
|
||||
public String getRange(){
|
||||
return String.format("%s!D2:D5000",this.sheetId);
|
||||
}
|
||||
|
||||
public String getUrl(){
|
||||
return String.format("https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/%s/values/%s",this.spreadsheetToken,getRange());
|
||||
}
|
||||
}
|
Loading…
Reference in new issue