Commit 7ec4c929 authored by fengjie's avatar fengjie

修改数据库编码时区 + Ding BUG

parent f7994e6c
......@@ -110,32 +110,35 @@ export const updateAlert = alert => {
export const updateDingTalk = (token,question) => {
// token
console.log('2222222---?', token, question._card.original_card_id);
let req = new XMLHttpRequest();
req.open("POST", "http://dev-fund.quantgroups.com/card/dingtalk/token/"+question._card.original_card_id, true);
req.setRequestHeader('Control-Allow-Origin','*');
req.setRequestHeader('content-type', 'application/json');
req.send(JSON.stringify(token));
req.onreadystatechange=(e)=>{
console.log(req.responseText);
if(question && question._card && question._card.original_card_id){
let req = new XMLHttpRequest();
req.open("POST", "http://dev-fund.quantgroups.com/card/dingtalk/token/"+question._card.original_card_id, true);
req.setRequestHeader('Control-Allow-Origin','*');
req.setRequestHeader('content-type', 'application/json');
req.send(JSON.stringify(token));
req.onreadystatechange=(e)=>{
console.log(req.responseText);
}
}
};
export const queryDingTalk = question => {
let req = new XMLHttpRequest();
req.open("GET", "http://dev-fund.quantgroups.com/card/"+question._card.original_card_id+"/dingtalk/token", false);
let result;
req.setRequestHeader('Control-Allow-Origin','*');
req.onreadystatechange = function () {
if (req.readyState === 4 && req.status === 200) {
// 同步请求成功
var _resp = JSON.parse(req.responseText);
result = _resp.data;
if(question && question._card && question._card.original_card_id){
let req = new XMLHttpRequest();
req.open("GET", "http://dev-fund.quantgroups.com/card/"+question._card.original_card_id+"/dingtalk/token", false);
let result;
req.setRequestHeader('Control-Allow-Origin','*');
req.onreadystatechange = function () {
if (req.readyState === 4 && req.status === 200) {
// 同步请求成功
var _resp = JSON.parse(req.responseText);
result = _resp.data;
}
};
req.send();
return result;
}
};
req.send();
return result;
};
export const UNSUBSCRIBE_FROM_ALERT = "metabase/alerts/UNSUBSCRIBE_FROM_ALERT";
export const UNSUBSCRIBE_FROM_ALERT_CLEANUP =
......
......@@ -578,14 +578,18 @@ export class AlertEditSchedule extends Component {
@User.loadList()
@connect(
(state, props) => ({
user: getUser(state),
formInput: getPulseFormInput(state),
question: getQuestion(state),
dingToken: queryDingTalk(getQuestion(state)),
dingTokenInput:'',
dingTextInput:'',
}),
function (state, props) {
let _q = getQuestion(state);
let _dt = queryDingTalk(_q);
return {
user: getUser(state),
formInput: getPulseFormInput(state),
question: _q,
dingToken: _dt,
dingTokenInput:'',
dingTextInput:'',
}
},
{
fetchPulseFormInput,updateDingTalk
},
......@@ -602,7 +606,6 @@ export class AlertEditChannels extends Component {
onUpdateDingTalk = () => {
// const { updateDingTalk } = this.props;
const { question } = this.props;
console.log('-------->>>', {token:this.refs.ding_token.value, message:this.refs.ding_message.value});
updateDingTalk({token:this.refs.ding_token.value, message:this.refs.ding_message.value}, question);
};
......@@ -626,7 +629,7 @@ export class AlertEditChannels extends Component {
render() {
const { alert, user, users, formInput,dingToken } = this.props;
const dingContent = '<b>消息内容:</b> 可以使用表达式{0},{1}...表示取结果集的第N列值,使用{count}表示取数据总条数;';
const dingContent = '可以使用表达式{0},{1}...表示取结果集的第N列值,使用{count}表示取数据总条数;';
return (
<div className="mt4 pt2">
<h3 className="text-dark mb3">{jt`Where do you want to send these alerts?`}</h3>
......@@ -652,17 +655,17 @@ export class AlertEditChannels extends Component {
<input
className="Form-input"
type="text"
defaultValue={dingToken.token}
defaultValue={dingToken ? dingToken.token : ''}
style={{}}
ref = "ding_token"
placeholder="填写一个钉钉TOKEN"
/>
</div>
<div>
<p>{ dingContent }</p>
<p><b>消息内容: </b>{ dingContent }</p>
<textarea className="Form-input mt1 full"
style={{ width: "100%", height:"120px" }}
defaultValue={dingToken.message}
defaultValue={dingToken ? dingToken.message : ''}
ref = "ding_message"
></textarea>
</div>
......
......@@ -15,7 +15,7 @@ set -eu
# Asia/Hong_Kong +08:00 +08:00
DEFAULT_TIMEZONES="Etc/UTC Europe/London America/Los_Angeles America/Phoenix Asia/Kathmandu Asia/Hong_Kong"
DEFAULT_TIMEZONES="Etc/UTC Europe/London America/Los_Angeles America/Phoenix Asia/Kathmandu Asia/Shanghai"
tzs=${TIMEZONES:-$DEFAULT_TIMEZONES}
......
......@@ -132,7 +132,7 @@ describe("timeseriesScale", () => {
const scale = timeseriesScale({
interval: "month",
count: 1,
timezone: "Asia/Hong_kong",
timezone: "Asia/Shanghai",
}).domain([
moment("2019-03-07T12:34:56.789Z"),
moment("2019-04-12T12:34:56.789Z"),
......
......@@ -26,6 +26,7 @@ public class DingTalk {
public static void sendToDad(String json) {
String body = new String(Base64.getEncoder().encode(json.getBytes()));
System.out.println("发送消息到DD:" + body);
doPost(DD_ROBOT_HOOK_URL, String.format(TMPL, body, ""));
}
......
......@@ -31,7 +31,7 @@
"Asia/Calcutta"
"Asia/Colombo"
"Asia/Dhaka"
"Asia/Hong_Kong"
"Asia/Shanghai"
"Asia/Irkutsk"
"Asia/Jerusalem"
"Asia/Kabul"
......
......@@ -231,7 +231,7 @@
;; Oracle doesn't have a time type
(datasets/test-drivers (set-timezone-drivers)
(data/dataset attempted-murders
(doseq [timezone [nil "US/Pacific" "US/Eastern" "Asia/Hong_Kong"]]
(doseq [timezone [nil "US/Pacific" "US/Eastern" "Asia/Shanghai"]]
(tu/with-temporary-setting-values [report-timezone timezone]
(let [expected (expected-attempts)]
(is (= expected
......
......@@ -113,8 +113,8 @@
(testing "Should be able to parse SQL-style literals where Zone ID is separated by a space, without brackets"
(is (= (t/zoned-date-time "2014-08-01T10:00Z[UTC]")
(u.date/parse "2014-08-01 10:00:00.000 UTC")))
(is (= (t/zoned-date-time "2014-08-02T00:00+08:00[Asia/Hong_Kong]")
(u.date/parse "2014-08-02 00:00:00.000 Asia/Hong_Kong"))))
(is (= (t/zoned-date-time "2014-08-02T00:00+08:00[Asia/Shanghai]")
(u.date/parse "2014-08-02 00:00:00.000 Asia/Shanghai"))))
(testing "Should be able to parse strings with hour-only offsets e.g. '+00'"
(is (= (t/offset-time "07:23:18.331Z")
(u.date/parse "07:23:18.331-00")))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment