
/*=============================================================================================
	author:ZhaoJun
	version:1.2
	email:2732810281@qq.com
=============================================================================================*/


//严格模式
/*-------------------------------------------------------------------------------------------*/	
'use strict';
/*-------------------------------------------------------------------------------------------*/
    
// 测试操作
/*-------------------------------------------------------------------------------------------*/	
    class user
    {
        async com(req)
        { 
            return req.data
        } 

        //--------------------------
		//<分组>及时通信-设备
		//<消息备注>注册设备
		//<请求方式>ws
		//<请求地址>/ws/base/user/regDev
        //<请求参数>devid=设备id
        //<请求参数>user=用户
        //<请求参数>pass=用户密码
		//<返回参数>{
        // "type": "sign",
        // "stat": false} 
		//<结束>
        //-------------------------- 
        async regDev(param,req)
        {
            let ud=await this.com(param)
            ud.type=ud.type?ud.type:'dev'
       
            let result=await $Sys.orm.table('su_user').descript('查询用户合法性')
            .key('id')
            .where({tel:ud.user,pass:ud.pass})
            .select()
            if(!result.length)return {code:1,path:ud.back};
            let userid=result[0].id 

            result=await $Sys.orm.table('su_dev').descript('注册设备')
            .field({devid:ud.devid,userid:userid,name:ud.name})
            .insert().catch(()=>{})
            
            return {code:0,path:ud.back};
        }

        //--------------------------
		//<分组>及时通信-设备
		//<消息备注>登陆设备
		//<请求方式>ws
		//<请求地址>/ws/base/user/add
        //<请求参数>devid=设备id-123456
        //<请求参数>user=用户-13219752067
        //<请求参数>pass=用户密码-123456 
		//<返回参数>{
        // "type": "sign",
        // "stat": false}
		//<结束>
        //-------------------------- 
        async add(param,req)
        {
            let ud=await this.com(param)
            ud.type=ud.type?ud.type:'dev'  
            ud.back=ud.back?ud.back:'xx'


            let result=await $Sys.orm.table('su_user').descript('查询用户合法性')
            .key('id')
            .where({tel:ud.user,pass:ud.pass})
            .select()

            if(!result.length)return {code:1,path:ud.back};
            let userid=result[0].id 

            result=await $Sys.orm.table('su_dev').descript('查询设备合法性')
            .key('id,devid')
            .where({devid:ud.devid,userid:userid})
            .select()
            if(!result.length)return {code:1,path:ud.back};


            req.userRole=ud.user;
            req.userid=userid
            req.devid=result[0]
            let res=req.user.add(ud.devid,'dev',req);
            if(res)
            {
                return {code:0,path:ud.back};
            }
            else
            { 
                return {code:1,path:ud.back};
            }
        }
        
        //--------------------------
		//<分组>及时通信-设备
		//<消息备注>给用户发消息
		//<请求方式>ws
		//<请求地址>/ws/base/user/send
        //<请求参数>user=用户
        //<请求参数>type=设备类型
        //<请求参数>data=数据
        //<请求参数>path=路径
		//<返回参数>{
        // "code": 0,
        // "message": "",
        // "extend": "",
        // "data": "true"}
		//<结束>
		//-------------------------- 
        async send(param,req)
        { 
            let ud=await this.com(param,req)
            let result=$Sys.model('/socket/user','send',[ud.user,ud.type,{data:ud.data,path:ud.path}])
            let data= $Sys.model('/fun/filter','echo')({check:result?true:false,message:"发送失败"})
            return data
        }
    }
/*-------------------------------------------------------------------------------------------*/    
module.exports=user;