Browse Source

修改个人中心

zs 1 year ago
parent
commit
950cd242f1

+ 1 - 3
src/controller/login.controller.ts

@@ -35,7 +35,7 @@ export class LoginController {
     if (user) user.role = type;
     let vo = new LoginVO(user);
     vo = JSON.parse(JSON.stringify(vo));
-    vo.login_code = await this.loginService.onePointLogin(vo)
+    vo.login_code = await this.loginService.onePointLogin(vo);
     const token = await this.jwtService.sign(vo, this.jwtSecret);
     return token;
   }
@@ -62,8 +62,6 @@ export class LoginController {
    */
   @Post('/updatePwd/:type')
   async updatePwd(@Body() data: UPwdDTO, @Param('type') type: string) {
-    // 随机密码
-    data.password = this.utilService.randomStr();
     await this.loginService.updatePwd(data, LoginType[type]);
     return 'ok';
   }

+ 8 - 0
src/controller/platform/achievement.controller.ts

@@ -32,6 +32,14 @@ export class AchievementController extends BaseController {
     return { data, total };
   }
 
+  @Get('/list')
+  async list(@Query() filter) {
+    const list = await this.service.list(filter);
+    const data = list.data;
+    const total = list.total;
+    return { data, total };
+  }
+
   @Get('/:id')
   @ApiResponse({ type: FVO_achievement })
   async fetch(@Param('id') id: string) {

+ 8 - 0
src/controller/platform/project.controller.ts

@@ -32,6 +32,14 @@ export class ProjectController extends BaseController {
     return { data, total };
   }
 
+  @Get('/list')
+  async list(@Query() filter) {
+    const list = await this.service.list(filter);
+    const data = list.data;
+    const total = list.total;
+    return { data, total };
+  }
+
   @Get('/:id')
   @ApiResponse({ type: FVO_project })
   async fetch(@Param('id') id: string) {

+ 2 - 2
src/service/login.service.ts

@@ -54,7 +54,7 @@ export class LoginService {
     const rediskey = `${this.loginSign}:${role}:${_id}`;
     // 取出当前记录在案的 code
     const redisCode = await this.redisService.get(rediskey);
-    if(!redisCode) throw new ServiceError(this.i18n.translateError(`${FrameErrorEnum.ACCOUNT_HAS_EXPIRED}`), FrameErrorEnum.ACCOUNT_HAS_EXPIRED);
+    if (!redisCode) throw new ServiceError(this.i18n.translateError(`${FrameErrorEnum.ACCOUNT_HAS_EXPIRED}`), FrameErrorEnum.ACCOUNT_HAS_EXPIRED);
     // 判断是否一致
     if (code === redisCode) {
       // 一致,延时
@@ -97,7 +97,7 @@ export class LoginService {
       if (!role) throw new ServiceError(this.i18n.translateError(FrameErrorEnum.ROLE_IS_DISABLED), FrameErrorEnum.ROLE_IS_DISABLED);
     }
   }
-
+  // 随机密码
   async updatePwd(data: UPwdDTO, type: LoginType) {
     const model = GetModel(upperFirst(type));
     const user = await model.findById(data._id);

+ 14 - 0
src/service/platform/achievement.service.ts

@@ -15,6 +15,20 @@ export class AchievementService extends BaseService<modelType> {
   cModel: ReturnModelType<typeof Collection>;
   @InjectEntityModel(User)
   uModel: ReturnModelType<typeof User>;
+  // 成果列表
+  async list(query) {
+    const { skip = 0, limit = 0, ...condition } = query;
+    const data = await this.model.find(condition).skip(skip).limit(limit).lean();
+    for (const val of data) {
+      if (get(val, 'user')) {
+        // 查询成果发布者
+        const userData = await this.uModel.findById(val.user).lean();
+        if (userData) Object.assign(val, { userName: userData.nick_name });
+      }
+    }
+    const total = await this.model.count(condition);
+    return { data, total };
+  }
   // 成果详情
   async detail(id) {
     const user = this.ctx.user;

+ 22 - 0
src/service/platform/project.service.ts

@@ -4,6 +4,7 @@ import { ReturnModelType } from '@typegoose/typegoose';
 import { BaseService } from 'free-midway-component';
 import { Project } from '../../entity/platform/project.entity';
 import { Collection } from '../../entity/platform/collection.entity';
+import { User } from '../../entity/system/user.entity';
 import { get } from 'lodash';
 type modelType = ReturnModelType<typeof Project>;
 @Provide()
@@ -12,11 +13,32 @@ export class ProjectService extends BaseService<modelType> {
   model: modelType;
   @InjectEntityModel(Collection)
   cModel: ReturnModelType<typeof Collection>;
+  @InjectEntityModel(User)
+  uModel: ReturnModelType<typeof User>;
+  // 项目列表
+  async list(query) {
+    const { skip = 0, limit = 0, ...condition } = query;
+    const data = await this.model.find(condition).skip(skip).limit(limit).lean();
+    for (const val of data) {
+      if (get(val, 'user')) {
+        // 查询项目发布者
+        const userData = await this.uModel.findById(val.user).lean();
+        if (userData) Object.assign(val, { userName: userData.nick_name });
+      }
+    }
+    const total = await this.model.count(condition);
+    return { data, total };
+  }
   //项目详情
   async detail(id) {
     const user = this.ctx.user;
     const data = { userInfo: {}, is_collection: false };
     const arr = await this.model.findById(id).lean();
+    if (arr && get(arr, 'user')) {
+      // 查询项目发布者
+      const userData = await this.uModel.findById(arr.user).lean();
+      if (userData) data.userInfo = { name: userData.nick_name || '', phone: userData.phone || '' };
+    }
     if (arr && get(arr, '_id')) {
       // 查询是否收藏该项目
       const collection = await this.cModel.findOne({ user: user._id, source: arr._id }).lean();