Quellcode durchsuchen

增加路由与用户注册

liuyu vor 4 Jahren
Ursprung
Commit
ad2d67424a

+ 3 - 0
app/controller/.roomuser.js

@@ -6,6 +6,7 @@ module.exports = {
       "openid",
       'passwd',
       "role",
+      "hosname",
       "deptname",
       "level",
       "title",
@@ -23,6 +24,7 @@ module.exports = {
       "phone",
       "openid",
       "role",
+      "hosname",
       "deptname",
       "level",
       "title",
@@ -42,6 +44,7 @@ module.exports = {
         phone: "phone",
         openid: "openid",
         role: "role",
+        hosname: "hosname",
         deptname: "deptname",
         level: "level",
         title: "title",

+ 5 - 0
app/controller/roomuser.js

@@ -12,6 +12,11 @@ class RoomuserController extends Controller {
     this.service = this.ctx.service.roomuser;
   }
 
+  async register() {
+    const res = await this.service.register(this.ctx.request.body);
+    this.ctx.ok({ data: res });
+  }
+
 }
 
 module.exports = CrudController(RoomuserController, meta);

+ 5 - 0
app/controller/weixin.js

@@ -133,6 +133,11 @@ class WeixinController extends Controller {
         // TODO: 重定性页面
         console.log('1111---?' + to_uri);
         this.ctx.redirect(to_uri);
+      } else if (type === '2') {
+        const to_uri = urljoin(redirect_uri, `?openid=${openid}&type=${type}`);
+        // TODO: 重定性页面
+        console.log('222---?' + to_uri);
+        this.ctx.redirect(to_uri);
       }
     }
 

+ 1 - 0
app/model/roomuser.js

@@ -8,6 +8,7 @@ const RoomUserSchema = {
   passwd: { type: String, select: false }, // 注册密码
   openid: { type: String, required: false }, // 微信openid
   role: { type: String, required: false }, // 3-主播 4、房间用户
+  hosname: { type: String, required: false }, // 医院名称
   deptname: { type: String, required: false }, // 机构名称
   level: { type: String, required: false }, // 职务
   title: { type: String, required: false }, // 个人简介

+ 3 - 0
app/router.js

@@ -41,6 +41,9 @@ module.exports = app => {
   // 用户退出登录
   router.post('/api/onlive/logout', controller.login.destroy);
 
+  // 微信报名注册
+  router.post('/api/onlive/register', controller.roomuser.register);
+
   // 微信端访问地址
   router.get('/api/onlive/wxchat', controller.weixin.auth); // 微信登录
   // 微信端访问地址

+ 8 - 0
app/service/lookuser.js

@@ -13,6 +13,14 @@ class LookuserService extends CrudService {
     this.model = this.ctx.model.Lookuser;
   }
 
+  async create(data) {
+    const { roomname, userid } = data;
+    const lookuser = await this.model.findOne({ roomname, userid });
+    if (!lookuser) {
+      await this.model.create(data);
+    }
+  }
+
 }
 
 module.exports = LookuserService;

+ 30 - 0
app/service/roomuser.js

@@ -31,6 +31,7 @@ class RoomuserService extends CrudService {
         passwd,
         uid: res.id,
         role: data.role,
+        hosname: data.hosname,
         deptname: data.deptname,
         remark: data.remark,
       };
@@ -51,6 +52,9 @@ class RoomuserService extends CrudService {
     if (data.role) {
       user.role = data.role;
     }
+    if (data.hosname) {
+      user.hosname = data.hosname;
+    }
     if (data.deptname) {
       user.deptname = data.deptname;
     }
@@ -76,6 +80,32 @@ class RoomuserService extends CrudService {
     return res;
   }
 
+  async register(data) {
+    const { name, phone, openid } = data;
+    assert(name, '用户名不能为空');
+    assert(phone, '电话号码不能为空');
+    const has_phone = await this.model.findOne({ phone });
+    if (has_phone) {
+      throw new BusinessError('此手机号已被注册,请更换手机号');
+    }
+    const res = await this.model.create(data);
+    if (res) {
+      const newdata = {
+        name,
+        phone: data.phone,
+        passwd: '12345678',
+        uid: res.id,
+        role: data.role,
+        openid,
+        hosname: data.hosname,
+        deptname: data.deptname,
+        remark: data.remark,
+      };
+      await this.ctx.service.user.create(newdata);
+    }
+    return res;
+  }
+
 }
 
 module.exports = RoomuserService;