示例#1
0
        /// <summary>
        ///生成在线订单号
        /// </summary>
        /// <param name="paytepe"></param>
        /// <returns></returns>
        public string GetOnlineOrder(PayTypeEnum paytepe)
        {
            string result = string.Empty;

            switch (paytepe)
            {
            case PayTypeEnum.Alipay:
                result = string.Format("Al{0}{1}{2}", Utils.GetUnixTime(), Utils.GenPsw(16, 16), Utils.GetRandom(1000, 9999));
                break;

            case PayTypeEnum.WeChart:
                result = string.Format("WX{0}{1}{2}", Utils.GetUnixTime(), Utils.GenPsw(16, 16), Utils.GetRandom(1000, 9999));
                break;
            }
            return(result);
        }
示例#2
0
        /// <summary>
        /// 生成订单编码
        /// 规则: 来源(2位)-支付方式(2位)-时间戳(秒级)-属于用户当日订单数量+1(3位)
        /// </summary>
        /// <param name="sourceType">订单来源</param>
        /// <param name="payType">支付方式</param>
        /// <param name="time">属于用户当日订单数量</param>
        /// <returns></returns>
        public string GetOrderMaxCode(OrderSourceType sourceType, PayTypeEnum payType, DateTime?time = null)
        {
            var precode = RandomHelper.GetRandom(1, 9) + Convert.ToInt32(sourceType).ToString() + Convert.ToInt32(payType);

            var date          = time ?? DateTime.Now;
            var codeStateWith = precode + date.ToString("yyyyMMdd"); //截取数据格式:年-月-日 20191021

            var code = codeStateWith;

            var list  = this.EntityRepo.GetAll().Where(e => e.OrderCode.StartsWith(codeStateWith)).ToList();
            var model = list.Select(e => new { Number = e.OrderCode.Substring(code.Length).CastTo(0) })
                        .OrderByDescending(e => e.Number)
                        .FirstOrDefault();//返回订单的最后一位

            if (model != null)
            {
                code += (model.Number + 1).ToString().PadLeft(2, '0');
            }
            else
            {
                code += "01";
            }
            return(code);
        }