/// <summary> /// 判断用户是否拥有指定页面路径权限(新) /// </summary> /// <param name="userId">用户账号</param> /// <param name="websiteOwner">站点所有者</param> /// <param name="path">路径</param> /// <param name="nAction">action</param> /// <returns></returns> public bool NewCheckUserAndPath(string userId, string websiteOwner, string path, string nAction) { BLLPermission bllPer = new BLLPermission(); List <PermissionInfo> pmsList = bllPer.GetPermissionListByPath(path);//获取页面路径权限ID if (!string.IsNullOrWhiteSpace(nAction)) { pmsList = pmsList.Where(p => string.IsNullOrWhiteSpace(p.PermissionAction) || p.PermissionAction == nAction).ToList(); } if (pmsList.Count == 0) { return(false); } List <long> pmsIDList = pmsList.Select(p => p.PermissionID).ToList(); List <PermissionRelationInfo> rel_column_list = new List <PermissionRelationInfo>(); List <PermissionColumn> column_list = new List <PermissionColumn>(); List <long> pmsGroupIdList = GetPmsGroupIDByUser(userId); string groupIds = "''"; if (pmsGroupIdList.Count > 0) { groupIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); rel_column_list = bllPer.GetMultPermissionRelationList(groupIds, 3); if (rel_column_list.Count > 0) { string columnRelationIds = MyStringHelper.ListToStr(rel_column_list.Select(p => p.PermissionID).ToList(), "", ","); column_list = bllPer.GetMultListByKey <PermissionColumn>("PermissionColumnID", columnRelationIds); } } if (!string.IsNullOrWhiteSpace(websiteOwner) && userId == websiteOwner) { List <PermissionColumn> column_list1 = bllPer.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner); column_list.AddRange(column_list1); } if (column_list.Count == 0) { return(false); } List <long> columnId_list = column_list.Select(p => p.PermissionColumnID).ToList(); List <long> columnId_list1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList(); columnId_list.AddRange(columnId_list1); string columnIdStrs = MyStringHelper.ListToStr(columnId_list, "'", ","); List <PermissionRelationInfo> column_per_list = bllPer.GetMultPermissionRelationList(columnIdStrs, 2); List <long> npmsIDList = column_per_list.Select(p => p.PermissionID).ToList(); foreach (long pmsID in pmsIDList) { if (npmsIDList.Contains(pmsID)) { return(true); } } return(false); }
/// <summary> /// 获取用户菜单HTML /// </summary> /// <param name="userID">用户ID</param> /// <returns></returns> public string GetNewUserMenuTreeHtml(string userId, string websiteOwner) { StringBuilder sb = new StringBuilder(); try { UserInfo curUser = BaseCacheGetUserInfo(userId); int ShowLevel = 3; if (curUser.UserType == 1) { ShowLevel = 1; } else if (curUser.UserID == websiteOwner) { ShowLevel = 2; } BLLMenuInfo bllMenu = new BLLMenuInfo(); List <MenuInfo> list = bllMenu.GetWebsiteMenuList(websiteOwner, ShowLevel, false, true); string relationIds = "''"; List <long> pmsGroupIdList = GetPmsGroupIDByUser(websiteOwner); if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); } list = bllMenu.CheckMenuRelationList(list, websiteOwner, relationIds); list = bllMenu.CheckUserMenuShowLevelList(list, ShowLevel); list = list.Where(p => p.IsHide.Value == 0).ToList(); List <MenuInfo> menuList = new List <MenuInfo>(); menuList = list; int index = 0; foreach (MenuInfo item in menuList.Where(p => p.PreID == 0)) { //sb.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "active"); sb.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "");//默认不展开任何菜单 sb.AppendFormat("<a href=\"javascript:;\"><i class=\"{1}\"></i> <span class=\"nav-label\">{0}</span><span class=\"fa arrow\"></span></a>", item.NodeName, item.ICOCSS); sb.AppendFormat(GetNewSingelTreeHtml(item, menuList)); sb.AppendFormat("</li>"); index++; } } catch (Exception ex) { throw ex; } return(sb.ToString()); }
/// <summary> /// 检查栏目权限返回菜单 /// </summary> /// <returns></returns> public List <MenuInfo> CheckPermissionColumnList(List <MenuInfo> list, string websiteOwner, UserInfo curUser) { List <MenuInfo> result = new List <MenuInfo>(); if (list.Count == 0) { return(result); } string relationIds = "''"; List <long> pmsGroupIdList = GetPmsGroupIDByUser(curUser.UserID); List <PermissionRelationInfo> rel_column_list = new List <PermissionRelationInfo>(); List <PermissionColumn> column_list = new List <PermissionColumn>(); BLLPermission bllPermission = new BLLPermission(); string columnRelationIds = "0"; if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); rel_column_list = bllPermission.GetMultPermissionRelationList(relationIds, 3); if (rel_column_list.Count > 0) { columnRelationIds = MyStringHelper.ListToStr(rel_column_list.Select(p => p.PermissionID).ToList(), "", ","); column_list = bllPermission.GetMultListByKey <PermissionColumn>("PermissionColumnID", columnRelationIds); } } if (!string.IsNullOrWhiteSpace(websiteOwner) && curUser.UserID == websiteOwner) { List <PermissionColumn> column_list1 = bllPermission.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner); column_list.AddRange(column_list1); } if (column_list.Count == 0) { return(result); } List <long> columnId_list = column_list.Select(p => p.PermissionColumnID).ToList(); List <long> columnId_list1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList(); columnId_list.AddRange(columnId_list1); string columnRelationIdStrs = MyStringHelper.ListToStr(columnId_list, "'", ","); BLLMenuInfo bllMenu = new BLLMenuInfo(); List <MenuRelationInfo> column_menu_list = bllMenu.GetMenuRelationListByRelationIds(columnRelationIdStrs, 5); if (column_menu_list.Count == 0) { return(result); } List <long> menuId_list = column_menu_list.Select(p => p.MenuID).ToList(); result = list.Where(p => menuId_list.Contains(p.MenuID)).ToList(); return(result); }
/// <summary> /// 查询用户权限组ID列表 /// </summary> /// <param name="userId"></param> /// <returns></returns> public List <PermissionGroupInfo> GetUserGroupList(string userId, string websiteOwner, int groupType) { BLLMenuPermission bllUserPmsGroupRelation = new BLLMenuPermission(""); List <long> groupIDList = bllUserPmsGroupRelation.BaseCacheGetUserPmsGroupRelationList(userId) .Select(p => p.GroupID).ToList(); if (groupIDList.Count >= 0) { string groupIDStrs = MyStringHelper.ListToStr(groupIDList, "'", ","); return(GetGroupList(int.MaxValue, 1, null, websiteOwner, groupIDStrs, groupType)); } return(new List <PermissionGroupInfo>()); }
/// <summary> /// 获取菜单选择列表 /// </summary> /// <param name="context"></param> /// <returns></returns> private string GetMenuSelectList(HttpContext context) { List <MenuInfo> list = new List <MenuInfo>(); string websiteOwner = context.Request["websiteOwner"]; string menuTypeStr = context.Request["menuType"]; string showPreMenuStr = context.Request["showPreMenu"]; int menuType = string.IsNullOrWhiteSpace(menuTypeStr) ? 3 : Convert.ToInt32(menuTypeStr); bool showPreMenu = showPreMenuStr == "1" ? true : false; string showLevelStr = context.Request["showLevel"]; string showHideStr = context.Request["showHide"]; bool showHide = showHideStr == "1" ? true : false; int showLevel = 3; if (currentUserInfo.UserType == 1) { showLevel = showLevelStr == "1" ? 1 : 2; } else if (currentUserInfo.UserID == pmsBll.WebsiteOwner) { showLevel = 2; } list = bllMenu.GetWebsiteMenuList(websiteOwner, showLevel, showPreMenu, showHide); //获取权限组ids string relationIds = "''"; List <long> pmsGroupIdList = pmsBll.GetPmsGroupIDByUser(websiteOwner); if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); } list = bllMenu.CheckMenuRelationList(list, websiteOwner, relationIds); if (!showHide) { list = list.Where(p => p.IsHide.Value == 0).ToList(); } string result = string.Empty; result = new MySpider.MyCategories().GetSelectOptionHtml(list, "MenuID", "PreID", "NodeName", 0, "ddlPreMenu", "width:90%", ""); return(result.ToString()); }
private void AnalyseValue() { try { if (MyStringHelper.IsNumber(this.Text.Trim()) || MyStringHelper.IsQuotedText(this.Text.Trim())) { this.Value = this.Text.DeserializeJson(); } else { this.Value = this.Text.Trim(); } } catch { throw; } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; if (currentUserInfo.UserType == 7) { apiResp.msg = "查询完成"; apiResp.status = true; apiResp.result = new string[] { "PMS_ONLYUPDATEPRODUCTSTOCK" }; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } string strPsmIds = "0"; List <long> psmIds = new List <long>(); List <PermissionInfo> pmsList = new List <PermissionInfo>(); if (currentUserInfo.UserType != 1) { //bllUser.ToLog("PermissionInfo Get UserType != 1 ", @"D:\songhedev.txt"); psmIds = bllMenuper.GetUserAllPmsID(currentUserInfo.UserID); //bllUser.ToLog("psmIds:" + JsonConvert.SerializeObject(psmIds), @"D:\songhedev.txt"); if (psmIds.Count() > 0) { strPsmIds = MyStringHelper.ListToStr(psmIds, "'", ","); } pmsList = bllMenuper.GetList <PermissionInfo>(string.Format(" PermissionKey>'' AND PermissionID in ({0})", strPsmIds)); } else { pmsList = bllMenuper.GetList <PermissionInfo>(string.Format(" PermissionKey>'' ", strPsmIds)); } List <string> strList = new List <string>(); if (pmsList.Count > 0) { strList = pmsList.Select(p => p.PermissionKey).Distinct().ToList(); } apiResp.msg = "查询完成"; apiResp.status = true; apiResp.result = strList; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
/// <summary> /// 检查站点是否包含某个权限Key /// </summary> /// <param name="userId">账户</param> /// <param name="permissionKey">权限key </param> /// <returns></returns> public bool CheckPermissionKey(string userId, ZentCloud.BLLPermission.Enums.PermissionSysKey permissionKey) { string permissionKeyStr = EnumToString(permissionKey); BLLMenuPermission bllMenuper = new BLLMenuPermission(""); List <PermissionInfo> pmsList = new List <PermissionInfo>(); string strPsmIds = "0"; List <long> psmIds = bllMenuper.GetUserAllPmsID(userId); if (psmIds.Count() > 0) { strPsmIds = MyStringHelper.ListToStr(psmIds, "'", ","); } pmsList = bllMenuper.GetList <PermissionInfo>(string.Format(" PermissionKey>'' AND PermissionID in ({0})", strPsmIds)); //过滤掉已经禁止的权限 var disPmsList = GetMultPermissionRelationList("'" + userId + "'", 9); pmsList = pmsList.Where(p => disPmsList.Count(dis => dis.PermissionID == p.PermissionID) == 0).ToList(); if (pmsList != null) { return(pmsList.Count(p => p.PermissionKey == permissionKeyStr) > 0); } return(false); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; List <PermissionInfo> pmsList = new List <PermissionInfo>(); List <string> strList = new List <string>(); //if (CurrentUserInfo.UserID == "jubit") //{ // pmsList = bllMenuper.GetList<PermissionInfo>(" PermissionKey > '' "); //} //else { string strPsmIds = "0"; List <long> psmIds = bllMenuper.GetUserAllPmsID(bllPms.WebsiteOwner); if (psmIds.Count() > 0) { strPsmIds = MyStringHelper.ListToStr(psmIds, "'", ","); } pmsList = bllMenuper.GetList <PermissionInfo>(string.Format(" PermissionKey>'' AND PermissionID in ({0})", strPsmIds)); //} //过滤掉已经禁止的权限 var disPmsList = bllPms.GetMultPermissionRelationList("'" + bllPms.WebsiteOwner + "'", 9); pmsList = pmsList.Where(p => disPmsList.Count(dis => dis.PermissionID == p.PermissionID) == 0).ToList(); if (pmsList != null) { strList = pmsList.Select(p => p.PermissionKey).ToList(); } apiResp.msg = "ok"; apiResp.status = true; apiResp.result = strList; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
public void ProcessRequest(HttpContext context) { string data = context.Request["data"]; OrderModel orderRequestModel;//订单模型 try { orderRequestModel = JSONHelper.JsonToModel <OrderModel>(data); } catch (Exception ex) { apiResp.msg = "提交格式错误"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } WXMallProductInfo productInfo = bllMall.GetProduct(orderRequestModel.product_id.ToString()); if (productInfo == null) { apiResp.msg = "记录没有找到"; apiResp.code = (int)APIErrCode.IsNotFound; bllMall.ContextResponse(context, apiResp); return; } WXMallOrderInfo orderInfo = new WXMallOrderInfo();//订单表 orderInfo.ArticleCategoryType = productInfo.ArticleCategoryType; orderInfo.InsertDate = DateTime.Now; orderInfo.OrderUserID = CurrentUserInfo.UserID; orderInfo.WebsiteOwner = bllMall.WebsiteOwner; orderInfo.OrderMemo = orderRequestModel.buyer_memo; orderInfo.UseAmount = orderRequestModel.use_amount; if (orderRequestModel.receiver_id == 0) { orderInfo.Consignee = CurrentUserInfo.TrueName; orderInfo.Phone = CurrentUserInfo.Phone; } else { WXConsigneeAddress nUserAddress = bllMall.GetByKey <WXConsigneeAddress>("AutoID", orderRequestModel.receiver_id.ToString()); orderInfo.Consignee = nUserAddress.ConsigneeName; orderInfo.Phone = nUserAddress.Phone; orderInfo.Address = nUserAddress.Address; orderInfo.ZipCode = nUserAddress.ZipCode; orderInfo.ReceiverProvince = nUserAddress.Province; orderInfo.ReceiverProvinceCode = nUserAddress.ProvinceCode; orderInfo.ReceiverCity = nUserAddress.City; orderInfo.ReceiverCityCode = nUserAddress.CityCode; orderInfo.ReceiverDist = nUserAddress.Dist; orderInfo.ReceiverDistCode = nUserAddress.DistCode; } orderInfo.Transport_Fee = 0; orderInfo.Status = "待付款"; if (orderRequestModel.pay_type == "WEIXIN")//微信支付 { orderInfo.PaymentType = 2; } else if (orderRequestModel.pay_type == "ALIPAY")//支付宝支付 { orderInfo.PaymentType = 1; } if (orderRequestModel.skus == null || orderRequestModel.skus.Count == 0) { apiResp.msg = "Skus不能为空"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } #region 商品检查 订单详情生成 //订单详情 List <WXMallOrderDetailsInfo> detailList = new List <WXMallOrderDetailsInfo>(); //主商品订单明细 List <WXMallOrderDetailsInfo> detailAddedList = new List <WXMallOrderDetailsInfo>(); //增值服务订单明细 orderRequestModel.skus = orderRequestModel.skus.Distinct().ToList(); #region 购买的商品 foreach (var sku in orderRequestModel.skus) { ProductSku productSku = bllMall.GetProductSku(sku.sku_id); WXMallOrderDetailsInfo detailModel = new WXMallOrderDetailsInfo(); detailModel.TotalCount = sku.count; detailModel.OrderPrice = bllMall.GetSkuPrice(productSku); detailModel.SkuId = productSku.SkuId; detailModel.ArticleCategoryType = productSku.ArticleCategoryType; if (productSku.ArticleCategoryType.Contains("Added")) { WXMallProductInfo rproductInfo = bllMall.GetProduct(productSku.ProductId.ToString()); detailModel.PID = rproductInfo.PID; detailModel.ProductName = rproductInfo.PName; detailModel.Unit = rproductInfo.Unit; detailAddedList.Add(detailModel); } else { detailModel.PID = productInfo.PID; detailModel.ProductName = productInfo.PName; detailModel.StartDate = sku.start_date; detailModel.EndDate = sku.end_date; detailModel.Unit = productInfo.Unit; detailList.Add(detailModel); } } #endregion if (detailList.Count == 0) { apiResp.msg = "请选择预约时间"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } //已有订单详情 List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, productInfo.PID, productInfo.ArticleCategoryType, detailList.Min(p => p.StartDate), detailList.Max(p => p.EndDate)); List <string> hasOrderID_List = new List <string>(); string hasOrderIDs = ""; int maxCount = productInfo.Stock; foreach (var item in detailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count >= maxCount) { hasOrderID_List.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } if (hasOrderID_List.Count > 0) { hasOrderID_List = hasOrderID_List.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderID_List, "'", ","); int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); if (tempCount >= maxCount) { apiResp.msg = "所选时间已有成功的预约"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } } //增值服务合并到主订单明细列表 detailList.AddRange(detailAddedList); //合计计算 orderInfo.Product_Fee = detailList.Sum(p => p.OrderPrice * p.TotalCount).Value; #region 积分计算 decimal scoreExchangeAmount = 0;//积分抵扣的金额 //积分计算 if (orderRequestModel.use_score > 0 && orderInfo.Product_Fee > 0) { orderInfo.UseScore = orderRequestModel.use_score; if (CurrentUserInfo.TotalScore < orderRequestModel.use_score) { apiResp.msg = "积分不足"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } ScoreConfig scoreConfig = bllScore.GetScoreConfig(); scoreExchangeAmount = Math.Round(orderRequestModel.use_score / (scoreConfig.ExchangeScore / scoreConfig.ExchangeAmount), 2); } //积分计算 #endregion #region 使用账户余额 if (orderRequestModel.use_amount > 0) { if (!bllMall.IsEnableAccountAmountPay()) { apiResp.msg = "未开启余额支付"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } if (CurrentUserInfo.AccountAmount < orderRequestModel.use_amount) { apiResp.msg = "您的账户余额不足"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } } #endregion orderInfo.TotalAmount = orderInfo.Product_Fee + orderInfo.Transport_Fee; orderInfo.TotalAmount -= scoreExchangeAmount; //积分优惠金额 orderInfo.TotalAmount -= orderRequestModel.use_amount; //余额抵扣金额 orderInfo.PayableAmount = orderInfo.TotalAmount - orderInfo.Transport_Fee; //应付金额 if ((orderInfo.Product_Fee + orderInfo.Transport_Fee - scoreExchangeAmount) < orderInfo.TotalAmount) { apiResp.msg = "积分兑换金额不能大于订单总金额,请减少积分兑换"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } if (orderInfo.TotalAmount < 0) { orderInfo.TotalAmount = 0; } if (orderInfo.TotalAmount == 0 && orderInfo.UseScore == 0) { orderInfo.Status = "待审核"; } else if (orderInfo.TotalAmount == 0 && (orderInfo.UseAmount > 0 || orderInfo.UseScore > 0)) { orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; orderInfo.Status = "预约成功"; } #endregion //生成订单ID orderInfo.OrderID = bllMall.GetGUID(BLLJIMP.TransacType.AddMallOrder); BLLTransaction tran = new BLLTransaction(); if (!this.bllMall.Add(orderInfo, tran)) { tran.Rollback(); apiResp.msg = "提交失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } foreach (var item in detailList) { item.OrderID = orderInfo.OrderID; if (!this.bllMall.Add(item, tran)) { tran.Rollback(); apiResp.msg = "提交失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } } #region 积分抵扣 //积分扣除 if (orderRequestModel.use_score > 0) { CurrentUserInfo.TotalScore -= orderRequestModel.use_score; if (bllMall.Update(CurrentUserInfo, string.Format(" TotalScore-={0}", orderRequestModel.use_score), string.Format(" AutoID={0}", CurrentUserInfo.AutoID) , tran) < 0) { tran.Rollback(); apiResp.msg = "更新用户积分失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } //积分记录 UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = -orderRequestModel.use_score; scoreRecord.TotalScore = CurrentUserInfo.TotalScore; scoreRecord.ScoreType = "OrderSubmit"; scoreRecord.UserID = CurrentUserInfo.UserID; scoreRecord.AddNote = "预约-下单使用积分"; scoreRecord.RelationID = orderInfo.OrderID; scoreRecord.WebSiteOwner = CurrentUserInfo.WebsiteOwner; if (!bllMall.Add(scoreRecord)) { tran.Rollback(); apiResp.msg = "插入积分记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } } //积分扣除 #endregion #region 余额抵扣 if (orderRequestModel.use_amount > 0 && bllMall.IsEnableAccountAmountPay()) { CurrentUserInfo.AccountAmount -= orderRequestModel.use_amount; if (bllMall.Update(CurrentUserInfo, string.Format(" AccountAmount={0}", CurrentUserInfo.AccountAmount), string.Format(" AutoID={0}", CurrentUserInfo.AutoID)) < 0) { tran.Rollback(); apiResp.msg = "更新用户余额失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = -(double)orderRequestModel.use_amount; scoreRecord.TotalScore = (double)CurrentUserInfo.AccountAmount; scoreRecord.UserID = CurrentUserInfo.UserID; scoreRecord.AddNote = "账户余额变动-下单使用余额"; scoreRecord.RelationID = orderInfo.OrderID; scoreRecord.WebSiteOwner = bllMall.WebsiteOwner; scoreRecord.ScoreType = "AccountAmount"; if (!bllMall.Add(scoreRecord)) { tran.Rollback(); apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "插入余额记录失败"; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } UserCreditAcountDetails record = new UserCreditAcountDetails(); record.WebsiteOwner = bllMall.WebsiteOwner; record.Operator = CurrentUserInfo.UserID; record.UserID = CurrentUserInfo.UserID; record.CreditAcount = -orderRequestModel.use_amount; record.SysType = "AccountAmount"; record.AddTime = DateTime.Now; record.AddNote = "账户余额变动-" + orderRequestModel.use_amount; if (!bllMall.Add(record)) { tran.Rollback(); apiResp.msg = "插入余额记录失败"; apiResp.code = (int)APIErrCode.OperateFail; bllMall.ContextResponse(context, apiResp); return; } } #endregion tran.Commit();//提交订单事务 if (orderInfo.Status == "预约成功") { int tempCount = 0; if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); tempCount = tempCount + 1; //加上当前订单的数量 if (tempCount >= maxCount) { tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner); if (tempList.Count > 0) { string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ","); tempList = tempList.Where(p => p.UseScore > 0).ToList(); foreach (var item in tempList) { UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, bllMall.WebsiteOwner);//下单用户信息 if (orderUserInfo == null) { continue; } orderUserInfo.TotalScore += item.UseScore; if (bllMall.Update(orderUserInfo, string.Format(" TotalScore+={0}", item.UseScore), string.Format(" UserID='{0}'", item.OrderUserID)) > 0) { UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = item.UseScore; scoreRecord.TotalScore = orderUserInfo.TotalScore; scoreRecord.ScoreType = "OrderCancel"; scoreRecord.UserID = item.OrderUserID; scoreRecord.RelationID = item.OrderID; scoreRecord.AddNote = "预约-订单失败返还积分"; scoreRecord.WebSiteOwner = item.WebsiteOwner; bllMall.Add(scoreRecord); } } bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner)); } } } //预约通知 bllWeiXin.SendTemplateMessageNotifyComm(CurrentUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, productInfo.PName)); apiResp.result = new { order_id = orderInfo.OrderID }; apiResp.msg = "提交完成"; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.status = true; bllMall.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { try { Tolog("京东支付通知start"); var payConfig = bllPay.GetPayConfig(); byte[] byts = new byte[context.Request.InputStream.Length]; context.Request.InputStream.Read(byts, 0, byts.Length); string req = Encoding.UTF8.GetString(byts); Tolog("通知参数" + req); //var jdPubKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKE5N2xm3NIrXON8Zj19GNtLZ8xwEQ6uDIyrS3S03UhgBJMkGl4msfq4Xuxv6XUAN7oU1XhV3/xtabr9rXto4Ke3d6WwNbxwXnK5LSgsQc1BhT5NcXHXpGBdt7P8NMez5qGieOKqHGvT0qvjyYnYA29a8Z4wzNR7vAVHp36uD5RwIDAQAB"; //req = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><jdpay><version>V2.0</version><merchant>110226843002</merchant><result><code>000000</code><desc>success</desc></result><encrypt>MDIxZjNkNjI1YjU1NzQ4MWE5N2ExMTg3YjkxNmQ4NzkxYzQyMmFjZjM4YTM1MjZjY2JjNzM1ZDkxY2Q5ZDNmMTMzMGFjYTBkNTI0MzYzNjc3MTVhODI3OWUzZTAxMmY5ODEyOTVmNDNiNWY5MDZhZGJiYTcwYTYyOTFlYzVmYTU2Y2EyN2U1YzhkNzllMGE3ZTUyNDE4NWU4OWMxNjIwNDFkODcyYzJiZDA4ZWY4YWEyMmY5ZWUxNDk3YTg3MTI3YmU1NTMxNjc5NWJiOTlmN2ZmNGU1MTc1YWJhNjNkYjUzYWUwZDQzOTk4ZjIzMjBiYmVkNGJkMDcxOWUzOThjZjU1ODUwNzM4Y2RiNzM2Njc1N2U2ZTcxN2Q0N2ZiYTZmN2M1YzBiYzRmMjc4ZThiZDNhYTkxZTExNzBiYjg2ZDNjNmQ3OWUyZTBlYjUzZWNlZjFjODQ2MzdiN2E5MTQxN2Y3NmRhZmNkNDdiMzMwNjc1MGRhYjhiYzg0NTFkOWNiY2QyMDZhOTJiYzU2YTFiOWEwMjRmNTZhMWZhNTVhNjlmYTA1ZDFlMmI0YTI4MGE1YTU0N2NlMjc3ZWMwM2QyNWE4ODdlOTA0ZGM3YTY2MDViY2I1OTI5MDBlYWU4MGU0Mzc4MmEwOWY3ZjEwZTk5MGZkOGUzYTA4MzNkNGMyZGZkNWM3MDhkOGU4N2NhMmQyZGM1MDgwYzUyOTg3OGNkMzFhZWRkMTE1NDM5ZjExYTM2OGM2OGE4MGZjZTYyMjJkNzlmODcwNGYyNDMzMTYyZThhZTBkODM2ODBjYzg5ZGRjMWY3ZGVmYzQzYjc4MDZiMDNhMTBmZTc2YjI3MThjYjQ0YjQwZDkyY2E3OGUzYmYzZmFlNjBlOTI4OGU1ODVkNjBjMWZiNDBmMjFjNzVmNDkxYmRkYWFlNzQ0YjZkYmU1ODNkOWQ4OGYwN2EyMDViOWQ5MGNjMzViMTE3MDQ4NWVlNTdlN2Y5MTRhZDM3YzFlODY1NDFiZmQyNDg1MzhlZGZiNDNiZWZmZjY3YmE3NWQ5YjI0MzE4ZDMzMDE5NTE3YWM4ZTJiMDZhZWYyM2NhNjMwODc3MDhkNTdkZWI3MWVhMmY2MzA2ZDliZjBmZGFlNzQ3ODgzODg0ZjVhOWFkODIxYWM0NGQ1ZDlmMGRlNDhkMjBiYTJjYmQ4NTlkMmU3NDMxZDExZmRjMzkxMDU3ZmE3NGE0Yzg2OThkMmY0ZWQ1ZjE3MjIwOWQ1ZTBmZGIzZjFhNGYwOTllZWY5YzRiMWYyZDAxZjlhNzhlYWY5ZjU0YmIyZjczNmUxMjJkNWY2NzhlMDFmYjU0YjY3NWRlYTc1ZWZkNmMwNTJhZmY3ZGVhMGM5NjAyMWQwMGQyMjI2NzdhM2RlNDdhMTdkMWI4ZWQxYmEyYWZlZDg1ZjI4NDk2ZmI2MGVjOTc5OTc4MjgzZTEyNzY2ZmI1OWUzZjY1MWI4OTVlMmQ4OGNlNGRhODg0NzJiNTFiN2RmZDc5NzdkNDk4NTY0NGU4ZjBmNGZjMTM3MmUzMGNhMTUwOTFkNDFhODIzMjZiODU0YjMzNmI1N2EwZDVjMjZjOWNjMzBlMjFjZjNkMDA0NjQ4Zjk0NjQzZWRhOTU1MmIyZjJkYzZjNGJmOTU5MDIzNTBlODlmOTNhZDRhYmEyMzZiY2E1OWE4NzY5Mjc0ZTcwN2MyNGFjNGJmOTU5MDIzNTBlODlmNDNlZGE5NTUyYjJmMmRjNjU0MTNlZjYxZTNlODc4MDk3MmNiYjg3NTVjNmU1NWNlZDljNWU0ZDE5ZTRmZjJjZTAxNmJiMGIzYWFlOTdlYTQzYmM5NWVmMGU0ZjUyNzY4NDNlZGE5NTUyYjJmMmRjNmMyOWRiYWZkYTNjYzQ1M2E3ZGJhZWNjZWJmNGIxZmQ5MTMxMmRiMzliOTU2YzBmNmNiODMxMDQ1ZDBiYjM1ZTNmMzlmMGE0ODNiN2M3ODYyZjNjMTFiN2ZiODljNDNkMjE4NGFlNzU5M2JhMmQ2YTJkOWMwMmYxYTBlNTg2MzhkYzU0NzE0NjExNzkyNGU4ZjQ4NDgzMTAyNDY5OGRlNGZiMDVmNGQzNzE3NGMwOGI2NGU2NjkxMmU2NGY5M2I0YjNiMThmMzZiZmY0NTgwN2FjMDAxOWRlY2ZkYTcyOGFmNzIyZTQwNjhlMTViM2UwMmQzMmRiYjJkOTE2MmQzNWMzZWM2OGRkZjJjMjdmOTRhZGNmYzEzOTdlOWY0NjQwODFiYWU0Y2E3Y2NjZDY0NjQzNGFmZWU4ODExYWRiZTBlY2MwY2JlOThmNDliMDZkYjE2YjNjNTZhOTRiOGZkMDU=</encrypt></jdpay>"; //req = Regex.Replace(req, @"[\t\n\r]", "", RegexOptions.IgnoreCase); req = req.Replace("\r", "").Replace("\n", "").Replace("\t", ""); AsynNotifyResponse anyResponse = Payment.JDPay.XMLUtil.decryptResXml <AsynNotifyResponse>(Payment.JDPay.Config.JDPubKey, payConfig.JDPayDESKey, req); // System.Diagnostics.Debug.WriteLine("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); Tolog("异步通知订单号:" + anyResponse.tradeNum + ",状态:" + anyResponse.status); var orderId = anyResponse.tradeNum; var orderInfo = bllMall.GetOrderInfo(orderId); if (orderInfo == null) { //context.Response.Write("订单未找到"); context.Response.StatusCode = 500; context.Response.Write(failStr); return; } if (orderInfo.PaymentStatus.Equals(1)) { //Tolog("已支付"); // context.Response.Write("订单已支付"); context.Response.StatusCode = 200; context.Response.Write(successStr); return; } if (anyResponse.status == "2") { orderInfo.PaymentType = 3; //支付成功 WXMallProductInfo tProductInfo = new WXMallProductInfo(); UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, orderInfo.WebsiteOwner);//下单用户信息 string hasOrderIDs = ""; int maxCount = 1; //Tolog("准备检查更新订单状态"); if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { //Tolog("预订类型"); #region 预约订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; orderInfo.Status = "预约成功"; #region 检查是否有预约成功的订单 List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null); List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate)); tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID); maxCount = tProductInfo.Stock; List <string> hasOrderIDList = new List <string>(); foreach (var item in tDetailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count >= maxCount) { hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList(); if (hasOrderIDList.Count > 0) { hasOrderIDList = hasOrderIDList.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderIDList, "'", ","); } #endregion 检查是否有预约成功的订单 #endregion 预约订单修改状态 } else { //Tolog("普通类型"); #region 原订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.Status = "待发货"; orderInfo.PayTime = DateTime.Now; Tolog("更改状态start"); //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1)) //{ orderInfo.GroupBuyStatus = "0"; orderInfo.DistributionStatus = 1; #region 拼团订单 if (orderInfo.OrderType == 2) { try { if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId)) { var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId); if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } } catch (Exception) { } } #endregion #region 活动订单 if (orderInfo.OrderType == 4) { ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID)); if (data != null) { bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format(" OrderId='{0}'", orderInfo.OrderID)); } } #endregion bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID)); //} #endregion 原订单修改状态 //orderInfo.PayTranNo = tradeNo; } bool result = false; if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } result = bllMall.Update(new WXMallOrderInfo(), string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"), string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and OrderID IN({1}))<{2}", orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner) ) > 0; if (result) { // #region 交易成功加积分 //增加积分 (慧聚不需要) //if (orderInfo.TotalAmount > 0) //{ // ScoreConfig scoreConfig = bllScore.GetScoreConfig(); // int addScore = 0; // if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0) // { // addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore)); // } // if (addScore > 0) // { // if (bllUser.Update(new UserInfo(), // string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore), // string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0) // { // UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); // scoreRecord.AddTime = DateTime.Now; // scoreRecord.Score = addScore; // scoreRecord.ScoreType = "OrderSuccess"; // scoreRecord.UserID = orderInfo.OrderUserID; // scoreRecord.AddNote = "预约-交易成功获得积分"; // bllMall.Add(scoreRecord); // } // } //} // #endregion #region 修改其他预约订单为预约失败 返还积分 if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs)) { int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); tempCount = tempCount + 1; //加上当前订单的数量 if (tempCount >= maxCount) { tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner); if (tempList.Count > 0) { string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ","); tempList = tempList.Where(p => p.UseScore > 0).ToList(); foreach (var item in tempList) { orderUserInfo.TotalScore += item.UseScore; if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore), string.Format(" UserID='{0}'", item.OrderUserID)) > 0) { UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = item.UseScore; scoreRecord.TotalScore = orderUserInfo.TotalScore; scoreRecord.ScoreType = "OrderCancel"; scoreRecord.UserID = item.OrderUserID; scoreRecord.RelationID = item.OrderID; scoreRecord.AddNote = "预约-订单失败返还积分"; scoreRecord.WebSiteOwner = item.WebsiteOwner; bllMall.Add(scoreRecord); } } bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner)); } } //Tolog("更改修改其他预约为预约失败"); } #endregion } } else { result = bllMall.Update(orderInfo); } if (result) { Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner); //Tolog("更改状态true"); #region Efast同步 //判读当前站点是否需要同步到驿氪和efast if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步efast"); string outOrderId = string.Empty, msg = string.Empty; var syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg); if (syncResult) { orderInfo.OutOrderId = outOrderId; bllMall.Update(orderInfo); } Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg)); } catch (Exception ex) { Tolog("efast订单同步异常:" + ex.Message); } } #endregion #region 驿氪同步 if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步驿氪"); //同步成功订单到驿氪 //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone))) //{ // client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore); //} var uploadOrderResult = yikeClient.OrderUpload(orderInfo); Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult))); } catch (Exception ex) { Tolog("驿氪订单同步异常:" + ex.Message); } } #endregion #region 付款加积分 try { bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null); } catch (Exception) { } #endregion #region 消息通知 if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { try { var productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName; string remark = ""; if (!string.IsNullOrEmpty(orderInfo.OrderMemo)) { remark = string.Format("客户留言:{0}", orderInfo.OrderMemo); } bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName, remark)); if (orderInfo.OrderType != 4)//付费的活动不发消息 { if (orderInfo.WebsiteOwner != "jikuwifi") { string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", context.Request.Url.Host, orderInfo.OrderID); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, orderInfo.TotalAmount, orderInfo.Consignee, orderInfo.Phone, productName), url); } } } catch (Exception) { } } else { try { bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone)); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName)); } catch (Exception) { } } #endregion WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner)); #region 分销相关 try { if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner)) { if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner)) { if (websiteInfo.DistributionRelationBuildMallOrder == 1) { orderUserInfo.DistributionOwner = bllMall.WebsiteOwner; bllMall.Update(orderUserInfo); } } bllDis.AutoUpdateLevel(orderInfo); bllDis.TransfersEstimate(orderInfo); bllDis.SendMessageToUser(orderInfo); bllDis.UpdateDistributionSaleAmountUp(orderInfo); } } catch (Exception ex) { Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID); } #endregion #region 宏巍通知 try { if (websiteInfo.IsUnionHongware == 1) { hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID); } } catch (Exception) { } #endregion bllCard.Give(orderInfo.TotalAmount, orderUserInfo); string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId"); string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId"); string v1CouponId = Common.ConfigHelper.GetConfigString("YGBV1CouponId"); string v2CouponId = Common.ConfigHelper.GetConfigString("YGBV2CouponId"); List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID); foreach (var item in orderDetailList) { item.IsComplete = 1; bllMall.Update(item); #region 购买指定商品发送指定的优惠券 if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId); } if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId); } #endregion } //更新销量 bllMall.UpdateProductSaleCount(orderInfo); context.Response.StatusCode = 200; context.Response.Write(successStr); Tolog("支付成功" + orderInfo.OrderID); return; } else { Tolog("更改状态false"); context.Response.StatusCode = 500; context.Response.Write(failStr); return; } } } catch (Exception ex) { //error = "fail"; Tolog("京东支付异常:" + ex.ToString()); } context.Response.ContentType = "text/plain"; context.Response.StatusCode = 500; context.Response.Write(failStr); }
public void ProcessRequest(HttpContext context) { string ids = context.Request["ids"]; string order_status = context.Request["order_status"]; bool actionStatus = false; if (order_status == "预约成功") { List <string> successIds = new List <string>(); List <string> failIds = new List <string>(); List <string> orderIds = ids.Split(',').ToList(); string hasOrderIDs = ""; int maxCount = 1; foreach (string orderId in orderIds) { //已有订单详情 WXMallOrderInfo tOrder = bllMall.GetByKey <WXMallOrderInfo>("OrderID", orderId); List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderId, null, tOrder.ArticleCategoryType, null, null); List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, tOrder.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate)); WXMallProductInfo tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID); maxCount = tProductInfo.Stock; List <string> hasOrderID_List = new List <string>(); foreach (var item in tDetailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count > 0) { hasOrderID_List.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } hasOrderID_List = hasOrderID_List.Where(p => !p.Contains(orderId)).ToList(); if (hasOrderID_List.Count > 0) { hasOrderID_List = hasOrderID_List.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderID_List, "'", ","); int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, tOrder.ArticleCategoryType, hasOrderIDs); if (tempCount >= maxCount) { failIds.Add(orderId); continue; } if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } if (bllMall.Update(new WXMallOrderInfo(), string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"), string.Format("OrderID={0} AND WebsiteOwner='{4}' and (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and OrderID IN({1}))<{2}", tOrder.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner) ) > 0) { hasOrderIDs = string.Format("{0},'{1}'", hasOrderIDs, tOrder.OrderID); successIds.Add(orderId); #region 修改其他预约订单为预约失败 bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) AND Status Not In ({1}) and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{5}' and OrderID IN({2}) and WebsiteOwner='{4}' )>={3}", hasOrderIDs, "'预约失败','预约成功','已取消'", hasOrderIDs, maxCount, bllMall.WebsiteOwner, "预约成功")); #endregion } else { failIds.Add(orderId); } } else { tOrder.Status = order_status; if (bllMall.Update(tOrder)) { successIds.Add(orderId); } else { failIds.Add(orderId); } } } if (orderIds.Count == 0) { apiResp.msg = "修改完成"; } else { if (failIds.Count == 0) { apiResp.msg = "全部修改成功"; } else if (successIds.Count == 0) { apiResp.msg = "全部订单所选时间已有预约成功的订单"; } else { apiResp.msg = "订单[" + MyStringHelper.ListToStr(successIds, "", ",") + "]修改成功,订单[" + MyStringHelper.ListToStr(failIds, "", ",") + "]所选时间已有预约成功的订单"; } } apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; bllMall.ContextResponse(context, apiResp); } else { List <string> orderIds = ids.Split(',').ToList(); ids = MyStringHelper.ListToStr(orderIds, "'", ","); if (bllMall.UpdateMultByKey <WXMallOrderInfo>("OrderID", ids, "Status", order_status, null, true) > 0) { apiResp.status = true; apiResp.msg = "修改完成"; apiResp.code = (int)APIErrCode.IsSuccess; } else { apiResp.msg = "修改失败"; apiResp.code = (int)APIErrCode.OperateFail; } } bllMall.ContextResponse(context, apiResp); }
/// <summary> /// 检查用户和系统键值 /// </summary> /// <param name="userId"></param> /// <param name="pkey"></param> /// <returns></returns> public bool CheckUserAndPmsKey(string userId, Enums.PermissionSysKey pkey, string websiteOwner = "") { if (websiteOwner == "") { websiteOwner = WebsiteOwner; } UserInfo userInfo; if (string.IsNullOrEmpty(websiteOwner)) { websiteOwner = WebsiteOwner; } if (userId == "jubit") { //userInfo = Get<UserInfo>(string.Format(" UserID='{0}' ", userId)); return(true); } else { userInfo = Get <UserInfo>(string.Format(" UserID='{0}' AND WebsiteOwner='{1}' ", userId, websiteOwner)); } if (userInfo == null) { return(false); } var key = CommonPlatform.Helper.EnumStringHelper.ToString(pkey); //先查出对应权限,不存在返回false var pms = GetPmsByPmsKey(key); if (pms == null) { return(false); } //站点权限禁用时返回false if (CheckWebsiteOwnerDisabled(websiteOwner, pms.PermissionID)) { return(false); } //判断是否是配置的管理员 if (userInfo.PermissionGroupID.HasValue) { ZentCloud.BLLPermission.Model.PermissionGroupInfo perGroupInfo = Get <ZentCloud.BLLPermission.Model.PermissionGroupInfo>(string.Format(" GroupID={0}", userInfo.PermissionGroupID)); if (perGroupInfo != null && perGroupInfo.GroupType == 3)//管理员权限跟站点所有者一致 { userId = userInfo.WebsiteOwner; } } bool result = CheckUserAndPms(userId, pms.PermissionID); if (!result && userId == websiteOwner) { BLLPermission bllPer = new BLLPermission(); List <PermissionColumn> column_list = bllPer.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner); if (column_list.Count > 0) { string columnIdStrs = MyStringHelper.ListToStr(column_list.Select(p => p.PermissionColumnID).ToList(), "'", ","); List <PermissionRelationInfo> column_per_list = bllPer.GetMultPermissionRelationList(columnIdStrs, 2); result = column_per_list.Exists(p => p.PermissionID == pms.PermissionID); } } return(result); }
/// <summary> /// 获取用户所有权限ID /// </summary> /// <param name="userId">用户ID</param> /// <returns>所有权限ID集合</returns> public List <long> GetUserAllPmsID(string userId) { UserInfo userInfo = Get <UserInfo>(string.Format(" UserID='{0}'", userId)); if (userInfo == null) { return(new List <long>()); } if (userInfo.PermissionGroupID.HasValue) { ZentCloud.BLLPermission.Model.PermissionGroupInfo perGroupInfo = Get <ZentCloud.BLLPermission.Model.PermissionGroupInfo>(string.Format(" GroupID={0}", userInfo.PermissionGroupID)); if (perGroupInfo != null && perGroupInfo.GroupType == 3)//管理员权限跟站点所有者一致 { userId = userInfo.WebsiteOwner; } } List <long> result = new List <long>(); //获取 用户-权限 列表 result.AddRange(GetList <Model.PermissionRelationInfo>( string.Format(" RelationID = '{0}' and RelationType = 1 ", userId) ).Select(p => p.PermissionID)); //获取 组-权限 列表 //long groupID = GetPmsGroupIDByUser(userID); //if (groupID > 0) //{ // result.AddRange(GetList<Model.PermissionRelationInfo>( // string.Format(" RelationID = '{0}' and RelationType = 0 ", groupID.ToString()) // ).Select(p => p.PermissionID)); //} foreach (long item in GetPmsGroupIDByUser(userId)) { result.AddRange(GetList <Model.PermissionRelationInfo>( string.Format(" RelationID = '{0}' and RelationType = 0 ", item.ToString()) ).Select(p => p.PermissionID)); //检查栏目内权限 foreach (PermissionRelationInfo citem in BaseCacheGetPermissionRelationList(3, item.ToString(), null)) { List <PermissionRelationInfo> list = BaseCacheGetPermissionRelationList(2, citem.PermissionID.ToString(), null); if (list.Count > 0) { result.AddRange(list.Select(p => p.PermissionID)); } } } if (userId == userInfo.WebsiteOwner) { List <PermissionColumn> column_list = GetListByKey <PermissionColumn>("WebsiteOwner", userId); if (column_list.Count > 0) { List <long> columnIdList = column_list.Select(p => p.PermissionColumnID).ToList(); List <long> columnIdList1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList(); columnIdList.AddRange(columnIdList1); string columnIdStrs = MyStringHelper.ListToStr(columnIdList, "'", ","); BLLPermission bllPer = new BLLPermission(); List <PermissionRelationInfo> columnPerList = bllPer.GetMultPermissionRelationList(columnIdStrs, 2); if (columnPerList.Count > 0) { result.AddRange(columnPerList.Select(p => p.PermissionID)); } } } return(result.Distinct().ToList()); }
protected void Page_Load(object sender, EventArgs e) { try { //Tolog("进入支付回调"); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(Request.InputStream); xmlDoc.Save(string.Format("C:\\WXPay\\Notify{0}.xml", DateTime.Now.ToString("yyyyMMddHHmmssfff")));//写入日志 //全部参数 Dictionary <string, string> parametersAll = new Dictionary <string, string>(); foreach (XmlElement item in xmlDoc.DocumentElement.ChildNodes) { string key = item.Name; string value = item.InnerText; if ((!string.IsNullOrEmpty(key)) && (!string.IsNullOrEmpty(value))) { parametersAll.Add(key, value); } } parametersAll = (from entry in parametersAll orderby entry.Key ascending select entry).ToDictionary(pair => pair.Key, pair => pair.Value);//全部参数排序 orderInfo = bllMall.GetOrderInfo(parametersAll["out_trade_no"]); PayConfig payConfig = bllPay.GetPayConfig(); if (!bllPay.VerifySignatureWx(parametersAll, payConfig.WXPartnerKey))//验证签名 { Tolog("验证签名出错"); Response.Write(failXml); return; } if (orderInfo == null) { Tolog("订单未找到"); Response.Write(failXml); return; } if (orderInfo.PaymentStatus.Equals(1)) { //Tolog("已支付"); Response.Write(successXml); return; } orderInfo.PaymentType = 2; //更新订单状态 WXMallProductInfo tProductInfo = new WXMallProductInfo(); if (parametersAll["return_code"].Equals("SUCCESS") && parametersAll["result_code"].Equals("SUCCESS")) //交易成功 { UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID, bllUser.WebsiteOwner); //下单用户信息 string hasOrderIDs = ""; int maxCount = 1; //Tolog("准备检查更新订单状态"); if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { //Tolog("预订类型"); #region 预约订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.PayTime = DateTime.Now; orderInfo.Status = "预约成功"; #region 检查是否有预约成功的订单 List <WXMallOrderDetailsInfo> tDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID, null, orderInfo.ArticleCategoryType, null, null); List <WXMallOrderDetailsInfo> oDetailList = bllMall.GetOrderDetailsList(null, tDetailList[0].PID, orderInfo.ArticleCategoryType, tDetailList.Min(p => p.StartDate), tDetailList.Max(p => p.EndDate)); tProductInfo = bllMall.GetByKey <WXMallProductInfo>("PID", tDetailList[0].PID); maxCount = tProductInfo.Stock; List <string> hasOrderIDList = new List <string>(); foreach (var item in tDetailList) { List <WXMallOrderDetailsInfo> hasOrderDetailList = oDetailList.Where(p => !((item.StartDate >= p.EndDate && item.EndDate > p.EndDate) || (item.StartDate < p.StartDate && item.EndDate <= p.StartDate))).ToList(); if (hasOrderDetailList.Count >= maxCount) { hasOrderIDList.AddRange(hasOrderDetailList.Select(p => p.OrderID).Distinct()); } } hasOrderIDList = hasOrderIDList.Where(p => !p.Contains(orderInfo.OrderID)).ToList(); if (hasOrderIDList.Count > 0) { hasOrderIDList = hasOrderIDList.Distinct().ToList(); hasOrderIDs = MyStringHelper.ListToStr(hasOrderIDList, "'", ","); } #endregion 检查是否有预约成功的订单 #endregion 预约订单修改状态 } else { //Tolog("普通类型"); #region 原订单修改状态 orderInfo.PaymentStatus = 1; orderInfo.Status = "待发货"; orderInfo.PayTime = DateTime.Now; if (orderInfo.DeliveryType == 1) { orderInfo.Status = "待自提"; } Tolog("更改状态start"); //if (bllMall.GetWebsiteInfoModelFromDataBase().IsDistributionMall.Equals(1)) //{ orderInfo.GroupBuyStatus = "0"; orderInfo.DistributionStatus = 1; //if (orderInfo.IsMain==1) //{ // bllMall.Update(orderInfo,string.Format(" DistributionStatus=1"),string.Format("ParentOrderId='{0}'",orderInfo.OrderID)); //} #region 活动订单 if (orderInfo.OrderType == 4) { ActivityDataInfo data = bllMall.Get <ActivityDataInfo>(string.Format(" OrderId='{0}'", orderInfo.OrderID)); if (data != null) { bllMall.Update(data, string.Format(" PaymentStatus=1"), string.Format(" OrderId='{0}'", orderInfo.OrderID)); } } #endregion bllMall.Update(orderInfo, string.Format("PaymentStatus=1,Status='待发货',PayTime=GETDATE(),DistributionStatus=1"), string.Format("ParentOrderId='{0}'", orderInfo.OrderID)); //} #endregion 原订单修改状态 try { //设置交易流水号 orderInfo.PayTranNo = parametersAll["transaction_id"]; } catch (Exception ex) { Tolog("设置交易流水号失败:" + ex.Message); } } bool result = false; if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { if (string.IsNullOrWhiteSpace(hasOrderIDs)) { hasOrderIDs = "'0'"; } result = bllMall.Update(new WXMallOrderInfo(), string.Format("PaymentStatus={0},PayTime=GetDate(),Status='{1}'", 1, "预约成功"), string.Format("OrderID='{0}' and WebsiteOwner='{4}' AND (select count(1) from [ZCJ_WXMallOrderInfo] where Status='{3}' and WebsiteOwner='{4}' and OrderID IN({1}))<{2}", orderInfo.OrderID, hasOrderIDs, maxCount, "预约成功", bllMall.WebsiteOwner) ) > 0; if (result) { // #region 交易成功加积分 //增加积分 (慧聚不需要) //if (orderInfo.TotalAmount > 0) //{ // ScoreConfig scoreConfig = bllScore.GetScoreConfig(); // int addScore = 0; // if (scoreConfig != null && scoreConfig.OrderAmount > 0 && scoreConfig.OrderScore > 0) // { // addScore = (int)(orderInfo.PayableAmount / (scoreConfig.OrderAmount / scoreConfig.OrderScore)); // } // if (addScore > 0) // { // if (bllUser.Update(new UserInfo(), // string.Format(" TotalScore+={0},HistoryTotalScore+={0}", addScore), // string.Format(" UserID='{0}'", orderInfo.OrderUserID)) > 0) // { // UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); // scoreRecord.AddTime = DateTime.Now; // scoreRecord.Score = addScore; // scoreRecord.ScoreType = "OrderSuccess"; // scoreRecord.UserID = orderInfo.OrderUserID; // scoreRecord.AddNote = "预约-交易成功获得积分"; // bllMall.Add(scoreRecord); // } // } //} // #endregion #region 修改其他预约订单为预约失败 返还积分 if (BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType) && !string.IsNullOrWhiteSpace(hasOrderIDs)) { int tempCount = 0; List <WXMallOrderInfo> tempList = bllMall.GetOrderList(0, 1, "", out tempCount, "预约成功", null, null, null, null, null, null, null, null, null, null, orderInfo.ArticleCategoryType, hasOrderIDs); tempCount = tempCount + 1; //加上当前订单的数量 if (tempCount >= maxCount) { tempList = bllMall.GetColOrderListInStatus("'待付款','待审核'", hasOrderIDs, "OrderID,OrderUserID,UseScore", bllMall.WebsiteOwner); if (tempList.Count > 0) { string stopOrderIds = MyStringHelper.ListToStr(tempList.Select(p => p.OrderID).ToList(), "'", ","); tempList = tempList.Where(p => p.UseScore > 0).ToList(); foreach (var item in tempList) { orderUserInfo.TotalScore += item.UseScore; if (bllUser.Update(new UserInfo(), string.Format(" TotalScore+={0}", item.UseScore), string.Format(" UserID='{0}'", item.OrderUserID)) > 0) { UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.AddTime = DateTime.Now; scoreRecord.Score = item.UseScore; scoreRecord.TotalScore = orderUserInfo.TotalScore; scoreRecord.ScoreType = "OrderCancel"; scoreRecord.UserID = item.OrderUserID; scoreRecord.RelationID = item.OrderID; scoreRecord.AddNote = "预约-订单失败返还积分"; scoreRecord.WebSiteOwner = item.WebsiteOwner; bllMall.Add(scoreRecord); } } bllMall.Update(new WXMallOrderInfo(), string.Format("Status='{0}'", "预约失败"), string.Format("OrderID In ({0}) and WebsiteOwner='{1}'", stopOrderIds, bllMall.WebsiteOwner)); } } //Tolog("更改修改其他预约为预约失败"); } #endregion } } else { result = bllMall.Update(orderInfo); } if (result) { #region 拼团订单 if (orderInfo.OrderType == 2) { try { if (!string.IsNullOrEmpty(orderInfo.GroupBuyParentOrderId)) { var parentOrderInfo = bllMall.GetOrderInfo(orderInfo.GroupBuyParentOrderId); if (parentOrderInfo.Ex10 == "1") { if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' ", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } else { if (bllMall.GetCount <WXMallOrderInfo>(string.Format("PaymentStatus=1 And GroupBuyParentOrderId='{0}' Or OrderId='{0}'", parentOrderInfo.OrderID)) >= parentOrderInfo.PeopleCount) { bllMall.Update(new WXMallOrderInfo(), string.Format("Status='已取消'"), string.Format(" GroupBuyParentOrderId='{0}' And PaymentStatus=0", parentOrderInfo.OrderID)); parentOrderInfo.GroupBuyStatus = "1"; bllMall.Update(parentOrderInfo); } } } } catch (Exception) { } } #endregion Open.HongWareSDK.Client hongWareClient = new Open.HongWareSDK.Client(orderInfo.WebsiteOwner); //Tolog("更改状态true"); #region Efast同步 //判读当前站点是否需要同步到驿氪和efast if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncEfast, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步efast"); string outOrderId = string.Empty, msg = string.Empty; var syncResult = bllEfast.CreateOrder(orderInfo.OrderID, out outOrderId, out msg); if (syncResult) { orderInfo.OutOrderId = outOrderId; bllMall.Update(orderInfo); } Tolog(string.Format("efast订单同步结果:{0},订单号:{1},提示信息:{2}", syncResult, outOrderId, msg)); } catch (Exception ex) { Tolog("efast订单同步异常:" + ex.Message); } } #endregion #region 驿氪同步 if (bllCommRelation.ExistRelation(BLLJIMP.Enums.CommRelationType.SyncYike, bllCommRelation.WebsiteOwner, "")) { try { Tolog("开始同步驿氪"); //同步成功订单到驿氪 //UserInfo orderUserInfo = bllUser.GetUserInfo(orderInfo.OrderUserID); //if ((!string.IsNullOrEmpty(orderUserInfo.Ex1)) && (!string.IsNullOrEmpty(orderUserInfo.Ex2)) && (!string.IsNullOrEmpty(orderUserInfo.Phone))) //{ // client.BonusUpdate(orderUserInfo.Ex2, -(orderInfo.UseScore), "商城下单使用积分" + orderInfo.UseScore); //} var uploadOrderResult = yikeClient.OrderUpload(orderInfo); Tolog(string.Format("驿氪订单同步结果:{0}", Common.JSONHelper.ObjectToJson(uploadOrderResult))); } catch (Exception ex) { Tolog("驿氪订单同步异常:" + ex.Message); } } #endregion #region 付款加积分 try { bllUser.AddUserScoreDetail(orderInfo.OrderUserID, CommonPlatform.Helper.EnumStringHelper.ToString(ZentCloud.BLLJIMP.Enums.ScoreDefineType.OrderPay), bllMall.WebsiteOwner, null, null); } catch (Exception) { } #endregion #region 消息通知 if (!BLLJIMP.BLLMall.bookingList.Contains(orderInfo.ArticleCategoryType)) { try { var productName = bllMall.GetOrderDetailsList(orderInfo.OrderID)[0].ProductName; string remark = ""; if (!string.IsNullOrEmpty(orderInfo.OrderMemo)) { remark = string.Format("客户留言:{0}", orderInfo.OrderMemo); } bllWeiXin.SendTemplateMessageToKefu("有新的订单", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}\\n{5}", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName, remark)); if (orderInfo.OrderType != 4)//付费的活动不发消息 { if (orderInfo.WebsiteOwner != "jikuwifi") { string url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderDetail/{1}#/orderDetail/{1}", Request.Url.Host, orderInfo.OrderID); if (orderInfo.IsMain == 1) { url = string.Format("http://{0}/customize/shop/?v=1.0&ngroute=/orderList#/orderList", Request.Url.Host); } bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, "订单已成功支付,我们将尽快发货,请保持手机畅通等待物流送达!", string.Format("订单号:{0}\\n订单金额:{1}元\\n收货人:{2}\\n电话:{3}\\n商品:{4}...\\n查看详情", orderInfo.OrderID, Math.Round(orderInfo.TotalAmount, 2), orderInfo.Consignee, orderInfo.Phone, productName), url); } } } catch (Exception) { } } else { try { bllWeiXin.SendTemplateMessageToKefu(orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元\\n预约人:{3}\\n预约人手机:{4}", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName, orderUserInfo.TrueName, orderUserInfo.Phone)); bllWeiXin.SendTemplateMessageNotifyComm(orderUserInfo, orderInfo.Status, string.Format("预约:{2}\\n订单号:{0}\\n订单金额:{1}元", orderInfo.OrderID, orderInfo.TotalAmount, tProductInfo.PName)); } catch (Exception) { } } #endregion WebsiteInfo websiteInfo = bllMall.Get <WebsiteInfo>(string.Format(" WebsiteOwner='{0}'", orderInfo.WebsiteOwner)); #region 分销相关 try { if (bllMenuPermission.CheckUserAndPmsKey(websiteInfo.WebsiteOwner, BLLPermission.Enums.PermissionSysKey.OnlineDistribution, websiteInfo.WebsiteOwner)) { if (string.IsNullOrWhiteSpace(orderUserInfo.DistributionOwner)) { if (websiteInfo.DistributionRelationBuildMallOrder == 1) { orderUserInfo.DistributionOwner = orderInfo.WebsiteOwner; bllMall.Update(orderUserInfo); } } bllDis.AutoUpdateLevel(orderInfo); bllDis.TransfersEstimate(orderInfo); bllDis.SendMessageToUser(orderInfo); bllDis.UpdateDistributionSaleAmountUp(orderInfo); } } catch (Exception ex) { Tolog("设置分销员异常:" + ex.Message + " 用户id:" + orderUserInfo.UserID); } #endregion #region 宏巍通知 try { if (websiteInfo.IsUnionHongware == 1) { hongWareClient.OrderNotice(orderUserInfo.WXOpenId, orderInfo.OrderID); } } catch (Exception) { } #endregion bllCard.Give(orderInfo.TotalAmount, orderUserInfo); string v1ProductId = Common.ConfigHelper.GetConfigString("YGBV1ProductId"); string v2ProductId = Common.ConfigHelper.GetConfigString("YGBV2ProductId"); string v1CouponId = Common.ConfigHelper.GetConfigString("YGBV1CouponId"); string v2CouponId = Common.ConfigHelper.GetConfigString("YGBV2CouponId"); List <WXMallOrderDetailsInfo> orderDetailList = bllMall.GetOrderDetailsList(orderInfo.OrderID); foreach (var item in orderDetailList) { item.IsComplete = 1; bllMall.Update(item); #region 购买指定商品发送指定的优惠券 if (!string.IsNullOrEmpty(v1ProductId) && !string.IsNullOrEmpty(v1CouponId) && item.PID == v1ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v1CouponId); } if (!string.IsNullOrEmpty(v2ProductId) && !string.IsNullOrEmpty(v2CouponId) && item.PID == v2ProductId) { bllCard.SendCardCouponsByCurrUserInfo(orderUserInfo, v2CouponId); } #endregion } //更新销量 bllMall.UpdateProductSaleCount(orderInfo); Response.Write(successXml); return; } else { Tolog("更改状态false"); Response.Write(failXml); return; } } Tolog("返回信息有误"); Response.Write(failXml); } catch (Exception ex) { Tolog("出错了:" + ex.Message); Response.Write(failXml); } }
private string Query(HttpContext context) { //int page = Convert.ToInt32(context.Request["page"]); //int rows = Convert.ToInt32(context.Request["rows"]); List <MenuInfo> menuList = new List <MenuInfo>(); //分页去掉 //list = pmsBll.GetLit<MenuInfo>(rows, page, null, "MenuID"); string websiteOwner = context.Request["websiteOwner"]; string menuTypeStr = context.Request["menuType"]; int menuType = string.IsNullOrWhiteSpace(menuTypeStr) ? 3 : Convert.ToInt32(menuTypeStr); string showLevelStr = context.Request["showLevel"]; string showHideStr = context.Request["showHide"]; bool showHide = showHideStr == "1" ? true : false; int showLevel = 3; if (currentUserInfo.UserType == 1) { showLevel = showLevelStr == "1" ? 1 : 2; } else if (currentUserInfo.UserID == pmsBll.WebsiteOwner) { showLevel = 2; } menuList.AddRange(bllMenu.GetWebsiteMenuList(websiteOwner, showLevel, false, showHide)); //获取权限组ids string relationIds = "''"; List <long> pmsGroupIdList = pmsBll.GetPmsGroupIDByUser(websiteOwner); if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); } menuList = bllMenu.CheckMenuRelationList(menuList, websiteOwner, relationIds); if (!showHide) { menuList = menuList.Where(p => p.IsHide.Value == 0).ToList(); } List <MenuInfo> showList = new List <MenuInfo>(); MySpider.MyCategories m = new MySpider.MyCategories(); List <MySpider.Model.MyCategoryModel> listCate = m.GetCommCateModelList <MenuInfo>("MenuID", "PreID", "NodeName", menuList); foreach (ListItem item in m.GetCateListItem(listCate, 0)) { try { MenuInfo tmpModel = (MenuInfo)menuList.Where(p => p.MenuID.ToString().Equals(item.Value)).ToList()[0].Clone(); tmpModel.NodeName = item.Text; showList.Add(tmpModel); } catch { } } int totalCount = showList.Count; return(Common.JSONHelper.ObjectToJson( new{ total = totalCount, rows = showList })); }
public void ProcessRequest(HttpContext context) { RequestModel requestModel = new RequestModel(); try { requestModel = JsonConvert.DeserializeObject <RequestModel>(context.Request["data"]); } catch (Exception ex) { resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = ex.Message; bllKeyValueData.ContextResponse(context, resp); return; } KeyVauleDataInfo KeyVauleDataModel = new KeyVauleDataInfo(); if (requestModel.id > 0) { KeyVauleDataModel = bllKeyValueData.GetByKey <KeyVauleDataInfo>("AutoId", requestModel.id.ToString()); if (KeyVauleDataModel == null) { resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "原模板没有找到"; bllKeyValueData.ContextResponse(context, resp); return; } if (KeyVauleDataModel.WebsiteOwner != bllKeyValueData.WebsiteOwner) { resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "原模板不是本站模板"; bllKeyValueData.ContextResponse(context, resp); return; } } else { KeyVauleDataModel.Creater = currentUserInfo.UserID; KeyVauleDataModel.WebsiteOwner = bllKeyValueData.WebsiteOwner; KeyVauleDataModel.CreateTime = DateTime.Now; KeyVauleDataModel.PreKey = "0"; KeyVauleDataModel.DataType = EnumStringHelper.ToString(KeyVauleDataType.WXTmplmsg); } string OldKey = KeyVauleDataModel.DataKey; KeyVauleDataModel.DataKey = requestModel.data_key; KeyVauleDataModel.DataValue = requestModel.data_value; //微信模板Id变化则清除以前的字段数据 if (!string.IsNullOrWhiteSpace(OldKey) && OldKey != KeyVauleDataModel.DataKey) { bllKeyValueData.DeleteDataVaule(EnumStringHelper.ToString(KeyVauleDataType.WXTmplmsgData), null, OldKey, bllKeyValueData.WebsiteOwner); } List <KeyVauleDataInfo> newFieldList = new List <KeyVauleDataInfo>(); for (int i = 0; i < requestModel.child_list.Count; i++) { KeyVauleDataInfo newField = new KeyVauleDataInfo(); newField.Creater = currentUserInfo.UserID; newField.WebsiteOwner = KeyVauleDataModel.WebsiteOwner; newField.CreateTime = DateTime.Now; newField.PreKey = KeyVauleDataModel.DataKey; newField.DataType = EnumStringHelper.ToString(KeyVauleDataType.WXTmplmsgData); newField.DataKey = requestModel.child_list[i].data_key; newField.DataValue = requestModel.child_list[i].data_value; newField.OrderBy = i + 1; newFieldList.Add(newField); } List <KeyVauleDataInfo> oldFieldList = bllKeyValueData.GetKeyVauleDataInfoList(EnumStringHelper.ToString(KeyVauleDataType.WXTmplmsgData), KeyVauleDataModel.DataKey , KeyVauleDataModel.WebsiteOwner); List <KeyVauleDataInfo> deleteFieldList = new List <KeyVauleDataInfo>(); List <KeyVauleDataInfo> editFieldList = new List <KeyVauleDataInfo>(); List <KeyVauleDataInfo> addFieldList = new List <KeyVauleDataInfo>(); foreach (KeyVauleDataInfo item in oldFieldList) { KeyVauleDataInfo temp = newFieldList.FirstOrDefault(p => p.DataType == item.DataType && p.DataKey == item.DataKey); if (temp == null) { deleteFieldList.Add(item); } else { item.DataValue = temp.DataValue; item.OrderBy = temp.OrderBy; editFieldList.Add(item); } } foreach (KeyVauleDataInfo item in newFieldList) { if (!oldFieldList.Exists(p => p.DataType == item.DataType && p.DataKey == item.DataKey)) { addFieldList.Add(item); } } BLLTransaction tran = new BLLTransaction();//事务 try { if (KeyVauleDataModel.AutoId == 0) { if (!bllKeyValueData.Add(KeyVauleDataModel, tran)) { tran.Rollback(); resp.errmsg = "添加模板失败"; bllKeyValueData.ContextResponse(context, resp); return; } } else { if (!bllKeyValueData.Update(KeyVauleDataModel, tran)) { tran.Rollback(); resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "修改模板失败"; bllKeyValueData.ContextResponse(context, resp); return; } } if (deleteFieldList.Count > 0) { string delIds = MyStringHelper.ListToStr(deleteFieldList.Select(p => p.AutoId).ToList(), "", ","); if (bllKeyValueData.DeleteMultByKey <KeyVauleDataInfo>("AutoId", delIds) < 0) { tran.Rollback(); resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "删除旧字段失败"; bllKeyValueData.ContextResponse(context, resp); return; } } foreach (KeyVauleDataInfo item in editFieldList)//添加问题表 { if (!bllKeyValueData.Update(item, tran)) { tran.Rollback(); resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "模板字段修改失败"; bllKeyValueData.ContextResponse(context, resp); return; } } foreach (KeyVauleDataInfo item in addFieldList)//添加问题表 { if (!bllKeyValueData.Add(item, tran)) { tran.Rollback(); resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "模板字段添加失败"; bllKeyValueData.ContextResponse(context, resp); return; } } tran.Commit(); resp.isSuccess = true; resp.errcode = (int)APIErrCode.IsSuccess; } catch (Exception ex) { tran.Rollback(); resp.errcode = (int)APIErrCode.OperateFail; resp.errmsg = "提交失败," + ex.Message; } bllKeyValueData.ContextResponse(context, resp); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; int rows = Convert.ToInt32(context.Request["rows"]); int page = Convert.ToInt32(context.Request["page"]); string longitude = context.Request["longitude"]; string latitude = context.Request["latitude"]; string sort = context.Request["sort"];//3开始时间降序,4发布时间降序 sort = string.IsNullOrWhiteSpace(sort) ? "3" : sort; string status = context.Request["status"]; status = string.IsNullOrWhiteSpace(status) ? "1" : status; string signup_status = context.Request["signup_status"]; signup_status = string.IsNullOrWhiteSpace(signup_status) ? "1" : signup_status; string ctype = context.Request["ctype"];//查询类型 0我发布和报名的 1我发布的 2我报名的 List <int> juActIdlist = new List <int>(); if (ctype == "0" || ctype == "1") { int tempTotal = 0; List <JuActivityInfo> tempList = bll.GetRangeUserList(int.MaxValue, 1, bll.WebsiteOwner, CurrentUserInfo.UserID, "Appointment", null, null, null, null , null, null, null, null, null, null, null, null, null, null , null, null, "99", null, null, out tempTotal, int.MaxValue, status, null, null, "JuActivityID"); if (tempList.Count > 0) { juActIdlist.AddRange(tempList.Select(p => p.JuActivityID)); } } if (ctype == "0" || ctype == "2") { int signupTotal = 0; List <ActivityDataInfo> signupList = bll.GetRangeSignUpList(int.MaxValue, 1, null, bll.WebsiteOwner, null, null , signup_status, "99", out signupTotal, CurrentUserInfo.UserID, "ActivityID,UID"); if (signupList.Count > 0) { string signUpActivityIds = MyStringHelper.ListToStr(signupList.Select(p => p.ActivityID).Distinct().ToList(), "'", ","); int tempTotal = 0; List <JuActivityInfo> tempList = bll.GetRangeUserList(int.MaxValue, 1, bll.WebsiteOwner, null, "Appointment", null, null, null, null , null, null, null, null, null, null, null, null, null, null , null, null, "99", null, null, out tempTotal, int.MaxValue, status, null, signUpActivityIds, "JuActivityID"); if (tempList.Count > 0) { juActIdlist.AddRange(tempList.Select(p => p.JuActivityID)); } } } int total = 0; List <JuActivityInfo> list = new List <JuActivityInfo>(); if (juActIdlist.Count > 0) { string juActIds = MyStringHelper.ListToStr(juActIdlist.Distinct().ToList(), "", ","); list = bll.GetRangeUserList(rows, page, bll.WebsiteOwner, null, "Appointment", null, null, longitude, latitude , null, null, null, null, null, null, null, null, null, null , null, null, sort, null, null, out total, int.MaxValue, status, juActIds); } List <dynamic> result = new List <dynamic>(); foreach (var item in list) { UserInfo userTemp = bllUser.GetUserInfo(item.UserID); if (userTemp == null) { continue; } result.Add(new { activity_id = item.JuActivityID, activity_name = item.ActivityName, activity_address = item.ActivityAddress, activity_summary = item.Summary, create_time = DateTimeHelper.DateTimeToUnixTimestamp(item.CreateDate), create_time_str = DateTimeHelper.DateTimeToString(item.CreateDate), activity_start_time = item.ActivityStartDate.HasValue ? DateTimeHelper.DateTimeToUnixTimestamp(item.ActivityStartDate.Value) : 0, activity_start_time_str = item.ActivityStartDate.HasValue ? DateTimeHelper.DateTimeToString(item.ActivityStartDate.Value) : "", activity_pv = item.PV, activity_commentcount = item.CommentCount, activity_signcount = item.SignUpCount, category_id = item.CategoryId, category_name = item.CategoryName, activity_ex1 = item.K1, activity_ex2 = item.K2, activity_ex3 = item.K3, activity_ex4 = item.K4, activity_ex5 = item.K5, activity_ex6 = item.K6, activity_ex7 = item.K7, activity_ex8 = item.K8, activity_ex9 = item.K9, activity_ex10 = item.K10, credit_acount = item.CreditAcount, publish_user = new { id = userTemp.AutoID, user_name = userTemp.UserID, nick_name = userTemp.WXNickname, gender = userTemp.Gender, birthday = DateTimeHelper.DateTimeToUnixTimestamp(userTemp.Birthday), birthday_str = DateTimeHelper.DateTimeToString(userTemp.Birthday), identification = userTemp.Ex5, avatar = userTemp.Avatar }, status = item.TStatus, distance = item.Distance, isauthor = item.UserID == CurrentUserInfo.UserID ? true :false }); } apiResp.status = true; apiResp.code = 0; apiResp.result = new { totalcount = total, list = result }; apiResp.msg = "查询完成"; bll.ContextResponse(context, apiResp); }
/// <summary> /// 生成首页数据 /// </summary> /// <param name="websiteOwnerList">站点列表</param> /// <param name="date">日期</param> public void BuildDashboardInfo(List <string> websiteList, DateTime nDate) { if (websiteList.Count == 0) { return; } int nDateInt = DateTimeHelper.ToDateInt8ByDateTime(nDate); int lastDate7Int = DateTimeHelper.ToDateInt8ByDateTime(nDate.AddDays(-6)); int lastDate30Int = DateTimeHelper.ToDateInt8ByDateTime(nDate.AddDays(-29)); List <DashboardLog> dashLogList = GetDashboardLogList(null, lastDate30Int, nDateInt); List <DashboardInfo> dashInfoList = GetDashboardInfoList(); List <DashboardLog> uvDashLogList = new List <DashboardLog>(); #region 访客记录统计 List <MonitorEventDetailsInfo> uvList = GetDashboardUVList(null, nDate.AddDays(-29).ToString("yyyy-MM-dd"), nDate.ToString("yyyy-MM-dd")); List <DashboardMonitorInfo> uvDashboardLogList = GetColList <DashboardMonitorInfo>(int.MaxValue, 1, "1=1", "DetailID"); //ExecuteSql("truncate table ZCJ_DashboardMonitorInfo");//清除原30天UV记录 if (uvList.Count > 0) { List <DashboardMonitorInfo> uvGroupList = uvList.GroupBy(p => new { p.WebsiteOwner, p.EventUserID }).Select(g => new DashboardMonitorInfo { WebsiteOwner = g.Key.WebsiteOwner, EventUserID = g.Key.EventUserID, DetailID = g.Max(p => p.DetailID).Value }).OrderByDescending(x => x.DetailID).ToList(); //删除数据 List <int> delIdList = uvDashboardLogList.Where(p => !uvGroupList.Exists(pi => pi.DetailID == p.DetailID)).Select(pid => pid.DetailID).ToList(); if (delIdList.Count > 0) { DeleteMultByKey <DashboardMonitorInfo>("DetailID", ZentCloud.Common.MyStringHelper.ListToStr(delIdList, "", ",")); } List <int> addIdList = uvGroupList.Where(p => !uvDashboardLogList.Exists(pi => pi.DetailID == p.DetailID)).Select(pid => pid.DetailID).ToList(); List <DashboardMonitorInfo> uvAddDashboardList = uvList.Where(p => addIdList.Exists(pi => pi == p.DetailID.Value)).Select(g => new DashboardMonitorInfo { DetailID = g.DetailID.Value, WebsiteOwner = g.WebsiteOwner, EventUserID = g.EventUserID, EventDate = g.EventDate.Value, SourceIP = g.SourceIP, IPLocation = g.IPLocation, EventBrowserID = g.EventBrowserID }).ToList(); if (uvAddDashboardList.Count > 0) { string userIds = MyStringHelper.ListToStr(uvAddDashboardList.Select(p => p.EventUserID).Distinct().ToList(), "'", ","); List <UserInfo> userList = GetColMultListByKey <UserInfo>(int.MaxValue, 1, "UserID", userIds, "AutoID,UserID,TrueName,Phone,WXNickname,WXHeadimgurl"); for (int i = 0; i < uvAddDashboardList.Count; i++) { UserInfo nuser = userList.FirstOrDefault(p => p.UserID == uvAddDashboardList[i].EventUserID); if (nuser != null) { uvAddDashboardList[i].EventUserWXNikeName = nuser.WXNickname; uvAddDashboardList[i].EventUserTrueName = nuser.TrueName; uvAddDashboardList[i].EventUserWXImg = nuser.WXHeadimgurl; uvAddDashboardList[i].EventUserPhone = nuser.Phone; } Add(uvAddDashboardList[i]); } } uvDashLogList = uvList.Where(ni => uvGroupList.Exists(pi => pi.DetailID == ni.DetailID)).GroupBy(p => new { p.WebsiteOwner, Value = DateTimeHelper.ToDateInt8ByDateTime(p.EventDate.Value) }).Select(g => new DashboardLog { WebsiteOwner = g.Key.WebsiteOwner, Date = g.Key.Value, DashboardType = "UV", Num = g.Count() }).OrderByDescending(x => x.Date).ThenBy(x => x.WebsiteOwner).ToList(); } #endregion List <DashboardLog> fansDashLogList = new List <DashboardLog>(); #region 粉丝记录统计 List <Log> fansList = GetDashboardSubscribeList(null, nDate.AddDays(-29).ToString("yyyy-MM-dd"), nDate.ToString("yyyy-MM-dd")); if (fansList.Count > 0) { fansDashLogList = fansList.GroupBy(p => new { p.WebsiteOwner, p.UserID }).Select(g => new Log { WebsiteOwner = g.Key.WebsiteOwner, UserID = g.Key.UserID, InsertDate = g.Max(p => p.InsertDate) }).GroupBy(e => new { e.WebsiteOwner, Value = DateTimeHelper.ToDateInt8ByDateTime(e.InsertDate) }).Select(f => new DashboardLog { WebsiteOwner = f.Key.WebsiteOwner, Date = f.Key.Value, DashboardType = "Fans", Num = f.Count() }).OrderByDescending(x => x.Date).ThenBy(x => x.WebsiteOwner).ToList(); } #endregion List <TotalInfo> memberTotalList = GetAllDashboardRegUserTotal(); List <TotalInfo> uvTotalList = GetAllDashboardUVTotal(); List <TotalInfo> fansTotalList = GetAllDashboardSubscribeTotal(); List <TotalInfo> orderTotalList = GetAllDashboardOrderTotal("0,1,2,3"); List <TotalInfo> visitTotalList = GetAllDashboardMonitorEventDetailsTotal(); foreach (string web in websiteList) { DashboardInfo ndi = dashInfoList.FirstOrDefault(p => p.WebsiteOwner == web); //if (ndi!=null && ndi.Date == nDateInt) continue; DashboardJson nDashboardJson = new DashboardJson(); nDashboardJson.visit_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastday = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastday = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastday = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date == nDateInt).Sum(p => p.Num); nDashboardJson.visit_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastweek = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastweek = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastweek = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate7Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.visit_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.order_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.member_num_lastmonth = dashLogList.Where(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.uv_num_lastmonth = uvDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); nDashboardJson.fans_num_lastmonth = fansDashLogList.Where(p => p.WebsiteOwner == web && p.Date >= lastDate30Int && p.Date <= nDateInt).Sum(p => p.Num); TotalInfo memberTotal = memberTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (memberTotal != null) { nDashboardJson.member_total = memberTotal.Total; } TotalInfo uvTotal = uvTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (uvTotal != null) { nDashboardJson.uv_total = uvTotal.Total; } TotalInfo fansTotal = fansTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (fansTotal != null) { nDashboardJson.fans_total = fansTotal.Total; } TotalInfo orderTotal = orderTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (orderTotal != null) { nDashboardJson.order_total = orderTotal.Total; } TotalInfo visitTotal = visitTotalList.FirstOrDefault(p => p.WebsiteOwner == web); if (visitTotal != null) { nDashboardJson.visit_total = visitTotal.Total; } for (DateTime i = nDate; i >= nDate.AddDays(-29); i = i.AddDays(-1)) { int rDateInt = ZentCloud.Common.DateTimeHelper.ToDateInt8ByDateTime(i); string rDateString = i.ToString("yyyy-MM-dd"); nDashboardJson.day_list.Add(rDateString); DashboardLog rVisitLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "WebAccessLog" && p.Date == rDateInt); if (rVisitLog == null) { nDashboardJson.visit_num_list.Add(0); } else { nDashboardJson.visit_num_list.Add(rVisitLog.Num); } DashboardLog rOrderLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "WXMallOrder" && p.Date == rDateInt); if (rOrderLog == null) { nDashboardJson.order_num_list.Add(0); } else { nDashboardJson.order_num_list.Add(rOrderLog.Num); } DashboardLog rMemberLog = dashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.DashboardType == "Member" && p.Date == rDateInt); if (rMemberLog == null) { nDashboardJson.member_num_list.Add(0); } else { nDashboardJson.member_num_list.Add(rMemberLog.Num); } DashboardLog rUVLog = uvDashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.Date == rDateInt); if (rUVLog == null) { nDashboardJson.uv_num_list.Add(0); } else { nDashboardJson.uv_num_list.Add(rUVLog.Num); } DashboardLog rFansLog = fansDashLogList.FirstOrDefault(p => p.WebsiteOwner == web && p.Date == rDateInt); if (rFansLog == null) { nDashboardJson.fans_num_list.Add(0); } else { nDashboardJson.fans_num_list.Add(rFansLog.Num); } } nDashboardJson.timestamp = DateTimeHelper.DateTimeToUnixTimestamp(DateTime.Now); string nJson = JsonConvert.SerializeObject(nDashboardJson); if (ndi == null) { Add(new DashboardInfo() { WebsiteOwner = web, Date = nDateInt, Json = nJson }); } else { Update(new DashboardInfo() { WebsiteOwner = web, Date = nDateInt, Json = nJson }); } } }