public DeliveryFeeResult GetDeliveryFee(BargainUser bargainOrder, string province, string city, DeliveryFeeSumMethond sumMethod, DeliveryConfig config = null) { if (config == null) { config = DeliveryConfigBLL.SingleModel.GetConfig(new Bargain { Id = bargainOrder.BId }); } DeliveryProduct formatProduct = new DeliveryProduct { Count = 1, Name = bargainOrder.BName, TemplateId = config.Attr.DeliveryTemplateId, Weight = config.Attr.Weight, Amount = bargainOrder.CurrentPrice, }; DeliveryFeeResult result = GetDeliveryFeeCommon(new List <DeliveryProduct> { formatProduct }, province, city, sumMethod); if (result.InRange) { DeliveryDiscount discount = GetDiscount(bargainOrder.aid, bargainOrder.CurrentPrice); result.Fee = discount.HasDiscount ? discount.DiscountPrice : result.Fee; result.Message = discount.HasDiscount ? discount.DiscountInfo : result.Message; } return(result); }
/// <summary> /// 标记订单已评论 /// </summary> /// <param name="xcxtemplateType">模板类型</param> /// <param name="goodsType">商品类型</param> /// <param name="orderId"></param> /// <returns></returns> public bool OrderCommenting(int xcxtemplateType, int goodsType, int orderId) { switch (xcxtemplateType) { case (int)TmpType.小程序专业模板: switch (goodsType) { case (int)EntGoodsType.拼团产品: case (int)EntGoodsType.普通产品: EntGoodsOrder entOrder = EntGoodsOrderBLL.SingleModel.GetModel(orderId); if (entOrder == null) { return(false); } entOrder.IsCommentting = true; return(EntGoodsOrderBLL.SingleModel.Update(entOrder, "IsCommentting")); case (int)EntGoodsType.价产品: BargainUser bargainuser = BargainUserBLL.SingleModel.GetModel(orderId); if (bargainuser == null) { return(true); } bargainuser.IsCommentting = true; return(BargainUserBLL.SingleModel.Update(bargainuser, "IsCommentting")); } break; case (int)TmpType.小未平台子模版: PlatChildGoodsOrder platOrder = PlatChildGoodsOrderBLL.SingleModel.GetModel(orderId); if (platOrder == null) { return(false); } platOrder.IsCommentting = true; return(PlatChildGoodsOrderBLL.SingleModel.Update(platOrder, "IsCommentting")); } return(false); }
/// <summary> /// 砍价退款(照搬后台的) /// </summary> /// <param name="bargainUser"></param> /// <param name="bargain"></param> /// <param name="appId"></param> /// <param name="msg"></param> /// <returns></returns> public bool BargainReFundQueue(BargainUser bargainUser, Bargain bargain, string appId, out string msg) { bargainUser.State = 2; bargainUser.outOrderDate = DateTime.Now; if (bargainUser.PayType == (int)miniAppBuyMode.储值支付) { bargainUser.refundFee = bargainUser.CurrentPrice + bargain.GoodsFreight; bargainUser.State = 3; SaveMoneySetUser saveMoneyUser = SaveMoneySetUserBLL.SingleModel.getModelByUserId(appId, bargainUser.UserId); TransactionModel tran = new TransactionModel(); tran.Add(SaveMoneySetUserLogBLL.SingleModel.BuildAddSql(new SaveMoneySetUserLog() { AppId = appId, UserId = bargainUser.UserId, MoneySetUserId = saveMoneyUser.Id, Type = 1, BeforeMoney = saveMoneyUser.AccountMoney, AfterMoney = saveMoneyUser.AccountMoney + bargainUser.refundFee, ChangeMoney = bargainUser.refundFee, ChangeNote = $"小程序砍价购买商品[{bargainUser.BName}]退款,订单号:{bargainUser.OrderId} ", CreateDate = DateTime.Now, State = 1 })); tran.Add($" update SaveMoneySetUser set AccountMoney = AccountMoney + {bargainUser.refundFee} where id = {saveMoneyUser.Id} ; "); string updateBargainUser = BargainUserBLL.SingleModel.BuildUpdateSql(bargainUser, "State,outOrderDate,refundFee"); tran.Add(updateBargainUser); bool isok = BargainBLL.SingleModel.ExecuteTransactionDataCorect(tran.sqlArray); if (isok) { object orderData = TemplateMsg_Miniapp.BargainGetTemplateMessageData(bargainUser, SendTemplateMessageTypeEnum.价订单退款通知, "商家操作退款"); TemplateMsg_Miniapp.SendTemplateMessage(bargainUser, SendTemplateMessageTypeEnum.价订单退款通知, orderData); msg = "退款成功,请查看账户余额!"; } else { msg = "退款异常!";//返回订单信息 } return(isok); } else { bool isok = false; CityMorders order = _cityMordersBLL.GetModel(bargainUser.CityMordersId); if (order == null) { msg = "订单信息有误!"; return(isok); } bargainUser.refundFee = bargainUser.CurrentPrice + bargain.GoodsFreight; if (BargainUserBLL.SingleModel.Update(bargainUser, "State,outOrderDate,refundFee")) { ReFundQueue reModel = new ReFundQueue { minisnsId = -5, money = bargainUser.refundFee, orderid = order.Id, traid = order.trade_no, addtime = DateTime.Now, note = "小程序砍价订单退款", retype = 1 }; try { int funid = Convert.ToInt32(base.Add(reModel)); if (funid > 0) { object orderData = TemplateMsg_Miniapp.BargainGetTemplateMessageData(bargainUser, SendTemplateMessageTypeEnum.价订单退款通知, "商家操作退款"); TemplateMsg_Miniapp.SendTemplateMessage(bargainUser, SendTemplateMessageTypeEnum.价订单退款通知, orderData); isok = true; msg = "操作成功,已提交退款申请!"; return(isok); } else { isok = false; msg = "退款异常插入队列小于0!"; return(isok); } } catch (Exception ex) { log4net.LogHelper.WriteInfo(GetType(), $"{ex.Message} xxxxxxxxxxxxxxxx小程序砍价退款订单插入队列失败 ID={order.Id}"); isok = false; msg = "退款异常(插入队列失败)!"; return(isok); } } else { isok = false; msg = "退款异常!"; return(isok); } } }
/// <summary> /// 是否已评论 /// </summary> /// <param name="xcxtemplateType">模板类型</param> /// <param name="goodsType">商品类型</param> /// <param name="goodsId">商品ID(拼团entgoods表ID,团购groups表ID,普通商品entgoods表ID,砍价bargain表ID)</param> /// <param name="msg"></param> /// <returns></returns> public bool IsComment(int xcxtemplateType, int goodsType, int goodsId, int orderId, int aid) { bool iscomment = false; switch (xcxtemplateType) { case (int)TmpType.小程序专业模板: switch (goodsType) { case (int)EntGoodsType.团购商品: GroupUser groupuser = GroupUserBLL.SingleModel.GetModel(orderId); if (groupuser == null) { return(true); } iscomment = ExitModel(aid, groupuser.ObtainUserId, groupuser.GroupId, orderId, goodsType); groupuser.IsCommentting = true; GroupUserBLL.SingleModel.Update(groupuser, "IsCommentting"); break; case (int)EntGoodsType.拼团产品: EntGoodsCart gentgoodscart = EntGoodsCartBLL.SingleModel.GetModelByGoodsId(orderId, goodsId); if (gentgoodscart == null) { return(true); } iscomment = ExitModel(aid, gentgoodscart.UserId, goodsId, orderId, goodsType); gentgoodscart.IsCommentting = true; EntGoodsCartBLL.SingleModel.Update(gentgoodscart, "IsCommentting"); break; case (int)EntGoodsType.普通产品: EntGoodsCart entgoodscart = EntGoodsCartBLL.SingleModel.GetModelByGoodsId(orderId, goodsId); if (entgoodscart == null) { return(true); } iscomment = ExitModel(aid, entgoodscart.UserId, goodsId, orderId, goodsType); entgoodscart.IsCommentting = true; EntGoodsCartBLL.SingleModel.Update(entgoodscart, "IsCommentting"); break; case (int)EntGoodsType.价产品: BargainUser bargainuser = BargainUserBLL.SingleModel.GetModel(orderId); if (bargainuser == null) { return(true); } iscomment = ExitModel(aid, bargainuser.UserId, bargainuser.BId, orderId, goodsType); bargainuser.IsCommentting = true; BargainUserBLL.SingleModel.Update(bargainuser, "IsCommentting"); break; } break; case (int)TmpType.小未平台子模版: PlatChildGoodsCart platChildGoodsCart = PlatChildGoodsCartBLL.SingleModel.GetModelByGoodsId(orderId, goodsId); if (platChildGoodsCart == null) { return(true); } iscomment = ExitModel(aid, platChildGoodsCart.UserId, goodsId, orderId, goodsType); platChildGoodsCart.IsCommentting = true; PlatChildGoodsCartBLL.SingleModel.Update(platChildGoodsCart, "IsCommentting"); break; } return(iscomment); }