feat(r3): complete order and payment flow

This commit is contained in:
2026-09-13 13:56:59 +08:00
parent 63c0013076
commit 16e625aefb
20 changed files with 454 additions and 126 deletions
+14 -3
View File
@@ -34,10 +34,16 @@ export class AuthService {
* 说明:个人主体小程序无 getPhoneNumber 权限,故不强制手机号注册。
* 手机号采集留作未来换企业主体后可选补充(见 register())。
*/
async login(dto: LoginDto): Promise<{ accessToken: string }> {
async login(dto: LoginDto): Promise<{
accessToken: string;
isNewUser: boolean;
nickname: string | null;
avatar: string | null;
}> {
const session = await this.wechat.code2Session(dto.code);
// upsert:openid 在库则续登,不在库则直接建用户(无需手机号)
// 先查一次以判断是否为首次登录;随后仍以 upsert 防止并发登录重复建用户。
const existing = await this.users.findByOpenid(session.openid);
const user = await this.users.findOrCreateByOpenid(
session.openid,
session.unionid,
@@ -52,7 +58,12 @@ export class AuthService {
);
const accessToken = await this.signToken(user.id, user.openid);
return { accessToken };
return {
accessToken,
isNewUser: !existing,
nickname: user.nickname,
avatar: user.avatar,
};
}
/**