Merge branch 'dev' into release

This commit is contained in:
Xu Chang 2025-08-23 12:43:19 +08:00
commit 738a2c5304
12 changed files with 92 additions and 23 deletions

View File

@ -44,6 +44,10 @@ export const desc = {
type: "enum",
enumeration: ["login", "changePassword", "confirm"]
},
applicationId: {
type: "ref",
ref: "application"
},
iState: {
type: "enum",
enumeration: ["unsent", "sending", "sent", "failure"]

View File

@ -1,3 +1,4 @@
import { ForeignKey } from "oak-domain/lib/types/DataType";
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 { Action, ParticularAction, IState } from "./Action";
@ -12,6 +13,7 @@ export type OpSchema = EntityShape & {
expired: Boolean;
expiresAt: Datetime;
type: "login" | "changePassword" | "confirm";
applicationId?: ForeignKey<"application"> | null;
iState?: IState | null;
} & {
[A in ExpressionKey]?: any;
@ -31,6 +33,7 @@ export type OpFilter = {
expired: Q_BooleanValue;
expiresAt: Q_DateValue;
type: Q_EnumValue<"login" | "changePassword" | "confirm">;
applicationId: Q_StringValue;
iState: Q_EnumValue<IState>;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
@ -49,6 +52,7 @@ export type OpProjection = {
expired?: number;
expiresAt?: number;
type?: number;
applicationId?: number;
iState?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
@ -64,6 +68,7 @@ export type OpSortAttr = Partial<{
expired: number;
expiresAt: number;
type: number;
applicationId: number;
iState: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;

View File

@ -10,7 +10,8 @@
"expired": "是否过期",
"expiresAt": "过期时间",
"iState": "状态",
"type": "类型"
"type": "类型",
"application": "应用"
},
"action": {
"send": "发送",

View File

@ -1211,6 +1211,7 @@ export type Application = {
system: System["Schema"];
domain?: Domain["Schema"];
applicationPassport$application?: Array<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application?: Array<Omit<Captcha["Schema"], "application">>;
extraFile$application?: Array<Omit<ExtraFile["Schema"], "application">>;
notification$application?: Array<Omit<Notification["Schema"], "application">>;
sessionMessage$application?: Array<Omit<SessionMessage["Schema"], "application">>;
@ -1228,6 +1229,7 @@ export type Application = {
wpProduct$application?: Array<Omit<WpProduct["Schema"], "application">>;
session$entity?: Array<Omit<Session["Schema"], "entity">>;
applicationPassport$application$$aggr?: AggregationResult<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application$$aggr?: AggregationResult<Omit<Captcha["Schema"], "application">>;
extraFile$application$$aggr?: AggregationResult<Omit<ExtraFile["Schema"], "application">>;
notification$application$$aggr?: AggregationResult<Omit<Notification["Schema"], "application">>;
sessionMessage$application$$aggr?: AggregationResult<Omit<SessionMessage["Schema"], "application">>;
@ -1254,6 +1256,12 @@ export type Application = {
applicationPassport$application$$aggr?: DeduceAggregation<Omit<ApplicationPassport["Projection"], "application">, Omit<ApplicationPassport["Filter"], "application">, ApplicationPassport["Sorter"]> & {
$entity: "applicationPassport";
};
captcha$application?: OakSelection<"select", Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
captcha$application$$aggr?: DeduceAggregation<Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
extraFile$application?: OakSelection<"select", Omit<ExtraFile["Projection"], "application">, Omit<ExtraFile["Filter"], "application">, ExtraFile["Sorter"]> & {
$entity: "extraFile";
};
@ -1355,6 +1363,7 @@ export type Application = {
system: MakeFilter<System["FilterUnit"]>;
domain: MakeFilter<Domain["FilterUnit"]>;
applicationPassport$application: MakeFilter<Omit<ApplicationPassport["FilterUnit"], "application">> & SubQueryPredicateMetadata;
captcha$application: MakeFilter<Omit<Captcha["FilterUnit"], "application">> & SubQueryPredicateMetadata;
extraFile$application: MakeFilter<Omit<ExtraFile["FilterUnit"], "application">> & SubQueryPredicateMetadata;
notification$application: MakeFilter<Omit<Notification["FilterUnit"], "application">> & SubQueryPredicateMetadata;
sessionMessage$application: MakeFilter<Omit<SessionMessage["FilterUnit"], "application">> & SubQueryPredicateMetadata;
@ -1388,6 +1397,7 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]>)[];
@ -1412,6 +1422,7 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]> | OakOperation<"remove", System["RemoveOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]> | OakOperation<"remove", Domain["RemoveOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]> | OakOperation<"remove", ApplicationPassport["RemoveOperationData"], ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]> | OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]> | OakOperation<"remove", ExtraFile["RemoveOperationData"], ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]> | OakOperation<"remove", Notification["RemoveOperationData"], Notification["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]> | OakOperation<"remove", SessionMessage["RemoveOperationData"], SessionMessage["Filter"]>)[];
@ -1675,11 +1686,19 @@ export type ArticleMenu = {
export type Captcha = {
OpSchema: BaseCaptcha.OpSchema;
Action: BaseCaptcha.OpAction;
Schema: BaseCaptcha.OpSchema & {};
Projection: BaseCaptcha.OpProjection & {};
FilterUnit: BaseCaptcha.OpFilter & {};
Schema: BaseCaptcha.OpSchema & {
application?: Application["Schema"];
};
Projection: BaseCaptcha.OpProjection & {
application?: Application["Projection"];
};
FilterUnit: BaseCaptcha.OpFilter & {
application: MakeFilter<Application["FilterUnit"]>;
};
Filter: MakeFilter<Captcha["FilterUnit"]>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {}>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {
application: Application["SortAttr"];
}>;
SortNode: {
$attr: Captcha["SortAttr"];
$direction?: "asc" | "desc";
@ -1687,11 +1706,15 @@ export type Captcha = {
Sorter: Captcha["SortNode"][];
Selection: OakSelection<"select", Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
Aggregation: DeduceAggregation<Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]>;
}>;
CreateSingle: OakOperation<"create", Captcha["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<Captcha["CreateOperationData"]>>;
Create: Captcha["CreateSingle"] | Captcha["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema>;
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>;
}>;
Update: OakOperation<BaseCaptcha.OpUpdateAction, Captcha["UpdateOperationData"], Captcha["Filter"], Captcha["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"], Captcha["Sorter"]>;

View File

@ -58,6 +58,7 @@ export const shipProjection = {
order: {
id: 1,
iState: 1,
desc: 1,
pay$order: {
$entity: 'pay',
data: {
@ -197,14 +198,14 @@ export async function uploadShippingInfo(shipId, context) {
//订单 每笔微信支付调用一次接口
//当已发货的订单再次调用小程序发货信息录入接口视为重新发货(仅可重新发货一次)
const orders = shipOrder$ship.map((ele) => ele.order);
const fromPhoneStr = maskPhone(from.phone);
const toPhoneStr = maskPhone(to.phone);
for (const order of orders) {
const { pay$order, desc } = order;
const wechatPay = pay$order.find((ele) => ele.entity === 'wpProduct');
const meta = wechatPay?.meta;
let shippingList = [];
if (shipType === 'express') {
const fromPhoneStr = maskPhone(from.phone);
const toPhoneStr = maskPhone(to.phone);
shippingList = [
{
tracking_no: extraShipId,

View File

@ -47,6 +47,10 @@ exports.desc = {
type: "enum",
enumeration: ["login", "changePassword", "confirm"]
},
applicationId: {
type: "ref",
ref: "application"
},
iState: {
type: "enum",
enumeration: ["unsent", "sending", "sent", "failure"]

View File

@ -1,3 +1,4 @@
import { ForeignKey } from "oak-domain/lib/types/DataType";
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 { Action, ParticularAction, IState } from "./Action";
@ -12,6 +13,7 @@ export type OpSchema = EntityShape & {
expired: Boolean;
expiresAt: Datetime;
type: "login" | "changePassword" | "confirm";
applicationId?: ForeignKey<"application"> | null;
iState?: IState | null;
} & {
[A in ExpressionKey]?: any;
@ -31,6 +33,7 @@ export type OpFilter = {
expired: Q_BooleanValue;
expiresAt: Q_DateValue;
type: Q_EnumValue<"login" | "changePassword" | "confirm">;
applicationId: Q_StringValue;
iState: Q_EnumValue<IState>;
} & ExprOp<OpAttr | string>;
export type OpProjection = {
@ -49,6 +52,7 @@ export type OpProjection = {
expired?: number;
expiresAt?: number;
type?: number;
applicationId?: number;
iState?: number;
} & Partial<ExprOp<OpAttr | string>>;
export type OpSortAttr = Partial<{
@ -64,6 +68,7 @@ export type OpSortAttr = Partial<{
expired: number;
expiresAt: number;
type: number;
applicationId: number;
iState: number;
[k: string]: any;
} | ExprOp<OpAttr | string>>;

View File

@ -10,7 +10,8 @@
"expired": "是否过期",
"expiresAt": "过期时间",
"iState": "状态",
"type": "类型"
"type": "类型",
"application": "应用"
},
"action": {
"send": "发送",

View File

@ -1211,6 +1211,7 @@ export type Application = {
system: System["Schema"];
domain?: Domain["Schema"];
applicationPassport$application?: Array<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application?: Array<Omit<Captcha["Schema"], "application">>;
extraFile$application?: Array<Omit<ExtraFile["Schema"], "application">>;
notification$application?: Array<Omit<Notification["Schema"], "application">>;
sessionMessage$application?: Array<Omit<SessionMessage["Schema"], "application">>;
@ -1228,6 +1229,7 @@ export type Application = {
wpProduct$application?: Array<Omit<WpProduct["Schema"], "application">>;
session$entity?: Array<Omit<Session["Schema"], "entity">>;
applicationPassport$application$$aggr?: AggregationResult<Omit<ApplicationPassport["Schema"], "application">>;
captcha$application$$aggr?: AggregationResult<Omit<Captcha["Schema"], "application">>;
extraFile$application$$aggr?: AggregationResult<Omit<ExtraFile["Schema"], "application">>;
notification$application$$aggr?: AggregationResult<Omit<Notification["Schema"], "application">>;
sessionMessage$application$$aggr?: AggregationResult<Omit<SessionMessage["Schema"], "application">>;
@ -1254,6 +1256,12 @@ export type Application = {
applicationPassport$application$$aggr?: DeduceAggregation<Omit<ApplicationPassport["Projection"], "application">, Omit<ApplicationPassport["Filter"], "application">, ApplicationPassport["Sorter"]> & {
$entity: "applicationPassport";
};
captcha$application?: OakSelection<"select", Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
captcha$application$$aggr?: DeduceAggregation<Omit<Captcha["Projection"], "application">, Omit<Captcha["Filter"], "application">, Captcha["Sorter"]> & {
$entity: "captcha";
};
extraFile$application?: OakSelection<"select", Omit<ExtraFile["Projection"], "application">, Omit<ExtraFile["Filter"], "application">, ExtraFile["Sorter"]> & {
$entity: "extraFile";
};
@ -1355,6 +1363,7 @@ export type Application = {
system: MakeFilter<System["FilterUnit"]>;
domain: MakeFilter<Domain["FilterUnit"]>;
applicationPassport$application: MakeFilter<Omit<ApplicationPassport["FilterUnit"], "application">> & SubQueryPredicateMetadata;
captcha$application: MakeFilter<Omit<Captcha["FilterUnit"], "application">> & SubQueryPredicateMetadata;
extraFile$application: MakeFilter<Omit<ExtraFile["FilterUnit"], "application">> & SubQueryPredicateMetadata;
notification$application: MakeFilter<Omit<Notification["FilterUnit"], "application">> & SubQueryPredicateMetadata;
sessionMessage$application: MakeFilter<Omit<SessionMessage["FilterUnit"], "application">> & SubQueryPredicateMetadata;
@ -1388,6 +1397,7 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]>)[];
@ -1412,6 +1422,7 @@ export type Application = {
system?: OakOperation<"create", System["CreateOperationData"]> | OakOperation<BaseSystem.OpUpdateAction, System["UpdateOperationData"], System["Filter"]> | OakOperation<"remove", System["RemoveOperationData"], System["Filter"]>;
domain?: OakOperation<"create", Domain["CreateOperationData"]> | OakOperation<BaseDomain.OpUpdateAction, Domain["UpdateOperationData"], Domain["Filter"]> | OakOperation<"remove", Domain["RemoveOperationData"], Domain["Filter"]>;
applicationPassport$application?: (OakOperation<"create", Omit<ApplicationPassport["CreateOperationData"], "application"> | Omit<ApplicationPassport["CreateOperationData"], "application">[]> | OakOperation<BaseApplicationPassport.OpUpdateAction, Omit<ApplicationPassport["UpdateOperationData"], "application">, ApplicationPassport["Filter"]> | OakOperation<"remove", ApplicationPassport["RemoveOperationData"], ApplicationPassport["Filter"]>)[];
captcha$application?: (OakOperation<"create", Omit<Captcha["CreateOperationData"], "application"> | Omit<Captcha["CreateOperationData"], "application">[]> | OakOperation<BaseCaptcha.OpUpdateAction, Omit<Captcha["UpdateOperationData"], "application">, Captcha["Filter"]> | OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"]>)[];
extraFile$application?: (OakOperation<"create", Omit<ExtraFile["CreateOperationData"], "application"> | Omit<ExtraFile["CreateOperationData"], "application">[]> | OakOperation<BaseExtraFile.OpUpdateAction, Omit<ExtraFile["UpdateOperationData"], "application">, ExtraFile["Filter"]> | OakOperation<"remove", ExtraFile["RemoveOperationData"], ExtraFile["Filter"]>)[];
notification$application?: (OakOperation<"create", Omit<Notification["CreateOperationData"], "application"> | Omit<Notification["CreateOperationData"], "application">[]> | OakOperation<BaseNotification.OpUpdateAction, Omit<Notification["UpdateOperationData"], "application">, Notification["Filter"]> | OakOperation<"remove", Notification["RemoveOperationData"], Notification["Filter"]>)[];
sessionMessage$application?: (OakOperation<"create", Omit<SessionMessage["CreateOperationData"], "application"> | Omit<SessionMessage["CreateOperationData"], "application">[]> | OakOperation<BaseSessionMessage.OpUpdateAction, Omit<SessionMessage["UpdateOperationData"], "application">, SessionMessage["Filter"]> | OakOperation<"remove", SessionMessage["RemoveOperationData"], SessionMessage["Filter"]>)[];
@ -1675,11 +1686,19 @@ export type ArticleMenu = {
export type Captcha = {
OpSchema: BaseCaptcha.OpSchema;
Action: BaseCaptcha.OpAction;
Schema: BaseCaptcha.OpSchema & {};
Projection: BaseCaptcha.OpProjection & {};
FilterUnit: BaseCaptcha.OpFilter & {};
Schema: BaseCaptcha.OpSchema & {
application?: Application["Schema"];
};
Projection: BaseCaptcha.OpProjection & {
application?: Application["Projection"];
};
FilterUnit: BaseCaptcha.OpFilter & {
application: MakeFilter<Application["FilterUnit"]>;
};
Filter: MakeFilter<Captcha["FilterUnit"]>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {}>;
SortAttr: Partial<BaseCaptcha.OpSortAttr | {
application: Application["SortAttr"];
}>;
SortNode: {
$attr: Captcha["SortAttr"];
$direction?: "asc" | "desc";
@ -1687,11 +1706,15 @@ export type Captcha = {
Sorter: Captcha["SortNode"][];
Selection: OakSelection<"select", Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
Aggregation: DeduceAggregation<Captcha["Projection"], Captcha["Filter"], Captcha["Sorter"]>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema>;
CreateOperationData: FormCreateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]>;
}>;
CreateSingle: OakOperation<"create", Captcha["CreateOperationData"]>;
CreateMulti: OakOperation<"create", Array<Captcha["CreateOperationData"]>>;
Create: Captcha["CreateSingle"] | Captcha["CreateMulti"];
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema>;
UpdateOperationData: FormUpdateData<BaseCaptcha.OpSchema & {
application?: OakOperation<"create", Application["CreateOperationData"]> | OakOperation<BaseApplication.OpUpdateAction, Application["UpdateOperationData"], Application["Filter"]> | OakOperation<"remove", Application["RemoveOperationData"], Application["Filter"]>;
}>;
Update: OakOperation<BaseCaptcha.OpUpdateAction, Captcha["UpdateOperationData"], Captcha["Filter"], Captcha["Sorter"]>;
RemoveOperationData: {};
Remove: OakOperation<"remove", Captcha["RemoveOperationData"], Captcha["Filter"], Captcha["Sorter"]>;

View File

@ -61,6 +61,7 @@ exports.shipProjection = {
order: {
id: 1,
iState: 1,
desc: 1,
pay$order: {
$entity: 'pay',
data: {
@ -201,14 +202,14 @@ async function uploadShippingInfo(shipId, context) {
//订单 每笔微信支付调用一次接口
//当已发货的订单再次调用小程序发货信息录入接口视为重新发货(仅可重新发货一次)
const orders = shipOrder$ship.map((ele) => ele.order);
const fromPhoneStr = maskPhone(from.phone);
const toPhoneStr = maskPhone(to.phone);
for (const order of orders) {
const { pay$order, desc } = order;
const wechatPay = pay$order.find((ele) => ele.entity === 'wpProduct');
const meta = wechatPay?.meta;
let shippingList = [];
if (shipType === 'express') {
const fromPhoneStr = maskPhone(from.phone);
const toPhoneStr = maskPhone(to.phone);
shippingList = [
{
tracking_no: extraShipId,

View File

@ -1,6 +1,6 @@
{
"name": "oak-pay-business",
"version": "3.1.4",
"version": "3.1.5",
"description": "",
"files": [
"lib/**/*",
@ -33,8 +33,8 @@
"dayjs": "^1.11.5",
"oak-domain": "^5.1.27",
"oak-external-sdk": "^2.3.10",
"oak-frontend-base": "^5.3.34",
"oak-general-business": "~5.7.8",
"oak-frontend-base": "^5.3.35",
"oak-general-business": "~5.7.9",
"react-markdown": "^9.0.3",
"wechat-pay-nodejs": "^0.2.3"
},

View File

@ -62,6 +62,7 @@ export const shipProjection: EntityDict['ship']['Projection'] = {
order: {
id: 1,
iState: 1,
desc: 1,
pay$order: {
$entity: 'pay',
data: {
@ -218,8 +219,6 @@ export async function uploadShippingInfo(
//订单 每笔微信支付调用一次接口
//当已发货的订单再次调用小程序发货信息录入接口视为重新发货(仅可重新发货一次)
const orders = shipOrder$ship.map((ele) => ele.order);
const fromPhoneStr = maskPhone(from!.phone!);
const toPhoneStr = maskPhone(to!.phone!);
for (const order of orders) {
const { pay$order, desc } = order;
const wechatPay = pay$order!.find((ele) => ele.entity === 'wpProduct');
@ -231,6 +230,8 @@ export async function uploadShippingInfo(
};
let shippingList: Array<Object> = [];
if (shipType === 'express') {
const fromPhoneStr = maskPhone(from!.phone!);
const toPhoneStr = maskPhone(to!.phone!);
shippingList = [
{
tracking_no: extraShipId,