Esempio n. 1
0
        /// <summary>
        /// 批量生成优惠码
        /// </summary>
        /// <param name="groupId"></param>
        /// <param name="createNum"></param>
        /// <returns></returns>
        public bool CreateCouponGroup(int groupId, int iCreateNum = 1)
        {
            int iCount = iCreateNum;

            if (iCreateNum > 1000)
            {
                return(false);
            }

            //获得需要生成概要信息
            OrderCouponInfo couponInfo = T_Order_CouponInfoBLL.GetModel(groupId);
            //获得当前总生成条数
            int couponListCount = couponInfo.produceNum;

            //新生成优惠码
            List <string> couponCreateList = new List <string>();

            //判断是否超出限制数量
            if ((iCreateNum + couponListCount) > couponInfo.maxLimitNum)
            {
                iCount = couponInfo.maxLimitNum - couponListCount;
            }

            string couponCode = "";
            string couponPre  = "";

            //前缀命名
            if (couponInfo.couponType == 1)
            {
                couponPre = "DJ";
            }
            else if (couponInfo.couponType == 2)
            {
                couponPre = "GN";
            }

            while (iCount > 0)
            {
                //循环生成优惠券Code
                couponCode = couponPre + CreateNumber();
                //Utility.Logger.Info(couponCode);
                if (!CheckCouponCode(couponCode))
                {
                    if (!(T_Order_CouponListBLL.CreateCouponGroup(couponInfo.id, couponCode, couponInfo.couponValue, couponInfo.endDate) > 0))
                    {
                        return(false);
                    }
                    UpdateHtCouponList(0, couponCode);
                    iCount--;
                    if (iCount > 0)
                    {
                        Thread.Sleep(100);
                    }
                }
            }
            return(true);
        }
Esempio n. 2
0
        /// <summary>
        /// 优惠券内容
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public new OrderCouponInfo GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" declare @produceNum int,@bindingNum int,@useNum int; ");
            strSql.Append(" select @produceNum= COUNT(id),@bindingNum= sum(case when toAccId>0 then 1 else 0 end),@useNum=SUM(case when useAccId>0 then 1 else 0 end)  ");
            strSql.Append("  from i200.dbo.T_Order_CouponList where groupId=@id ; ");
            strSql.Append(" select id,couponType,bindType,bindValue,ruleType,ruleValue,couponStatus,couponValue,couponDesc,maxLimitNum,createDate,endDate,operatorId,remark, ");
            strSql.Append(" @produceNum produceNum,@bindingNum bindingNum,@useNum useNum from i200.dbo.T_Order_CouponInfo where id=@id order by id desc; ");
            OrderCouponInfo infoModel = DapperHelper.GetModel <OrderCouponInfo>(strSql.ToString(), new { id = id });

            return(infoModel);
        }
        /// <summary>
        /// 优惠券内容
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static OrderCouponInfo GetModel(int id)
        {
            T_Order_CouponInfoDAL dal       = new T_Order_CouponInfoDAL();
            OrderCouponInfo       infoModel = dal.GetModel(id);

            if (infoModel.operatorId > 0)
            {
                infoModel.operatorName = Sys_Manage_UserBLL.GetManageUserNameById(infoModel.operatorId);
            }
            else
            {
                infoModel.operatorName = "系统";
            }

            infoModel.couponTypeName = Enum.GetName(typeof(Model.Enum.CouponEnum.CouponType), infoModel.couponType);

            infoModel.bindTypeName = Enum.GetName(typeof(Model.Enum.CouponEnum.BindType), infoModel.bindType);
            if (infoModel.bindType == 0)
            {
                infoModel.bindName = "无限制";
            }
            else if (infoModel.bindType == 1)
            {
                infoModel.bindName = Enum.GetName(typeof(Model.Enum.OrderEnum.ItemType), infoModel.bindValue);
            }
            else if (infoModel.bindType == 2)
            {
                infoModel.bindName = BLL.Base.T_Order_ProjectBaseBLL.GetModel(infoModel.bindValue).displayName;
            }
            infoModel.ruleTypeName     = Enum.GetName(typeof(Model.Enum.CouponEnum.RuleType), infoModel.ruleType);
            infoModel.couponStatusName = Enum.GetName(typeof(Model.Enum.CouponEnum.CouponStatus), infoModel.couponStatus);



            return(infoModel);
        }