public IActionResult Import_Submit() { var file = Request.Form.Files["file_up"]; if (file == null) { return(WriteErr("未指定文件")); } if (file.Length < 100) { return(WriteErr("文件为空")); } string ext = Path.GetExtension(file.FileName).ToLower(); if (ext != ".xlsx") { return(WriteErr("只允许上传xlsx文件")); } //------------------------- DataTable excelDT = Import_Logical.Excel_ToDT(XMLPath, file.OpenReadStream()); B_CodeModel codeBll = new B_CodeModel(excelDT.TableName); DataTable modelDT = codeBll.SelStruct(); //将数据直接写入数据库,或将其转换为模型再写入 foreach (DataRow dr in excelDT.Rows) { //将第一列作为主键忽略掉 codeBll.Insert(dr, modelDT.Columns[0].ColumnName); } return(WriteOK("数据导入完成")); }
/// <summary> /// 批量插入记录,并扣减库存?? /// </summary> public void BatInsert(int cartID, DataTable ptDT) { if (ptDT.Rows.Count < 1) { return; } DataTable dt = codeBll.SelStruct(); string[] ignores = "id,cartid".Split(','); foreach (DataRow ptDR in ptDT.Rows) { DataRow dr = dt.NewRow(); foreach (DataColumn dc in dt.Columns) { string cname = dc.ColumnName.ToLower(); if (cname.Equals("id") || cname.Equals("cartid")) { continue; } if (!ptDT.Columns.Contains(cname)) { continue; } dr[cname] = ptDR[cname]; } dr["CartID"] = cartID; dr["Remind"] = ""; codeBll.Insert(dr); } }
/// <summary> /// 将指定节点文章拷到一个新节点下(将旧的也转换为此) /// </summary> /// <param name="nodeDT">需要拷贝的节点信息</param> /// <param name="pnode">父节点信息</param> /// <param name="mu">用户信息</param> private void CopyNodeAndContent(DataTable nodeDT, M_Node pnode) { if (pnode.CUser < 1) { throw new Exception("未指定用户ID"); } if (string.IsNullOrEmpty(pnode.CUName)) { throw new Exception("未指定用户名称"); } B_Node nodeBll = new B_Node(); B_CodeModel conBll = new B_CodeModel("ZL_CommonModel"); B_CodeModel artBll = new B_CodeModel("ZL_C_Article"); foreach (DataRow nodedr in nodeDT.Rows) { M_Node cnode = new M_Node().GetModelFromReader(nodedr);//当前循环的写入数据库的节点 cnode.ParentID = pnode.NodeID; cnode.CUser = pnode.CUser; cnode.CUName = pnode.CUName; cnode.NodeBySite = pnode.NodeBySite; cnode.CDate = DateTime.Now; cnode.NodeID = nodeBll.Insert(cnode); //拷贝相应的文章进入该节点 DataTable conDT = DBCenter.Sel("ZL_CommonModel", "NodeID=" + nodedr["NodeID"]); DataTable artDT = DBCenter.Sel("ZL_C_Article", "ID IN (SELECT ItemID FROM ZL_CommonModel WHERE NodeID=" + nodedr["NodeID"] + ")"); if (artDT.Columns.Contains("ppics")) { artDT.Columns.Remove("ppics"); } if (artDT.Columns.Contains("tpic")) { artDT.Columns.Remove("tpic"); } for (int i = 0; i < conDT.Rows.Count; i++) { DataRow condr = conDT.Rows[i]; condr["CreateTime"] = DateTime.Now; condr["UPDateTime"] = DateTime.Now; condr["Inputer"] = pnode.CUName; condr["NodeID"] = cnode.NodeID; int itemID = Convert.ToInt32(condr["ItemID"]); if (artDT.Select("ID='" + itemID + "'").Length > 0) { //其中可能包含没有的字段,需要一个方法,将其导入(根据站站迁移扩展) DataRow artdr = artDT.Select("ID='" + itemID + "'")[0]; itemID = artBll.Insert(artdr); } else { itemID = 0; } condr["ItemID"] = itemID; conBll.Insert(condr, "GeneralID"); } } }
public string wxqrcode(int refereeType, string refereeId, string key) { try { if (string.IsNullOrEmpty(key)) { retMod.retmsg = "未指定key"; } else if (!key.Equals(APIKey)) { retMod.retmsg = "key不正确"; } else { int scenceid = 0; B_CodeModel codeBll = new B_CodeModel("ZL_SSW_WXQRCode"); SqlParameter[] sp = new SqlParameter[] { new SqlParameter("refereeId", refereeId) }; DataTable dt = codeBll.SelByWhere("refereeType=" + refereeType + " AND refereeId=" + refereeId, "ID DESC", sp); if (dt.Rows.Count < 1) { DataRow dr = dt.NewRow(); dr["refereeType"] = refereeType; dr["refereeId"] = refereeId; scenceid = codeBll.Insert(dr); } else { scenceid = Convert.ToInt32(dt.Rows[0]["ID"]); } //-------------------------------------------------------------------------- WxAPI wxapi = WxAPI.Code_Get(); string resultStr = APIHelper.GetWebResult("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + wxapi.AccessToken + "&type=jsapi", "POST", "{\"expire_seconds\":604800,\"action_name\":\"QR_LIMIT_SCENE\",\"action_info\":{\"scene\":{\"scene_id\":" + scenceid + "}}}"); JObject result = (JObject)JsonConvert.DeserializeObject(resultStr); if (result["ticket"] == null) { retMod.retmsg = resultStr; ZLLog.L("wxqrcode failed1:" + resultStr); } else { retMod.result = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + HttpUtility.UrlEncode(result["ticket"].ToString()); retMod.retcode = M_APIResult.Success; } } } catch (Exception ex) { retMod.retmsg = ex.Message; ZLLog.L("wxqrcode failed2:" + ex.Message); } return(retMod.ToString()); }
protected void CreateFont_Btn_Click(object sender, EventArgs e) { string fontsrc = Font_DP.SelectedValue + ".ttf"; string tlp = SafeSC.ReadFileStr("/WebFont/tlp.html"); DataRow dr = codeBll.NewModel(); dr["Text"] = StringHelper.SubStr(T1.Text, 500, ""); dr["FlowCode"] = DateTime.Now.ToString("yyyyMMddHHmm") + function.GetRandomString(6); dr["CDate"] = DateTime.Now; tlp = tlp.Replace("{Text}", dr["Text"].ToString()); string fontdir = "/WebFont/Users/" + dr["FlowCode"].ToString() + "/"; dr["FontDir"] = function.VToP(fontdir); SafeSC.WriteFile(fontdir + "tlp.html", tlp); dr["ZStatus"] = 0; //1,将选定的字体拷入 string src = "/WebFont/Fonts/" + fontsrc; string tar = fontdir + "pen.ttf"; Copy(src, tar); int id = codeBll.Insert(dr); result_div.Visible = true; result_t_div.InnerText = T1.Text; r_quote_t.Text = GetQuote(dr["FlowCode"].ToString(), "pen"); font_css.InnerHtml = GetQuote(dr["FlowCode"].ToString(), "pen"); //2,运行命令开始生成(命令行中已处理) //3,拷贝完成后回发指令,表示完成,客户端可预览或下载 while (Response.IsClientConnected) { System.Threading.Thread.Sleep(1000); dr = codeBll.SelByID(id); if (dr["ZStatus"].ToString().Equals("1")) { break; } } }
//更新商品所用原料信息 private void IsHaveMaterial(M_Product proMod) { B_Shop_Material matBll = new B_Shop_Material(); B_CodeModel codeBll = new B_CodeModel("ZL_Shop_ProMaterial"); try { DataTable dt = DBCenter.SelWithField(matBll.TbName, "ID"); foreach (DataRow dr in dt.Rows) { int id = Convert.ToInt32(dr["ID"]); int matnum = DataConvert.CLng(Request.Form["mat_" + id + "_num"]); if (matnum < 0) { matnum = 0; } DataTable codeMod = codeBll.SelByWhere("ProID=" + proMod.ID + " AND MatID=" + id, "ID DESC"); if (codeMod.Rows.Count < 1) { codeMod.Rows.Add(codeMod.NewRow()); } codeMod.Rows[0]["ProID"] = proMod.ID; codeMod.Rows[0]["MatID"] = id; codeMod.Rows[0]["MatNum"] = matnum; codeMod.Rows[0]["Remind"] = ""; if (DataConvert.CLng(codeMod.Rows[0]["ID"]) > 0) { codeBll.UpdateByID(codeMod.Rows[0]); } else { codeBll.Insert(codeMod.Rows[0]); } } } catch { } }
public int Insert(M_WX_APPID model) { return(codeBll.Insert(GetReaderFromModel(model))); //return Sql.insertID(TbName, model.GetParameters(model), BLLCommon.GetParas(model), BLLCommon.GetFields(model)); }
public void ProcessRequest(HttpContext context) { M_UserInfo mu = buser.GetLogin(); retMod.retcode = M_APIResult.Failed; if (mu.IsNull) { retMod.retmsg = "用户未登录"; RepToClient(retMod); } int siteID = DataConvert.CLng(Req("SiteID")); //retMod.callback = CallBack;//暂不开放JsonP try { switch (Action) { case "mb_list": #region { string fields = "wxico,wxsize,wxbk,flag,wxlink,content,dbtype"; DataTable dt = GetListDT(); foreach (DataRow dr in dt.Rows) { M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(dr["id"])); //if (!conMod.Inputer.Equals(mu.UserName)) { continue; } List <SqlParameter> sp1 = GetSPByDR(dr, "title"); List <SqlParameter> sp2 = GetSPByDR(dr, fields); DBCenter.UpdateSQL("ZL_CommonModel", GetSet(sp1), "GeneralID=" + conMod.GeneralID, sp1); DBCenter.UpdateSQL("ZL_C_Article", GetSet(sp2), "ID=" + conMod.ItemID, sp2); } retMod.retcode = M_APIResult.Success; } #endregion break; case "mb_nav": { DataTable dt = GetListDT(); foreach (DataRow dr in dt.Rows) { M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(dr["id"])); //if (!conMod.Inputer.Equals(mu.UserName)) { continue; } List <SqlParameter> sp1 = new List <SqlParameter>() { new SqlParameter("title", dr["title"].ToString()) }; List <SqlParameter> sp2 = new List <SqlParameter>() { new SqlParameter("wxico", dr["wxico"].ToString()) }; DBCenter.UpdateSQL("ZL_CommonModel", "Title=@title", "GeneralID=" + conMod.GeneralID, sp1); DBCenter.UpdateSQL("ZL_C_Article", "wxico=@wxico", "ID=" + conMod.ItemID, sp2); } retMod.retcode = M_APIResult.Success; } break; case "mg_footbar": { DataTable dt = GetListDT(); foreach (DataRow dr in dt.Rows) { M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(dr["id"])); //if (!conMod.Inputer.Equals(mu.UserName)) { continue; } List <SqlParameter> sp1 = new List <SqlParameter>() { new SqlParameter("title", dr["title"].ToString()) }; List <SqlParameter> sp2 = new List <SqlParameter>() { new SqlParameter("wxico", dr["wxico"].ToString()) }; DBCenter.UpdateSQL("ZL_CommonModel", "Title=@title", "GeneralID=" + conMod.GeneralID, sp1); DBCenter.UpdateSQL("ZL_C_Article", "wxico=@wxico", "ID=" + conMod.ItemID, sp2); } retMod.retcode = M_APIResult.Success; } break; case "mb_image": //更新单个内容的指定字段,是否需要扩展为,根据字段更新目标表,以减少代码 { string flag = Req("flag"); //传了该值,则代表单条数据更新 DataTable dt = GetListDT(); foreach (DataRow dr in dt.Rows) { List <SqlParameter> sp2 = new List <SqlParameter>() { new SqlParameter("wxico", dr["wxico"].ToString()), new SqlParameter("flag", dr["flag"].ToString()) }; DBCenter.UpdateSQL("ZL_C_Article", "wxico=@wxico", "Flag=@flag", sp2); } retMod.retcode = M_APIResult.Success; } break; case "mb_byid": //主用于内容更新 { string fields = "wxico,wxsize,wxbk,flag,wxlink,content,dbtype"; //dbtype DataTable dt = GetListDT(); foreach (DataRow dr in dt.Rows) { M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(dr["id"])); List <SqlParameter> sp1 = GetSPByDR(dr, "title"); List <SqlParameter> sp2 = GetSPByDR(dr, fields); DBCenter.UpdateSQL("ZL_CommonModel", GetSet(sp1), "GeneralID=" + conMod.GeneralID, sp1); DBCenter.UpdateSQL("ZL_C_Article", GetSet(sp2), "ID=" + conMod.ItemID, sp2); } retMod.retcode = M_APIResult.Success; } break; case "mb_new": { B_CodeModel codeBll = new B_CodeModel("ZL_C_Article"); string nodeName = Req("type").Equals("nav") ? "微站图片" : "微站内容"; DataTable nodedt = DBCenter.Sel("ZL_Node", "NodeBySite=" + siteID + " AND NodeName='" + nodeName + "'"); if (nodedt.Rows.Count < 1) { retMod.retmsg = nodeName + "节点不存在"; } else { DataRow dr = GetListDT().Rows[0]; M_CommonData conMod = new M_CommonData(); DataRow artdr = codeBll.NewModel(); conMod.Title = dr["title"].ToString(); conMod.Inputer = mu.UserName; conMod.Status = (int)ZLEnum.ConStatus.Audited; conMod.TableName = "ZL_C_Article"; conMod.ModelID = 2; //文章ID conMod.NodeID = Convert.ToInt32(nodedt.Rows[0]["NodeID"]); //放入微内容处 //----------------------------- artdr["content"] = "ajax添加"; artdr["wxico"] = dr["wxico"]; artdr["wxsize"] = dr["wxsize"]; artdr["wxbk"] = dr["wxbk"]; artdr["flag"] = dr["flag"]; artdr["dbtype"] = dr["dbtype"]; conMod.ItemID = codeBll.Insert(artdr); conMod.GeneralID = conBll.insert(conMod); retMod.retcode = M_APIResult.Success; retMod.result = conMod.GeneralID.ToString(); } } break; case "mb_del": { int id = Convert.ToInt32(Req("id")); M_CommonData conMod = conBll.SelReturnModel(id); if (conMod == null) { retMod.retmsg = "内容[" + id + "]不存在"; } else if (!conMod.Inputer.Equals(mu.UserName)) { retMod.retmsg = "你无权删除[" + id + "]内容"; } else { conBll.SetDel(conMod.GeneralID); retMod.retcode = M_APIResult.Success; } } break; case "mb_pro_update": //新建,或更新 { DataRow dr = GetListDT().Rows[0]; M_Product proMod = new M_Product(); if (DataConvert.CLng(dr["id"]) > 0) { int id = Convert.ToInt32(dr["id"]); proMod = proBll.GetproductByid(id); if (proMod == null) { retMod.retmsg = "商品[" + id + "]不存在"; RepToClient(retMod); } else if (proMod.UserID != mu.UserID) { retMod.retmsg = "无权修改[" + id + "]商品"; RepToClient(retMod); } } proMod.Proname = dr["proname"].ToString(); proMod.ActPrice = dr["price"].ToString(); proMod.LinPrice = DataConvert.CDouble(dr["price"]); proMod.UserID = mu.UserID; proMod.AddUser = mu.UserName; proMod.Nodeid = B_Design_MBSite.UserShopNodeID; proMod.ParentID = siteID; proMod.Proinfo = dr["proinfo"].ToString(); proMod.Procontent = dr["content"].ToString(); proMod.Clearimg = dr["pics"].ToString(); proMod.Thumbnails = proMod.Clearimg; if (proMod.ID > 0) { proBll.updateinfo(proMod); } else { proMod.ID = proBll.Insert(proMod); } retMod.retmsg = proMod.ID.ToString(); retMod.retcode = M_APIResult.Success; } break; case "mb_pro_del": { int id = Convert.ToInt32(Req("id")); M_Product proMod = proBll.GetproductByid(id); if (proMod == null) { retMod.retmsg = "商品[" + id + "]不存在"; } else if (proMod.UserID != mu.UserID) { retMod.retmsg = "你无权删除[" + id + "]商品"; } else { proBll.RealDelByIDS(id.ToString()); retMod.retcode = M_APIResult.Success; } } break; default: retMod.retmsg = "[" + Action + "]接口不存在"; break; } } catch (Exception ex) { retMod.retmsg = ex.Message; retMod.retcode = M_APIResult.Failed; } RepToClient(retMod); }
/// <summary> /// 递归最多20层分配用户的分红,每次分红都产生一条数据库记录 /// </summary> /// <param name="startMod">起始模型,有分红数据,层次等信息</param> /// <param name="model">开始计算的模型,传值为 pmodel</param> /// <param name="dep">深度,从0开始</param> private void CountUnit(M_User_UnitWeek startMod, M_User_UnitWeek model) { int curLevel = (startMod.Level - model.Level);//起始层与现在层的层级差 //根据层级,用户的投资额,计算出用户的分红比率,存入unit0中 DataRow[] drs = depDT.Select("UserID=" + model.UserID); if (drs.Length > 1) { throw new Exception(model.UserID + "异常,同一用户出现多个数值"); } if (drs.Length > 0)//如果有存值存在(现记录),则记算分红 { double bonus = 0, curper = 0; double per2 = 0.02, per5 = 0.05, per10 = 0.10; M_Deposit depMod = new M_Deposit().GetModelFromUnit(drs[0]); if (false)//预留给IB,最大20层 { } else if (depMod.Money >= 50000)//15层 { if (curLevel <= 5) { curper = per10; } else if (curLevel <= 10) { curper = per5; } else if (curLevel <= 15) { curper = per2; } } else if (depMod.Money >= 10000) { if (curLevel <= 5) { curper = per10; } else if (curLevel <= 10) { curper = per5; } } else if (depMod.Money > 1000) { if (curLevel <= 5) { curper = per10; } } else//不给予分红 { } bonus = startMod.AMount * curper; //分红计算完毕,如有值,写入记录 if (bonus > 0) { M_PromoBonus promoMod = new M_PromoBonus(); promoMod.AMount = startMod.AMount; promoMod.MyLevel = curLevel; promoMod.Unit = bonus; promoMod.UserID = model.UserID; promoMod.UserName = model.UserName; promoMod.SUserID = startMod.UserID; promoMod.SUserName = startMod.UserName; //托管理财金额 promoMod.Remark = "金额:" + depMod.Money + ",分红:" + startMod.AMount.ToString("f0") + ",层级:" + curLevel + ",佣金比率:" + curper.ToString("f2") + ",佣金:" + bonus; DataRow dr = promoMod.ModelToDR(promoStruct); promoBll.Insert(dr); } } //ZLLog.L(ZLEnum.Log.safe, model.PUserID + ":" + (model.PModel == null) + ":" + (startMod.Level - model.Level)); //出口 if (model.PUserID == 0 || model.PModel == null || (startMod.Level - model.Level) > 20) { return; } CountUnit(startMod, model.PModel); }
protected void Add_Btn_Click(object sender, EventArgs e) { M_CommonData CData = new M_CommonData(); M_AdminInfo adminMod = B_Admin.GetLogin(); M_ModelInfo model = modelBll.SelReturnModel(ModelID); artBll = new B_CodeModel(model.TableName); if (GeneralID > 0) { CData = conBll.SelReturnModel(GeneralID); } else { CData.NodeID = NodeID; CData.ModelID = ModelID; CData.TableName = model.TableName; CData.Inputer = adminMod.AdminName; string parentTree = ""; CData.FirstNodeID = nodeBll.SelFirstNodeID(NodeID, ref parentTree); CData.ParentTree = parentTree; } //------------------------ CData.Title = Title_T.Text.Trim(); switch ((sender as Button).CommandArgument) { case "add": CData.Status = (int)ZLEnum.ConStatus.Audited; break; case "draft": CData.Status = (int)ZLEnum.ConStatus.Draft; break; default: break; } if (GeneralID > 0) { DataRow dr = artBll.SelByID(CData.ItemID); dr["Content"] = content_t.Text; artBll.UpdateByID(dr, "ID"); conBll.UpdateByID(CData); } else { DataRow dr = artBll.NewModel(); dr["Content"] = content_t.Text; CData.ItemID = artBll.Insert(dr); CData.GeneralID = conBll.insert(CData); } //----------------同步版权印 double repPrice = DataConverter.CDouble(RepPrice_T.Text.Trim()); double matPrice = DataConverter.CDouble(MatPrice_T.Text.Trim()); string content = StringHelper.StripHtml(content_t.Text); M_Content_CR crMod = crBll.CreateFromContent(CData, content, repPrice, matPrice); string result = copyBll.Create(crMod); JObject obj = JsonConvert.DeserializeObject <JObject>(result); crMod.Status = DataConverter.CLng(obj["value"]); crMod.WorksID = obj["data"].ToString(); crBll.Insert(crMod); if (crMod.Status == 1) { function.WriteSuccessMsg("操作成功,文章编号为:" + crMod.WorksID, "WorksList.aspx"); } else { function.WriteErrMsg("操作失败:" + obj["msg"]); } }
protected void Page_Load(object sender, EventArgs e) { if (Pid <= 0) { function.WriteErrMsg("参数错误!不存在此信息!"); } M_Pub mpub = pubBll.GetSelect(Pid); mu = buser.GetLogin(); if (mpub == null || mpub.Pubid < 1) { function.WriteErrMsg("互动信息不存在"); } M_APIResult retMod = new M_APIResult(); int spid = DataConvert.CLng(Request.Form["spfbrid"]); if (mu.UserID < 1) { retMod.retmsg = "未登录不可提交订单"; RepToClient(retMod.ToString()); return; } if (spid < 1) { retMod.retmsg = "未指定教师信息"; RepToClient(retMod.ToString()); return; } { //如果存在与该老师的进行中订单,则忽略 string where = "xsrid=" + mu.UserID + " AND spfbrid=" + spid; where += " AND status_order>=0 AND status_order<100"; if (DBCenter.IsExist("ZL_Pub_dsmx", where)) { retMod.retmsg = "已存在生效中的订单"; RepToClient(retMod.ToString()); return; } } M_UserInfo spmu = buser.SelReturnModel(spid); if (spmu.IsNull) { retMod.retmsg = "老师信息不存在"; RepToClient(retMod.ToString()); return; } //-----------------------获取用户提交的数据 //隐藏字段值 int PubContentid = DataConverter.CLng(Request.Form["PubContentid"]); int Parentid = DataConvert.CLng(Request.Form["Parentid"]); //用户提交 string pbtitle = Server.HtmlEncode(DataConvert.CStr(Request.Form["PubTitle"])); string pbcontent = Server.HtmlEncode(DataConvert.CStr(Request.Form["PubContent"])); if (!pbtitle.Contains("的"))//xxx的课程 { pbtitle = B_User.GetUserName(spmu.HoneyName, spmu.UserName) + "的课程"; } //-----------------------可提交判断 List <SqlParameter> sp = new List <SqlParameter>(); //-----------------------初始化参数 //删除超过保留期限的值 //pubBll.DeleteModel(mpub.PubTableName, "DateDiff(d,PubAddTime,getdate())>" + mpub.Pubkeep); //ModelField表中仅存了自定义的字段 B_CodeModel codeBll = new B_CodeModel(mpub.PubTableName); DataRow dr = codeBll.NewModel(); DataTable mfDT = mfBll.DB_SelByModel(mpub.PubModelID); mfDT.DefaultView.RowFilter = "sys_type=0"; mfDT = mfDT.DefaultView.ToTable(); //-----固定的系统字段 dr["Pubnum"] = 1; dr["PubIP"] = EnviorHelper.GetUserIP(); dr["PubUserID"] = mu.UserID; dr["PubUserName"] = mu.UserName; dr["Pubupid"] = mpub.Pubid; dr["PubAddTime"] = DateTime.Now; dr["Parentid"] = Parentid; dr["PubTitle"] = pbtitle; dr["PubContent"] = pbcontent; dr["Pubstart"] = mpub.PubIsTrue == 1 ? 0 : 1;//取反 dr["PubInputer"] = B_User.GetUserName(mu.HoneyName, mu.UserName); dr["PubContentid"] = PubContentid; //dr["cookflag"] = CookFlag; //=========订单初始化 dr["status_order"] = 0; dr["status_user"] = 0; dr["status_teacher"] = 0; dr["status_money"] = 0; dr["edate"] = ""; dr["fcAmount"] = 0; dr["fcDate"] = ""; //int djid = DataConvert.CLng(mu.ParentUserID); //if (djid < 1) { djid = DataConvert.CLng(Request["djid"]); } dr["djid"] = DataConvert.CLng(Request["djid"]); //------非系统字段 for (int i = 0; i < mfDT.Rows.Count; i++) { M_ModelField mfMod = new M_ModelField().GetModelFromReader(mfDT.Rows[i]); string value = Server.HtmlEncode(Request.Form[mfMod.FieldName] ?? ""); Parentid = DataConvert.CLng(Request.Form["Parentid"]); if (mfMod.IsNotNull && string.IsNullOrEmpty(value)) { RepToClient(mfMod.FieldName + "不能为空"); } dr[mfMod.FieldName] = value; switch (mpub.PubType) { #region 根据互动类型,进行空值判断 case 0: if (string.IsNullOrEmpty(pbcontent)) { RepToClient("评论内容不能为空!"); } break; case 1: if (string.IsNullOrEmpty(pbtitle)) { RepToClient("标题不能为空!"); } break; case 2: if (string.IsNullOrEmpty(pbtitle)) { RepToClient("标题不能为空!"); } if (string.IsNullOrEmpty(pbcontent)) { RepToClient("活动信息不能为空!"); } break; case 3: if (string.IsNullOrEmpty(pbtitle) || string.IsNullOrEmpty(pbcontent)) { RepToClient("标题与内容不能为空!"); } break; case 4: if (string.IsNullOrEmpty(pbtitle)) { RepToClient("标题不能为空!"); } break; case 5: break; case 7: //将评星控件的数据写入数据表中 dr["PubContent"] = Request.Params["scoreVal"]; break; case 8: //互动表单 break; #endregion } } codeBll.Insert(dr); retMod.retcode = M_APIResult.Success; RepToClient(retMod.ToString()); //Upaddnums(mpub); //更新总参与人数 }
protected void Page_Load(object sender, EventArgs e) { if (function.isAjax()) { ProcAjax(); } if (Pid <= 0) { function.WriteErrMsg("参数错误!不存在此信息!"); } M_Pub mpub = pubBll.GetSelect(Pid); if (mpub != null && mpub.Pubid > 0) { #region 是否需要登录PubLogin if (mpub.PubLogin == 1) { string logstr = mpub.PubLoginUrl; if (!buser.CheckLogin()) { if (string.IsNullOrEmpty(logstr)) { Response.Redirect("/User/Login?ReturnUrl=" + Request.UrlReferrer.PathAndQuery); } else { Response.Redirect(logstr); } Response.End(); } } #endregion #region 是否已经结束 if (mpub.PubEndTime < DateTime.Now) { function.WriteErrMsg("Sorry,此互动已经结束!不接收任何提交的数据!"); Response.End(); } #endregion string cookflag = Request.Cookies["cookflag"] == null ? "" : Request.Cookies["cookflag"].Value; string PubInputer = Request.Form["PubInputer"]; int PubContentid = DataConverter.CLng(Request.Form["PubContentid"]); //初始化参数 int pubitemid = 0; int Pubnum = 0; int Parentid = 0; int userid = 0; string username = ""; //IP可发信息数量 int pubipnum = mpub.PubIPOneOrMore; //是否需要审核 bool isinto = false; //用户提交 string pbtitle = Server.HtmlEncode(Request.Form["PubTitle"]); string pbcontent = Server.HtmlEncode(Request.Form["PubContent"]); //----------------------------------------------------------------- if (mpub.PubCode == 1) { if (!ZoomlaSecurityCenter.VCodeCheck(Request.Form["VCode_hid"], Request.Form["VCode"])) { Response.Write("<script>alert('验证码错误!');window.history.go(-1);</script>"); Response.Flush(); Response.End(); } } if (buser.CheckLogin()) { M_UserInfo mu = buser.GetLogin(); userid = mu.UserID; username = mu.UserName; } //查找是否存在主题 DataTable temptable = mfBll.SelectTableName(mpub.PubTableName, "PubContentid=" + PubContentid + " and Pubupid=" + Pid + " and Parentid=0"); //同IP的同一篇文章回复次数 int msgCount = pubBll.SelMsgCount(mpub, PubContentid, mpub.Pubid, EnviorHelper.GetUserIP()); //最后回复时间 DataTable selecttime = mfBll.SelectTableName(mpub.PubTableName, "PubContentid=" + PubContentid + " and Pubupid=" + Pid + " and PubIP='" + EnviorHelper.GetUserIP() + "' order by id desc"); //判断是否存在,获得数据的值 if (temptable.Rows.Count > 0) { pubitemid = DataConverter.CLng(temptable.Rows[0]["ID"]); Pubnum = DataConverter.CLng(temptable.Rows[0]["Pubnum"]); } //删除超过保留期限的值 pubBll.DeleteModel(mpub.PubTableName, "DateDiff(d,PubAddTime,getdate())>" + mpub.Pubkeep); switch (pubipnum) { case 0: Parentid = 0; isinto = true; break; case 1: //Only One Parentid = temptable.Rows.Count == 0 ? 0 : Parentid = DataConverter.CLng(temptable.Rows[0]["ID"]); isinto = msgCount < 1; break; default: Parentid = temptable.Rows.Count == 0 ? 0 : Parentid = DataConverter.CLng(temptable.Rows[0]["ID"]); isinto = msgCount < pubipnum; break; } //开启cookies身份判断(主用于移动端例如微信浏览器) if (isinto && mpub.PubFlag == 1 && Request.Cookies["cookflag"] != null) { if (string.IsNullOrEmpty(cookflag)) { function.WriteErrMsg("身份信息不正确,无法参与互动!"); } SqlParameter[] sp = new SqlParameter[] { new SqlParameter("cookflag", cookflag) }; string sql = " cookflag=@cookflag"; DataTable pubinfoDT = mfBll.SelectTableName(mpub.PubTableName, sql, sp); if (pubinfoDT.Rows.Count >= mpub.PubTimeSlot) { function.WriteErrMsg("很抱歉,每人只能提交" + mpub.PubFlag + "次"); isinto = false; } } //用户信息数量限制 if (isinto && mpub.PubOneOrMore > 0 && !string.IsNullOrEmpty(username)) { SqlParameter[] sp2 = new SqlParameter[] { new SqlParameter("uname", username) }; string sql2 = "PubContentid=" + PubContentid + " and Pubupid=" + mpub.Pubid + " and PubUserName=@uname order by id desc"; DataTable pubinfoDT = mfBll.SelectTableName(mpub.PubTableName, sql2, sp2); if (mpub.PubOneOrMore == 3) { if (pubinfoDT.Select("PubUserID=" + userid).Length > 1) { function.WriteErrMsg("很抱歉,对于此次互动,您只能参与一次!"); } } isinto = pubinfoDT.Rows.Count < mpub.PubOneOrMore; } if (!isinto)//不符合添加条件 { if (!string.IsNullOrEmpty(mpub.Puberrmsg)) { Response.Write("<script>alert('" + mpub.Puberrmsg + "');window.history.go(-1);</script>"); } else { Response.Write("<script>window.history.go(-1);</script>"); } Response.End(); return; } DateTime PubAddTimes = DateTime.MinValue; if (selecttime.Rows.Count > 0 && Parentid > 0) { PubAddTimes = DataConverter.CDate(selecttime.Rows[0]["PubAddTime"]); } //TimeSpan timespan = DateTime.Now - PubAddTimes;//时间间隔,用于限定用户第二次提交限制 //double TotalSecondsnum = timespan.TotalSeconds; //ModelField表中仅存了自定义的字段 B_CodeModel codeBll = new B_CodeModel(mpub.PubTableName); DataRow dr = codeBll.NewModel(); DataTable mfDT = mfBll.DB_SelByModel(mpub.PubModelID); mfDT.DefaultView.RowFilter = "sys_type=0"; mfDT = mfDT.DefaultView.ToTable(); //-----固定的系统字段 dr["Pubnum"] = 1; dr["PubIP"] = EnviorHelper.GetUserIP(); dr["PubUserID"] = userid; dr["PubUserName"] = username; dr["Pubupid"] = mpub.Pubid; dr["PubAddTime"] = DateTime.Now; dr["Parentid"] = DataConvert.CLng(Request.Form["Parentid"]); dr["PubTitle"] = pbtitle; dr["PubContent"] = pbcontent; dr["Pubstart"] = mpub.PubIsTrue == 1 ? 0 : 1;//取反 dr["PubInputer"] = PubInputer; dr["PubContentid"] = PubContentid; //dr["Mood"] = Request.Form["Mood"]; if (dr.Table.Columns.Contains("cookflag")) { dr["cookflag"] = cookflag; } //------非系统字段 for (int i = 0; i < mfDT.Rows.Count; i++) { M_ModelField mfMod = new M_ModelField().GetModelFromReader(mfDT.Rows[i]); string value = Server.HtmlEncode(Request.Form[mfMod.FieldName] ?? ""); Parentid = DataConvert.CLng(Request.Form["Parentid"]); if (mfMod.IsNotNull && string.IsNullOrEmpty(value)) { Response.Write("<script>alert('" + mfMod.FieldName + "不能为空!');window.history.go(-1);</script>"); Response.End(); } dr[mfMod.FieldName] = value; switch (mpub.PubType) { #region 根据互动类型,进行空值判断 case 0: if (string.IsNullOrEmpty(pbcontent)) { Response.Write("<script>alert('评论内容不能为空!');window.history.go(-1);</script>"); Response.End(); } break; case 1: if (string.IsNullOrEmpty(pbtitle)) { Response.Write("<script>alert('标题不能为空!');window.history.go(-1);</script>"); Response.End(); } break; case 2: if (string.IsNullOrEmpty(pbtitle)) { Response.Write("<script>alert('标题不能为空!');window.history.go(-1);</script>"); Response.End(); } if (string.IsNullOrEmpty(pbcontent)) { Response.Write("<script>alert('活动信息不能为空!');window.history.go(-1);</script>"); Response.End(); } break; case 3: if (string.IsNullOrEmpty(pbtitle) || string.IsNullOrEmpty(pbcontent)) { Response.Write("<script>alert('标题与内容不能为空!');window.history.go(-1);</script>"); Response.End(); } break; case 4: if (string.IsNullOrEmpty(pbtitle)) { Response.Write("<script>alert('标题不能为空!');window.history.go(-1);</script>"); Response.End(); } break; case 5: break; case 7: //将评星控件的数据写入数据表中 dr["PubContent"] = Request.Params["scoreVal"]; break; case 8: //互动表单 break; #endregion } //if (Parentid > 0) //{ // //更新主题信息 // SqlParameter[] sqlparacc = new SqlParameter[1]; // sqlparacc[0] = new SqlParameter("Pubnum", SqlDbType.Int); // sqlparacc[0].Value = Pubnum + 1; // pubBll.UpdateModel(sqlparacc, mpub.PubTableName, "id=" + pubitemid.ToString() + ""); //} } codeBll.Insert(dr); Upaddnums(mpub); //更新总参与人数 } }
/// <summary> /// 交信息导入数据库,将绑定好其之间的对应关系 /// 需要在外部完成赋值等操作 /// </summary> /// <param name="nodeDT">节点表</param> /// <param name="conDT">内容表</param> /// <param name="artDT">附加内容表(后期扩展为支持多个)</param> public bool ImportContentFromDT(DataTable nodeDT, DataTable conDT, DataTable artDT) { if (string.IsNullOrEmpty(nodeDT.TableName) || nodeDT.TableName.Equals("Result")) { nodeDT.TableName = "ZL_Node"; } if (string.IsNullOrEmpty(conDT.TableName) || conDT.TableName.Equals("Result")) { conDT.TableName = "ZL_CommonModel"; } if (string.IsNullOrEmpty(artDT.TableName) || artDT.TableName.Equals("Result")) { artDT.TableName = "ZL_C_Article"; } B_CodeModel nodeBll = new B_CodeModel(nodeDT.TableName); B_CodeModel conBll = new B_CodeModel(conDT.TableName); B_CodeModel artBll = new B_CodeModel(artDT.TableName); for (int i = 0; i < nodeDT.Rows.Count; i++) { DataRow dr = nodeDT.Rows[i]; dr["CDate"] = DateTime.Now; dr["EditDate"] = DateTime.Now; int oldnid = Convert.ToInt32(dr["NodeID"]); int newnid = nodeBll.Insert(dr, "NodeID"); //将文章添加入该节点下(根目录下不放文章,在新建的站点的时候必须规范) DataRow[] cons = conDT.Select("NodeID='" + oldnid + "'"); for (int j = 0; j < cons.Length; j++) { cons[j]["NodeID"] = newnid; } } //-------------将内容与附表导入(内容与文章的数据可不删,只要关联好ItemID与NodeID即可) if (artDT.Columns.Contains("ppics")) { artDT.Columns.Remove("ppics"); } if (artDT.Columns.Contains("tpic")) { artDT.Columns.Remove("tpic"); } for (int i = 0; i < conDT.Rows.Count; i++) { DataRow dr = conDT.Rows[i]; dr["CreateTime"] = DateTime.Now; dr["UPDateTime"] = DateTime.Now; int itemID = Convert.ToInt32(dr["ItemID"]); if (artDT.Select("ID='" + itemID + "'").Length > 0) { //其中可能包含没有的字段,需要一个方法,将其导入(根据站站迁移扩展) DataRow artdr = artDT.Select("ID='" + itemID + "'")[0]; itemID = artBll.Insert(artdr); } else { itemID = 0; } dr["ItemID"] = itemID; conBll.Insert(dr, "GeneralID"); } return(true); }
protected void Restore_Btn_Click(object sender, EventArgs e) { string path = TlpFile_T.Text.Trim(); string tdir = function.VToP("/Site/NoName/"); if (!File.Exists(path)) { function.WriteErrMsg("站点文件不存在"); } if (!Path.GetExtension(path).ToLower().Equals(".zip")) { function.WriteErrMsg("文件格式不正确"); } if (Directory.Exists(tdir)) { Directory.Delete(tdir, true); } //---------------------- ZipClass zip = new ZipClass(); zip.UnZipFiles(path, tdir); //还原信息(尽量少或不清除) DataSet siteDS = new DataSet(); siteDS.ReadXml(tdir + "Init/Site.xml"); //-------------站点信息(仍建立资源文件夹,但不用于建site信息了) DataTable siteDT = siteDS.Tables["ZL_Design_SiteInfo"]; M_Design_SiteInfo sfMod = new M_Design_SiteInfo().GetModelFromReader(siteDT.Rows[0]); SiteConfig.SiteInfo.SiteName = sfMod.SiteName; //-------------导入页面 B_CodeModel pageBll = new B_CodeModel("ZL_Design_Page"); SqlHelper.ExecuteSql("TRUNCATE TABLE ZL_Design_Page"); DataSet pageDS = new DataSet(); pageDS.ReadXml(tdir + "Init/Page.xml"); DataTable pageDT = pageDS.Tables[0]; for (int i = 0; i < pageDT.Rows.Count; i++) { pageDT.Rows[i]["SiteID"] = 0; pageDT.Rows[i]["CDate"] = DateTime.Now; pageDT.Rows[i]["UPDate"] = DateTime.Now; pageBll.Insert(pageDT.Rows[i]); } //-------------导入节点|内容(新建一个节点) SqlHelper.ExecuteSql("TRUNCATE TABLE ZL_Node"); SqlHelper.ExecuteSql("TRUNCATE TABLE ZL_CommonModel"); //可注释 SqlHelper.ExecuteSql("TRUNCATE TABLE ZL_C_Article"); DataTable nodeDT = siteDS.Tables["ZL_Node"]; //与站点绑定,其他内容与节点绑定 DataTable conDT = siteDS.Tables["ZL_CommonModel"]; DataTable artDT = siteDS.Tables["ZL_C_Article"]; for (int i = 0; i < nodeDT.Rows.Count; i++) { DataRow dr = nodeDT.Rows[i]; dr["NodeBySite"] = 0; dr["ParentID"] = 0; dr["CUser"] = 0; } desHelper.ImportContentFromDT(nodeDT, conDT, artDT); //移动文件 string siteDir = function.VToP(sfMod.SiteDir); if (!Directory.Exists(tdir)) { function.WriteErrMsg("来源目录不存在"); } if (Directory.Exists(siteDir)) { Directory.Delete(siteDir, true); } Directory.Move(tdir, siteDir); function.WriteSuccessMsg("恢复站点成功,即将跳转首页", "/"); }