/// <summary> /// 开团 /// </summary> /// <param name="isgroup"></param> /// <param name="rid"></param> /// <param name="buyMode"></param> /// <param name="userid"></param> /// <param name="groupmodel"></param> /// <param name="dbOrder"></param> /// <returns></returns> protected string OpenGroup(int isgroup, int rid, int buyMode, int userid, EntGroupsRelation groupmodel, ref EntGoodsOrder dbOrder) { string msg = ""; //是否开团 if (isgroup > 0) { int groupusersum = EntGroupSponsorBLL.SingleModel.GetGroupSponrUserSum(groupmodel.Id); EntGroupSponsor groupSponsor = new EntGroupSponsor(); groupSponsor.EntGoodRId = groupmodel.Id; groupSponsor.SponsorUserId = userid; groupSponsor.GroupSize = groupmodel.GroupSize; groupSponsor.RId = rid; groupSponsor.StartDate = DateTime.Now; groupSponsor.EndDate = DateTime.Now.AddHours(groupmodel.ValidDateLength); groupSponsor.State = buyMode == (int)miniAppBuyMode.储值支付 || dbOrder.BuyPrice <= 0 ? (int)GroupState.开团成功 : (int)GroupState.待付款; //待付款 int groupid = Convert.ToInt32(EntGroupSponsorBLL.SingleModel.Add(groupSponsor)); if (groupid <= 0) { msg = $"成团失败!"; } dbOrder.GroupId = groupid; EntGoodsOrderBLL.SingleModel.Update(dbOrder, "groupid"); } return(msg); }
public ActionResult GetGroupDetail() { string appId = Context.GetRequest("appId", string.Empty); int groupid = Context.GetRequestInt("groupid", 0); if (string.IsNullOrEmpty(appId)) { return(Json(new { isok = -1, msg = "appid不能为空" }, JsonRequestBehavior.AllowGet)); } XcxAppAccountRelation umodel = _xcxAppAccountRelationBLL.GetModelByAppid(appId); if (umodel == null) { return(Json(new { isok = -1, msg = "请先授权" }, JsonRequestBehavior.AllowGet)); } int xtype = _xcxAppAccountRelationBLL.GetXcxTemplateType(umodel.Id); if (xtype == 0) { return(Json(new { isok = -1, msg = "小程序没授权" }, JsonRequestBehavior.AllowGet)); } EntGroupSponsor group = EntGroupSponsorBLL.SingleModel.GetGroupDetail(groupid, xtype); if (group == null) { return(Json(new { isok = -1, msg = "团已失效" }, JsonRequestBehavior.AllowGet)); } //获取该产品对应的可以参团的数据 List <EntGroupSponsor> GroupSponsorList = EntGroupSponsorBLL.SingleModel.GetHaveSuccessGroup(group.EntGoodRId, 10, group.GoodId, xtype); return(Json(new { isok = 1, msg = "成功", postdata = group, GroupSponsorList = GroupSponsorList }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 开团 /// </summary> /// <param name="isgroup"></param> /// <param name="rid"></param> /// <param name="buyMode"></param> /// <param name="userid"></param> /// <param name="groupmodel"></param> /// <param name="dbOrder"></param> /// <returns></returns> protected string OpenGroup(int isgroup, int rid, int buyMode, int userid, EntGroupsRelation groupmodel, int buyprice, ref int groupid) { string msg = ""; //是否开团 if (isgroup > 0) { EntGroupSponsor groupSponsor = new EntGroupSponsor(); groupSponsor.EntGoodRId = groupmodel.Id; groupSponsor.SponsorUserId = userid; groupSponsor.GroupSize = groupmodel.GroupSize; groupSponsor.RId = rid; groupSponsor.StartDate = DateTime.Now; groupSponsor.EndDate = DateTime.Now.AddHours(groupmodel.ValidDateLength); groupSponsor.State = buyMode == (int)miniAppBuyMode.储值支付 || buyprice <= 0 ? (int)GroupState.开团成功 : (int)GroupState.待付款; //待付款 groupid = Convert.ToInt32(EntGroupSponsorBLL.SingleModel.Add(groupSponsor)); if (groupid <= 0) { msg = $"成团失败!"; } } return(msg); }
/// <summary> /// 拼团退款 /// </summary> /// <param name="item"></param> /// <param name="type">0:拼团失败退款,1:店主手动退款</param> /// <returns></returns> public bool EntGroupReFundQueue(EntGoodsOrder item, ref string msg) { int paytype = item.BuyMode; TransactionModel tranmodel = new MiniApp.TransactionModel(); EntGroupSponsor csg = EntGroupSponsorBLL.SingleModel.GetModel(item.GroupId); if (csg == null) { msg = "小程序拼团商品不存在啦=" + item.GroupId; item.State = (int)MiniAppEntOrderState.已取消; EntGoodsOrderBLL.SingleModel.Update(item, "State"); return(false); } EntGroupSponsor gsinfo = EntGroupSponsorBLL.SingleModel.GetModel(item.GroupId); if (gsinfo == null) { msg = "小程序拼团团购不存在啦=" + item.GroupId; item.State = (int)MiniAppEntOrderState.已取消; EntGoodsOrderBLL.SingleModel.Update(item, "State"); return(false); } if (item.BuyPrice <= 0) { msg = "xxxxxxxxxxxxx小程序拼团价格为0不需要退款=" + item.Id; return(false); } if (item.State == (int)MiniAppEntOrderState.退款成功) { msg = "xxxxxxxxxxxxx小程序拼团状态有误,不能退款=" + item.Id + ",paystate=" + item.State + "," + (int)MiniAppEntOrderState.退款成功; return(false); } item.State = (int)MiniAppEntOrderState.退款成功; //更新用户订单状态 tranmodel.Add($"update EntGoodsOrder set State={item.State} where id={item.Id}"); //判断是否是微信支付 if (paytype == (int)miniAppBuyMode.微信支付) { CityMorders order = _cityMordersBLL.GetModel(item.OrderId); if (order == null) { msg = "xxxxxxxxxxxxxxxxxx小程序拼团退款查不到支付订单 ID=" + item.Id; item.State = (int)MiniappPayState.已失效; EntGoodsOrderBLL.SingleModel.Update(item, "State"); return(false); } //插入退款队列 ReFundQueue reModel = new ReFundQueue(); reModel.minisnsId = -5; reModel.money = item.BuyPrice; reModel.orderid = item.OrderId; reModel.traid = order.trade_no; reModel.addtime = DateTime.Now; reModel.note = "小程序专业版拼团退款"; reModel.retype = 1; tranmodel.Add(base.BuildAddSql(reModel)); } else if (paytype == (int)miniAppBuyMode.储值支付) { //储值卡退款 tranmodel.Add(SaveMoneySetUserBLL.SingleModel.GetCommandCarPriceSql(item.AppId, item.UserId, item.BuyPrice, 1, item.OrderId, item.OrderNum).ToArray()); if (tranmodel.sqlArray.Length <= 0) { msg = "xxxxxxxxxxxxxxxxxx专业版拼团储值卡退款失败,ID=" + item.Id; return(false); } } if (tranmodel.sqlArray.Length <= 0) { msg = "xxxxxxxxxxxxxxxxxx专业版拼团退款失败,ID=" + item.Id; return(false); } if (!ExecuteTransactionDataCorect(tranmodel.sqlArray, tranmodel.ParameterArray)) { msg = "xxxxxxxxxxxxxxxxxx专业版拼团退款事务执行失败,ID=" + item.Id + "sql:" + string.Join(";", tranmodel.sqlArray); return(false); } if (!EntGoodsOrderBLL.SingleModel.updateStock(item, (int)MiniAppEntOrderState.退款成功)) { msg = "xxxxxxxxxxxxxxxxxx专业版拼团退款更新库存失败,ID=" + item.Id; return(false); } msg = "xxxxxxxxxxxxxxxxxx专业版拼团退款成功,ID=" + item.Id; //根据订单释放库存 return(true); }