Pārlūkot izejas kodu

增加个人升级专家接口

liuyu 5 gadi atpakaļ
vecāks
revīzija
53e9feeb3d
3 mainītis faili ar 46 papildinājumiem un 0 dzēšanām
  1. 5 0
      app/controller/expertsuser.js
  2. 1 0
      app/router.js
  3. 40 0
      app/service/expertsuser.js

+ 5 - 0
app/controller/expertsuser.js

@@ -13,6 +13,11 @@ class ExpertsuserController extends Controller {
     this.service = this.ctx.service.expertsuser;
   }
 
+  // 个人升级成专家
+  async upgrade() {
+    const data = await this.service.upgrade(this.ctx.params, this.ctx.request.body);
+    this.ctx.ok({ data });
+  }
 
 }
 

+ 1 - 0
app/router.js

@@ -15,6 +15,7 @@ module.exports = app => {
   // 专家用户表设置路由
   router.resources('expertsuser', '/api/market/expertsuser', controller.expertsuser); // index、create、show、destroy
   router.post('expertsuser', '/api/market/expertsuser/update/:id', controller.expertsuser.update);
+  router.post('expertsuser', '/api/market/expertsuser/upgrade/:id', controller.expertsuser.upgrade);
 
   // 专家申请表设置路由
   router.resources('expertsaudit', '/api/market/expertsaudit', controller.expertsaudit); // index、create、show、destroy

+ 40 - 0
app/service/expertsuser.js

@@ -11,6 +11,7 @@ class ExpertuserService extends CrudService {
   constructor(ctx) {
     super(ctx, 'experts_user');
     this.model = this.ctx.model.Expertsuser;
+    this.umodel = this.ctx.model.User;
   }
 
   async create(data) {
@@ -81,6 +82,45 @@ class ExpertuserService extends CrudService {
     user.status = data.status;
     return await user.save();
   }
+
+  async upgrade({ id }, data) {
+    await this.umodel.deleteOne({ id });
+    const { phone } = data;
+    const phoneList = await this.model.find({ phone });
+    const is_has = phoneList.find(f => f.id !== id);
+    if (is_has) throw new BusinessError('此手机号已被注册,请更换手机号');
+    const user = {};
+    if (data.name) {
+      user.name = data.name;
+    }
+    if (data.password) {
+      user.password = { secret: data.password };
+    }
+    user.cardnumber = data.cardnumber;
+    user.gender = data.gender;
+    user.phone = data.phone;
+    user.email = data.email;
+    user.addr = data.addr;
+    user.img_path = data.img_path;
+    user.birthday = data.birthday;
+    user.level = data.level;
+    user.levelname = data.levelname;
+    user.position = data.position;
+    user.school = data.school;
+    user.xl = data.xl;
+    user.xw = data.xw;
+    user.major = data.major;
+    user.professional = data.professional;
+    user.resume = data.resume;
+    user.project = data.project;
+    user.academic = data.academic;
+    user.paper = data.paper;
+    user.remark = data.remark;
+    user.role = data.role;
+    user.status = data.status;
+    const res = await this.model.create(user);
+    return res;
+  }
 }
 
 module.exports = ExpertuserService;