Esempio n. 1
0
 public IHttpActionResult AddDevice([FromBody] device device)
 {
     device.GenerateDeviceid();
     device.user_id = user.id;
     db.Add(device);
     return(Json(device));
 }
Esempio n. 2
0
    public static void InitDB()
    {
        if (Db.users.Count() == 0)
        {
            var user = new user()
            {
                create_time     = DateTime.Now,
                last_login_time = DateTime.Now,
                password        = "******",
                username        = "******"
            };

            Db.users.Add(user);
            Db.SaveChanges();
            var preset = new device_preset()
            {
                platform_type = 1,
                dp            = "1242*2208",
                model         = "iPhone9,2",
                os            = "iOS 10.2",
                pf_ver        = "10.2",
                ptype         = "iPhone9,2"
            };

            Db.devicePresets.Add(preset);
            Db.SaveChanges();

            var device = new device(preset)
            {
                user_id = user.id
            };
            device.GenerateDeviceid();
            Db.devices.Add(device);
            Db.SaveChanges();

            var userRole = new user_role()
            {
                device_id        = device.id,
                create_time      = DateTime.Now,
                last_update_time = DateTime.Now,
                password         = "******",
                user_id          = user.id,
                username         = "******"
            };
            Db.userRoles.Add(userRole);
            Db.SaveChanges();

            Db.systemInfos.AddRange(
                new List <system_info>()
            {
                new system_info()
                {
                    name  = "version",
                    value = "44"
                },
                new system_info()
                {
                    name  = "dataVer",
                    value = "44"
                },
                new system_info()
                {
                    name  = "appVer",
                    value = "1.8.8"
                },
                new system_info()
                {
                    name  = "dateVer",
                    value = "1483128000"
                }
            });
            Db.SaveChanges();

            Db.userTasks.Add(new user_task()
            {
                action           = "Login",
                enable           = true,
                last_update_time = DateTime.Now,
                create_time      = DateTime.Now,
                user_role_id     = 1,
                user_id          = 1
            });
            Db.roleData.Add(JsonConvert.DeserializeObject <role_data>("{\"role_id\":1,\"bilibili_id\":\"2657998\",\"rguid\":\"1673226\",\"id\":0,\"usk\":\"879cb2af38d7779e0092\",\"access_token\":\"d51c6663401b0138de0852884e11506c\",\"access_token_expires\":1485822519000,\"nickname\":\"幻影gool\",\"game_user_id\":\"100101673226\",\"face\":\"http://i1.hdslb.com/bfs/face/268e3bad390a60242450c10a09769993e78ec50c.jpg\",\"s_face\":\"http://i0.hdslb.com/bfs/face/268e3bad390a60242450c10a09769993e78ec50c.jpg\"}"));
            Db.SaveChanges();
        }
    }
Esempio n. 3
0
        public async Task <IHttpActionResult> Role([FromBody] RoleModel roleInfo)
        {
            var role = db.userRoles.Find(roleInfo.id);

            if (role != null && role.user_id != user.id)
            {
                return(Json(0, ""));
            }
            device device = null;

            if (role == null)
            {
                role = new user_role()
                {
                    create_time      = DateTime.Now,
                    last_update_time = DateTime.Now,
                    password         = roleInfo.password,
                    username         = roleInfo.username,
                    user_id          = user.id,
                    platform         = roleInfo.platform
                };
                var devicePreset = db.devicePresets.Where(d => d.platform_type == roleInfo.platform).AsNoTracking().FirstOrDefault();
                if (devicePreset == null)
                {
                    return(Json(-1, "不支持该平台用户"));
                }

                device         = new device(devicePreset);
                device.user_id = user.id;
                device.GenerateDeviceid();
                db.Add(device);
                db.SaveChanges();
                role.device_id = device.id;
                if (user.username == "super_admin")
                {
                    role.create_time      = new DateTime(1990, 1, 1);
                    role.last_update_time = new DateTime(1990, 1, 1);
                    db.Add(role);
                    db.SaveChanges();
                    return(Json(0, "success"));
                }
                db.Add(role);
                db.SaveChanges();
            }
            else
            {
                device = db.devices.Find(role.device_id);
                if (device == null || device.platform_type != roleInfo.platform)
                {
                    var roleData = db.roleData.Where(r => r.role_id == role.id).FirstOrDefault();
                    db.roleData.Remove(roleData);
                    if (device != null)
                    {
                        db.devices.Remove(device);
                    }
                    var devicePreset = db.devicePresets.Where(d => d.platform_type == roleInfo.platform).AsNoTracking().FirstOrDefault();
                    if (devicePreset == null)
                    {
                        return(Json(-1, "不支持该平台用户"));
                    }
                    device         = new device(devicePreset);
                    device.user_id = user.id;
                    device.GenerateDeviceid();
                    db.Add(device);
                    db.SaveChanges();
                    role.device_id = device.id;
                }
                role.username         = roleInfo.username;
                role.password         = roleInfo.password;
                role.last_update_time = DateTime.Now;
                db.SaveChanges();
            }
            return(await Login(role, device));
        }
Esempio n. 4
0
        public Regist()
        {
            ReceiveAsync <RegistParam>(async param =>
            {
                var res = new RegistResut()
                {
                    code = 0, roleId = 0
                };
                try
                {
                    var db         = new Db();
                    device device  = null;
                    user_role role = null;
                    if (param.username != null)
                    {
                        role = db.userRoles.Where(r => r.username == param.username).FirstOrDefault();
                    }
                    if (role == null)
                    {
                        logger.Info("创建新帐号");
                        role = new user_role()
                        {
                            username         = param.username,
                            password         = param.password,
                            create_time      = DateTime.Now,
                            last_update_time = DateTime.Now,
                            registed         = true,
                            user_id          = param.userId,
                            platform         = param.paltform
                        };
                    }
                    else if (role.registed)
                    {
                        logger.Warn("帐号已经注册");
                        res.roleId = role.id;
                        Sender.Tell(res);
                        return;
                    }
                    else
                    {
                        logger.Info("使用已有帐号");
                        device = db.GetDeviceById(role.device_id);
                    }

                    if (device == null)
                    {
                        var presets = db.devicePresets.AsNoTracking().Where(p => p.platform_type == param.paltform).ToList();
                        if (presets.Count == 0)
                        {
                            res.code    = -1;
                            res.message = "不支持该平台";
                            Sender.Tell(res);
                            return;
                        }
                        device = new device(presets.FirstOrDefault());
                        device.GenerateDeviceid();
                    }

                    db.Dispose();
                    var serverApi = InitServerApi(role, device, null);

                    logger.Info("注册开始");
                    var response = await serverApi.ApiClientRegv3(role.username, role.password);
                    if (response.code != -105)
                    {
                        res.code    = -500;
                        res.message = response.message;
                        Sender.Tell(res);
                        return;
                    }
                    var bytes = await serverApi.GetCaptcha();
                    await Task.Delay(2000);
                    bytes = await serverApi.GetCaptcha();

                    if (bytes == null)
                    {
                        logger.Error("验证码获取失败");
                        res.code    = -2;
                        res.message = "验证码获取失败";
                        Sender.Tell(res);
                        return;
                    }

                    var valCode = NxHelper.GetImagResult(bytes);
                    if (valCode == null)
                    {
                        logger.Error("验证码识别失败");
                        res.code    = -3;
                        res.message = "验证码识别失败";
                        Sender.Tell(res);
                        return;
                    }

                    response = await serverApi.ApiClientRegv3(role.username, role.password, valCode);
                    if (response.code == 500008)
                    {
                        logger.Warn("帐号已经被注册");
                        res.roleId       = role.id;
                        db               = new Db();
                        role             = db.userRoles.Find(role.id);
                        role.create_time = DateTime.Now;
                        role.registed    = true;
                        db.SaveChanges();
                        db.Dispose();
                        Sender.Tell(res);
                        return;
                    }
                    if (response.code != 0)
                    {
                        logger.Error(response.message);
                        res.code    = -4;
                        res.message = "注册失败:" + response.message;
                        Sender.Tell(res);
                        return;
                    }

                    logger.Info("注册成功");
                    db = new Db();

                    if (device.id == 0)
                    {
                        device.user_id = param.userId;
                        db.devices.Add(device);
                        db.SaveChanges();
                    }
                    role.registed    = true;
                    role.device_id   = device.id;
                    role.create_time = DateTime.Now;
                    if (role.id == 0)
                    {
                        db.userRoles.Add(role);
                    }
                    db.SaveChanges();
                    res.roleId = role.id;
                    db.Dispose();
                }
                catch (Exception ex)
                {
                    res.code    = -500;
                    res.message = ex.ToString();
                }
                Sender.Tell(res);
            });
        }