浏览代码

用户中心添加服务,用户注册手机号验重

lrf 8 月之前
父节点
当前提交
7c74755114

+ 1 - 0
src/controller/system/user.controller.ts

@@ -48,6 +48,7 @@ export class UserController implements BaseController {
   @ApiResponse({ type: CVO_user })
   async create(@Body() data: object) {
     await this.service.createExamine(data);
+    await this.service.checkPhone(data);
     const dbData = await this.service.create(data);
     const result = new CVO_user(dbData);
     return result;

+ 2 - 0
src/error/service.error.ts

@@ -16,6 +16,8 @@ export enum ErrorCode {
   DUPLICATE_USERS_ACCOUNT = 'DUPLICATE_USERS_ACCOUNT',
   DUPLICATE_USERS_OPENID = 'DUPLICATE_USERS_OPENID',
 
+  PHONE_IS_EXISTS = "PHONE_IS_EXISTS",
+
   // 参数
   ID_NOT_FOUND = 'ID_NOT_FOUND',
 

+ 17 - 4
src/service/initData/dataDeal.service.ts

@@ -186,6 +186,19 @@ export class DataDealService {
       },
       {
         order_num: 9,
+        name: '服务管理',
+        route_name: 'center_service',
+        i18n_code: 'menus.center_service',
+        path: '/center/service',
+        component: '/center/service',
+        type: '1',
+        config: [],
+        is_default: '0',
+        is_use: '0',
+        icon: 'TakeawayBox',
+      },
+      {
+        order_num: 10,
         name: '赛事管理',
         route_name: 'center_match',
         i18n_code: 'menus.center_match',
@@ -198,7 +211,7 @@ export class DataDealService {
         icon: 'CollectionTag',
       },
       {
-        order_num: 10,
+        order_num: 11,
         name: '活动管理',
         route_name: 'center_sign',
         i18n_code: 'menus.center_sign',
@@ -211,7 +224,7 @@ export class DataDealService {
         icon: 'Suitcase',
       },
       {
-        order_num: 11,
+        order_num: 12,
         name: '产研行研',
         route_name: 'center_journal',
         i18n_code: 'menus.center_journal',
@@ -263,9 +276,9 @@ export class DataDealService {
     const justCommonRole = ['User', 'Association', 'Investment', 'State'];
     await this.Role.update({ code: In(justCommonRole) }, { menu: common });
     // 第一类菜单
-    const menus1 = [...common, 'center_news2', 'center_demand', 'center_supply', 'center_achievement', 'center_project', 'center_footplate'];
+    const menus1 = [...common, 'center_news2', 'center_demand', 'center_supply', 'center_achievement', 'center_project', 'center_footplate', 'center_service'];
     // 第一类菜单用户: 用户,科研机构,孵化器,企业,高校
-    const roleUseMenus1 = ['Expert', 'Unit', 'Incubator', 'Company', 'GX'];
+    const roleUseMenus1 = ['Expert', 'Unit', 'Incubator', 'Company', 'YX'];
     await this.Role.update({ code: In(roleUseMenus1) }, { menu: menus1 });
     // 创业大赛用户: 需要去掉报名管理,加入赛事管理
     const MatchRole = common.filter(f => f != 'center_sign');

+ 10 - 0
src/service/system/user.service.ts

@@ -4,6 +4,7 @@ import { Equal, Repository } from 'typeorm';
 import { User } from '../../entity/system/user.entity';
 import { ErrorCode, ServiceError } from '../../error/service.error';
 import { BaseServiceV2 } from '../../frame/BaseServiceV2';
+import { get } from 'lodash';
 @Provide()
 export class UserService extends BaseServiceV2 {
   @InjectEntityModel(User)
@@ -16,6 +17,15 @@ export class UserService extends BaseServiceV2 {
     return data;
   }
 
+  async checkPhone(data) {
+    const phone = get(data, 'phone');
+    if (!phone) return;
+    const num = await this.model.createQueryBuilder().where(`"phone" =:value`, { value: phone }).getCount();
+    if (num <= 0) return;
+    // 手机号存在
+    throw new ServiceError(ErrorCode.PHONE_IS_EXISTS);
+  }
+
   // 用户账号,微信唯一标识检查
   async createExamine(data) {
     const { openid, account } = data;