Commit a7483b91 by Sixong.Zhu

merge

parents 4ab11e1c c7763c7d
......@@ -14,12 +14,13 @@ class ChatCacheDatabaseController {
private readonly chatMessageKey = "chat-message";
private setuping = false;
private setupError = false;
private waitSetupCompleted() {
return new Promise<void>((resolve) => {
return new Promise<void>((resolve, reject) => {
const checker = () => {
if (!this.setuping) {
resolve();
this.setupError ? reject(new Error(`IM index database setup failed`)) : resolve();
} else {
setTimeout(() => checker(), 200);
}
......@@ -32,43 +33,45 @@ class ChatCacheDatabaseController {
if (this.setuping) {
return this.waitSetupCompleted();
}
return new Promise<void>((resolve) => {
return new Promise<void>((resolve, reject) => {
if (uid && indexedDB) {
this.setuping = true;
const r = indexedDB.open(
"u-" + (this.uid = uid),
this.listVersion
);
// eslint-disable-next-line @typescript-eslint/no-this-alias
const that = this;
const setupDb = () => {
if (this.setuping) {
if (that.db) {
if (this.db) {
try {
that.buildTables(that.db, that.chatListKey);
this.buildTables(this.db, this.chatListKey);
console.log(
`build index database for chat completed, 100%`
);
} catch (e) {
this.setupError = true;
console.error(e);
reject();
}
}
this.setuping = false;
}
resolve();
};
r.onsuccess = function (e) {
that.db = (e.target as any).result;
r.onsuccess = (e) => {
this.db = (e.target as any).result;
console.log(`index database init comepleted`);
setupDb();
};
r.onupgradeneeded = function (e) {
that.db = (e.target as any).result;
r.onupgradeneeded = (e) => {
this.db = (e.target as any).result;
console.log(`upgrade database comepleted`);
setupDb();
};
r.onerror = function (e) {
r.onerror = (e) => {
console.log(`index database init failed, ${e}`);
this.setupError = true;
reject();
};
} else {
resolve();
......@@ -128,7 +131,11 @@ class ChatCacheDatabaseController {
}
private buildTransaction(key: string) {
return this.db.transaction(key, "readwrite");
try { return this.db.transaction(key, "readwrite"); }
catch{
window.location.reload();
throw new Error(`transition failed`);
}
}
private buildStore(key: string) {
......
......@@ -58,7 +58,7 @@ export interface OrderTableListItem {
lastMsgContent: string;
lastMsgTime: string;
unreadCount: number;
PayPaymentNum?: string | number; //付款笔数
PayPaymentNum?: string | number; //付款笔数
}
export const orderPredict = {
......@@ -80,7 +80,7 @@ export const orderPredict = {
lastMsgContent: "UniplatLastMsgContent",
lastMsgTime: "UniplatLastMsgTime",
unreadCount: 0,
PayPaymentNum: "PayPaymentNum"
PayPaymentNum: "PayPaymentNum",
};
export const enum PayStatus {
......@@ -136,6 +136,15 @@ export interface OrderPayItem {
paymentItemId?: number;
}
export interface OrderComment {
id: number;
content: string;
user: string;
attachment: string;
attachment_label: string;
time: string;
}
export const orderPayItemPredict = {
status: "Status",
time: "PaymentDate",
......@@ -153,7 +162,7 @@ export const orderPayItemPredict = {
OpenningBankName: "ProviderHandleId#ServiceProviderBank.OpenningBankName",
bankAccountNo: "ProviderHandleId#ServiceProviderBank.AccountNo",
paymentItemId: "PaymentItemId",
}
};
export const enum ChatOpenDirection {
/**
......
......@@ -9,12 +9,14 @@ import {
OrderPayItem,
UploadImageItem,
orderPayItemPredict,
OrderComment,
} from "../model";
import { GeneralOrderDirection } from '../model/order-product';
import { GeneralOrderDirection } from "../model/order-product";
class OrderService {
public readonly generalOrder = "general_order_info";
public readonly generalOrderPaymentModel = "general_order_payment_info";
private readonly commentModel = "uniplat_model_remark@general_order";
private readonly handler = new UniplatSdkExtender();
private innerSdk: UniplatSdk | null = null;
......@@ -65,17 +67,19 @@ class OrderService {
}
/** 专项工单 */
public getOrders(params: {
productCode?: GeneralOrderDirection;
index: number;
size?: number;
}, isHrs = false) {
public getOrders(
params: {
productCode?: GeneralOrderDirection;
index: number;
size?: number;
},
isHrs = false
) {
const list = this.getSdk()
.model(this.generalOrder)
.list(isHrs ? "hroOrgOrderList" : "userOrderList");
if (params.productCode) {
list.addPrefilter({ 'ProductId#product.Code': params.productCode });
list.addPrefilter({ "ProductId#product.Code": params.productCode });
}
return list
.query({ item_size: params.size || 100, pageIndex: params.index })
......@@ -99,7 +103,7 @@ class OrderService {
.model(this.generalOrder)
.list("hroOrgDoingOrderList");
if (params.productCode) {
list.addPrefilter({ 'ProductId#product.Code': params.productCode });
list.addPrefilter({ "ProductId#product.Code": params.productCode });
}
return list
.query({ item_size: params.size || 100, pageIndex: params.index })
......@@ -207,13 +211,47 @@ class OrderService {
}
public sendPayAccountInfo(params: { send: string }) {
return this.getSdk().domainService("hro_spview", "OrderSetting", "sendPayAccountInfo")
.request("get", { params })
return this.getSdk()
.domainService("hro_spview", "OrderSetting", "sendPayAccountInfo")
.request("get", { params });
}
public sendPayAccountInfoForAgent(params: { send: string; userOrderPaymentId: number }) {
return this.getSdk().domainService("hro_spview", "OrderSetting", "sendPayAccountInfoForAgent")
.request("get", { params })
public sendPayAccountInfoForAgent(params: {
send: string;
userOrderPaymentId: number;
}) {
return this.getSdk()
.domainService(
"hro_spview",
"OrderSetting",
"sendPayAccountInfoForAgent"
)
.request("get", { params });
}
public getComments(order: number | string) {
return this.getSdk()
.model(orderService.commentModel)
.list("system_remark")
.addPrefilter({ associate_id: order })
.query({ pageIndex: 1, item_size: 100 })
.then((r) => {
if (r && r.pageData && r.pageData.rows) {
const items = this.handler.buildRows<OrderComment>(
r.pageData.rows,
{
id: "",
time: "create_time",
attachment: "attachments_label",
user: "dealer_name",
content: "",
}
);
return items;
}
return [];
});
}
}
......
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 sign in to comment