Compare commits
No commits in common. "dev" and "3.4.3" have entirely different histories.
|
|
@ -6,7 +6,7 @@ import { BRC } from '../types/RuntimeCxt';
|
||||||
*/
|
*/
|
||||||
export declare function getMpShipState(params: {
|
export declare function getMpShipState(params: {
|
||||||
shipId: string;
|
shipId: string;
|
||||||
}, context: BRC): Promise<string | undefined>;
|
}, context: BRC): Promise<string | null | undefined>;
|
||||||
/**
|
/**
|
||||||
* 获取打印面单
|
* 获取打印面单
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ const checkers = [
|
||||||
const { orderId, price } = data;
|
const { orderId, price } = data;
|
||||||
data.refundable = false;
|
data.refundable = false;
|
||||||
if (orderId) {
|
if (orderId) {
|
||||||
// @oak-ignore 所有已经支付和正在支付的pay之和不能超过订单总和
|
// 所有已经支付和正在支付的pay之和不能超过订单总和
|
||||||
const order = context.select('order', {
|
const order = context.select('order', {
|
||||||
data: {
|
data: {
|
||||||
id: 1,
|
id: 1,
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,76 @@
|
||||||
*/
|
*/
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { EntityDict } from '../oak-app-domain';
|
import { EntityDict } from '../oak-app-domain';
|
||||||
import { ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef } from 'oak-frontend-base';
|
import { ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef, ListButtonProps, OakAbsAttrUpsertDef } from 'oak-frontend-base';
|
||||||
import AbsFilterPanel from 'oak-frontend-base/es/components/filterPanel';
|
declare const FilterPanel: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
|
||||||
import AbsList from 'oak-frontend-base/es/components/list';
|
entity: T;
|
||||||
import AbsListPro from 'oak-frontend-base/es/components/listPro';
|
columns: ColumnProps<EntityDict, T>[];
|
||||||
import AbsDetail from 'oak-frontend-base/es/components/detail';
|
}>) => React.ReactElement;
|
||||||
import AbsUpsert from 'oak-frontend-base/es/components/upsert';
|
declare const List: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
|
||||||
declare const FilterPanel: <T extends keyof EntityDict>(...props: Parameters<typeof AbsFilterPanel<EntityDict, T>>) => React.ReactElement;
|
entity: T;
|
||||||
declare const List: <T extends keyof EntityDict>(...props: Parameters<typeof AbsList<EntityDict, T>>) => React.ReactElement;
|
extraActions: OakExtraActionProps[] | ((row: RowWithActions<EntityDict, T>) => OakExtraActionProps[]);
|
||||||
declare const ListPro: <T extends keyof EntityDict>(...props: Parameters<typeof AbsListPro<EntityDict, T>>) => React.ReactElement;
|
onAction: onActionFnDef;
|
||||||
declare const Detail: <T extends keyof EntityDict>(...props: Parameters<typeof AbsDetail<EntityDict, T>>) => React.ReactElement;
|
disabledOp: boolean;
|
||||||
declare const Upsert: <T extends keyof EntityDict>(...props: Parameters<typeof AbsUpsert<EntityDict, T>>) => React.ReactElement;
|
attributes: OakAbsAttrDef[];
|
||||||
|
data: RowWithActions<EntityDict, T>[];
|
||||||
|
loading: boolean;
|
||||||
|
tablePagination?: React.ReactNode;
|
||||||
|
rowSelection?: import("antd/es/table/interface").TableRowSelection<RowWithActions<EntityDict, T>> | undefined;
|
||||||
|
hideHeader?: boolean | undefined;
|
||||||
|
disableSerialNumber?: boolean | undefined;
|
||||||
|
size?: "small" | "middle" | "large" | undefined;
|
||||||
|
scroll?: ({
|
||||||
|
x?: string | number | true | undefined;
|
||||||
|
y?: string | number | undefined;
|
||||||
|
} & {
|
||||||
|
scrollToFirstRowOnChange?: boolean | undefined;
|
||||||
|
}) | undefined;
|
||||||
|
empty?: React.ReactNode;
|
||||||
|
opWidth?: number | undefined;
|
||||||
|
ellipsis?: boolean | undefined;
|
||||||
|
}>) => React.ReactElement;
|
||||||
|
declare const ListPro: <T extends keyof EntityDict>(props: {
|
||||||
|
title?: any;
|
||||||
|
extraContent?: any;
|
||||||
|
hideDefaultButtons?: boolean | undefined;
|
||||||
|
buttonGroup?: ListButtonProps[] | undefined;
|
||||||
|
onReload?: (() => void) | undefined;
|
||||||
|
entity: T;
|
||||||
|
extraActions?: OakExtraActionProps[] | ((row: RowWithActions<EntityDict, T>) => OakExtraActionProps[]) | undefined;
|
||||||
|
onAction?: onActionFnDef | undefined;
|
||||||
|
disabledOp?: boolean | undefined;
|
||||||
|
attributes: OakAbsAttrDef[];
|
||||||
|
data: RowWithActions<EntityDict, T>[];
|
||||||
|
loading?: boolean | undefined;
|
||||||
|
tablePagination?: any;
|
||||||
|
rowSelection?: import("antd/es/table/interface").TableRowSelection<RowWithActions<EntityDict, T>> | undefined;
|
||||||
|
disableSerialNumber?: boolean | undefined;
|
||||||
|
size?: "small" | "middle" | "large" | undefined;
|
||||||
|
scroll?: ({
|
||||||
|
x?: string | number | true | undefined;
|
||||||
|
y?: string | number | undefined;
|
||||||
|
} & {
|
||||||
|
scrollToFirstRowOnChange?: boolean | undefined;
|
||||||
|
}) | undefined;
|
||||||
|
empty?: any;
|
||||||
|
opWidth?: number | undefined;
|
||||||
|
oakPath?: string | undefined;
|
||||||
|
}) => React.ReactElement;
|
||||||
|
declare const Detail: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
|
||||||
|
column?: number | Record<import("antd").Breakpoint, number> | undefined;
|
||||||
|
entity: T;
|
||||||
|
attributes: OakAbsAttrDef[];
|
||||||
|
data: Partial<EntityDict[T]["Schema"]>;
|
||||||
|
title?: string | undefined;
|
||||||
|
bordered?: boolean | undefined;
|
||||||
|
layout?: "vertical" | "horizontal" | undefined;
|
||||||
|
}>) => React.ReactElement;
|
||||||
|
declare const Upsert: <T extends keyof EntityDict>(props: ReactComponentProps<EntityDict, T, false, {
|
||||||
|
helps: Record<string, string>;
|
||||||
|
entity: T;
|
||||||
|
attributes: OakAbsAttrUpsertDef<EntityDict, T, string | number>[];
|
||||||
|
data: EntityDict[T]["Schema"];
|
||||||
|
layout: "vertical" | "horizontal";
|
||||||
|
mode: "default" | "card";
|
||||||
|
}>) => React.ReactElement;
|
||||||
export { FilterPanel, List, ListPro, Detail, Upsert, ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef, };
|
export { FilterPanel, List, ListPro, Detail, Upsert, ReactComponentProps, ColumnProps, RowWithActions, OakExtraActionProps, OakAbsAttrDef, onActionFnDef, };
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
import { EntityDict } from "../../../oak-app-domain";
|
import { EntityDict } from "../../../oak-app-domain";
|
||||||
export default function Render(props: {
|
export default function Render(props: {
|
||||||
accountOpers: EntityDict['accountOper']['OpSchema'][];
|
accountOpers: EntityDict['accountOper']['OpSchema'][];
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,6 @@ export default function render(props) {
|
||||||
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
||||||
const { t, addItem, execute, clean } = props.methods;
|
const { t, addItem, execute, clean } = props.methods;
|
||||||
const getNotNullMessage = (entity, attr) => {
|
const getNotNullMessage = (entity, attr) => {
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
||||||
};
|
};
|
||||||
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ export default function render(props) {
|
||||||
const { apAccount, aliPay, oakFullpath, systemId } = props.data;
|
const { apAccount, aliPay, oakFullpath, systemId } = props.data;
|
||||||
const { t, update } = props.methods;
|
const { t, update } = props.methods;
|
||||||
if (apAccount) {
|
if (apAccount) {
|
||||||
// @oak-ignore
|
|
||||||
return (<Form labelCol={{ span: 6 }} wrapperCol={{ span: 16 }} layout="horizontal" style={{ minWidth: 860 }}>
|
return (<Form labelCol={{ span: 6 }} wrapperCol={{ span: 16 }} layout="horizontal" style={{ minWidth: 860 }}>
|
||||||
{(!aliPay || aliPay.$$createAt$$ === 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apCreate"/>}
|
{(!aliPay || aliPay.$$createAt$$ === 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apCreate"/>}
|
||||||
{(apAccount.aliPayId && apAccount?.$$createAt$$ !== 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apUpdate" oakId={apAccount.aliPayId}/>}
|
{(apAccount.aliPayId && apAccount?.$$createAt$$ !== 1) && <AliPayUpsert oakPath={`${oakFullpath}.aliPay`} systemId={systemId} key="apUpdate" oakId={apAccount.aliPayId}/>}
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,9 @@ export default function render(props) {
|
||||||
const { apAccountId, apProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
const { apAccountId, apProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
||||||
const { t, addItem, execute, clean } = props.methods;
|
const { t, addItem, execute, clean } = props.methods;
|
||||||
const getNotNullMessage = (entity, attr) => {
|
const getNotNullMessage = (entity, attr) => {
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
||||||
};
|
};
|
||||||
const errMsg = oakExecutable instanceof OakException && (
|
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
||||||
// @oak-ignore
|
|
||||||
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
|
||||||
const [upsertId, setUpsertId] = useState('');
|
const [upsertId, setUpsertId] = useState('');
|
||||||
const U = (<Modal width={920} destroyOnClose title={`${t('apProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
|
const U = (<Modal width={920} destroyOnClose title={`${t('apProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
|
||||||
clean();
|
clean();
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ export default function render(props) {
|
||||||
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
|
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
|
||||||
<Form.Item label={t('apProduct:attr.type')}>
|
<Form.Item label={t('apProduct:attr.type')}>
|
||||||
<Select value={apProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app', 'person', 'code'].map(ele => ({
|
<Select value={apProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app', 'person', 'code'].map(ele => ({
|
||||||
// @oak-ignore
|
|
||||||
label: t(`apProduct:v.type.${ele}`),
|
label: t(`apProduct:v.type.${ele}`),
|
||||||
value: ele,
|
value: ele,
|
||||||
}))} onSelect={(type) => {
|
}))} onSelect={(type) => {
|
||||||
|
|
|
||||||
|
|
@ -41,15 +41,11 @@ export default function render(props) {
|
||||||
const getNotNullMessage = (attr) => {
|
const getNotNullMessage = (attr) => {
|
||||||
if (['channel', 'name', 'qrCode'].includes(attr)) {
|
if (['channel', 'name', 'qrCode'].includes(attr)) {
|
||||||
const upsertRow = accounts?.find(ele => ele.id === upsertId);
|
const upsertRow = accounts?.find(ele => ele.id === upsertId);
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`offlineAccount::label.${attr}.${upsertRow.type}`) });
|
return t('notnull', { value: t(`offlineAccount::label.${attr}.${upsertRow.type}`) });
|
||||||
}
|
}
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`offlineAccount:attr.${attr}`) });
|
return t('notnull', { value: t(`offlineAccount:attr.${attr}`) });
|
||||||
};
|
};
|
||||||
const errMsg = oakExecutable instanceof OakException && (
|
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
||||||
// @oak-ignore
|
|
||||||
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
|
||||||
const U = (<Modal destroyOnClose width={920} title={`${t('offlineAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
|
const U = (<Modal destroyOnClose width={920} title={`${t('offlineAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
|
||||||
clean();
|
clean();
|
||||||
setUpsertId('');
|
setUpsertId('');
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "offlineAccount", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "offlineAccount", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -7,22 +7,17 @@ export default function render(props) {
|
||||||
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 860, maxHeight: '55vh', overflowY: 'auto' }}>
|
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 860, maxHeight: '55vh', overflowY: 'auto' }}>
|
||||||
<Form.Item label={t('offlineAccount:attr.type')} required>
|
<Form.Item label={t('offlineAccount:attr.type')} required>
|
||||||
<Select value={offlineAccount.type} options={['bank', 'alipay', 'wechat', 'shouqianba', 'others'].map(ele => ({
|
<Select value={offlineAccount.type} options={['bank', 'alipay', 'wechat', 'shouqianba', 'others'].map(ele => ({
|
||||||
// @oak-ignore
|
|
||||||
label: t(`offlineAccount:v.type.${ele}`),
|
label: t(`offlineAccount:v.type.${ele}`),
|
||||||
value: ele,
|
value: ele,
|
||||||
}))} onSelect={(value) => update({ type: value })}/>
|
}))} onSelect={(value) => update({ type: value })}/>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
{['bank', 'others'].includes(offlineAccount.type) && <Form.Item
|
{['bank', 'others'].includes(offlineAccount.type) && <Form.Item label={t(`offlineAccount::label.channel.${offlineAccount.type}`)} required>
|
||||||
// @oak-ignore
|
|
||||||
label={t(`offlineAccount::label.channel.${offlineAccount.type}`)} required>
|
|
||||||
<Input value={offlineAccount.channel || ''} onChange={({ currentTarget }) => {
|
<Input value={offlineAccount.channel || ''} onChange={({ currentTarget }) => {
|
||||||
const { value } = currentTarget;
|
const { value } = currentTarget;
|
||||||
update({
|
update({
|
||||||
channel: value,
|
channel: value,
|
||||||
});
|
});
|
||||||
}}
|
}} placeholder={t(`placeholder.channel.${offlineAccount.type}`)}/>
|
||||||
// @oak-ignore
|
|
||||||
placeholder={t(`placeholder.channel.${offlineAccount.type}`)}/>
|
|
||||||
</Form.Item>}
|
</Form.Item>}
|
||||||
{!!offlineAccount.type && <Form.Item label={t(`offlineAccount::label.name.${offlineAccount.type}`)} required={['bank'].includes(offlineAccount.type)}>
|
{!!offlineAccount.type && <Form.Item label={t(`offlineAccount::label.name.${offlineAccount.type}`)} required={['bank'].includes(offlineAccount.type)}>
|
||||||
<Input value={offlineAccount.name || ''} onChange={({ currentTarget }) => {
|
<Input value={offlineAccount.name || ''} onChange={({ currentTarget }) => {
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "order", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "order", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { EntityDict } from "../../../oak-app-domain";
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "order", false, {
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "order", false, {
|
||||||
accountId: string;
|
accountId: string;
|
||||||
accountAvailMax: number;
|
accountAvailMax: number;
|
||||||
onSetPays: (pays: Partial<EntityDict["pay"]["CreateOperationData"]>[]) => void;
|
onSetPays: (pays: Partial<EntityDict['pay']['CreateOperationData']>[]) => void;
|
||||||
accountTips: string;
|
accountTips: string;
|
||||||
autoStartPay: boolean;
|
autoStartPay: boolean;
|
||||||
}>) => React.ReactElement;
|
}>) => React.ReactElement;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
export default function Info(props: {
|
export default function Info(props: {
|
||||||
price: number;
|
price: number;
|
||||||
t: (k: string) => string;
|
t: (k: string) => string;
|
||||||
|
|
|
||||||
|
|
@ -46,9 +46,7 @@ export default function Render(props) {
|
||||||
return (<ErrorBlock status="default" title={t('paying')}/>);
|
return (<ErrorBlock status="default" title={t('paying')}/>);
|
||||||
}
|
}
|
||||||
if (!legal) {
|
if (!legal) {
|
||||||
return (<ErrorBlock status="default"
|
return (<ErrorBlock status="default" title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
|
||||||
// @oak-ignore
|
|
||||||
title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
|
|
||||||
}
|
}
|
||||||
return (<div className={Styles.container}>
|
return (<div className={Styles.container}>
|
||||||
<Info t={t} price={ToYuan(order.price)}/>
|
<Info t={t} price={ToYuan(order.price)}/>
|
||||||
|
|
|
||||||
|
|
@ -45,9 +45,7 @@ export default function Render(props) {
|
||||||
return (<Result status="warning" title={t('paying')}/>);
|
return (<Result status="warning" title={t('paying')}/>);
|
||||||
}
|
}
|
||||||
if (!legal) {
|
if (!legal) {
|
||||||
return (<Result status="warning"
|
return (<Result status="warning" title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
|
||||||
// @oak-ignore
|
|
||||||
title={t('illegalState', { state: t(`order:v.iState.${order.iState}`) })}/>);
|
|
||||||
}
|
}
|
||||||
return (<div className={Styles.container}>
|
return (<div className={Styles.container}>
|
||||||
<Info t={t} price={ToYuan(order.price)}/>
|
<Info t={t} price={ToYuan(order.price)}/>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
import { PayChannelOption } from "../../../types/Pay";
|
import { PayChannelOption } from "../../../types/Pay";
|
||||||
export default function Render(props: {
|
export default function Render(props: {
|
||||||
data: {
|
data: {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
import { PayChannelOption } from "../../../types/Pay";
|
import { PayChannelOption } from "../../../types/Pay";
|
||||||
export default function Render(props: {
|
export default function Render(props: {
|
||||||
data: {
|
data: {
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,6 @@ export default function Render(props) {
|
||||||
{t('common::back')}
|
{t('common::back')}
|
||||||
</Button>);
|
</Button>);
|
||||||
}
|
}
|
||||||
// @oak-ignore
|
|
||||||
return (<div className={Styles.container}>
|
return (<div className={Styles.container}>
|
||||||
<Card title={t('title')} extra={<Tag color={iStateColor}>{t(`pay:v.iState.${iState}`)}</Tag>}>
|
<Card title={t('title')} extra={<Tag color={iStateColor}>{t(`pay:v.iState.${iState}`)}</Tag>}>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -211,9 +211,7 @@ export default function Render(props) {
|
||||||
</Space>}>
|
</Space>}>
|
||||||
<div className={Styles.container}>
|
<div className={Styles.container}>
|
||||||
<div className={Styles.detail}>
|
<div className={Styles.detail}>
|
||||||
<Descriptions column={1} bordered
|
<Descriptions column={1} bordered items={[
|
||||||
// @oak-ignore
|
|
||||||
items={[
|
|
||||||
{
|
{
|
||||||
key: '0',
|
key: '0',
|
||||||
label: t('type.label'),
|
label: t('type.label'),
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "pay", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "pay", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,6 @@ export default function Render(props) {
|
||||||
'offlineAccount': 'red',
|
'offlineAccount': 'red',
|
||||||
'wpProduct': 'green',
|
'wpProduct': 'green',
|
||||||
};
|
};
|
||||||
// @oak-ignore
|
|
||||||
return (<div>
|
return (<div>
|
||||||
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${row.entity}`)}</Tag>
|
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${row.entity}`)}</Tag>
|
||||||
{entity === 'offlineAccount' && (<div className={Styles.entityDetail}>
|
{entity === 'offlineAccount' && (<div className={Styles.entityDetail}>
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,6 @@ export default function render(props) {
|
||||||
...Object.keys(PayChannelConfigDict).map((ele) => {
|
...Object.keys(PayChannelConfigDict).map((ele) => {
|
||||||
const C = PayChannelConfigDict[ele];
|
const C = PayChannelConfigDict[ele];
|
||||||
return {
|
return {
|
||||||
// @oak-ignore
|
|
||||||
label: (<div className={Styles.systemLabel}>
|
label: (<div className={Styles.systemLabel}>
|
||||||
{t(`${ele}:name`)}
|
{t(`${ele}:name`)}
|
||||||
</div>),
|
</div>),
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "refund", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "refund", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,6 @@ export default function Render(props) {
|
||||||
'offlineAccount': 'red',
|
'offlineAccount': 'red',
|
||||||
'wpProduct': 'green',
|
'wpProduct': 'green',
|
||||||
};
|
};
|
||||||
// @oak-ignore
|
|
||||||
return (<div>
|
return (<div>
|
||||||
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${entity}`)}</Tag>
|
<Tag color={colorDict[entity] || 'gray'}>{t(`payChannel::${entity}`)}</Tag>
|
||||||
<div className={Styles.entityDetail}>{row.payChannel}</div>
|
<div className={Styles.entityDetail}>{row.payChannel}</div>
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "system", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
import { EntityDict } from "../../../../oak-app-domain";
|
import { EntityDict } from "../../../../oak-app-domain";
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "wechatMpShip", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "wechatMpShip", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,10 @@ export default function render(props) {
|
||||||
<Space style={{
|
<Space style={{
|
||||||
marginTop: 22
|
marginTop: 22
|
||||||
}}>
|
}}>
|
||||||
{ships.map((ele, idx) => (<Card key={idx} title={ele.application.name} extra={<Button size="small" icon={<EditOutlined />} type="text" onClick={() => {
|
{ships.map((ele, idx) => (<Card title={ele.application.name} extra={<Button size="small" icon={<EditOutlined />} type="text" onClick={() => {
|
||||||
setUpsertId(ele.id);
|
setUpsertId(ele.id);
|
||||||
}}/>}>
|
}}/>}>
|
||||||
<Detail column={1} bordered entity="wechatMpShip" attributes={[
|
<Detail key={idx} column={1} bordered entity="wechatMpShip" attributes={[
|
||||||
"disabled",
|
"disabled",
|
||||||
"sort",
|
"sort",
|
||||||
]} data={ele}/>
|
]} data={ele}/>
|
||||||
|
|
|
||||||
|
|
@ -130,7 +130,6 @@ export default function render(props) {
|
||||||
if (DetailRender) {
|
if (DetailRender) {
|
||||||
Modal.info({
|
Modal.info({
|
||||||
width: 560,
|
width: 560,
|
||||||
// @oak-ignore
|
|
||||||
title: `${t(`${entity}:name`)}${t('common::action.detail')}`,
|
title: `${t(`${entity}:name`)}${t('common::action.detail')}`,
|
||||||
content: (<DetailRender data={data} systemId={systemId} t={t}/>),
|
content: (<DetailRender data={data} systemId={systemId} t={t}/>),
|
||||||
onOk() { },
|
onOk() { },
|
||||||
|
|
@ -152,12 +151,8 @@ export default function render(props) {
|
||||||
setShowHistoryList(false);
|
setShowHistoryList(false);
|
||||||
}} width={800} title={showHistoryAcc.entity === 'offlineAccount' ?
|
}} width={800} title={showHistoryAcc.entity === 'offlineAccount' ?
|
||||||
(showHistoryAcc.data.type === 'bank' ?
|
(showHistoryAcc.data.type === 'bank' ?
|
||||||
// @oak-ignore
|
|
||||||
`${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.channel}-${t('history')}`
|
`${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.channel}-${t('history')}`
|
||||||
// @oak-ignore
|
: `${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.name}-${t('history')}`) : `${t(`${showHistoryAcc.entity}:name`)}-${t('history')}`} footer={null}>
|
||||||
: `${t(`${showHistoryAcc.entity}:v.type.${showHistoryAcc.data.type}`)}-${showHistoryAcc.data.name}-${t('history')}`
|
|
||||||
// @oak-ignore
|
|
||||||
) : `${t(`${showHistoryAcc.entity}:name`)}-${t('history')}`} footer={null}>
|
|
||||||
<div style={{ height: '65vh' }}>
|
<div style={{ height: '65vh' }}>
|
||||||
<SysAccountOperList entity={showHistoryAcc.entity} entityId={showHistoryAcc.data.id} oakPath="$opb-sysAccount-survery-operList"/>
|
<SysAccountOperList entity={showHistoryAcc.entity} entityId={showHistoryAcc.data.id} oakPath="$opb-sysAccount-survery-operList"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<import("../../../oak-app-domain").EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
import { EntityDict } from "../../../oak-app-domain";
|
import { EntityDict } from "../../../oak-app-domain";
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdraw", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdraw", false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
import { EntityDict } from '../../../oak-app-domain';
|
import { EntityDict } from '../../../oak-app-domain';
|
||||||
export default function render(props: {
|
export default function render(props: {
|
||||||
data: {
|
data: {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="react" />
|
||||||
import { EntityDict } from '../../../oak-app-domain';
|
import { EntityDict } from '../../../oak-app-domain';
|
||||||
export default function render(props: {
|
export default function render(props: {
|
||||||
data: {
|
data: {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ export default function render(props) {
|
||||||
const { t, goBack } = props.methods;
|
const { t, goBack } = props.methods;
|
||||||
if (withdraws?.length) {
|
if (withdraws?.length) {
|
||||||
return (<List>
|
return (<List>
|
||||||
{withdraws.map((ele) => (<List.Item key={ele.id} prefix={<HandPayCircleOutline fontSize={38}/>} extra={<Tag color={ele.iStateColor}>{ele.iState}</Tag>} title={ele.lossDescription} description={ele.createAt} onClick={() => gotoDetail(ele.id)}>
|
{withdraws.map((ele) => (<List.Item prefix={<HandPayCircleOutline fontSize={38}/>} extra={<Tag color={ele.iStateColor}>{ele.iState}</Tag>} title={ele.lossDescription} description={ele.createAt} onClick={() => gotoDetail(ele.id)}>
|
||||||
<>
|
<>
|
||||||
<span style={{ marginRight: 3 }}>{t('common::pay.symbol')}</span>
|
<span style={{ marginRight: 3 }}>{t('common::pay.symbol')}</span>
|
||||||
{ele.price}
|
{ele.price}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="wechat-miniprogram" />
|
||||||
import { EntityDict } from '../../../oak-app-domain';
|
import { EntityDict } from '../../../oak-app-domain';
|
||||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "withdrawTransfer", true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -50,12 +50,9 @@ export default function render(props) {
|
||||||
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
const { accounts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
||||||
const { t, addItem, execute, clean } = props.methods;
|
const { t, addItem, execute, clean } = props.methods;
|
||||||
const getNotNullMessage = (entity, attr) => {
|
const getNotNullMessage = (entity, attr) => {
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
||||||
};
|
};
|
||||||
const errMsg = oakExecutable instanceof OakException && (
|
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
||||||
// @oak-ignore
|
|
||||||
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
|
||||||
const [upsertId, setUpsertId] = useState('');
|
const [upsertId, setUpsertId] = useState('');
|
||||||
const U = (<Modal width={920} destroyOnClose title={`${t('wpAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
|
const U = (<Modal width={920} destroyOnClose title={`${t('wpAccount:name')}${t('common::action.add')}`} open={!!upsertId} onCancel={() => {
|
||||||
clean();
|
clean();
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,9 @@ export default function render(props) {
|
||||||
const { wpAccountId, wpProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
const { wpAccountId, wpProducts, oakFullpath, oakExecutable, canCreate, systemId } = props.data;
|
||||||
const { t, addItem, execute, clean } = props.methods;
|
const { t, addItem, execute, clean } = props.methods;
|
||||||
const getNotNullMessage = (entity, attr) => {
|
const getNotNullMessage = (entity, attr) => {
|
||||||
// @oak-ignore
|
|
||||||
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
return t('notnull', { value: t(`${entity}:attr.${attr}`) });
|
||||||
};
|
};
|
||||||
const errMsg = oakExecutable instanceof OakException && (
|
const errMsg = oakExecutable instanceof OakException && (oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
||||||
// @oak-ignore
|
|
||||||
oakExecutable instanceof OakAttrNotNullException ? getNotNullMessage(oakExecutable.getEntity(), oakExecutable.getAttributes()[0]) : t(oakExecutable.message));
|
|
||||||
const [upsertId, setUpsertId] = useState('');
|
const [upsertId, setUpsertId] = useState('');
|
||||||
const U = (<Modal width={920} destroyOnClose title={`${t('wpProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
|
const U = (<Modal width={920} destroyOnClose title={`${t('wpProduct:name')}${t('common::action.update')}`} open={!!upsertId} onCancel={() => {
|
||||||
clean();
|
clean();
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,7 @@ export default function render(props) {
|
||||||
if (wpProduct) {
|
if (wpProduct) {
|
||||||
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
|
return (<Form labelCol={{ span: 8 }} wrapperCol={{ span: 12 }} layout="horizontal" style={{ minWidth: 560 }}>
|
||||||
<Form.Item label={t('wpProduct:attr.type')}>
|
<Form.Item label={t('wpProduct:attr.type')}>
|
||||||
<Select value={wpProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app'].map(
|
<Select value={wpProduct.type} options={['native', 'mp', 'jsapi', 'h5', 'app'].map(ele => ({
|
||||||
// @oak-ignore
|
|
||||||
ele => ({
|
|
||||||
label: t(`wpProduct:v.type.${ele}`),
|
label: t(`wpProduct:v.type.${ele}`),
|
||||||
value: ele,
|
value: ele,
|
||||||
}))} onSelect={(type) => {
|
}))} onSelect={(type) => {
|
||||||
|
|
|
||||||
|
|
@ -73,10 +73,10 @@ export declare const actionDefDict: {
|
||||||
refund: {
|
refund: {
|
||||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||||
};
|
};
|
||||||
settlement: {
|
settlePlan: {
|
||||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||||
};
|
};
|
||||||
settlePlan: {
|
settlement: {
|
||||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||||
};
|
};
|
||||||
ship: {
|
ship: {
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,8 @@ import { actionDefDict as offlineAccount } from "./OfflineAccount/Action";
|
||||||
import { actionDefDict as order } from "./Order/Action";
|
import { actionDefDict as order } from "./Order/Action";
|
||||||
import { actionDefDict as pay } from "./Pay/Action";
|
import { actionDefDict as pay } from "./Pay/Action";
|
||||||
import { actionDefDict as refund } from "./Refund/Action";
|
import { actionDefDict as refund } from "./Refund/Action";
|
||||||
import { actionDefDict as settlement } from "./Settlement/Action";
|
|
||||||
import { actionDefDict as settlePlan } from "./SettlePlan/Action";
|
import { actionDefDict as settlePlan } from "./SettlePlan/Action";
|
||||||
|
import { actionDefDict as settlement } from "./Settlement/Action";
|
||||||
import { actionDefDict as ship } from "./Ship/Action";
|
import { actionDefDict as ship } from "./Ship/Action";
|
||||||
import { actionDefDict as user } from "./User/Action";
|
import { actionDefDict as user } from "./User/Action";
|
||||||
import { actionDefDict as withdraw } from "./Withdraw/Action";
|
import { actionDefDict as withdraw } from "./Withdraw/Action";
|
||||||
|
|
@ -66,8 +66,8 @@ export const actionDefDict = {
|
||||||
order,
|
order,
|
||||||
pay,
|
pay,
|
||||||
refund,
|
refund,
|
||||||
settlement,
|
|
||||||
settlePlan,
|
settlePlan,
|
||||||
|
settlement,
|
||||||
ship,
|
ship,
|
||||||
user,
|
user,
|
||||||
withdraw,
|
withdraw,
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,6 @@ export const desc = {
|
||||||
isDefault: {
|
isDefault: {
|
||||||
notNull: true,
|
notNull: true,
|
||||||
type: "boolean"
|
type: "boolean"
|
||||||
},
|
|
||||||
allowPwd: {
|
|
||||||
type: "boolean"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionType: "crud",
|
actionType: "crud",
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ export type OpSchema = EntityShape & {
|
||||||
applicationId: ForeignKey<"application">;
|
applicationId: ForeignKey<"application">;
|
||||||
passportId: ForeignKey<"passport">;
|
passportId: ForeignKey<"passport">;
|
||||||
isDefault: Boolean;
|
isDefault: Boolean;
|
||||||
allowPwd?: Boolean | null;
|
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
@ -20,7 +19,6 @@ export type OpFilter = {
|
||||||
applicationId: Q_StringValue;
|
applicationId: Q_StringValue;
|
||||||
passportId: Q_StringValue;
|
passportId: Q_StringValue;
|
||||||
isDefault: Q_BooleanValue;
|
isDefault: Q_BooleanValue;
|
||||||
allowPwd: Q_BooleanValue;
|
|
||||||
} & ExprOp<OpAttr | string>;
|
} & ExprOp<OpAttr | string>;
|
||||||
export type OpProjection = {
|
export type OpProjection = {
|
||||||
"#id"?: NodeId;
|
"#id"?: NodeId;
|
||||||
|
|
@ -32,7 +30,6 @@ export type OpProjection = {
|
||||||
applicationId?: number;
|
applicationId?: number;
|
||||||
passportId?: number;
|
passportId?: number;
|
||||||
isDefault?: number;
|
isDefault?: number;
|
||||||
allowPwd?: number;
|
|
||||||
} & Partial<ExprOp<OpAttr | string>>;
|
} & Partial<ExprOp<OpAttr | string>>;
|
||||||
export type OpSortAttr = Partial<{
|
export type OpSortAttr = Partial<{
|
||||||
id: number;
|
id: number;
|
||||||
|
|
@ -42,7 +39,6 @@ export type OpSortAttr = Partial<{
|
||||||
applicationId: number;
|
applicationId: number;
|
||||||
passportId: number;
|
passportId: number;
|
||||||
isDefault: number;
|
isDefault: number;
|
||||||
allowPwd: number;
|
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} | ExprOp<OpAttr | string>>;
|
} | ExprOp<OpAttr | string>>;
|
||||||
export type OpAction = OakMakeAction<GenericAction | string>;
|
export type OpAction = OakMakeAction<GenericAction | string>;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
"attr": {
|
"attr": {
|
||||||
"application": "应用",
|
"application": "应用",
|
||||||
"passport": "登录方式",
|
"passport": "登录方式",
|
||||||
"isDefault": "是否默认",
|
"isDefault": "是否默认"
|
||||||
"allowPwd": "是否支持密码登录"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ export const desc = {
|
||||||
ref: "application"
|
ref: "application"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unsent", "sending", "sent", "failure"]
|
enumeration: ["unsent", "sending", "sent", "failure"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export type OpSchema = EntityShape & {
|
||||||
expiresAt: Datetime;
|
expiresAt: Datetime;
|
||||||
type: "login" | "changePassword" | "confirm";
|
type: "login" | "changePassword" | "confirm";
|
||||||
applicationId?: ForeignKey<"application"> | null;
|
applicationId?: ForeignKey<"application"> | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ export const desc = {
|
||||||
ref: "ship"
|
ref: "ship"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["depositing", "successful", "failed", "shipped"]
|
enumeration: ["depositing", "successful", "failed", "shipped"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export type OpSchema = EntityShape & {
|
||||||
accountId: ForeignKey<"account">;
|
accountId: ForeignKey<"account">;
|
||||||
creatorId: ForeignKey<"user">;
|
creatorId: ForeignKey<"user">;
|
||||||
shipId?: ForeignKey<"ship"> | null;
|
shipId?: ForeignKey<"ship"> | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -78,8 +78,8 @@ import * as BaseOfflineAccount from "./OfflineAccount/_baseSchema";
|
||||||
import * as BaseOrder from "./Order/_baseSchema";
|
import * as BaseOrder from "./Order/_baseSchema";
|
||||||
import * as BasePay from "./Pay/_baseSchema";
|
import * as BasePay from "./Pay/_baseSchema";
|
||||||
import * as BaseRefund from "./Refund/_baseSchema";
|
import * as BaseRefund from "./Refund/_baseSchema";
|
||||||
import * as BaseSettlement from "./Settlement/_baseSchema";
|
|
||||||
import * as BaseSettlePlan from "./SettlePlan/_baseSchema";
|
import * as BaseSettlePlan from "./SettlePlan/_baseSchema";
|
||||||
|
import * as BaseSettlement from "./Settlement/_baseSchema";
|
||||||
import * as BaseShip from "./Ship/_baseSchema";
|
import * as BaseShip from "./Ship/_baseSchema";
|
||||||
import * as BaseShipCompany from "./ShipCompany/_baseSchema";
|
import * as BaseShipCompany from "./ShipCompany/_baseSchema";
|
||||||
import * as BaseShipOrder from "./ShipOrder/_baseSchema";
|
import * as BaseShipOrder from "./ShipOrder/_baseSchema";
|
||||||
|
|
@ -5249,6 +5249,54 @@ export type Refund = {
|
||||||
Remove: OakOperation<"remove", Refund["RemoveOperationData"], Refund["Filter"], Refund["Sorter"]>;
|
Remove: OakOperation<"remove", Refund["RemoveOperationData"], Refund["Filter"], Refund["Sorter"]>;
|
||||||
Operation: Refund["Create"] | Refund["Update"] | Refund["Remove"];
|
Operation: Refund["Create"] | Refund["Update"] | Refund["Remove"];
|
||||||
};
|
};
|
||||||
|
export type SettlePlan = {
|
||||||
|
OpSchema: BaseSettlePlan.OpSchema;
|
||||||
|
Action: BaseSettlePlan.OpAction;
|
||||||
|
Schema: BaseSettlePlan.OpSchema & {
|
||||||
|
order: Order["Schema"];
|
||||||
|
settlement$plan?: Array<Omit<Settlement["Schema"], "plan">>;
|
||||||
|
settlement$plan$$aggr?: AggregationResult<Omit<Settlement["Schema"], "plan">>;
|
||||||
|
};
|
||||||
|
Projection: BaseSettlePlan.OpProjection & {
|
||||||
|
order?: Order["Projection"];
|
||||||
|
settlement$plan?: OakSelection<"select", Omit<Settlement["Projection"], "settlePlan">, Omit<Settlement["Filter"], "settlePlan">, Settlement["Sorter"]> & {
|
||||||
|
$entity: "settlement";
|
||||||
|
};
|
||||||
|
settlement$plan$$aggr?: DeduceAggregation<Omit<Settlement["Projection"], "settlePlan">, Omit<Settlement["Filter"], "settlePlan">, Settlement["Sorter"]> & {
|
||||||
|
$entity: "settlement";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
FilterUnit: BaseSettlePlan.OpFilter & {
|
||||||
|
order: MakeFilter<Order["FilterUnit"]>;
|
||||||
|
settlement$plan: MakeFilter<Omit<Settlement["FilterUnit"], "plan">> & SubQueryPredicateMetadata;
|
||||||
|
};
|
||||||
|
Filter: MakeFilter<SettlePlan["FilterUnit"]>;
|
||||||
|
SortAttr: Partial<BaseSettlePlan.OpSortAttr | {
|
||||||
|
order: Order["SortAttr"];
|
||||||
|
}>;
|
||||||
|
SortNode: {
|
||||||
|
$attr: SettlePlan["SortAttr"];
|
||||||
|
$direction?: "asc" | "desc";
|
||||||
|
};
|
||||||
|
Sorter: SettlePlan["SortNode"][];
|
||||||
|
Selection: OakSelection<"select", SettlePlan["Projection"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
||||||
|
Aggregation: DeduceAggregation<SettlePlan["Projection"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
||||||
|
CreateOperationData: FormCreateData<BaseSettlePlan.OpSchema & {
|
||||||
|
order?: OakOperation<"create", Order["CreateOperationData"]> | OakOperation<BaseOrder.OpUpdateAction, Order["UpdateOperationData"], Order["Filter"]>;
|
||||||
|
settlement$plan?: (OakOperation<"create", Omit<Settlement["CreateOperationData"], "plan"> | Omit<Settlement["CreateOperationData"], "plan">[]> | OakOperation<BaseSettlement.OpUpdateAction, Omit<Settlement["UpdateOperationData"], "plan">, Settlement["Filter"]>)[];
|
||||||
|
}>;
|
||||||
|
CreateSingle: OakOperation<"create", SettlePlan["CreateOperationData"]>;
|
||||||
|
CreateMulti: OakOperation<"create", Array<SettlePlan["CreateOperationData"]>>;
|
||||||
|
Create: SettlePlan["CreateSingle"] | SettlePlan["CreateMulti"];
|
||||||
|
UpdateOperationData: FormUpdateData<BaseSettlePlan.OpSchema & {
|
||||||
|
order?: OakOperation<"create", Order["CreateOperationData"]> | OakOperation<BaseOrder.OpUpdateAction, Order["UpdateOperationData"], Order["Filter"]> | OakOperation<"remove", Order["RemoveOperationData"], Order["Filter"]>;
|
||||||
|
settlement$plan?: (OakOperation<"create", Omit<Settlement["CreateOperationData"], "plan"> | Omit<Settlement["CreateOperationData"], "plan">[]> | OakOperation<BaseSettlement.OpUpdateAction, Omit<Settlement["UpdateOperationData"], "plan">, Settlement["Filter"]> | OakOperation<"remove", Settlement["RemoveOperationData"], Settlement["Filter"]>)[];
|
||||||
|
}>;
|
||||||
|
Update: OakOperation<BaseSettlePlan.OpUpdateAction, SettlePlan["UpdateOperationData"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
||||||
|
RemoveOperationData: {};
|
||||||
|
Remove: OakOperation<"remove", SettlePlan["RemoveOperationData"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
||||||
|
Operation: SettlePlan["Create"] | SettlePlan["Update"] | SettlePlan["Remove"];
|
||||||
|
};
|
||||||
export type Settlement = {
|
export type Settlement = {
|
||||||
OpSchema: BaseSettlement.OpSchema;
|
OpSchema: BaseSettlement.OpSchema;
|
||||||
Action: BaseSettlement.OpAction;
|
Action: BaseSettlement.OpAction;
|
||||||
|
|
@ -5303,54 +5351,6 @@ export type Settlement = {
|
||||||
Remove: OakOperation<"remove", Settlement["RemoveOperationData"], Settlement["Filter"], Settlement["Sorter"]>;
|
Remove: OakOperation<"remove", Settlement["RemoveOperationData"], Settlement["Filter"], Settlement["Sorter"]>;
|
||||||
Operation: Settlement["Create"] | Settlement["Update"] | Settlement["Remove"];
|
Operation: Settlement["Create"] | Settlement["Update"] | Settlement["Remove"];
|
||||||
};
|
};
|
||||||
export type SettlePlan = {
|
|
||||||
OpSchema: BaseSettlePlan.OpSchema;
|
|
||||||
Action: BaseSettlePlan.OpAction;
|
|
||||||
Schema: BaseSettlePlan.OpSchema & {
|
|
||||||
order: Order["Schema"];
|
|
||||||
settlement$plan?: Array<Omit<Settlement["Schema"], "plan">>;
|
|
||||||
settlement$plan$$aggr?: AggregationResult<Omit<Settlement["Schema"], "plan">>;
|
|
||||||
};
|
|
||||||
Projection: BaseSettlePlan.OpProjection & {
|
|
||||||
order?: Order["Projection"];
|
|
||||||
settlement$plan?: OakSelection<"select", Omit<Settlement["Projection"], "settlePlan">, Omit<Settlement["Filter"], "settlePlan">, Settlement["Sorter"]> & {
|
|
||||||
$entity: "settlement";
|
|
||||||
};
|
|
||||||
settlement$plan$$aggr?: DeduceAggregation<Omit<Settlement["Projection"], "settlePlan">, Omit<Settlement["Filter"], "settlePlan">, Settlement["Sorter"]> & {
|
|
||||||
$entity: "settlement";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
FilterUnit: BaseSettlePlan.OpFilter & {
|
|
||||||
order: MakeFilter<Order["FilterUnit"]>;
|
|
||||||
settlement$plan: MakeFilter<Omit<Settlement["FilterUnit"], "plan">> & SubQueryPredicateMetadata;
|
|
||||||
};
|
|
||||||
Filter: MakeFilter<SettlePlan["FilterUnit"]>;
|
|
||||||
SortAttr: Partial<BaseSettlePlan.OpSortAttr | {
|
|
||||||
order: Order["SortAttr"];
|
|
||||||
}>;
|
|
||||||
SortNode: {
|
|
||||||
$attr: SettlePlan["SortAttr"];
|
|
||||||
$direction?: "asc" | "desc";
|
|
||||||
};
|
|
||||||
Sorter: SettlePlan["SortNode"][];
|
|
||||||
Selection: OakSelection<"select", SettlePlan["Projection"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
|
||||||
Aggregation: DeduceAggregation<SettlePlan["Projection"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
|
||||||
CreateOperationData: FormCreateData<BaseSettlePlan.OpSchema & {
|
|
||||||
order?: OakOperation<"create", Order["CreateOperationData"]> | OakOperation<BaseOrder.OpUpdateAction, Order["UpdateOperationData"], Order["Filter"]>;
|
|
||||||
settlement$plan?: (OakOperation<"create", Omit<Settlement["CreateOperationData"], "plan"> | Omit<Settlement["CreateOperationData"], "plan">[]> | OakOperation<BaseSettlement.OpUpdateAction, Omit<Settlement["UpdateOperationData"], "plan">, Settlement["Filter"]>)[];
|
|
||||||
}>;
|
|
||||||
CreateSingle: OakOperation<"create", SettlePlan["CreateOperationData"]>;
|
|
||||||
CreateMulti: OakOperation<"create", Array<SettlePlan["CreateOperationData"]>>;
|
|
||||||
Create: SettlePlan["CreateSingle"] | SettlePlan["CreateMulti"];
|
|
||||||
UpdateOperationData: FormUpdateData<BaseSettlePlan.OpSchema & {
|
|
||||||
order?: OakOperation<"create", Order["CreateOperationData"]> | OakOperation<BaseOrder.OpUpdateAction, Order["UpdateOperationData"], Order["Filter"]> | OakOperation<"remove", Order["RemoveOperationData"], Order["Filter"]>;
|
|
||||||
settlement$plan?: (OakOperation<"create", Omit<Settlement["CreateOperationData"], "plan"> | Omit<Settlement["CreateOperationData"], "plan">[]> | OakOperation<BaseSettlement.OpUpdateAction, Omit<Settlement["UpdateOperationData"], "plan">, Settlement["Filter"]> | OakOperation<"remove", Settlement["RemoveOperationData"], Settlement["Filter"]>)[];
|
|
||||||
}>;
|
|
||||||
Update: OakOperation<BaseSettlePlan.OpUpdateAction, SettlePlan["UpdateOperationData"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
|
||||||
RemoveOperationData: {};
|
|
||||||
Remove: OakOperation<"remove", SettlePlan["RemoveOperationData"], SettlePlan["Filter"], SettlePlan["Sorter"]>;
|
|
||||||
Operation: SettlePlan["Create"] | SettlePlan["Update"] | SettlePlan["Remove"];
|
|
||||||
};
|
|
||||||
export type Ship = {
|
export type Ship = {
|
||||||
OpSchema: BaseShip.OpSchema;
|
OpSchema: BaseShip.OpSchema;
|
||||||
Action: BaseShip.OpAction;
|
Action: BaseShip.OpAction;
|
||||||
|
|
@ -6343,8 +6343,8 @@ export type EntityDict = {
|
||||||
order: Order;
|
order: Order;
|
||||||
pay: Pay;
|
pay: Pay;
|
||||||
refund: Refund;
|
refund: Refund;
|
||||||
settlement: Settlement;
|
|
||||||
settlePlan: SettlePlan;
|
settlePlan: SettlePlan;
|
||||||
|
settlement: Settlement;
|
||||||
ship: Ship;
|
ship: Ship;
|
||||||
shipCompany: ShipCompany;
|
shipCompany: ShipCompany;
|
||||||
shipOrder: ShipOrder;
|
shipOrder: ShipOrder;
|
||||||
|
|
|
||||||
|
|
@ -107,13 +107,6 @@ export const desc = {
|
||||||
notNull: true,
|
notNull: true,
|
||||||
type: "ref",
|
type: "ref",
|
||||||
ref: "application"
|
ref: "application"
|
||||||
},
|
|
||||||
// 分片续传配置
|
|
||||||
enableChunkedUpload: {
|
|
||||||
type: "boolean"
|
|
||||||
},
|
|
||||||
chunkInfo: {
|
|
||||||
type: "object"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionType: "crud",
|
actionType: "crud",
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,9 @@
|
||||||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand";
|
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||||
import { CosOrigin } from "oak-general-business/lib/types/Config";
|
import { CosOrigin } from "oak-general-business/lib/types/Config";
|
||||||
import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType";
|
import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType";
|
||||||
type ChunkInfo = {
|
|
||||||
chunkSize: number;
|
|
||||||
partCount: number;
|
|
||||||
uploadId: string;
|
|
||||||
merged: boolean;
|
|
||||||
parts: Array<string>;
|
|
||||||
};
|
|
||||||
export type OpSchema = EntityShape & {
|
export type OpSchema = EntityShape & {
|
||||||
origin: CosOrigin;
|
origin: CosOrigin;
|
||||||
type: "image" | "video" | "audio" | "file";
|
type: "image" | "video" | "audio" | "file";
|
||||||
|
|
@ -32,8 +25,6 @@ export type OpSchema = EntityShape & {
|
||||||
uploadState: "success" | "failed" | "uploading";
|
uploadState: "success" | "failed" | "uploading";
|
||||||
uploadMeta?: Object | null;
|
uploadMeta?: Object | null;
|
||||||
applicationId: ForeignKey<"application">;
|
applicationId: ForeignKey<"application">;
|
||||||
enableChunkedUpload?: Boolean | null;
|
|
||||||
chunkInfo?: ChunkInfo | null;
|
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
@ -63,8 +54,6 @@ export type OpFilter = {
|
||||||
uploadState: Q_EnumValue<"success" | "failed" | "uploading">;
|
uploadState: Q_EnumValue<"success" | "failed" | "uploading">;
|
||||||
uploadMeta: Object;
|
uploadMeta: Object;
|
||||||
applicationId: Q_StringValue;
|
applicationId: Q_StringValue;
|
||||||
enableChunkedUpload: Q_BooleanValue;
|
|
||||||
chunkInfo: JsonFilter<ChunkInfo>;
|
|
||||||
} & ExprOp<OpAttr | string>;
|
} & ExprOp<OpAttr | string>;
|
||||||
export type OpProjection = {
|
export type OpProjection = {
|
||||||
"#id"?: NodeId;
|
"#id"?: NodeId;
|
||||||
|
|
@ -93,8 +82,6 @@ export type OpProjection = {
|
||||||
uploadState?: number;
|
uploadState?: number;
|
||||||
uploadMeta?: number | Object;
|
uploadMeta?: number | Object;
|
||||||
applicationId?: number;
|
applicationId?: number;
|
||||||
enableChunkedUpload?: number;
|
|
||||||
chunkInfo?: number | JsonProjection<ChunkInfo>;
|
|
||||||
} & Partial<ExprOp<OpAttr | string>>;
|
} & Partial<ExprOp<OpAttr | string>>;
|
||||||
export type OpSortAttr = Partial<{
|
export type OpSortAttr = Partial<{
|
||||||
id: number;
|
id: number;
|
||||||
|
|
@ -119,10 +106,7 @@ export type OpSortAttr = Partial<{
|
||||||
isBridge: number;
|
isBridge: number;
|
||||||
uploadState: number;
|
uploadState: number;
|
||||||
applicationId: number;
|
applicationId: number;
|
||||||
enableChunkedUpload: number;
|
|
||||||
chunkInfo: number;
|
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} | ExprOp<OpAttr | string>>;
|
} | ExprOp<OpAttr | string>>;
|
||||||
export type OpAction = OakMakeAction<GenericAction | string>;
|
export type OpAction = OakMakeAction<GenericAction | string>;
|
||||||
export type OpUpdateAction = "update" | string;
|
export type OpUpdateAction = "update" | string;
|
||||||
export {};
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,7 @@
|
||||||
"isBridge": "是否桥接访问",
|
"isBridge": "是否桥接访问",
|
||||||
"uploadState": "上传状态",
|
"uploadState": "上传状态",
|
||||||
"uploadMeta": "上传需要的metadata",
|
"uploadMeta": "上传需要的metadata",
|
||||||
"application": "来源应用",
|
"application": "来源应用"
|
||||||
"enableChunkedUpload": "是否启用分片续传",
|
|
||||||
"chunkInfo": "分片续传信息"
|
|
||||||
},
|
},
|
||||||
"v": {
|
"v": {
|
||||||
"origin": {
|
"origin": {
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,6 @@ export const desc = {
|
||||||
enumeration: ["sending", "success", "failure"]
|
enumeration: ["sending", "success", "failure"]
|
||||||
},
|
},
|
||||||
visitState: {
|
visitState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unvisited", "visited"]
|
enumeration: ["unvisited", "visited"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,6 @@ export type Router = {
|
||||||
type MessageRestriction = {
|
type MessageRestriction = {
|
||||||
systemIds?: string[];
|
systemIds?: string[];
|
||||||
channels?: Array<Channel>;
|
channels?: Array<Channel>;
|
||||||
disableRouter?: {
|
|
||||||
[key: Channel]: boolean;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
type Channels = Channel[];
|
type Channels = Channel[];
|
||||||
export type OpSchema = EntityShape & {
|
export type OpSchema = EntityShape & {
|
||||||
|
|
@ -32,7 +29,7 @@ export type OpSchema = EntityShape & {
|
||||||
platformId?: ForeignKey<"platform"> | null;
|
platformId?: ForeignKey<"platform"> | null;
|
||||||
channels?: Channels | null;
|
channels?: Channels | null;
|
||||||
iState?: IState | null;
|
iState?: IState | null;
|
||||||
visitState: VisitState;
|
visitState?: VisitState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ export const desc = {
|
||||||
type: "object"
|
type: "object"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["active", "applied", "abandoned"]
|
enumeration: ["active", "applied", "abandoned"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ export type OpSchema = EntityShape & {
|
||||||
data: Object;
|
data: Object;
|
||||||
filter?: Object | null;
|
filter?: Object | null;
|
||||||
extra?: Object | null;
|
extra?: Object | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ export const desc = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["sending", "success", "failure"]
|
enumeration: ["sending", "success", "failure"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ export type OpSchema = EntityShape & {
|
||||||
data1?: Object | null;
|
data1?: Object | null;
|
||||||
data2?: Object | null;
|
data2?: Object | null;
|
||||||
templateId?: String<128> | null;
|
templateId?: String<128> | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -58,18 +58,5 @@ export const desc = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionType: "crud",
|
actionType: "crud",
|
||||||
actions,
|
actions
|
||||||
indexes: [
|
|
||||||
{
|
|
||||||
// 业务上可能涉及的间接授权查询,建立索引以避免全表扫描
|
|
||||||
name: 'idx_oauthUser_composite',
|
|
||||||
attributes: [{
|
|
||||||
name: "userId",
|
|
||||||
}, {
|
|
||||||
name: 'providerUserId',
|
|
||||||
}, {
|
|
||||||
name: "providerConfigId",
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ export const desc = {
|
||||||
type: "object"
|
type: "object"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["normal", "rollbacked"]
|
enumeration: ["normal", "rollbacked"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ export type OpSchema = EntityShape & {
|
||||||
bornAt?: Datetime | null;
|
bornAt?: Datetime | null;
|
||||||
logId?: ForeignKey<"log"> | null;
|
logId?: ForeignKey<"log"> | null;
|
||||||
undoData?: Object | null;
|
undoData?: Object | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unpaid", "timeout", "cancelled", "paying", "partiallyPaid", "paid", "refunding", "partiallyRefunded", "refunded"]
|
enumeration: ["unpaid", "timeout", "cancelled", "paying", "partiallyPaid", "paid", "refunding", "partiallyRefunded", "refunded"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ export type OpSchema = EntityShape & {
|
||||||
systemId: ForeignKey<"system">;
|
systemId: ForeignKey<"system">;
|
||||||
addressId?: ForeignKey<"address"> | null;
|
addressId?: ForeignKey<"address"> | null;
|
||||||
payAt?: Datetime | null;
|
payAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export const desc = {
|
||||||
type: {
|
type: {
|
||||||
notNull: true,
|
notNull: true,
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["password", "sms", "email", "wechatWeb", "wechatMp", "wechatPublic", "wechatPublicForWeb", "wechatMpForWeb", "wechatNative", "loginName", "oauth"]
|
enumeration: ["password", "sms", "email", "wechatWeb", "wechatMp", "wechatPublic", "wechatPublicForWeb", "wechatMpForWeb", "wechatNative"]
|
||||||
},
|
},
|
||||||
config: {
|
config: {
|
||||||
type: "object"
|
type: "object"
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,7 @@ export const style = {
|
||||||
wechatMp: '#ADDCCA',
|
wechatMp: '#ADDCCA',
|
||||||
wechatMpForWeb: '#FDC454',
|
wechatMpForWeb: '#FDC454',
|
||||||
wechatPublicForWeb: '#C0A27C',
|
wechatPublicForWeb: '#C0A27C',
|
||||||
wechatNative: '#C0A27C',
|
wechatNative: '#C0A27C'
|
||||||
loginName: '#456B3C',
|
|
||||||
oauth: '#3C4655',
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue,
|
||||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||||
import { GenericAction } from "oak-domain/lib/actions/action";
|
import { GenericAction } from "oak-domain/lib/actions/action";
|
||||||
import { Boolean } from "oak-domain/lib/types/DataType";
|
import { Boolean } from "oak-domain/lib/types/DataType";
|
||||||
export type Type = "password" | "sms" | "email" | "wechatWeb" | "wechatMp" | "wechatPublic" | "wechatPublicForWeb" | "wechatMpForWeb" | "wechatNative" | "loginName" | "oauth";
|
export type Type = "password" | "sms" | "email" | "wechatWeb" | "wechatMp" | "wechatPublic" | "wechatPublicForWeb" | "wechatMpForWeb" | "wechatNative";
|
||||||
export type SmsConfig = {
|
export type SmsConfig = {
|
||||||
mockSend?: boolean;
|
mockSend?: boolean;
|
||||||
defaultOrigin?: "ali" | "tencent" | "ctyun";
|
defaultOrigin?: "ali" | "tencent" | "ctyun";
|
||||||
|
|
@ -35,21 +35,10 @@ export type PwdConfig = {
|
||||||
regexs?: string[];
|
regexs?: string[];
|
||||||
tip?: string;
|
tip?: string;
|
||||||
};
|
};
|
||||||
export type NameConfig = {
|
|
||||||
min?: number;
|
|
||||||
max?: number;
|
|
||||||
verify?: boolean;
|
|
||||||
regexs?: string[];
|
|
||||||
register?: boolean;
|
|
||||||
tip?: string;
|
|
||||||
};
|
|
||||||
export type OAuthConfig = {
|
|
||||||
oauthIds: string[];
|
|
||||||
};
|
|
||||||
export type OpSchema = EntityShape & {
|
export type OpSchema = EntityShape & {
|
||||||
systemId: ForeignKey<"system">;
|
systemId: ForeignKey<"system">;
|
||||||
type: Type;
|
type: Type;
|
||||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig | NameConfig | OAuthConfig) | null;
|
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig) | null;
|
||||||
enabled: Boolean;
|
enabled: Boolean;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
|
|
@ -62,7 +51,7 @@ export type OpFilter = {
|
||||||
$$updateAt$$: Q_DateValue;
|
$$updateAt$$: Q_DateValue;
|
||||||
systemId: Q_StringValue;
|
systemId: Q_StringValue;
|
||||||
type: Q_EnumValue<Type>;
|
type: Q_EnumValue<Type>;
|
||||||
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig | NameConfig | OAuthConfig>;
|
config: JsonFilter<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||||
enabled: Q_BooleanValue;
|
enabled: Q_BooleanValue;
|
||||||
} & ExprOp<OpAttr | string>;
|
} & ExprOp<OpAttr | string>;
|
||||||
export type OpProjection = {
|
export type OpProjection = {
|
||||||
|
|
@ -74,7 +63,7 @@ export type OpProjection = {
|
||||||
$$seq$$?: number;
|
$$seq$$?: number;
|
||||||
systemId?: number;
|
systemId?: number;
|
||||||
type?: number;
|
type?: number;
|
||||||
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig | NameConfig | OAuthConfig>;
|
config?: number | JsonProjection<SmsConfig | EmailConfig | PfwConfig | MfwConfig | PwdConfig>;
|
||||||
enabled?: number;
|
enabled?: number;
|
||||||
} & Partial<ExprOp<OpAttr | string>>;
|
} & Partial<ExprOp<OpAttr | string>>;
|
||||||
export type OpSortAttr = Partial<{
|
export type OpSortAttr = Partial<{
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,14 @@
|
||||||
"v": {
|
"v": {
|
||||||
"type": {
|
"type": {
|
||||||
"email": "邮箱",
|
"email": "邮箱",
|
||||||
"sms": "手机号",
|
"sms": "短信",
|
||||||
"password": "密码",
|
"password": "密码",
|
||||||
"wechatMp": "小程序",
|
"wechatMp": "小程序",
|
||||||
"wechatPublic": "公众号",
|
"wechatPublic": "公众号",
|
||||||
"wechatWeb": "微信网站",
|
"wechatWeb": "微信网站",
|
||||||
"wechatMpForWeb": "小程序授权网页",
|
"wechatMpForWeb": "小程序授权网页",
|
||||||
"wechatPublicForWeb": "公众号授权网页",
|
"wechatPublicForWeb": "公众号授权网页",
|
||||||
"wechatNative": "微信APP授权",
|
"wechatNative": "微信APP授权"
|
||||||
"loginName": "账号",
|
|
||||||
"oauth": "OAuth授权"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,6 @@ export const desc = {
|
||||||
type: "boolean"
|
type: "boolean"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unpaid", "paying", "paid", "closed", "refunding", "partiallyRefunded", "refunded"]
|
enumeration: ["unpaid", "paying", "paid", "closed", "refunding", "partiallyRefunded", "refunded"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ export type OpSchema = EntityShape & {
|
||||||
phantom4?: Int<8> | null;
|
phantom4?: Int<8> | null;
|
||||||
phantom5?: Object | null;
|
phantom5?: Object | null;
|
||||||
autoStart?: Boolean | null;
|
autoStart?: Boolean | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["refunding", "successful", "failed"]
|
enumeration: ["refunding", "successful", "failed"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export type OpSchema = EntityShape & {
|
||||||
creatorId: ForeignKey<"user">;
|
creatorId: ForeignKey<"user">;
|
||||||
reason?: Text | null;
|
reason?: Text | null;
|
||||||
successAt?: Datetime | null;
|
successAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unsettled", "settled", "closed"]
|
enumeration: ["unsettled", "settled", "closed"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export type OpSchema = EntityShape & {
|
||||||
price: Price;
|
price: Price;
|
||||||
settledAt?: Datetime | null;
|
settledAt?: Datetime | null;
|
||||||
closedAt?: Datetime | null;
|
closedAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unsettled", "settled", "closed"]
|
enumeration: ["unsettled", "settled", "closed"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export type OpSchema = EntityShape & {
|
||||||
price: Price;
|
price: Price;
|
||||||
settledAt?: Datetime | null;
|
settledAt?: Datetime | null;
|
||||||
closedAt?: Datetime | null;
|
closedAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unshipped", "shipping", "cancelled", "received", "rejected", "unknown", "receiving"]
|
enumeration: ["unshipped", "shipping", "cancelled", "received", "rejected", "unknown", "receiving"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ export type OpSchema = EntityShape & {
|
||||||
extraShipId?: String<128> | null;
|
extraShipId?: String<128> | null;
|
||||||
extraPaths?: Paths | null;
|
extraPaths?: Paths | null;
|
||||||
receiveAt?: Datetime | null;
|
receiveAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -76,8 +76,8 @@ import { desc as offlineAccountDesc } from "./OfflineAccount/Storage";
|
||||||
import { desc as orderDesc } from "./Order/Storage";
|
import { desc as orderDesc } from "./Order/Storage";
|
||||||
import { desc as payDesc } from "./Pay/Storage";
|
import { desc as payDesc } from "./Pay/Storage";
|
||||||
import { desc as refundDesc } from "./Refund/Storage";
|
import { desc as refundDesc } from "./Refund/Storage";
|
||||||
import { desc as settlementDesc } from "./Settlement/Storage";
|
|
||||||
import { desc as settlePlanDesc } from "./SettlePlan/Storage";
|
import { desc as settlePlanDesc } from "./SettlePlan/Storage";
|
||||||
|
import { desc as settlementDesc } from "./Settlement/Storage";
|
||||||
import { desc as shipDesc } from "./Ship/Storage";
|
import { desc as shipDesc } from "./Ship/Storage";
|
||||||
import { desc as shipCompanyDesc } from "./ShipCompany/Storage";
|
import { desc as shipCompanyDesc } from "./ShipCompany/Storage";
|
||||||
import { desc as shipOrderDesc } from "./ShipOrder/Storage";
|
import { desc as shipOrderDesc } from "./ShipOrder/Storage";
|
||||||
|
|
@ -172,8 +172,8 @@ export const storageSchema = {
|
||||||
order: orderDesc,
|
order: orderDesc,
|
||||||
pay: payDesc,
|
pay: payDesc,
|
||||||
refund: refundDesc,
|
refund: refundDesc,
|
||||||
settlement: settlementDesc,
|
|
||||||
settlePlan: settlePlanDesc,
|
settlePlan: settlePlanDesc,
|
||||||
|
settlement: settlementDesc,
|
||||||
ship: shipDesc,
|
ship: shipDesc,
|
||||||
shipCompany: shipCompanyDesc,
|
shipCompany: shipCompanyDesc,
|
||||||
shipOrder: shipOrderDesc,
|
shipOrder: shipOrderDesc,
|
||||||
|
|
|
||||||
|
|
@ -39,8 +39,8 @@ import { style as offlineAccount } from "./OfflineAccount/Style";
|
||||||
import { style as order } from "./Order/Style";
|
import { style as order } from "./Order/Style";
|
||||||
import { style as pay } from "./Pay/Style";
|
import { style as pay } from "./Pay/Style";
|
||||||
import { style as refund } from "./Refund/Style";
|
import { style as refund } from "./Refund/Style";
|
||||||
import { style as settlement } from "./Settlement/Style";
|
|
||||||
import { style as settlePlan } from "./SettlePlan/Style";
|
import { style as settlePlan } from "./SettlePlan/Style";
|
||||||
|
import { style as settlement } from "./Settlement/Style";
|
||||||
import { style as ship } from "./Ship/Style";
|
import { style as ship } from "./Ship/Style";
|
||||||
import { style as sysAccountOper } from "./SysAccountOper/Style";
|
import { style as sysAccountOper } from "./SysAccountOper/Style";
|
||||||
import { style as user } from "./User/Style";
|
import { style as user } from "./User/Style";
|
||||||
|
|
@ -92,8 +92,8 @@ export const styleDict = {
|
||||||
order,
|
order,
|
||||||
pay,
|
pay,
|
||||||
refund,
|
refund,
|
||||||
settlement,
|
|
||||||
settlePlan,
|
settlePlan,
|
||||||
|
settlement,
|
||||||
ship,
|
ship,
|
||||||
sysAccountOper,
|
sysAccountOper,
|
||||||
user,
|
user,
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,7 @@ export const desc = {
|
||||||
type: "ref",
|
type: "ref",
|
||||||
ref: "platform"
|
ref: "platform"
|
||||||
},
|
},
|
||||||
folder // 提现的loss在用户提现时计算
|
folder: {
|
||||||
: {
|
|
||||||
type: "varchar",
|
type: "varchar",
|
||||||
params: {
|
params: {
|
||||||
length: 16
|
length: 16
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
idState: {
|
idState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["unverified", "verified", "verifying"]
|
enumeration: ["unverified", "verified", "verifying"]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ export type OpSchema = EntityShape & {
|
||||||
isRoot?: Boolean | null;
|
isRoot?: Boolean | null;
|
||||||
hasPassword?: Boolean | null;
|
hasPassword?: Boolean | null;
|
||||||
verifyPasswordAt?: Datetime | null;
|
verifyPasswordAt?: Datetime | null;
|
||||||
idState: IdState;
|
idState?: IdState | null;
|
||||||
userState?: UserState | null;
|
userState?: UserState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["wait", "success", "fail"]
|
enumeration: ["wait", "success", "fail"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ export type OpSchema = EntityShape & {
|
||||||
wechatUserId: ForeignKey<"wechatUser">;
|
wechatUserId: ForeignKey<"wechatUser">;
|
||||||
sync: Boolean;
|
sync: Boolean;
|
||||||
syncAt: Datetime;
|
syncAt: Datetime;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,6 @@ export const desc = {
|
||||||
wechatUserId: {
|
wechatUserId: {
|
||||||
type: "ref",
|
type: "ref",
|
||||||
ref: "wechatUser"
|
ref: "wechatUser"
|
||||||
},
|
|
||||||
router: {
|
|
||||||
type: "object"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actionType: "crud",
|
actionType: "crud",
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,9 @@
|
||||||
import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType";
|
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||||
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand";
|
import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey } from "oak-domain/lib/types/Demand";
|
||||||
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity";
|
||||||
import { Action, ParticularAction } from "./Action";
|
import { Action, ParticularAction } from "./Action";
|
||||||
import { Boolean, Text, Datetime } from "oak-domain/lib/types/DataType";
|
import { Boolean, Text, Datetime } from "oak-domain/lib/types/DataType";
|
||||||
import { QrCodeType } from "oak-general-business/lib/types/Config";
|
import { QrCodeType } from "oak-general-business/lib/types/Config";
|
||||||
type Router = {
|
|
||||||
pathname: string;
|
|
||||||
props?: Record<string, any>;
|
|
||||||
state?: Record<string, any>;
|
|
||||||
};
|
|
||||||
export type OpSchema = EntityShape & {
|
export type OpSchema = EntityShape & {
|
||||||
userId?: ForeignKey<"user"> | null;
|
userId?: ForeignKey<"user"> | null;
|
||||||
type: "bind" | "login";
|
type: "bind" | "login";
|
||||||
|
|
@ -18,7 +13,6 @@ export type OpSchema = EntityShape & {
|
||||||
expiresAt?: Datetime | null;
|
expiresAt?: Datetime | null;
|
||||||
expired?: Boolean | null;
|
expired?: Boolean | null;
|
||||||
wechatUserId?: ForeignKey<"wechatUser"> | null;
|
wechatUserId?: ForeignKey<"wechatUser"> | null;
|
||||||
router?: Router | null;
|
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
@ -36,7 +30,6 @@ export type OpFilter = {
|
||||||
expiresAt: Q_DateValue;
|
expiresAt: Q_DateValue;
|
||||||
expired: Q_BooleanValue;
|
expired: Q_BooleanValue;
|
||||||
wechatUserId: Q_StringValue;
|
wechatUserId: Q_StringValue;
|
||||||
router: JsonFilter<Router>;
|
|
||||||
} & ExprOp<OpAttr | string>;
|
} & ExprOp<OpAttr | string>;
|
||||||
export type OpProjection = {
|
export type OpProjection = {
|
||||||
"#id"?: NodeId;
|
"#id"?: NodeId;
|
||||||
|
|
@ -53,7 +46,6 @@ export type OpProjection = {
|
||||||
expiresAt?: number;
|
expiresAt?: number;
|
||||||
expired?: number;
|
expired?: number;
|
||||||
wechatUserId?: number;
|
wechatUserId?: number;
|
||||||
router?: number | JsonProjection<Router>;
|
|
||||||
} & Partial<ExprOp<OpAttr | string>>;
|
} & Partial<ExprOp<OpAttr | string>>;
|
||||||
export type OpSortAttr = Partial<{
|
export type OpSortAttr = Partial<{
|
||||||
id: number;
|
id: number;
|
||||||
|
|
@ -68,9 +60,7 @@ export type OpSortAttr = Partial<{
|
||||||
expiresAt: number;
|
expiresAt: number;
|
||||||
expired: number;
|
expired: number;
|
||||||
wechatUserId: number;
|
wechatUserId: number;
|
||||||
router: number;
|
|
||||||
[k: string]: any;
|
[k: string]: any;
|
||||||
} | ExprOp<OpAttr | string>>;
|
} | ExprOp<OpAttr | string>>;
|
||||||
export type OpAction = OakMakeAction<Action | string>;
|
export type OpAction = OakMakeAction<Action | string>;
|
||||||
export type OpUpdateAction = "update" | ParticularAction | string;
|
export type OpUpdateAction = "update" | ParticularAction | string;
|
||||||
export {};
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,7 @@
|
||||||
"expiresAt": "过期时间",
|
"expiresAt": "过期时间",
|
||||||
"qrCodeType": "二维码类型",
|
"qrCodeType": "二维码类型",
|
||||||
"tokens": "相关令牌",
|
"tokens": "相关令牌",
|
||||||
"wechatUser": "微信用户",
|
"wechatUser": "微信用户"
|
||||||
"router": "目标路由"
|
|
||||||
},
|
},
|
||||||
"action": {
|
"action": {
|
||||||
"success": "成功"
|
"success": "成功"
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ export const desc = {
|
||||||
ref: "wechatPublicTag"
|
ref: "wechatPublicTag"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["wait", "success", "fail"]
|
enumeration: ["wait", "success", "fail"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ export type OpSchema = EntityShape & {
|
||||||
menuConfig: Config;
|
menuConfig: Config;
|
||||||
applicationId: ForeignKey<"application">;
|
applicationId: ForeignKey<"application">;
|
||||||
wechatPublicTagId?: ForeignKey<"wechatPublicTag"> | null;
|
wechatPublicTagId?: ForeignKey<"wechatPublicTag"> | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,6 @@ export const desc = {
|
||||||
type: "datetime"
|
type: "datetime"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["wait", "success", "fail"]
|
enumeration: ["wait", "success", "fail"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ export type OpSchema = EntityShape & {
|
||||||
wechatId?: Uint<4> | null;
|
wechatId?: Uint<4> | null;
|
||||||
sync?: Boolean | null;
|
sync?: Boolean | null;
|
||||||
syncAt?: Datetime | null;
|
syncAt?: Datetime | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ export const desc = {
|
||||||
type: "object"
|
type: "object"
|
||||||
},
|
},
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["withdrawing", "successful", "partiallySuccessful", "failed", "applying"]
|
enumeration: ["withdrawing", "successful", "partiallySuccessful", "failed", "applying"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ export type OpSchema = EntityShape & {
|
||||||
creatorId: ForeignKey<"user">;
|
creatorId: ForeignKey<"user">;
|
||||||
reason?: Text | null;
|
reason?: Text | null;
|
||||||
meta?: Object | null;
|
meta?: Object | null;
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
} & {
|
} & {
|
||||||
[A in ExpressionKey]?: any;
|
[A in ExpressionKey]?: any;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ import { actions } from "./Action";
|
||||||
export const desc = {
|
export const desc = {
|
||||||
attributes: {
|
attributes: {
|
||||||
iState: {
|
iState: {
|
||||||
notNull: true,
|
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enumeration: ["transferring", "successful", "failed"]
|
enumeration: ["transferring", "successful", "failed"]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/E
|
||||||
import { Action, ParticularAction, IState } from "./Action";
|
import { Action, ParticularAction, IState } from "./Action";
|
||||||
import { Price, String, Text } from "oak-domain/lib/types/DataType";
|
import { Price, String, Text } from "oak-domain/lib/types/DataType";
|
||||||
export type OpSchema = EntityShape & {
|
export type OpSchema = EntityShape & {
|
||||||
iState: IState;
|
iState?: IState | null;
|
||||||
withdrawId: ForeignKey<"withdraw">;
|
withdrawId: ForeignKey<"withdraw">;
|
||||||
withdrawAccountId: ForeignKey<"withdrawAccount">;
|
withdrawAccountId: ForeignKey<"withdrawAccount">;
|
||||||
price: Price;
|
price: Price;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { Timer } from 'oak-domain/lib/types/Timer';
|
import { Timer } from 'oak-domain/lib/types/Timer';
|
||||||
import { EntityDict } from '../oak-app-domain/index';
|
import { EntityDict } from '../oak-app-domain/index';
|
||||||
import { BRC } from '../types/RuntimeCxt';
|
import { BRC } from '../types/RuntimeCxt';
|
||||||
declare const _default: Array<Timer<EntityDict, keyof EntityDict, BRC>>;
|
declare const _default: Timer<EntityDict, keyof EntityDict, BRC>[];
|
||||||
export default _default;
|
export default _default;
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@ import { BRC } from '../types/RuntimeCxt';
|
||||||
* @param context
|
* @param context
|
||||||
* @param refunds
|
* @param refunds
|
||||||
*/
|
*/
|
||||||
export declare function updateWithdrawState(context: BRC, id: string): Promise<0 | 1>;
|
export declare function updateWithdrawState(context: BRC, id: string): Promise<1 | 0>;
|
||||||
declare const triggers: Trigger<EntityDict, 'withdraw', BRC>[];
|
declare const triggers: Trigger<EntityDict, 'withdraw', BRC>[];
|
||||||
export default triggers;
|
export default triggers;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// <reference types="node" />
|
||||||
import { EntityDict } from '../oak-app-domain';
|
import { EntityDict } from '../oak-app-domain';
|
||||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||||
import BackendRuntimeContext from '../context/BackendRuntimeContext';
|
import BackendRuntimeContext from '../context/BackendRuntimeContext';
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,12 @@ export default class Account implements PayClazz {
|
||||||
getRefundState(refund: EntityDict['refund']['Schema']): Promise<[EntityDict['refund']['Schema']['iState'], undefined]>;
|
getRefundState(refund: EntityDict['refund']['Schema']): Promise<[EntityDict['refund']['Schema']['iState'], undefined]>;
|
||||||
decodePayNotification(params: Record<string, any>, body: any): Promise<{
|
decodePayNotification(params: Record<string, any>, body: any): Promise<{
|
||||||
payId: string;
|
payId: string;
|
||||||
iState: EntityDict['pay']['Schema']['iState'];
|
iState: string | null | undefined;
|
||||||
extra?: EntityDict['pay']['Update']['data'] | undefined;
|
extra?: EntityDict['pay']['Update']['data'] | undefined;
|
||||||
}>;
|
}>;
|
||||||
decodeRefundNotification(params: Record<string, any>, body: any): Promise<{
|
decodeRefundNotification(params: Record<string, any>, body: any): Promise<{
|
||||||
refundId: string;
|
refundId: string;
|
||||||
iState: EntityDict['refund']['OpSchema']['iState'];
|
iState: string | null | undefined;
|
||||||
extra?: EntityDict['refund']['Update']['data'] | undefined;
|
extra?: EntityDict['refund']['Update']['data'] | undefined;
|
||||||
price?: number | undefined;
|
price?: number | undefined;
|
||||||
}>;
|
}>;
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ export default class AliPay extends AliPayDebug implements PayClazz {
|
||||||
static DEFAULT_REFUND_DAYS_GAP: number;
|
static DEFAULT_REFUND_DAYS_GAP: number;
|
||||||
constructor(apProduct: ApProduct);
|
constructor(apProduct: ApProduct);
|
||||||
refund(refund: Refund, context: BRC): Promise<RefundUpdateData | undefined>;
|
refund(refund: Refund, context: BRC): Promise<RefundUpdateData | undefined>;
|
||||||
getRefundState(refund: OpRefund): Promise<[EntityDict['refund']['OpSchema']['iState'], RefundUpdateData | undefined]>;
|
getRefundState(refund: OpRefund): Promise<[string | null | undefined, RefundUpdateData | undefined]>;
|
||||||
private analyzeResult;
|
private analyzeResult;
|
||||||
private caclRefundDeadline;
|
private caclRefundDeadline;
|
||||||
prepay(pay: Pay, data: PayUpdateData, context: BRC): Promise<void>;
|
prepay(pay: Pay, data: PayUpdateData, context: BRC): Promise<void>;
|
||||||
|
|
@ -41,7 +41,7 @@ export default class AliPay extends AliPayDebug implements PayClazz {
|
||||||
}>;
|
}>;
|
||||||
decodeRefundNotification(params: Record<string, any>, body: any): Promise<{
|
decodeRefundNotification(params: Record<string, any>, body: any): Promise<{
|
||||||
refundId: string;
|
refundId: string;
|
||||||
iState: EntityDict['refund']['OpSchema']['iState'];
|
iState: string | null | undefined;
|
||||||
extra?: RefundUpdateData | undefined;
|
extra?: RefundUpdateData | undefined;
|
||||||
price?: number | undefined;
|
price?: number | undefined;
|
||||||
}>;
|
}>;
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue