小程序数据导出时同步活动数据
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