/// <summary> /// 查询当前机构配置信息 /// </summary> /// <param name="message"></param> /// <returns></returns> public dynamic GetPolyvInfoModel(int System_Station_ID) { //查询当前机构是否使用自己的保利威视配置 PolyvInfoModel Model = SqlMapper.QueryForObject <PolyvInfoModel>("GetPolyvInfo", new { System_Station_ID = System_Station_ID }); W_PolyvInfo_Detail Model_Detail = SqlMapper.QueryForObject <W_PolyvInfo_Detail>("GetPolyvInfo_Detail", new { System_Station_ID = System_Station_ID }); if (Model_Detail != null) { //是系统配置 if (Model == null) { Model = new PolyvInfoModel(); Model.PolyvSource = 1;//系统 } else { Model.PolyvSource = 2;//自定义 } Model.PolyvInfo_ID = Model_Detail.PolyvInfo_ID; Model.Valid = Model_Detail.Valid; Model.cataid = Model_Detail.cataid == null ? "" : Model_Detail.cataid; } return(Model); }
/// <summary> /// 创建目录并保存 hx add 20180105 /// </summary> /// <param name="Message">创建消息</param> /// <param name="PolyvInfo_ID">主表ID</param> /// <param name="cataid">分类cataid</param> /// <param name="Valid">禁用/启用</param> /// <param name="PolyvSource"></param> /// <param name="IsAdd">是添加还是修改</param> /// <returns></returns> public dynamic SavePolyvDetail(bool isAdd, int Station_ID, int PolyvInfo_ID, string cataid, int Valid, int PolyvSource) { bool save = false; W_PolyvInfo_Detail PolyvInfoModel_Detail = new W_PolyvInfo_Detail(); //明细表添加数据 PolyvInfoModel_Detail.System_Station_ID = Station_ID; PolyvInfoModel_Detail.PolyvInfo_ID = PolyvInfo_ID; PolyvInfoModel_Detail.cataid = cataid; PolyvInfoModel_Detail.Valid = Valid; try { SqlMapper.BeginTransaction();//开启事务 if (isAdd) { //添加明细数据 Orm.Insert(PolyvInfoModel_Detail); //修改配置表账号类型 if (SqlMapper.Update("UpdatePolyvinfoType", new { PolyvinfoType = PolyvSource, System_Station_ID = Station_ID }) > 0) { save = true; } } else { //修改明细数据 if (SqlMapper.Update("UpdatePolyvInfoDetail", new { PolyvInfo_ID = PolyvInfo_ID, cataid = cataid, Valid = Valid, System_Station_ID = Station_ID }) > 0) { if (SqlMapper.Update("UpdatePolyvinfoType", new { PolyvinfoType = PolyvSource, System_Station_ID = Station_ID }) > 0) { save = true; } } else { throw new ApiException("设置不成功,明细修改异常!"); } } SqlMapper.CommitTransaction(); } catch (Exception ex) { SqlMapper.RollBackTransaction(); throw new ApiException(ex.Message); } finally { //SqlMapper.CloseConnection(); } return(save); }
/// <summary> /// 保利威视配置 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool SavePolyvInfo(PolyvInfoModel model) { if (model.System_Station_ID == 0) { throw new ApiException("机构ID不存在!"); } //自主类型 参数判断 if (model.PolyvSource == 1) { if (string.IsNullOrEmpty(model.userid)) { throw new ApiException("userid不能为空!"); } if (string.IsNullOrEmpty(model.writetoken)) { throw new ApiException("writetoken不能为空!"); } if (string.IsNullOrEmpty(model.readtoken)) { throw new ApiException("readtoken不能为空!"); } if (string.IsNullOrEmpty(model.secretkey)) { throw new ApiException("secretkey不能为空!"); } string refMessage = ""; //测试接口是否可用、参数是否正确 if (!CheckParameter(model.userid, model.writetoken, model.readtoken, model.secretkey, ref refMessage)) { throw new ApiException(refMessage); } } H_Station station = Orm.Single <H_Station>(x => x.ID == model.System_Station_ID); string StationName = station != null ? station.Name : ""; if (model.PolyvSource == 1) { model.Name = StationName; //自主的就读机构的名称 } string Message = string.Empty; //是否第一次设置 W_PolyvInfo_Detail polyvDetail = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID); if (polyvDetail == null) //第一次设置 { if (model.PolyvSource == 0) //系统默认 { #region W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == 0); //读主表默认 if (model == null) { throw new ApiException("未找到对应的默认配置数据!"); } //调用接口创建目录 string cataid = CreateDirectory(Model, StationName, out Message); //创建目录失败 if (string.IsNullOrEmpty(cataid)) { throw new ApiException("创建目录失败!" + Message); } else { //添加详细 return(SavePolyvDetail(true, model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource)); } #endregion } else if (model.PolyvSource == 1) //自主类型 { #region W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == model.System_Station_ID); //读主表配置 if (Model == null) //主表为空 { W_PolyvInfo polyv = new W_PolyvInfo(); polyv.System_Station_ID = model.System_Station_ID; polyv.Name = model.Name; polyv.userid = model.userid; polyv.writetoken = model.writetoken; polyv.readtoken = model.readtoken; polyv.secretkey = model.secretkey; polyv.AddTime = DateTime.Now; int polyv_id = (int)Orm.Insert(polyv, true); if (polyv_id > 0) { //调用接口创建目录 string cataid = CreateDirectory(polyv, StationName, out Message); //创建目录失败 if (string.IsNullOrEmpty(cataid)) { throw new ApiException("创建目录失败!" + Message); } else { //添加详细 return(SavePolyvDetail(true, polyv.System_Station_ID, polyv_id, cataid, model.Valid, model.PolyvSource)); } } else { throw new ApiException("设置不成功,设置主表添加异常!"); } } else { //调用接口创建目录 string cataid = CreateDirectory(model, StationName, out Message); //创建目录失败 if (string.IsNullOrEmpty(cataid)) { throw new ApiException("创建目录失败!" + Message); } else { //直接修改明细 return(SavePolyvDetail(true, model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource)); } } #endregion } else { throw new ApiException("设置不成功,账号类型不正确!"); } } else //不是第一次设置 { if (model.PolyvSource == 0) //系统默认 { #region W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == 0); //读主表默认 if (model == null) { throw new ApiException("未找到对应的默认配置数据!"); } //读详细表 W_PolyvInfo_Detail D_Model = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID); if (D_Model != null) { //不创建目录 直接修改详细 return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, D_Model.cataid, model.Valid, model.PolyvSource)); } else { throw new ApiException("未找到对应的明细配置数据!"); } #endregion } else if (model.PolyvSource == 1) //自主类型 { #region W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == model.System_Station_ID); //读主表配置 if (Model == null) //主表为空 { W_PolyvInfo polyv = new W_PolyvInfo(); polyv.System_Station_ID = model.System_Station_ID; polyv.Name = model.Name; polyv.userid = model.userid; polyv.writetoken = model.writetoken; polyv.readtoken = model.readtoken; polyv.secretkey = model.secretkey; polyv.AddTime = DateTime.Now; int polyv_id = (int)Orm.Insert(polyv, true); if (polyv_id > 0) { //调用接口创建目录 string cataid = CreateDirectory(polyv, StationName, out Message); //创建目录失败 if (string.IsNullOrEmpty(cataid)) { throw new ApiException("创建目录失败!" + Message); } else { //修改详细 return(SavePolyvDetail(false, polyv.System_Station_ID, polyv_id, cataid, model.Valid, model.PolyvSource)); } } else { throw new ApiException("设置不成功,设置主表添加异常!"); } } else //主表不为空,修改 { //数据是否修改 bool HasChange = false; if (model.userid != Model.userid) { HasChange = true; } if (model.writetoken != Model.writetoken) { HasChange = true; } if (model.readtoken != Model.readtoken) { HasChange = true; } if (model.secretkey != Model.secretkey) { HasChange = true; } W_PolyvInfo_Detail D_Model = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID); //读详细表 if (HasChange) //如果数据有变更 { //调用接口创建目录 string cataid = CreateDirectory(model, StationName, out Message); //创建目录失败 if (string.IsNullOrEmpty(cataid)) { throw new ApiException("创建目录失败!" + Message); } else { //修改主表 if (SqlMapper.Update("UpdatePolyvInfo", new { Name = model.Name, userid = model.userid, writetoken = model.writetoken, readtoken = model.readtoken, secretkey = model.secretkey, System_Station_ID = model.System_Station_ID, ID = Model.ID }) > 0) { //修改详细 return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource)); } else { throw new ApiException("主表修改失败!" + Message); } } } else { //直接修改明细 return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, D_Model.cataid, model.Valid, model.PolyvSource)); } } #endregion } else { throw new ApiException("设置不成功,账号类型不正确!"); } } }