예제 #1
0
        /// <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);
        }
예제 #2
0
        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));
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        /// <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);
        }