From 7dcc2997614f849258091f5d66e648317a40d323 Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期五, 14 八月 2026 10:12:42 +0800
Subject: [PATCH] add shop module

---
 src/modules/user/service/login.ts |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/src/modules/user/service/login.ts b/src/modules/user/service/login.ts
index 440e5a9..0b8d2f2 100644
--- a/src/modules/user/service/login.ts
+++ b/src/modules/user/service/login.ts
@@ -3,6 +3,7 @@
 import { InjectEntityModel } from '@midwayjs/typeorm';
 import { Equal, Repository } from 'typeorm';
 import { UserInfoEntity } from '../entity/info';
+import { BasicdataSorterEntity } from '../../basicdata/entity/sorter';
 import { UserWxService } from './wx';
 import * as jwt from 'jsonwebtoken';
 import { UserWxEntity } from '../entity/wx';
@@ -19,6 +20,9 @@
 export class UserLoginService extends BaseService {
   @InjectEntityModel(UserInfoEntity)
   userInfoEntity: Repository<UserInfoEntity>;
+
+  @InjectEntityModel(BasicdataSorterEntity)
+  basicdataSorterEntity: Repository<BasicdataSorterEntity>;
 
   @InjectEntityModel(UserWxEntity)
   userWxEntity: Repository<UserWxEntity>;
@@ -275,6 +279,34 @@
   }
 
   /**
+   * 鍒嗘嫞浜哄憳-瀵嗙爜鐧诲綍
+   * @param phone
+   * @param password
+   */
+  async sorterPassword(phone, password) {
+    const user = await this.basicdataSorterEntity.findOneBy({ phone });
+
+    if (user && user.password == md5(password)) {
+
+      const info = {
+        id: user.businessId,
+      }
+      const { expire, refreshExpire } = this.jwtConfig;
+      return {
+        expire,
+        token: await this.generateSorterToken(info),
+        refreshExpire,
+        refreshToken: await this.generateSorterToken(info, true),
+      };
+
+    } else {
+      throw new CoolCommException('璐﹀彿鎴栧瘑鐮侀敊璇�');
+    }
+  }
+
+
+
+  /**
    * 鑾峰緱token
    * @param info
    * @returns
@@ -306,4 +338,22 @@
       expiresIn: isRefresh ? refreshExpire : expire,
     });
   }
+
+  /**
+   * 鐢熸垚token
+   * @param tokenInfo 淇℃伅
+   * @param roleIds 瑙掕壊闆嗗悎
+   */
+  async generateSorterToken(info, isRefresh = false) {
+    const { expire, refreshExpire, secret } = this.jwtConfig;
+    const user = await this.basicdataSorterEntity.findOneBy({ businessId: Equal(info.id) });
+    const tokenInfo = {
+      isRefresh,
+      ...info,
+      tenantId: user?.tenantId,
+    };
+    return jwt.sign(tokenInfo, secret, {
+      expiresIn: isRefresh ? refreshExpire : expire,
+    });
+  }
 }

--
Gitblit v1.9.1